<?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 planEstrategicoControlador extends Controlador
{
    private $atplanEstrategico;
    public function __construct()
    {
        parent::__construct();
        #se carga el Modelo.
        Session::metAcceso();
        #se carga el Modelo.
        $this->atplanEstrategico = $this->metCargarModelo('planEstrategico', 'maestros');
    }

    //Método para listar los Plan Estratégicos
    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 metCrearModificarPlanEst()
    {
        $complementoJs = array(
            'jquery-validation/dist/jquery.validate.min',
            'jquery-validation/dist/additional-methods.min',
            'bootstrap-datepicker/bootstrap-datepicker',
            'wizard/jquery.bootstrap.wizard.min',
            'select2/select2.min',
            'inputmask/jquery.inputmask.bundle.min'
        );
        $complementoCss = array(
            'bootstrap-datepicker/datepicker',
            'select2/select201ef',
            'wizard/wizardfa6c'
        );
        $js[] = 'materialSiace/core/demo/DemoFormWizard';
        $js[] = 'Aplicacion/appFunciones';

        $this->atVista->metCargarJsComplemento($complementoJs);
        $this->atVista->metCargarCssComplemento($complementoCss);
        $this->atVista->metCargarJs($js);

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

            $formula = $this->metValidarFormArrayDatos('form','formula');
            $validacion = $formula;

            if (!isset($validacion['estado'])) {
                $validacion['estado'] = '0';
            }

            $validacion['periodo'] = str_replace('_','',$validacion['periodo']);
            if(strlen($validacion['periodo'])<9)
                $validacion['periodo'] = 'error';

            if(!isset($validacion['codigo']) OR !isset($validacion['objetivo'])){
                $validacion['codigo'] = 'error';
                $validacion['status']='errorObjetivo';
                echo json_encode($validacion);
                exit;
            }

            foreach ($validacion['opcion'] as $key=>$opcion) {
                if($validacion['codigo'][$key]=='' OR $validacion['codigo'][$key]=='error')
                    $validacion['codigo'] = 'error';
                if($validacion['objetivo'][$key]=='' OR $validacion['objetivo'][$key]=='error')
                    $validacion['objetivo'] = 'error';
            }


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

            if($idPlanEst===0){
                $id=$this->atplanEstrategico->metCrearPlanEst($validacion);
                $validacion['status']='nuevo';
            }else{
                $id=$this->atplanEstrategico->metModificarPlanEst($idPlanEst,$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['planEstrategico'] = 'error';
                echo json_encode($validacion);
                exit;
            }

            $validacion['idPlanEst']=$id;

            echo json_encode($validacion);
            exit;
        }
        if($idPlanEst!=0){
            $this->atVista->assign('formDB',$this->atplanEstrategico->metMostrarPlanEst($idPlanEst));
            $this->atVista->assign('formDBD',$this->atplanEstrategico->metMostrarPlanEstDet($idPlanEst));
            $this->atVista->assign('idPlanEst',$idPlanEst);
            $this->atVista->assign('ver',$ver);
        }

        $this->atVista->metRenderizar('CrearModificar','modales');

    }

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

    //Método para paginar los Plan Estratégicos
    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
                  plan_estrategico.*
                FROM po_b005_plan_estrategico AS plan_estrategico
                WHERE 1 ";
        if ($busqueda['value']) {
            $sql .= " AND
                        (plan_estrategico.pk_num_plan_estrategico LIKE '%$busqueda[value]%' OR
                        plan_estrategico.ind_periodo LIKE '%$busqueda[value]%' 
                        ) 
                        ";
        }

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

        if (in_array('PO-01-03-03-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 Plan Estratégico Nro. $clavePrimaria'
                        idPlanEst='$clavePrimaria' titulo='Modificar Plan Estratégico'
                        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-03-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 Plan Estratégico Nro. $clavePrimaria'
                        idPlanEst='$clavePrimaria' titulo='Consultar Plan Estratégico'
                        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-03-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 Plan Estratégico Nro. $clavePrimaria'
                        idPlanEst='$clavePrimaria' titulo='Eliminar Plan Estratégico'
                        mensaje='Estas seguro que desea eliminar la Plan Estratégico!!' 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);
    }
}