<?php


require_once ROOT.'librerias'.DS.'gump.class.php';
require_once ROOT.'librerias'.DS.'Select.php';
require_once ROOT.'librerias'.DS.'Fecha.php';
require_once ROOT.'librerias'.DS.'Number.php';

#Actualizado

class rolesControlador extends Controlador
{
    public function __construct()
    {
        parent::__construct();
        Session::metAcceso();
        $this->atSolicitudes = $this->metCargarModelo('roles', 'maestros');
    }


    public function metIndex()
    {


        $complementosCss = array(
            'DataTables/jquery.dataTables',
            'wizard/wizardfa6c',
            'jquery-validation/dist/site-demo',
            'select2/select201ef',
            'bootstrap-datepicker/datepicker',

            'sweet-alert/sweet-alert.min'

        );
        $complementoJs = array(
            'jquery-validation/dist/jquery.validate.min',
            'jquery-validation/dist/additional-methods.min',
            'select2/select2.min',
            'wizard/jquery.bootstrap.wizard.min',
            'bootstrap-datepicker/bootstrap-datepicker',
            'ckeditor/ckeditor',
            'ckeditor/adapters/jquery',

            'sweet-alert/sweet-alert.min'

        );
        $js = array(//'materialSiace/core/demo/DemoTableDynamic',
            'materialSiace/core/demo/DemoFormWizard',
            'materialSiace/core/demo/DemoFormComponents',
            'materialSiace/core/demo/DemoFormEditors',
            'Scripts/Form'
        );

        $this->atVista->metCargarCssComplemento($complementosCss);
        $this->atVista->metCargarJsComplemento($complementoJs);
        $this->atVista->metCargarJs($js);


        $listado = $this->atSolicitudes->metListarRoles();
        $this->atVista->assign('listado',$listado);
        $this->atVista->metRenderizar('listado');


    }

    public function metOpenCrearModificarRol($opcion = 'nuevo'){

        $complementosCss = array(
            'DataTables/jquery.dataTables',
            'jquery-validation/dist/site-demo',
            'select2/select201ef',

            'sweet-alert/sweet-alert.min'
        );
        $complementoJs = array(
            'jquery-validation/dist/jquery.validate.min',
            'jquery-validation/dist/additional-methods.min',
            'select2/select2.min',
            'bootstrap-datepicker/bootstrap-datepicker',
            'ckeditor/ckeditor',
            'ckeditor/adapters/jquery',

            'sweet-alert/sweet-alert.min'
        );
        $js = array(//'materialSiace/core/demo/DemoTableDynamic',
            'materialSiace/core/demo/DemoFormWizard',
            'materialSiace/core/demo/DemoFormComponents',
            'materialSiace/core/demo/DemoFormEditors',
            'Scripts/Form'
        );

        $this->atVista->metCargarCssComplemento($complementosCss);
        $this->atVista->metCargarJsComplemento($complementoJs);
        $this->atVista->metCargarJs($js);

        if($opcion == 'nuevo'){


        }else{
            $idRol = $_POST['idRol'];
            $rol = $this->atSolicitudes->metGetRol($idRol);
            $rol = $rol[0];
            $this->atVista->assign('rol',$rol);

            $arraySubCategorias = explode(",", $rol['atender_conceptos']);
            $this->atVista->assign('arraySubCategorias',$arraySubCategorias);

            /*echo '<pre>';
        print_r($rol);
        echo '</pre>';*/
        }


        $listadoConceptos = $this->atSolicitudes->metListarConceptos();
        $conceptos = array();
        foreach ($listadoConceptos as $mod) {
            if ($mod['fk_num_ticket_padre'] == 0) {
                $conceptoPadre = array(
                    'pk_num_concepto' => $mod['pk_num_concepto'],
                    'fk_num_ticket_padre' => $mod['fk_num_ticket_padre'],
                    'nivel_prioridad' => $mod['nivel_prioridad'],
                    'dependencia_encargada' => $mod['dependencia_encargada'],
                    'categoria' => $mod['categoria'],
                    'descripcion' => $mod['descripcion'],
                    'nombre_dependencia_encargada' => $mod['nombre_dependencia_encargada'],
                    'nombre_concepto_padre' => $mod['nombre_concepto_padre'],
                    'hijo' => array()
                );

                if (!in_array($conceptoPadre['pk_num_concepto'], array_column($conceptos, 'pk_num_concepto'))) {
                    $conceptos[] = $conceptoPadre;
                }
            } else {
                $conceptoHijo = array(
                    'pk_num_concepto' => $mod['pk_num_concepto'],
                    'fk_num_ticket_padre' => $mod['fk_num_ticket_padre'],
                    'nivel_prioridad' => $mod['nivel_prioridad'],
                    'dependencia_encargada' => $mod['dependencia_encargada'],
                    'categoria' => $mod['categoria'],
                    'descripcion' => $mod['descripcion'],
                    'nombre_dependencia_encargada' => $mod['nombre_dependencia_encargada'],
                    'nombre_concepto_padre' => $mod['nombre_concepto_padre']
                );

                $conceptoPadreIndex = array_search($mod['fk_num_ticket_padre'], array_column($conceptos, 'pk_num_concepto'));

                if ($conceptoPadreIndex !== false) {
                    $conceptos[$conceptoPadreIndex]['hijo'][] = $conceptoHijo;
                }

            }
        }


        $this->atVista->assign('listadoConceptos',$conceptos);

        $usuario = Session::metObtener('idUsuario');
        $dependenciaUsuarioLogeado = $this->atSolicitudes->metGetDependenciaUsuarioLogeado($usuario);
        $dependenciaUsuarioLogeado = $dependenciaUsuarioLogeado[0];
        $this->atVista->assign('dependenciaUsuarioLogeado',$dependenciaUsuarioLogeado);

        $this->atVista->assign('opcion',$opcion);


        /*echo '<pre>';
        print_r($dependenciaUsuarioLogeado);
        echo '</pre>';*/


        $this->atVista->metRenderizar('crearModificar');
    }

    public function metAgregarRol(){

        $idEmpleado = $_POST['idEmpleado'];
        $categoriasSeleccionadas =  $_POST['categoriasSeleccionadas'];


        $existe = $this->atSolicitudes->metExisteRegistro($idEmpleado);


        if($existe > 0){
            echo -1;//Existe registro
        }else{
            $agregar = $this->atSolicitudes->metAgregarRol(
                $idEmpleado, $categoriasSeleccionadas
            );
            echo $agregar;
        }

    }
    public function metModificarRol(){

        $idEmpleado = $_POST['idEmpleado'];
        $categoriasSeleccionadas =  $_POST['categoriasSeleccionadas'];
        $estadoRol = $_POST['estadoRol'];
        $idRol = $_POST['idRol'];


        $modificar = $this->atSolicitudes->metModificarRol(
            $idRol,$idEmpleado, $categoriasSeleccionadas,$estadoRol
        );
    echo modificar;
    }
}