<?php
/**
* Descripción del Modelo de Datos PlanesActividades
*
* %%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\PlanesActividades
* @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 201711120944
* @link http://sicam.ccsm.org.co/docs/modelos/datos/PlanesActividades
*/
class PlanesActividades extends ModeloDatos {
const ACTIVO = 'ACTIVO';
const DESACTIVO = 'DESACTIVO';
const SUSPENDIDO = 'SUSPENDIDO';
/**
* Recibe el Identificador del registro de Actividad y
* devuelve un objeto con sus datos.
* @param int $actividadID
* @return Objeto Actividad
*/
public static function datos($actividadID) {
$sqlQuery = PlanesActividadesSQL::DATOS_BASICOS . " WHERE PlanesActividades.actividadID = ? ; ";
return SicamDB::selectUnaFila($sqlQuery, array($actividadID));
}
/**
* Recibe el Identificador del registro de Actividad y
* devuelve un objeto con sus datos completos con todas sus relacion.
* @param int $actividadID
* @return Objeto Actividad
*/
public static function datosCompletos($actividadID, $tipoPlanID = null) {
$Actividad = self::datos($actividadID);
$Actividad->solicitudesPersonal = self::solicitudPersonal($actividadID);
if (!is_null($tipoPlanID)) {
//$Actividad->Operaciones = PlanesOperaciones::delaActividadYTipoPlan($actividadID,$tipoPlanID);
/*$Actividad->OperacionesAdquisicion = PlanesOperaciones::delaActividadYTipoPlanYTipoOperacion($actividadID,$tipoPlanID,PlanesOperacionesTipos::ADQUISICION);
foreach($Actividad->OperacionesAdquisicion as $adquisicion):
$adquisicion->TotalGastado = PlanesOperacionesAvances::GastadoTotalPorOperacion($actividadID,$adquisicion->planOperacionID, $tipoPlanID);
endforeach;
$Actividad->OperacionesTarea = PlanesOperaciones::delaActividadYTipoPlanYTipoOperacion($actividadID,$tipoPlanID,PlanesOperacionesTipos::TAREA);
if ($Actividad->OperacionesTarea) {
foreach($Actividad->OperacionesTarea as $tarea):
$tarea->TotalGastado = PlanesOperacionesAvances::GastadoTotalPorOperacion($actividadID,$tarea->planOperacionID, $tipoPlanID);
endforeach;
}*/
$Actividad->Total = PlanesOperaciones::presupuestoTotalPorActividadyTipoPlan($actividadID, $tipoPlanID);
$Actividad->TotalGastado = PlanesOperaciones::GastadoTotalPorActividad($actividadID, $tipoPlanID);
$Actividad->FechaInicio = PlanesOperaciones::fechaTempranaPorActividad($actividadID, $tipoPlanID);
$Actividad->FechaFinal = PlanesOperaciones::fechaTardiaPorActividad($actividadID, $tipoPlanID);
}else{
$Actividad->operaciones = self::operaciones($actividadID);
/*$Actividad->OperacionesAdquisicion = PlanesOperaciones::delaActividadPorTipo($actividadID,PlanesOperacionesTipos::ADQUISICION);
foreach($Actividad->OperacionesAdquisicion as $adquisicion):
$adquisicion->TotalGastado = PlanesOperacionesAvances::GastadoTotalPorOperacion($actividadID, $adquisicion->planOperacionID);
endforeach;
$Actividad->OperacionesTarea = PlanesOperaciones::delaActividadPorTipo($actividadID,PlanesOperacionesTipos::TAREA);
if ($Actividad->OperacionesTarea) {
foreach($Actividad->OperacionesTarea as $tarea):
$tarea->TotalGastado = PlanesOperacionesAvances::GastadoTotalPorOperacion($actividadID, $tarea->planOperacionID);
endforeach;
}*/
$Actividad->Total = PlanesOperaciones::presupuestoTotalPorActividad($actividadID);
$Actividad->TotalGastado = PlanesOperaciones::GastadoTotalPorActividad($actividadID);
$Actividad->FechaInicio = PlanesOperaciones::fechaTempranaPorActividad($actividadID);
$Actividad->FechaFinal = PlanesOperaciones::fechaTardiaPorActividad($actividadID);
}
//$Actividad->PlanesIngresos = PlanesIngresos::porActividad($actividadID);
return $Actividad;
}
/**
* Devuelve todos los registros de Actividades, según el estado.
* Si no se envia el estado devuelve todos los registros
* sin importar su estado.
* @param String $actividadESTADO
* @return Array de Objetos Actividades
*/
public static function todas($actividadESTADO = null) {
$datos = array();
$sqlQuery = PlanesActividadesSQL::DATOS_BASICOS;
if (!is_null($actividadESTADO)) {
$sqlQuery .= " WHERE PlanesActividades.actividadESTADO = ? ";
array_push($datos, $actividadESTADO);
}
return SicamDB::selectVariasFilas($sqlQuery, $datos);
}
/**
* Devuelve los registros de Actividades en estado ACTIVO.
* @return Array de Objetos Actividades
*/
public static function activos() {
return self::todos(self::ACTIVO);
}
/**
* Recibe Todos los datos de necesarios para la creación de un nuevo
* registro de Actividades.
* @param int $categoriaID Identificador de la Categoria
* @param String $actividadCODIGO Código de Actividades
* @param String $actividadTITULO Titulo de Actividades
* @param Texto $actividadDESCRIPCION Descripción de Actividades
* @param Url $actividadURL Url del archivo asociado al Actividades
* @param String $actividadESTADO Estado del registro de Actividades
* @return int con el Identificador del Registro Actividades
*/
public static function guardar($accionID, $planID, $tipoActividadID, $actividadCODIGO, $actividadTITULO, $actividadDESCRIPCION, $actividadJUSTIFICACION, $actividadLOGROSESPERADOS, $actividadLUGAR, $actividadFCHINICIAL, $actividadFCHFINAL, $actividadINGRESOESPERADO, $actividadENCARGADO, $actividadMETA) {
$sqlQuery = PlanesActividadesSQL::CREAR_REGISTRO;
return SicamDB::insertFila($sqlQuery, array($accionID, $planID, $tipoActividadID, $actividadCODIGO, $actividadTITULO, $actividadDESCRIPCION, $actividadJUSTIFICACION, $actividadLOGROSESPERADOS, $actividadLUGAR, $actividadFCHINICIAL, $actividadFCHFINAL, $actividadINGRESOESPERADO, $actividadENCARGADO, $actividadMETA, 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 $actividadID Identificador del Registro de Actividades
* @param int $categoriaID Identificador de la Categoria
* @param String $actividadCODIGO Código de Actividades
* @param String $actividadTITULO Titulo de Actividades
* @param Texto $actividadDESCRIPCION Descripción de Actividades
* @param Url $actividadURL Url del archivo asociado al Actividades
* @param String $actividadESTADO Estado del registro de Actividades
* @return int cantidad de registros actualziados en la operacion
*/
public static function actualizar( $accionID, $planID, $actividadTITULO, $actividadDESCRIPCION, $actividadJUSTIFICACION , $actividadLOGROSESPERADOS,
$actividadLUGAR , $actividadFCHINICIAL , $actividadFCHFINAL , $actividadINGRESOESPERADO , $actividadENCARGADO , $actividadMETA, $actividadID) {
$sqlQuery = PlanesActividadesSQL::ACTUALIZAR_REGISTRO;
return SicamDB::actualizarFila($sqlQuery, array(
$accionID, $planID, $actividadTITULO, $actividadDESCRIPCION, $actividadJUSTIFICACION , $actividadLOGROSESPERADOS,
$actividadLUGAR , $actividadFCHINICIAL , $actividadFCHFINAL , $actividadINGRESOESPERADO ,
$actividadENCARGADO , $actividadMETA, Cliente::usuarioID() ,$actividadID)
);
}
/**
* Recibe un identificador de Actividades y elimina el registro.
* @param int $actividadID Identificador del registro
* ha eliminar.
* @return int Cantidad de registros eliminados
*/
public static function eliminar($actividadID) {
$sqlQuery = PlanesActividadesSQL::ELIMINAR_REGISTRO;
return SicamDB::actualizarFila($sqlQuery, array($actividadID));
}
/**
* Recibe un identificador de Actividades y reactiva el registro.
* @param int $actividadID Identificador del registro
* @return int Cantidad de registros reactivados
*/
public static function reactivar($actividadID) {
return self::cambiarEstado(self::ACTIVO, $actividadID);
}
/**
* Recibe un identificador y el Estado y actualiza el estado del registro
* @param String $actividadESTADO Nuevo estado del registro.
* @param int $actividadID Identificador del registro
* @return int Cantidad de registros desactivados
*/
public static function cambiarEstado($actividadESTADO, $actividadID) {
$sqlQuery = PlanesActividadesSQL::ACUALIZAR_ESTADO;
return SicamDB::actualizarFila($sqlQuery, array($actividadESTADO, $actividadID));
}
/**
* Recibe un identificador de Actividades y desactiva el registro.
* @param int $actividadID Identificador del registro
* @return int Cantidad de registros desactivados
*/
public static function desactivar($actividadID) {
return self::cambiarEstado(self::DESACTIVO, $actividadID);
}
public static function solicitudPersonal($actividadID) {
return SolicitudPersonal::delaActividad($actividadID);
}
public static function operaciones($actividadID) {
return PlanesOperaciones::delaActividad($actividadID);
}
/**
* Recibe el Identificador del registro de plan y
* devuelve un objeto con sus datos completos con todas sus relacion.
* @param int $planID
* @return Objeto Actividad
*/
public static function porPlan($planID) {
$sqlQuery = PlanesActividadesSQL::DATOS_POR_PLAN . " WHERE PlanesActividades.planID = ? ; ";
return SicamDB::selectVariasFilas($sqlQuery, array($planID));
}
/**
* Recibe el Identificador del registro de plan y de el tipo de Plan y
* devuelve un objeto con sus datos completos con todas sus relacion.
* @param int $planID
* @return Objeto Actividad
*/
public static function porPlanYTipo($planID, $tipoPlanID) {
$sqlQuery = PlanesActividadesSQL::DATOS_POR_PLAN_Y_TIPOPLAN . " WHERE PlanesActividades.planID = ? ; ";
return SicamDB::selectVariasFilas($sqlQuery, array($planID));
}
public static function delaAccion($accionID, $tipoPlanID = null) {
if (!is_null($tipoPlanID)) {
$sqlQuery = PlanesActividadesSQL::DATOS_POR_ACCION_Y_TIPOPLAN. "WHERE PlanesAcciones.accionID = ? AND PlanesOperaciones.tipoPlanID = ? GROUP BY PlanesActividades.actividadCODIGO ; ";
return SicamDB::selectVariasFilas($sqlQuery, array($accionID, $tipoPlanID));
}else{
$sqlQuery = PlanesActividadesSQL::DATOS_POR_ACCION. " WHERE PlanesActividades.accionID = ? ; ";
return SicamDB::selectVariasFilas($sqlQuery, array($accionID));
}
}
public static function porOperacionYPlan($actividadID, $planID) {
$sqlQuery = PlanesActividadesSQL::DATOS_POR_OPERACION_Y_PLAN . " WHERE PlanesActividades.actividadID = ? AMD PlanesActividades.planID = ? ; ";
return SicamDB::selectVariasFilas($sqlQuery, array($actividadID,$planID));
}
public static function registrarCambio($actividadID, $actividadCambioANTES) {
$sqlQuery = PlanesActividadesSQL::CREAR_REGISTRO_CAMBIO;
return SicamDB::insertFila($sqlQuery, array($actividadID, $actividadCambioANTES, Cliente::usuarioID()));
}
}
// Generado el 2017-11-12 09:44:22:000000