<?php
/**
* Descripción del Controlador OperacionesPredefinidas
*
* OperacionPredefinida
*
* 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 201711140213
* @link http://sicam.ccsm.org.co/docs/planeador/OperacionesPredefinidas
*/
class OperacionesPredefinidasControlador extends Controladores {
/**
* Vista que se encarga de mostrar todos los detalles/datos asociados a
* los registros de PlanesOperacionesPredefinidas.
* @return HTML Datos e información de PlanesOperacionesPredefinidas.
*/
function verDetalles() {
$OperacionPredefinida = PlanesOperacionesPredefinidas::datos($this->operacionPredefinidaID);
Vistas::mostrar('planeador', 'operacionespredefinidas/ver-detalles', array('OperacionPredefinida' => $OperacionPredefinida));
}
/**
* Vista que se mostrar una lista con las operacion y que cuando
* se haga clic se ejecute una accion *
* @return HTML Datos e información de PlanesOperacionesPredefinidas.
*/
function listadoOperacionesSeleccionable() {
Vistas::mostrar('planeador', 'operacionespredefinidas/lst-sel-operaciones',
array("operacionesPredefinidas" => PlanesOperacionesPredefinidas::paraListas(),)
);
}
/**
* Vista que se encarga de organizar la forma de presentar
* los registros de PlanesOperacionesPredefinidas al usuario.
* @return HTML Listado de PlanesOperacionesPredefinidas.
*/
function mostrarTodos() {
Vistas::mostrar('planeador', 'operacionespredefinidas/lst-todos');
}
/**
* Permite mostrar en forma de tabla los registros de OperacionesPredefinidas.
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function tablaListado() {
$OperacionesPredefinidas = PlanesOperacionesPredefinidas::todas();
Vistas::mostrar('planeador', 'operacionespredefinidas/tbl-todos',
array( 'operacionesPredefinidas' => $OperacionesPredefinidas)
);
}
function tablaListadoOperaciones() {
$operacionesPredefinidas = PlanesOperacionesPredefinidas::porActividadPreconfigurada($this->actividadPreconfiguradaID);
Vistas::mostrar('planeador', 'operacionespredefinidas/tbl-operaciones-actividadpreconfigurada',
array( 'operacionesPredefinidas' => $operacionesPredefinidas)
);
}
function tablaListadoAdquisiciones(){
$operacionesPredefinidas = PlanesOperacionesPredefinidas::porTipoOperacion(PlanesOperacionesTipos::ADQUISICION);
Vistas::mostrar('planeador', 'operacionespredefinidas/tbl-adquisiciones',
array( 'operacionesPredefinidas' => $operacionesPredefinidas)
);
}
function tablaListadoTareas(){
$operacionesPredefinidas = PlanesOperacionesPredefinidas::porTipoOperacion(PlanesOperacionesTipos::TAREA);
Vistas::mostrar('planeador', 'operacionespredefinidas/tbl-tareas',
array( 'operacionesPredefinidas' => $operacionesPredefinidas)
);
}
/**
* Permite mostrar en forma de tabla los registros de OperacionesPredefinidas sencilla.
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function tablaTodasSencilla(){
$operacionesPredefinidas = PlanesOperacionesPredefinidas::todas();
Vistas::mostrar("planeador", "operacionespredefinidas/tbl-operacionesSencilla",array('operacionesPredefinidas' => $operacionesPredefinidas));
}
/**
* Responde con el formulario de OperacionesPredefinidas vacio, solo datos necesarios.
* LLama a la función que devuleve el formulario pero
* sin enviarle los datos de OperacionesPredefinidas.
* Esta función se crea para poder gestionar el permiso de NUEVO OperacionesPredefinidas
* @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() {
SicamDB::iniciarTransaccion();
$creadoID = PlanesOperacionesPredefinidas::guardar(
( empty($this->rubro) ? null : $this->rubro ) ,
( empty($this->centrocostos) ? null : $this->centrocostos ),
$this->tipoOperacionID,
( empty($this->claseoperacion) ? null : $this->claseoperacion ),
Consecutivos::usar('OPERACIONESPREDEFINIDAS', 'OPR'),
$this->titulo,
$this->descripcion
);
if ($creadoID) {
SicamDB::grabarTransaccion();
return RespuestasSistema::exito("Se realizó la OPERACION [GUARDAR] exitosamente!");
} else {
SicamDB::cancelarTransaccion();
return RespuestasSistema::fallo("No se pudo CREAR el nuevo OperacionesPredefinidas. Si vuelve a suceder, contacte con el Centro TICS.");
}
}
/**
* Recibe el ID del OperacionesPredefinidas 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 OperacionesPredefinidas
* @return HTML Formulario con los datos del OperacionesPredefinidas a editar.
*/
function mostrarFormularioEditar() {
$OperacionPredefinida = PlanesOperacionesPredefinidas::datosCompletos($this->OperacionPredefinidaID);
$this->mostrarFormulario($OperacionPredefinida);
}
/**
* Función que toma los datos enviados y actualiza el registro
* @return RespuestasSistema
*/
private function guardarCambios() {
$OperacionesPredefinidas = PlanesOperacionesPredefinidas::datos($this->OperacionPredefinidaID);
$actualizado = PlanesOperacionesPredefinidas::actualizar(
$this->OperacionPredefinidaID,
( empty($this->rubro) ? null : $this->rubro ) ,
( empty($this->centrocostos) ? null : $this->centrocostos ),
$this->tipoOperacionID,
( empty($this->claseoperacion) ? null : $this->claseoperacion ),
$this->codigo,
$this->titulo,
$this->descripcion
);
if ($actualizado) {
return RespuestasSistema::exito("Se realizó la OPERACION [ACTUALIZAR] exitosamente!");
} else {
return RespuestasSistema::fallo("No se actualizó el OperacionesPredefinidas. 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 OperacionesPredefinidas cuando se esta editando.
* @return HTML Vista del Formulario de OperacionesPredefinidas
*/
private function mostrarFormulario($OperacionPredefinida = null) {
Vistas::mostrar('planeador', 'operacionespredefinidas/form-OperacionesPredefinidas', array(
'Rubros' => Rubros::todos(),
'CentrosCostos' => CentroCostos::todos(),
'TiposOperaciones' => PlanesOperacionesTipos::todos(),
'ClaseOperaciones' => ClaseOperaciones::todos(),
'objOperPredef' =>$OperacionPredefinida
));
}
/**
* 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->OperacionPredefinidaID)) {
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() {
$OperacionesPredefinidasParaEliminar = $this->checkb;
if (count($OperacionesPredefinidasParaEliminar)) {
$n = 0;
foreach ($OperacionesPredefinidasParaEliminar as $operacionPredefinidaELIMINAR):
$Asociado = PlanesTiposActividadesPredefinidas::porOperacionPredefinida($operacionPredefinidaELIMINAR);
if($Asociado==null){
if (PlanesOperacionesPredefinidas::eliminar($operacionPredefinidaELIMINAR)) {
$n++;
}
}
endforeach;
if ($n == 0) {
echo RespuestasSistema::error('No fue posible ELIMINAR. Contacte al centro TICS.');
} else if ($n == count($OperacionesPredefinidasParaEliminar)) {
echo RespuestasSistema::exito('Se realizó la OPERACION [ELIMINAR] exitosamente!');
} else {
echo RespuestasSistema::error('Hubo un error al [ELIMINAR] alguno de los registros. verifique que la/las Operaciones No estés asociadas a Una Actividad Preconfigurada, 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() {
$OperacionesPredefinidasParaActivar = $this->operacionPredefinidaSELECCIONADOS;
if (count($OperacionesPredefinidasParaActivar)) {
$n = 0;
foreach ($OperacionesPredefinidasParaActivar as $operacionPredefinidaACTIVAR):
if (PlanesOperacionesPredefinidas::activar($operacionPredefinidaACTIVAR)) {
$n++;
}
endforeach;
if ($n == 0) {
echo RespuestasSistema::error('No fue posible REACTIVAR. Contacte al centro TICS.');
} else if ($n == count($OperacionesPredefinidasParaActivar)) {
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() {
$OperacionesPredefinidasParaDesactivar = $this->operacionPredefinidaSELECCIONADOS;
if (count($OperacionesPredefinidasParaDesactivar)) {
$n = 0;
foreach ($OperacionesPredefinidasParaDesactivar as $operacionPredefinidaDESACTIVAR):
if (PlanesOperacionesPredefinidas::desactivar($operacionPredefinidaDESACTIVAR)) {
$n++;
}
endforeach;
if ($n == 0) {
echo RespuestasSistema::error('No fue posible DESACTIVAR. Contacte al centro TICS.');
} else if ($n == count($OperacionesPredefinidasParaDesactivar)) {
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 = PlanesOperacionesPredefinidas::datos($this->operacionPredefinidaID);
echo RespuestasSistema::exito('', $operacion);
}
}
// Generado el 2017-11-14 02:13:22:000000