<?php
/**
* Descripción del Modelo de Datos PlanesProgramas
*
* %%DESC_MODELO%%
*
* Licenciado bajo la Licencia Apache, Versión 2.0;
* Usted no puede usar este archivo excepto en conformidad con la Licencia.
* Usted puede obtener una copia de la Licencia en:
* http://www.php.net/license/3_01.txt.
* A menos que sea requerido por la ley aplicable o acordado por escrito, el software
* Distribuido bajo la licencia se distribuye en una "AS IS" o "COMO ESTA" BASE,
* SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, expresas o implícitas.
* Consulte la Licencia para los permisos y Limitaciones bajo la Licencia.
*
* @package Modelos\Datos\PlanesProgramas
* @author JUAN PABLO LLINAS RAMIREZ <jpllinas@ccsm.org.co>
* @author SICAM 20171025 <sicam32@ccsm.org.co>
* @copyright 2017 Cámara de Comercio de Santa Marta para el Magdalena
* @license http://www.php.net/license/3_01.txt PHP License 3.01
* @version 201711081137
* @link http://sicam.ccsm.org.co/docs/modelos/datos/PlanesProgramas
*/
class PlanesProgramas extends ModeloDatos {
const CONSTRUCCION = 'CONSTRUCCION';
const INICIADO = 'INICIADO';
const TERMINADO = 'TERMINADO';
const CANCELADO = 'CANCELADO';
const SUSPENDIDO = 'SUSPENDIDO';
/**
* Recibe el Identificador del registro de Programa y
* devuelve un objeto con sus datos.
* @param int $programaID
* @return Objeto Programa
*/
public static function datos($programaID) {
$sqlQuery = PlanesProgramasSQL::DATOS_BASICOS . " WHERE programaID = ? ; ";
return SicamDB::selectUnaFila($sqlQuery, array($programaID));
}
/**
* Recibe el Identificador del registro de Programa y
* devuelve un objeto con sus datos completos con todas sus relacion.
* @param int $programaID
* @return Objeto Programa
*/
public static function datosCompletos($programaID, $tipoPlanID = null) {
$sqlQuery = PlanesProgramasSQL::DATOS_COMPLETOS . " WHERE PlanesProgramas.programaID = ? ; ";
$Programa = SicamDB::selectUnaFila($sqlQuery, array($programaID));
if (!is_null($tipoPlanID)) {
/*$Programa->Acciones = Acciones::delProgramaYTipoPlan($programaID, $tipoPlanID);
foreach($Programa->Acciones as $accion):
$accion->Metas = AccionesMetas::PorAccion($accion->accionID);
$accion->Total = PlanesOperaciones::presupuestoTotalPorAccionyTipoPlan($accion->accionID, $tipoPlanID);
$accion->TotalGastado = PlanesOperacionesAvances::GastadoTotalPorAccion($accion->accionID, $tipoPlanID);
$accion->FechaInicio = PlanesOperaciones::fechaTempranaPorAccion($accion->accionID, $tipoPlanID);
$accion->FechaFinal = PlanesOperaciones::fechaTardiaPorAccion($accion->accionID, $tipoPlanID);
endforeach;*/
$Programa->Total = PlanesOperaciones::presupuestoTotalPorPrograma($programaID, $tipoPlanID);
$Programa->TotalGastado = PlanesOperaciones::GastadoTotalPorPrograma($programaID, $tipoPlanID);
$Programa->FechaInicio = PlanesOperaciones::fechaTempranaPorPrograma($programaID, $tipoPlanID);
$Programa->FechaFinal = PlanesOperaciones::fechaTardiaPorPrograma($programaID, $tipoPlanID);
}else{
/*$Programa->Acciones = Acciones::delPrograma($programaID);
foreach($Programa->Acciones as $accion):
$accion->Metas = AccionesMetas::PorAccion($accion->accionID);
$accion->Total = PlanesOperaciones::presupuestoTotalPorAccion($accion->accionID);
$accion->TotalGastado = PlanesOperacionesAvances::GastadoTotalPorAccion($accion->accionID);
$accion->FechaInicio = PlanesOperaciones::fechaTempranaPorAccion($accion->accionID);
$accion->FechaFinal = PlanesOperaciones::fechaTardiaPorAccion($accion->accionID);
endforeach;*/
$Programa->Total = PlanesOperaciones::presupuestoTotalPorPrograma($programaID);
$Programa->TotalGastado = PlanesOperaciones::GastadoTotalPorPrograma($programaID);
$Programa->FechaInicio = PlanesOperaciones::fechaTempranaPorPrograma($programaID);
$Programa->FechaFinal = PlanesOperaciones::fechaTardiaPorPrograma($programaID);
}
/*$Programa->Objetivos = PlanesProgramasObjetivos::delPrograma($programaID);
$Programa->Usuario = Usuarios::datos($Programa->programaUSRCREO);*/
return $Programa;
}
/**
* Devuelve todos los registros de Programas, según el estado.
* Si no se envia el estado devuelve todos los registros
* sin importar su estado.
* @param String $programaESTADO
* @return Array de Objetos Programas
*/
public static function todos($programaESTADO = null) {
$datos = array();
$sqlQuery = PlanesProgramasSQL::DATOS_BASICOS;
if (!is_null($programaESTADO)) {
$sqlQuery .= " WHERE PlanesProgramas.estadoProgramaID = ? ORDER BY PlanesProgramas.estadoProgramaID";
array_push($datos, $programaESTADO);
}
return SicamDB::selectVariasFilas($sqlQuery, $datos);
}
/**
* Devuelve los registros de Programas en estado ACTIVO.
* @return Array de Objetos Programas
*/
public static function activos() {
return self::todos(self::ACTIVO);
}
/**
* Recibe Todos los datos de necesarios para la creación de un nuevo
* registro de Programas.
* @param int $categoriaID Identificador de la Categoria
* @param String $programaCODIGO Código de Programas
* @param String $programaTITULO Titulo de Programas
* @param Texto $programaDESCRIPCION Descripción de Programas
* @param Url $programaURL Url del archivo asociado al Programas
* @param String $programaESTADO Estado del registro de Programas
* @return int con el Identificador del Registro Programas
*/
public static function guardar($programaCODIGO, $programaTITULO, $programaDESCRIPCION, $programaJUSTIFICACION, $programaFCHINICIO, $programaFCHFINAL, $programaESTADO) {
$sqlQuery = PlanesProgramasSQL::CREAR_REGISTRO;
return SicamDB::insertFila($sqlQuery, array(
$programaCODIGO, $programaTITULO, $programaDESCRIPCION, $programaJUSTIFICACION, $programaFCHINICIO,
$programaFCHFINAL, $programaESTADO,Cliente::usuarioID()
)
);
}
/**
* Recibe los todos los datos del registro para ser actualizados, junto con
* el identificador del registro que se va ha actualizar.
* @param int $programaID Identificador del Registro de Programas
* @param int $categoriaID Identificador de la Categoria
* @param String $programaCODIGO Código de Programas
* @param String $programaTITULO Titulo de Programas
* @param Texto $programaDESCRIPCION Descripción de Programas
* @param Url $programaURL Url del archivo asociado al Programas
* @param String $programaESTADO Estado del registro de Programas
* @return int cantidad de registros actualziados en la operacion
*/
public static function actualizar($programaID, $programaTITULO, $programaDESCRIPCION, $programaJUSTIFICACION, $programaFCHINICIO, $programaFCHFINAL, $programaESTADO) {
$sqlQuery = PlanesProgramasSQL::ACTUALIZAR_REGISTRO;
return SicamDB::actualizarFila($sqlQuery, array(
$programaTITULO, $programaDESCRIPCION, $programaJUSTIFICACION, $programaFCHINICIO,
$programaFCHFINAL, $programaESTADO, Cliente::usuarioID(), $programaID
)
);
}
/**
* Recibe un identificador de Programas y elimina el registro.
* @param int $programaID Identificador del registro
* ha eliminar.
* @return int Cantidad de registros eliminados
*/
public static function eliminar($programaID) {
$sqlQuery = PlanesProgramasSQL::ELIMINAR_REGISTRO;
return SicamDB::actualizarFila($sqlQuery, array($programaID));
}
/**
* Recibe un identificador de Programas y reactiva el registro.
* @param int $programaID Identificador del registro
* @return int Cantidad de registros reactivados
*/
public static function reactivar($programaID) {
return self::cambiarEstado(self::ACTIVO, $programaID);
}
/**
* Recibe un identificador y el Estado y actualiza el estado del registro
* @param String $programaESTADO Nuevo estado del registro.
* @param int $programaID Identificador del registro
* @return int Cantidad de registros desactivados
*/
public static function cambiarEstado($programaESTADO, $programaID) {
$sqlQuery = PlanesProgramasSQL::ACUALIZAR_ESTADO;
return SicamDB::actualizarFila($sqlQuery, array($programaESTADO, $programaID));
}
/**
* Recibe un identificador de Programas y desactiva el registro.
* @param int $programaID Identificador del registro
* @return int Cantidad de registros desactivados
*/
public static function desactivar($programaID) {
return self::cambiarEstado(self::DESACTIVO, $programaID);
}
/**
* Recibe los identificadores del plan y del tipo de plan.
* @param int $planID Identificador del plan
* @param int $tipoPlan Identificador del tipo del plan
* @return int Cantidad de registros de programas
*/
public static function delPlanYTipoPlan($planID,$tipoPlan) {
$sqlQuery = PlanesProgramasSQL::LISTADO_PORPLAN_Y_TIPOPLAN
. " WHERE PlanesOperaciones.tipoPlanID = ? AND PlanesActividades.planID = ? GROUP BY PlanesProgramas.programaCODIGO; ";
return SicamDB::selectVariasFilas($sqlQuery, array($tipoPlan, $planID));
}
}
// Generado el 2017-11-08 11:37:25:000000