<?php
/**
* Descripción del Modelo de Datos Planes
*
* %%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\Planes
* @author RONALD ANDRES FABRA JIMENEZ <rfabra@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 201711200924
* @link http://sicam.ccsm.org.co/docs/modelos/datos/Planes
*/
class Planes extends ModeloDatos {
const PENDIENTE = 'PENDIENTE';
const PLANEACION = 'EN PLANEACION';
const APROBADO = 'APROBADO';
const EJECUCION = 'EN EJECUCION';
const TERMINADO = 'TERMINADO';
/**
* Recibe el Identificador del registro de plan y
* devuelve un objeto con sus datos.
* @param int $planID
* @return Objeto plan
*/
public static function datos($planID) {
$sqlQuery = PlanesSQL::DATOS_BASICOS . " WHERE planID = ? ; ";
return SicamDB::selectUnaFila($sqlQuery, array($planID));
}
/**
* Recibe el Identificador del registro de plan y
* devuelve un objeto con sus datos completos con todas sus relacion.
* @param int $planID
* @return Objeto plan
*/
public static function datosCompletos($planID){
$sqlQuery = PlanesSQL::DATOS . " WHERE CamaraPlanes.planID = ? ; ";
$Plan = SicamDB::selectUnaFila($sqlQuery, array($planID));
$Plan->Actividades = PlanesActividades::porPlan($planID);
$Plan->Ingresos = PlanesIngresos::porPlan($planID);
$Plan->Metas = Metas::porPlan($planID);
$Plan->Total = PlanesOperaciones::presupuestoTotalPorPlan($planID);
$Plan->TotalGastado = PlanesOperaciones::GastadoTotalPorPlan($planID);
return $Plan;
}
/**
* Devuelve todos los registros de planes, según el estado.
* Si no se envia el estado devuelve todos los registros
* sin importar su estado.
* @param String $planESTADO
* @return Array de Objetos planes
*/
public static function todos($planesESTADOS=null){
$sqlQuery = PlanesSQL::DATOS_BASICOS;
$datos = array();
if(!is_null($planesESTADOS)){
$sqlQuery .= ' WHERE PlanesEstados.planEstadoCODIGO = ?';
array_push($datos, $planesESTADOS);
}
return SicamDB::selectVariasFilas($sqlQuery, $datos);
}
/**
* Devuelve los registros de planes en estado ACTIVO.
* @return Array de Objetos planes
*/
public static function activos() {
return self::todos(self::ACTIVO);
}
/**
* Recibe Todos los datos de necesarios para la creación de un nuevo
* registro de planes.
* @param int $categoriaID Identificador de la Categoria
* @param String $planCODIGO Código de planes
* @param String $planTITULO Titulo de planes
* @param Texto $planDESCRIPCION Descripción de planes
* @param Url $planURL Url del archivo asociado al planes
* @param String $planESTADO Estado del registro de planes
* @return int con el Identificador del Registro planes
*/
public static function guardar($vigenciaID, $planCODIGO, $planDESCRIPCION, $planEstadoID) {
$sqlQuery = PlanesSQL::CREAR_REGISTRO;
return SicamDB::insertFila($sqlQuery, array(
$vigenciaID, $planCODIGO, $planDESCRIPCION,
$planEstadoID, 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 $planID Identificador del Registro de planes
* @param int $categoriaID Identificador de la Categoria
* @param String $planCODIGO Código de planes
* @param String $planTITULO Titulo de planes
* @param Texto $planDESCRIPCION Descripción de planes
* @param Url $planURL Url del archivo asociado al planes
* @param String $planESTADO Estado del registro de planes
* @return int cantidad de registros actualziados en la operacion
*/
public static function actualizar($planID, $vigenciaID, $planCODIGO, $planDESCRIPCION, $planEstadoID) {
$sqlQuery = PlanesSQL::ACTUALIZAR_REGISTRO;
return SicamDB::actualizarFila($sqlQuery, array(
$vigenciaID, $planCODIGO,
$planDESCRIPCION, $planEstadoID,
Cliente::usuarioID(), $planID
)
);
}
/**
* Recibe un identificador de planes y elimina el registro.
* @param int $planID Identificador del registro
* ha eliminar.
* @return int Cantidad de registros eliminados
*/
public static function eliminar($planID) {
$sqlQuery = planesSQL::ELIMINAR_REGISTRO;
return SicamDB::actualizarFila($sqlQuery, array($planID));
}
/**
* Recibe un identificador de planes y reactiva el registro.
* @param int $planID Identificador del registro
* @return int Cantidad de registros reactivados
*/
public static function reactivar($planID) {
return self::cambiarEstado(self::ACTIVO, $planID);
}
/**
* Recibe un identificador y el Estado y actualiza el estado del registro
* @param String $planESTADO Nuevo estado del registro.
* @param int $planID Identificador del registro
* @return int Cantidad de registros desactivados
*/
public static function cambiarEstado($planESTADO, $planID) {
$sqlQuery = PlanesSQL::ACUALIZAR_ESTADO;
return SicamDB::actualizarFila($sqlQuery, array($planESTADO, $planID));
}
/**
* Recibe un identificador de planes y desactiva el registro.
* @param int $planID Identificador del registro
* @return int Cantidad de registros desactivados
*/
public static function desactivar($planID) {
return self::cambiarEstado(self::DESACTIVO, $planID);
}
/**
* Recibe el Identificador del registro de plan y
* devuelve un objeto con sus datos completos con todas sus relaciones.
* @param int $planID
* @return Objeto plan
*/
public static function datosCompletosTodos($planID){
$Plan = self::datos($planID);
$Plan->Total = PlanesOperaciones::presupuestoTotalPorPlan($planID);
$Plan->PlanesTipos = TiposPlanes::todos();
foreach ($Plan->PlanesTipos as $tipoPlan):
$tipoPlan->Programas = PlanesProgramas::delPlanYTipoPlan($planID,$tipoPlan->tipoPlanID);
$tipoPlan->Total = PlanesOperaciones::presupuestoTotalPorPlanyTipoPlan($planID, $tipoPlan->tipoPlanID);
foreach($tipoPlan->Programas as $programa):
$programa->Acciones = Acciones::delPrograma($programa->programaID, $tipoPlan->tipoPlanID);
$programa->Total = PlanesOperaciones::presupuestoTotalPorPrograma($programa->programaID, $tipoPlan->tipoPlanID);
foreach($programa->Acciones as $accion):
$accion->Actividades = PlanesActividades::delaAccion($accion->accionID, $tipoPlan->tipoPlanID);
$accion->Total = PlanesOperaciones::presupuestoTotalPorAccion($accion->accionID, $tipoPlan->tipoPlanID);
foreach($accion->Actividades as $actividad):
$actividad->Total = PlanesOperaciones::presupuestoTotalPorActividadyTipoPlan($actividad->actividadID, $tipoPlan->tipoPlanID);
endforeach;
endforeach;
endforeach;
endforeach;
return $Plan;
}
}
// Generado el 2017-11-20 09:24:08:000000