<?php
/**
* Descripción del Controlador ActividadesPreconfiguradas
*
* ActividadPreconfigurada
*
* 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 Constructor\Controlador
* @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 201711070913
* @link http://sicam.ccsm.org.co/docs/planeador/ActividadesPreconfiguradas
*/
class ActividadesPreconfiguradasControlador extends Controladores {
public static $CONSECUTIVOACT= 'TIPOSACTIVIDADES';
public static $PREFIJO= 'TACT';
/**
* Vista que se encarga de mostrar todos los detalles/datos asociados a
* los registros de PlanesTiposActividades.
* @return HTML Datos e información de PlanesTiposActividades.
*/
function verDetalles() {
$ActividadPreconfigurada = PlanesTiposActividades::datos($this->tipoActividadID);
$OperacionesActividades=PlanesTiposActividadesPredefinidas::porActividadID($this->tipoActividadID);
Vistas::mostrar('planeador',
'actividadespreconfiguradas/ver-detalles',
array('ActividadPreconfigurada' => $ActividadPreconfigurada,
'objOperacionesAct' => $OperacionesActividades));
}
/**
* Vista que se encarga de organizar la forma de presentar
* los registros de PlanesTiposActividades al usuario.
* @return HTML Listado de PlanesTiposActividades.
*/
function mostrarTodos() {
Vistas::mostrar('planeador', 'actividadespreconfiguradas/lst-todos');
}
/**
* Permite mostrar en forma de tabla los registros de ActividadesPreconfiguradas.
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function tablaListado() {
$ActividadesPreconfiguradas = PlanesTiposActividades::todos();
Vistas::mostrar('planeador', 'actividadespreconfiguradas/tbl-todos',
array( 'ActividadesPreconfiguradas' => $ActividadesPreconfiguradas)
);
}
/**
* Responde con el formulario de ActividadesPreconfiguradas vacio, solo datos necesarios.
* LLama a la función que devuleve el formulario pero
* sin enviarle los datos de ActividadesPreconfiguradas.
* Esta función se crea para poder gestionar el permiso de NUEVO ActividadesPreconfiguradas
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function mostrarFormularioNuevo() {
$this->mostrarFormulario();
}
/**
* Permite mostrar en forma de tabla los registros de .
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function tablaListadoTareas() {
$operacionesPredefinidas = array();
if( !empty($this->actividadPreconfiguradaID) ){
$operacionesPredefinidas = PlanesTiposActividades::datosCompletos($this->actividadPreconfiguradaID)->OperacionesPredefinidas;
}
Vistas::mostrar('planeador', 'operacionespredefinidas/tbl-tareas-actividadespredefinidas',
array( 'operacionesPredefinidas' => $operacionesPredefinidas)
);
}
/**
* Permite mostrar en forma de tabla los registros de .
* @return HTML Formulario solo con datos inciales o necesarios.
*/
function tablaListadoAdquisiciones() {
$operacionesPredefinidas = array();
if( !empty($this->actividadPreconfiguradaID) ){
$operacionesPredefinidas = PlanesTiposActividades::datosCompletos($this->actividadPreconfiguradaID)->OperacionesPredefinidas;
}
Vistas::mostrar('planeador', 'operacionespredefinidas/tbl-adquisiciones-actividadespredefinidas',
array( 'operacionesPredefinidas' => $operacionesPredefinidas)
);
}
/**
*
*/
function tablaListadoOperaciones() {
$operacionesPredefinidas = array();
if( !empty($this->actividadPreconfiguradaID) ){
$operacionesPredefinidas = PlanesTiposActividades::datosCompletos($this->actividadPreconfiguradaID)->OperacionesPredefinidas;
}
Vistas::mostrar('planeador', 'operacionespredefinidas/tbl-operaciones-actividadpreconfigurada',
array( 'operacionesPredefinidas' => $operacionesPredefinidas)
);
}
/**
* Función que toma los datos enviados y crea un nuevo registro
* @return RespuestasSistema
*/
private function guardarNuevo() {
$consecutivoTAct=Consecutivos::usar(self::$CONSECUTIVOACT,self::$PREFIJO);
$creadoID = PlanesTiposActividades::guardar($consecutivoTAct,$this->titulo,$this->descripcion);
/**Insertar las Operaciones preconficugradas*/
if ($creadoID) {
if(isset($this->actividadOperacionPredefinidaID) and is_array($this->actividadOperacionPredefinidaID) ){
foreach( $this->actividadOperacionPredefinidaID as $OperacionID ){
PlanesTiposActividadesPredefinidas::guardar($OperacionID, $creadoID);
}
}
}
if ($creadoID) {
return RespuestasSistema::exito("Se realizó la OPERACION [GUARDAR] exitosamente!", array($creadoID));
} else {
return RespuestasSistema::fallo("No se pudo CREAR el nuevo ActividadesPreconfiguradas. Si vuelve a suceder, contacte con el Centro TICS.");
}
}
/**
* Recibe el ID del ActividadesPreconfiguradas 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 ActividadesPreconfiguradas
* @return HTML Formulario con los datos del ActividadesPreconfiguradas a editar.
*/
function mostrarFormularioEditar() {
$ActividadPreconfiguradas = PlanesTiposActividades::datosCompletos($this->tipoActividadID);
$this->mostrarFormulario($ActividadPreconfiguradas);
}
/**
* Función que toma los datos enviados y actualiza el registro
* @return RespuestasSistema
*/
private function guardarCambios() {
$actualizado = PlanesTiposActividades::actualizar($this->actividadPreconfiguradaID,$this->titulo,$this->descripcion);
$Actividad = PlanesTiposActividades::datosCompletos($this->actividadPreconfiguradaID);
if(isset($this->actividadOperacionPredefinidaID) and is_array($this->actividadOperacionPredefinidaID) ){
foreach($Actividad->OperacionesPredefinidas as $OperPredef ){
$indexOperacion = array_search( $OperPredef->operacionPredefinidaID, $this->actividadOperacionPredefinidaID);
if ( $indexOperacion === FALSE ) {
PlanesTiposActividadesPredefinidas::eliminarPorID($OperPredef->actividadOperacionPredefinidaID);
}else{
unset($this->actividadOperacionPredefinidaID[$indexOperacion]);
}
}
foreach( $this->actividadOperacionPredefinidaID as $OperacionID ){
PlanesTiposActividadesPredefinidas::guardar($OperacionID, $this->actividadPreconfiguradaID);
}
$Actividad = PlanesTiposActividades::datosCompletos($this->actividadPreconfiguradaID);
}
if (!is_null($actualizado)) {
return RespuestasSistema::exito("Se realizó la OPERACION [ACTUALIZAR] exitosamente!", array($this->actividadPreconfiguradaID));
} else {
return RespuestasSistema::fallo("No se actualizó el ActividadesPreconfiguradas. Verifique los datos, o contacte al Centro TICS.");
}
}
private function agregarNuevaOperacion($OperacionesNuevas, $actividadPreconfiguradaID){
var_dump($OperacionesNuevas);
foreach ($OperacionesNuevas as $value) {
PlanesTiposActividadesPredefinidas::guardar($value,$actividadPreconfiguradaID);
}
}
/**
* 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 ActividadesPreconfiguradas cuando se esta editando.
* @return HTML Vista del Formulario de ActividadesPreconfiguradas
*/
private function mostrarFormulario($ActividadesPreconfiguradas = null, $OperacionesActividades = null) {
$objOperaciones= PlanesOperacionesPredefinidas::todas();
Vistas::mostrar('planeador', 'actividadespreconfiguradas/form-ActividadesPreconfiguradas', array(
"objActividadPred" => $ActividadesPreconfiguradas,
"operacionesPredefinidas"=> $objOperaciones
));
}
/**
* 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->actividadPreconfiguradaID)) {
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() {
$ActividadesPreconfiguradasParaEliminar = $this->checkb;
if (count($ActividadesPreconfiguradasParaEliminar)) {
$n = 0;
foreach ($ActividadesPreconfiguradasParaEliminar as $tipoActividadELIMINAR):
if (PlanesTiposActividadesPredefinidas::eliminarPoractividadID($tipoActividadELIMINAR)) {
if (PlanesTiposActividades::eliminar($tipoActividadELIMINAR)) {
$n++;
}
}
endforeach;
if ($n == 0) {
echo RespuestasSistema::error('No fue posible ELIMINAR. Contacte al centro TICS.');
} else if ($n == count($ActividadesPreconfiguradasParaEliminar)) {
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');
}
}
/**
* Eliminar una operación asociada a la actividad preconfigurada 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 eliminarOperacionPreconfigurada() {
foreach ($this->checkb as $actividadOperacionPredefinidaID){
$ObjActividadOperacionPredefinida = PlanesTiposActividadesPredefinidas::datosPorOperacionYActividad($actividadOperacionPredefinidaID,$this->actividadPreconfiguradaID);
PlanesTiposActividadesPredefinidas::eliminarPorID($ObjActividadOperacionPredefinida->actividadOperacionPredefinidaID);
}
echo RespuestasSistema::exito('Se realizó la OPERACION [ELIMINAR] exitosamente!');
}
/**
* Agregar una operación asociada a la actividad preconfigurada de la base de datos.
* Esta operación es irreversible.
* @return RespuestasSistema Resultado de la Operacion que se envia al cliente
*/
function agregarOperacionPreconfigurada() {
//$ObjOperacionPredefinida = OperacionesPredefinidas::getIdOperacionPredefinida($this->operacionPredefinidaID);
$Agregado = PlanesTiposActividadesPredefinidas::guardar($this->operacionPredefinidaID,$this->actividadPreconfiguradaID);
if($Agregado){
echo RespuestasSistema::exito('Se realizó la OPERACION [AGREGAR] exitosamente!');
}
}
/**
* 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() {
$ActividadesPreconfiguradasParaActivar = $this->tipoActividadSELECCIONADOS;
if (count($ActividadesPreconfiguradasParaActivar)) {
$n = 0;
foreach ($ActividadesPreconfiguradasParaActivar as $tipoActividadACTIVAR):
if (PlanesTiposActividades::activar($tipoActividadACTIVAR)) {
$n++;
}
endforeach;
if ($n == 0) {
echo RespuestasSistema::error('No fue posible REACTIVAR. Contacte al centro TICS.');
} else if ($n == count($ActividadesPreconfiguradasParaActivar)) {
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() {
$ActividadesPreconfiguradasParaDesactivar = $this->tipoActividadSELECCIONADOS;
if (count($ActividadesPreconfiguradasParaDesactivar)) {
$n = 0;
foreach ($ActividadesPreconfiguradasParaDesactivar as $tipoActividadDESACTIVAR):
if (PlanesTiposActividades::desactivar($tipoActividadDESACTIVAR)) {
$n++;
}
endforeach;
if ($n == 0) {
echo RespuestasSistema::error('No fue posible DESACTIVAR. Contacte al centro TICS.');
} else if ($n == count($ActividadesPreconfiguradasParaDesactivar)) {
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 mostrarBoxActividades(){
$ActividadesPreconfiguradas = PlanesTiposActividades::todos();
Vistas::mostrar('planeador', 'actividadespreconfiguradas/box-actividadesPreconfiguradas',
array( 'ActividadesPreconfiguradas' => $ActividadesPreconfiguradas)
);
}
function obtenerDatos(){
$ActividadPreconfiguradas = PlanesTiposActividades::datos($this->ActividadPredefinidasID);
$ActividadPreconfiguradas->OperacionesActividades=PlanesTiposActividadesPredefinidas::porActividadID($this->ActividadPredefinidasID);
echo RespuestasSistema::exito(null , $ActividadPreconfiguradas);
}
}
// Generado el 2017-11-07 09:13:36:000000