<?php
/**
* Descripción del Controlador PlanesOperaciones
*
* PlanOperacion
*
* 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 Planeador\Controladores
* @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 201711111205
* @link http://sicam.ccsm.org.co/docs/planeador/PlanesOperaciones
*/
class PlanesOperacionesControlador extends Controladores {
/**
* Vista que se encarga de mostrar todos los detalles/datos asociados a
* los registros de PlanesOperaciones.
* @return HTML Datos e información de PlanesOperaciones.
*/
function verDetalles() {
$PlanOperacion = PlanesOperaciones::datos($this->planOperacionID);
Vistas::mostrar('planeador', 'planesoperaciones/ver-detalles', array('PlanesOperaciones' => $PlanOperacion));
}
/**
* Vista que se encarga de organizar la forma de presentar
* los registros de PlanesOperaciones al usuario.
* @return HTML Listado de PlanesOperaciones.
*/
function mostrarTodos() {
Vistas::mostrar('planeador', 'planesoperaciones/lst-todos');
}
/**
* Vista que se encarga de organizar la forma de presentar
* los registros de PlanesOperaciones al usuario.
* @return HTML Listado de PlanesOperaciones.
*/
function mostrarOperacionesColaborador() {
Vistas::mostrar('planeador', 'planesoperaciones/lst-misOperaciones');
}
/**
* Permite mostrar en forma de tabla los registros de PlanesOperaciones.
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function tablaListado() {
$PlanOperaciones = PlanesOperaciones::todos();
var_dump($PlanOperaciones);
Vistas::mostrar('planeador', 'planesoperaciones/tbl-todos',
array( 'PlanesOperaciones' => $PlanOperaciones)
);
}
/**
* Permite mostrar en forma de tabla los registros de PlanesOperaciones segun el colaborador.
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function tablaListadoPorColaborador() {
$PlanOperaciones = PlanesOperaciones::delColaborador( Cliente::colaboradorID() );
Vistas::mostrar('planeador', 'planesoperaciones/tbl-todos',
array( 'PlanesOperaciones' => $PlanOperaciones)
);
}
/**
* Permite mostrar en forma de tabla los registros de PlanesOperaciones.
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function tablaListadoDeLaActividad() {
$PlanOperaciones = array();
if(!empty($this->actividadID) and isset($this->actividadID)):
$PlanOperaciones = PlanesOperaciones::delaActividad($this->actividadID);
endif;
Vistas::mostrar('planeador', 'planesoperaciones/tbl-todos-sencillo',
array( 'PlanesOperaciones' => $PlanOperaciones,
"hash_form"=> $this->hash_form
)
);
}
/**
* Permite mostrar en forma de tabla los registros de PlanesOperaciones.
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function tablaListadoDeLaActividadPorTipoOperacion() {
$PlanOperaciones = array();
$tipoOperacionID = $this->tipoOperacionID;
if(!empty($this->actividadID) and isset($this->actividadID) and !empty($tipoOperacionID)):
$PlanOperaciones = PlanesOperaciones::delaActividadPorTipo($this->actividadID, $tipoOperacionID);
endif;
Vistas::mostrar('planeador', 'planesoperaciones/tbl-todos-sencillo',
array( 'PlanesOperaciones' => $PlanOperaciones,
"hash_form"=> $this->hash_form
)
);
}
/**
* Permite mostrar en forma de tabla los registros de PlanesOperaciones.
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function tablaListadoDeLaActividadCreada() {
if(@$this->tipoPlanID){
$PlanOperaciones = PlanesOperaciones::delaActividadYPlan($this->actividadID,@$this->tipoPlanID);
}else{
$PlanOperaciones = PlanesOperaciones::delaActividad($this->actividadID);
}
Vistas::mostrar('planeador', 'planesoperaciones/tbl-operaciones-actividad',
array( 'PlanesOperaciones' => $PlanOperaciones)
);
}
/**
* Permite mostrar en forma de tabla los registros de PlanesOperaciones por Plan.
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function listadoPorPlan() {
$PlanOperaciones = PlanesOperaciones::delPlan($this->tipoPlanID);
Vistas::mostrar('planeador', 'planesoperaciones/lst-todos-plan',
array( 'PlanesOperaciones' => $PlanOperaciones)
);
}
/**
* Permite mostrar en forma de formulario los campos obligatorios de PlanesOperaciones.
* @return HTML Formulario con los campos requeridos.
*/
function TodosCampos($PlanesOperaciones = null) {
Vistas::mostrar('planeador', 'planesoperaciones/campos-todos',array(
'PlanesActividades' => PlanesActividades::todas(),
'PlanesOperacionesTipos' => PlanesOperacionesTipos::todos(),
'PlanesOperacionesPredefinidas' => PlanesOperacionesPredefinidas::todas(),
'PlanesOperacionesEstados' => PlanesOperacionesEstados::todos(),
'CamaraFuncionesLey' => CamaraFuncionesLey::todos(),
'TiposPlanes' => TiposPlanes::todos(),
'TiposGastos' => TiposGastos::todos(),
'Rubros' => Rubros::todos(),
'CentrosCostos' => CentroCostos::todos(),
'PlanesOperacionesClases' => PlanesOperacionesClases::todos(),
'PlanesOperaciones' => $PlanesOperaciones
));
}
/**
* Responde con el formulario de PlanesOperaciones vacio, solo datos necesarios.
* LLama a la función que devuleve el formulario pero
* sin enviarle los datos de PlanesOperaciones.
* Esta función se crea para poder gestionar el permiso de NUEVO PlanesOperaciones
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function mostrarFormularioNuevo() {
$this->mostrarFormulario();
}
/**
* Función que toma los datos enviados y crea un nuevo registro
* @return RespuestasSistema
*/
private function guardarNuevo() {
$creadoID = PlanesOperaciones::guardar($this->actividadID,
$this->tipoOperacionID, $this->operacionPredefinidaID,
$this->planOperacionDESCRIPCION,
$this->planOperacionFCHINICIO,$this->planOperacionFCHFINAL,
$this->planOperacionPRESUPUESTADO,$this->estadoOperacionID,
$this->camaraFuncionID,$this->tipoPlanID,
$this->tipoGastoID,$this->rubroID,
$this->centroCostosID,$this->claseOperacionID);
if ($creadoID) {
return RespuestasSistema::exito("Nuevo Registro CREADO con EXITO");
} else {
return RespuestasSistema::fallo("No se pudo CREAR el nuevo PlanesOperaciones. Si vuelve a suceder, contacte con el Centro TICS.");
}
}
/**
* Recibe el ID del PlanesOperaciones y obtiene sus datos para ser enviados
* al formulario, y asi cargar los datos en los inputs.
* Esta función se crea para poder gestionar el permiso de EDITAR PlanesOperaciones
* @return HTML Formulario con los datos del PlanesOperaciones a editar.
*/
function mostrarFormularioEditar() {
$PlanOperaciones = PlanesOperaciones::datos($this->PlanesOperacionesID);
$this->mostrarFormulario();
$this->TodosCampos($PlanOperaciones);
}
/**
* Función que toma los datos enviados y actualiza el registro
* @return RespuestasSistema
*/
private function guardarCambios() {
$PlanesOperaciones = PlanesOperaciones::datos($this->PlanesOperacionesID);
$actualizado = PlanesOperaciones::actualizar(
$this->PlanesOperacionesID, $this->PlanesOperacionesCATEGORIA,
$this->PlanesOperacionesCODIGO, $this->PlanesOperacionesTITULO,
$this->PlanesOperacionesDESCRIPCION,
$this->PlanesOperacionesESTADO
);
if ($actualizado) {
return RespuestasSistema::exito("Registro ACTUALIZADO con EXITO.");
} else {
return RespuestasSistema::fallo("No se actualizó el PlanesOperaciones. Verifique los datos, o contacte al Centro TICS.");
}
}
/**
* Muestra el Formulario procesado para ser mostrado al usuario.
* Se le envian unos datos inciales para la carga de la vista, y
* se envia los datos del PlanesOperaciones cuando se esta editando.
* @return HTML Vista del Formulario de PlanesOperaciones
*/
private function mostrarFormulario() {
Vistas::mostrar('planeador', 'planesoperaciones/form-PlanesOperaciones');
}
/**
* Guardar Datos Recibidos, bien sea como un registro nuevo, o como una actualización.
* Despues imprime las Respuesta del Sistema a la ejecución de la operacion
*/
function guardarDatos() {
if (empty($this->PlanesOperacionesID)) {
echo $this->guardarNuevo();
} else {
echo $this->guardarCambios();
}
}
/**
* Eliminar un registro de la base de datos.
* Esta operación es irreversible.
* Si se tiene la referencia integral activada, la base de datos no va
* dejar eliminar si tiene otros registros asociados.
* @return RespuestasSistema Resultado de la Operacion que se envia al cliente
*/
function eliminar() {
$PlanesOperacionesParaEliminar = $this->planOperacionSELECCIONADOS;
if (count($PlanesOperacionesParaEliminar)) {
$n = 0;
foreach ($PlanesOperacionesParaEliminar as $planOperacionELIMINAR):
if (PlanesOperaciones::eliminar($planOperacionELIMINAR)) {
$n++;
}
endforeach;
if ($n == 0) {
echo RespuestasSistema::error('No fue posible ELIMINAR. Contacte al centro TICS.');
} else if ($n == count($PlanesOperacionesParaEliminar)) {
echo RespuestasSistema::exito('Se realizó la OPERACION [ELIMINAR] exitosamente!');
} else {
echo RespuestasSistema::error('Hubo un error al [ELIMINAR] alguno de los registros. Verifica los datos, o contacta al centro TICS.');
}
} else {
echo RespuestasSistema::error('No llegarón los datos para [ELIMINAR]. Contacta al centro TICS');
}
}
/**
* Cambiar el estado de un registro de la base de datos.
* Esta operacion cambia a estado ACTIVO el registro.
* @return RespuestasSistema Resultado de la Operacion
*/
function reactivar() {
$PlanesOperacionesParaActivar = $this->planOperacionSELECCIONADOS;
if (count($PlanesOperacionesParaActivar)) {
$n = 0;
foreach ($PlanesOperacionesParaActivar as $planOperacionACTIVAR):
if (PlanesOperaciones::activar($planOperacionACTIVAR)) {
$n++;
}
endforeach;
if ($n == 0) {
echo RespuestasSistema::error('No fue posible REACTIVAR. Contacte al centro TICS.');
} else if ($n == count($PlanesOperacionesParaActivar)) {
echo RespuestasSistema::exito('Se realizó la OPERACION [REACTIVAR] exitosamente!');
} else {
echo RespuestasSistema::error('Hubo un error al [REACTIVAR] alguno de los registros. Verifica los datos, o contacta al centro TICS.');
}
} else {
echo RespuestasSistema::error('No llegarón los datos para [REACTIVAR]. Contacta al centro TICS');
}
}
/**
* Cambiar el estado de un registro de la base de datos.
* Esta operacion cambia a estado DESACTIVO / SUSPENDIDO / CANCELADO el registro.
* @return RespuestasSistema Resultado de la Operacion
*/
function desactivar() {
$PlanesOperacionesParaDesactivar = $this->planOperacionSELECCIONADOS;
if (count($PlanesOperacionesParaDesactivar)) {
$n = 0;
foreach ($PlanesOperacionesParaDesactivar as $planOperacionDESACTIVAR):
if (PlanesOperaciones::desactivar($planOperacionDESACTIVAR)) {
$n++;
}
endforeach;
if ($n == 0) {
echo RespuestasSistema::error('No fue posible DESACTIVAR. Contacte al centro TICS.');
} else if ($n == count($PlanesOperacionesParaDesactivar)) {
echo RespuestasSistema::exito('Se realizó la OPERACION [DESACTIVAR] exitosamente!');
} else {
echo RespuestasSistema::error('Hubo un error al [DESACTIVAR] alguno de los registros. Verifica los datos, o contacta al centro TICS.');
}
} else {
echo RespuestasSistema::error('No llegarón los datos para [DESACTIVAR]. Contacta al centro TICS');
}
}
function obtenerDatos(){
$operacion = PlanesOperaciones::datos($this->operacionID);
echo RespuestasSistema::exito('', $operacion);
}
/**
* Mostar formulario para registrar avance de una operacion.
*/
function mostrarFormularioAvance() {
$PlanOperaciones = PlanesOperaciones::datos($this->planOperacionID);
$PlanesOperacionesEstados = PlanesOperacionesEstados::todos();
Vistas::mostrar('planeador', 'planesoperaciones/form-avance',
array( 'PlanOperacion' => $PlanOperaciones, 'PlanesOperacionesEstados' => $PlanesOperacionesEstados, 'TipoPlanID' => $this->tipoPlanID, 'hash_padre'=>$this->hash_padre)
);
}
/**
* guardar avance de una operacion.
*/
function guardarAvance() {
$this->operacionAvanceCUMPLIMIENTO = NULL;
$creadoID = PlanesOperacionesAvances::guardar(
$this->planOperacionID, $this->estadoOperacionID,
$this->operacionAvanceFCHAVANCE, $this->operacionAvanceLOGRADO,
$this->operacionAvanceEJECUTADO,
$this->operacionAvanceCUMPLIMIENTO
);
if ($creadoID) {
echo RespuestasSistema::exito("Registro GUARDADO con EXITO.");
} else {
echo RespuestasSistema::fallo("No se pudo registrar el avance. Verifique los datos, o contacte al Centro TICS.");
}
}
/**
* verificar avance de una operacion.
*/
function verificarAvance() {
$PlanOperaciones = PlanesOperaciones::datos($this->planOperacionID);
$avance = PlanesOperacionesAvances::GastadoTotalPorOperacion($this->actividadID,$this->planOperacionID,$this->tipoPlanID);
if(@$this->operacionAvanceEJECUTADO){
$avance->TOTAL = $avance->TOTAL + $this->operacionAvanceEJECUTADO;
}
if ($PlanOperaciones->planOperacionPRESUPUESTADO >= $avance->TOTAL) {
echo RespuestasSistema::exito("");
}else{
echo RespuestasSistema::error("¡No se puede registrar un avance porque supera el límite de lo presupuestado!");
}
}
function mostrarTablaCompletaPorActividad(){
if(empty($this->tipoPlanID)){
$OperacionesAdquisicion = PlanesOperaciones::delaActividadYTipoPlan($this->actividadID,PlanesOperacionesTipos::ADQUISICION);
foreach($OperacionesAdquisicion as $adquisicion):
$adquisicion->TotalGastado = PlanesOperacionesAvances::GastadoTotalPorOperacion($this->actividadID, $adquisicion->planOperacionID);
endforeach;
$OperacionesTarea = PlanesOperaciones::delaActividadYTipoPlan($this->actividadID,PlanesOperacionesTipos::TAREA);
if ($OperacionesTarea) {
foreach($OperacionesTarea as $tarea):
$tarea->TotalGastado = PlanesOperacionesAvances::GastadoTotalPorOperacion($this->actividadID, $tarea->planOperacionID);
endforeach;
}
Vistas::mostrar("planeador", "planesoperaciones/tbl-completa", array("OperacionesAdquisicion"=>$OperacionesAdquisicion, "OperacionesTarea"=>$OperacionesTarea, 'hash_padre'=>$this->hash_padre));
}else{
$OperacionesAdquisicion = PlanesOperaciones::delaActividadYTipoPlan($this->actividadID,PlanesOperacionesTipos::ADQUISICION,$this->tipoPlanID);
foreach($OperacionesAdquisicion as $adquisicion):
$adquisicion->TotalGastado = PlanesOperacionesAvances::GastadoTotalPorOperacion($this->actividadID,$adquisicion->planOperacionID, $this->tipoPlanID);
endforeach;
$OperacionesTarea = PlanesOperaciones::delaActividadYTipoPlan($this->actividadID,PlanesOperacionesTipos::TAREA,$this->tipoPlanID);
if ($OperacionesTarea) {
foreach($OperacionesTarea as $tarea):
$tarea->TotalGastado = PlanesOperacionesAvances::GastadoTotalPorOperacion($this->actividadID,$tarea->planOperacionID, $this->tipoPlanID);
endforeach;
}
Vistas::mostrar("planeador", "planesoperaciones/tbl-completa", array("OperacionesAdquisicion"=>$OperacionesAdquisicion, "OperacionesTarea"=>$OperacionesTarea,'TipoPlanID' => $this->tipoPlanID, 'hash_padre'=>$this->hash_padre));
}
}
}
// Generado el 2017-11-11 12:05:50:000000