<?php
/************************************************************************************************************
 * DEV: CONTRALORIA DEL ESTADO.
 * MODULO: Logistica
 * PROGRAMADORES.____________________________________________________________________________________________
 * | # | NOMBRE.              | CORREO.                                 | TELEFONO.         | CONTRALORIA
 * | 1 | Fernando Rosillo     | f.rosillo@contraloriamonagas.gob.ve     | 0414-8807980      | MONAGAS
 * | 2 |
 * |_________________________________________________________________________________________________________
 * **********************************************************************************************************/

class actividadControlador extends Controlador
{
    private $atActividad;
    public function __construct()
    {
        parent::__construct();
        #se carga el Modelo.
        Session::metAcceso();
        #se carga el Modelo.
        $this->atActividad = $this->metCargarModelo('actividad', 'maestros');
    }

    //Método para listar los actividads
    public function metIndex()
    {
        $complementosCss = array(
            'DataTables/jquery.dataTables',
            'DataTables/extensions/dataTables.colVis941e',
            'DataTables/extensions/dataTables.tableTools4029',
        );
        $js[] = 'materialSiace/core/demo/DemoTableDynamic';
        $js[] = 'Aplicacion/appFunciones';
        $this->atVista->metCargarCssComplemento($complementosCss);
        $this->atVista->metCargarJs($js);
        $this->atVista->metRenderizar('listado');
    }

    //Método para crear y/o modificar los productos
    public function metCrearModificarActividad()
    {
        $complementosJs = array(
            'jquery-validation/dist/jquery.validate.min',
            'jquery-validation/dist/additional-methods.min',
            'bootstrap-datepicker/bootstrap-datepicker',
            'select2/select2.min'
        );
        $complementoCss = array(
            'bootstrap-datepicker/datepicker',
            'select2/select201ef'
        );
        $js[] = 'Aplicacion/appFunciones';
        $this->atVista->metCargarCssComplemento($complementoCss);
        $this->atVista->metCargarJsComplemento($complementosJs);
        $this->atVista->metCargarJs($js);

        $valido = $this->metObtenerInt('valido');
        $idActividad= $this->metObtenerInt('idActividad');
        $ver = $this->metObtenerInt('ver');
        if($valido==1){
            $this->metValidarToken();

            $ind = $this->metValidarFormArrayDatos('form','int');
            $alphaNum = $this->metValidarFormArrayDatos('form','alphaNum');
            $formula = $this->metValidarFormArrayDatos('form','formula');

            if ($alphaNum != null && $ind == null && $formula == null) {
                $validacion = $alphaNum;
            } elseif ($alphaNum == null && $ind != null && $formula == null) {
                $validacion = $ind;
            } elseif ($alphaNum == null && $ind == null && $formula != null) {
                $validacion = $formula;
            } elseif ($alphaNum == null && $ind != null && $formula != null) {
                $validacion = array_merge($formula, $ind);
            } elseif ($alphaNum != null && $ind == null && $formula != null) {
                $validacion = array_merge($formula, $alphaNum);
            } elseif ($alphaNum != null && $ind != null && $formula == null) {
                $validacion = array_merge($ind, $alphaNum);
            } else {
                $validacion = array_merge($alphaNum, $ind, $formula);
            }

            if(in_array('error',$validacion)){
                $validacion['status']='error';
                echo json_encode($validacion);
                exit;
            }

            if($idActividad===0){
                $id=$this->atActividad->metCrearActividad($validacion);
                $validacion['status']='nuevo';
            }else{
                $id=$this->atActividad->metModificarActividad($idActividad,$validacion);
                $validacion['status']='modificar';
            }

            if (is_array($id)) {
                foreach ($validacion as $titulo => $valor) {
                    if (strpos($id[2], $validacion[$titulo])) {
                        $validacion[$titulo] = 'error';
                    }
                }
                $validacion['status'] = 'errorSQL';
                $validacion['actividad'] = 'error';
                echo json_encode($validacion);
                exit;
            }

            $validacion['idActividad']=$id;

            echo json_encode($validacion);
            exit;
        }
        if($idActividad!=0){
            $this->atVista->assign('formDB',$this->atActividad->metMostrarActividad($idActividad));
            $this->atVista->assign('idActividad',$idActividad);
            $this->atVista->assign('ver',$ver);
        }

        //$this->atVista->assign('tipo_actividad',$this->atActividad->atMiscelaneoModelo->metMostrarSelect('TIPOPRO'));
        $this->atVista->assign('dependencia',$this->atActividad->metListarDependencias());
        $this->atVista->metRenderizar('CrearModificar','modales');

    }

    //Método para eliminar los actividads
    public function metEliminarActividad()
    {
        $idActividad = $this->metObtenerInt('idActividad');
        if($idActividad!=0){
            $id=$this->atActividad->metEliminarActividad($idActividad);
            if(is_array($id)){
                $valido=array(
                    'status'=>'error',
                    'mensaje'=>'Disculpa. Pero la Actividad se encuentra en uso y no se puede eliminar'
                );
            }else{
                $valido=array(
                    'status'=>'ok',
                    'id'=>$idActividad
                );
            }
        }
        echo json_encode($valido);
        exit;
    }

    //Método para paginar los actividads
    public function metJsonDataTabla()
    {
        #obtengo los rodes de usuario, Nota: esto es obligatorio
        $rol=Session::metObtener('perfil');
        #cacturo la busqueda enviada por la datatabla, Nota: esto es obligatorio
        $busqueda = $this->metObtenerFormulas('search');
        #construyo el sql, Nota: esto es obligatorio
        $sql = "SELECT
                  actividad.*,
                  dependencia.ind_dependencia
                FROM po_b003_actividad AS actividad
                INNER JOIN a004_dependencia AS dependencia ON actividad.fk_a004_num_dependencia = dependencia.pk_num_dependencia
                INNER JOIN a019_seguridad_dependencia AS seguridad ON seguridad.fk_a004_num_dependencia = dependencia.pk_num_dependencia
                      AND seguridad.fk_a018_num_seguridad_usuario = '".Session::metObtener('idUsuario')."' AND seguridad.fk_a015_num_seguridad_aplicacion = '22' 
                WHERE 1 ";
        if ($busqueda['value']) {
            $sql .= " AND
                        (actividad.pk_num_actividad LIKE '%$busqueda[value]%' OR
                        actividad.cod_actividad LIKE '%$busqueda[value]%' OR
                        actividad.ind_descripcion LIKE '%$busqueda[value]%' OR
                        dependencia.ind_dependencia LIKE '%$busqueda[value]%'
                        ) 
                        ";
        }

        #creo un arreglo de los campos a mostrar, Nota: esto es obligatorio
        $campos = array('pk_num_actividad','cod_actividad','ind_descripcion','ind_dependencia');
        #campo primario de la tabla, Nota: esto es obligatorio
        $clavePrimaria = 'pk_num_actividad';
        #construyo el listado de botones

        if (in_array('PO-01-03-01-02-M',$rol)) {
            $campos['boton']['Editar'] = "
                <button accion='modificar' title='Editar'
                        class='modificar logsUsuario btn ink-reaction btn-raised btn-xs btn-primary'
                        descipcion='El Usuario ha Modificado la Actividad Nro. $clavePrimaria'
                        idActividad='$clavePrimaria' titulo='Modificar Actividad'
                        data-toggle='modal' data-target='#formModal' id='modificar'>
                    <i class='fa fa-edit'></i>
                </button>
                "
            ;
        } else {
            $campos['boton']['Editar'] = false;
        }

        if (in_array('PO-01-03-01-03-C',$rol)) {
            $campos['boton']['Consultar'] = "
                <button accion='ver' title='Consultar'
                        class='ver logsUsuario btn ink-reaction btn-raised btn-xs btn-warning'
                        descipcion='El Usuario ha Consultado la Actividad Nro. $clavePrimaria'
                        idActividad='$clavePrimaria' titulo='Consultar Actividad'
                        data-toggle='modal' data-target='#formModal' id='modificar'>
                    <i class='icm icm-eye2'></i>
                </button>
                "
            ;
        } else {
            $campos['boton']['Consultar'] = false;
        }

        if (in_array('PO-01-03-01-04-E',$rol)) {
            $campos['boton']['Eliminar'] = "
                <button accion='eliminar' title='Eliminar'
                        class='eliminar logsUsuario btn ink-reaction btn-raised btn-xs btn-danger'
                        descipcion='El Usuario ha Eliminado la Actividad Nro. $clavePrimaria'
                        idActividad='$clavePrimaria' titulo='Eliminar Actividad'
                        mensaje='Estas seguro que desea eliminar la Actividad!!' id='eliminar'>
                    <i class='md md-delete'></i>
                </button>
                "
            ;
        } else {
            $campos['boton']['Eliminar'] = false;
        }

        #hago el llamado de la datatabla del controlador principal.
        $this->metDataTabla($sql,$campos,$clavePrimaria);
    }
}