<?php
/****************************************************************************************
 * DEV: CONTRALORIA DE ESTADOS
 * PROYECTO: SISTEMA INTEGRAL ADMINISTRATIVO DE CONTRALORIAS DE ESTADOS
 * MODULO: Parque Automotor
 * PROCESO: Listado de revisiones de vehículos
 * PROGRAMADORES:
 * | # |          NOMBRES Y APELLIDOS           |               CORREO                |          TELEFONO              |
 * | 1 |           José Pereda                  |dt.ait.programador2@cgesucre.gob.ve  |         04248040078            |
 * |   |                                        |                                     |                                |
 * |___|________________________________________|_____________________________________|________________________________|
 *
 * VERSION
 *
 * |          PROGRAMADOR                  |          FECHA          |       VERSION      |
 * |               #1                      |        09-07-2015       |         1.0        |
 * |                                       |                         |                    |
 * |_______________________________________|_________________________|____________________|
 *
 *****************************************************************************************/

class novedadesControlador extends Controlador
{
    private $atRecorridoModelo;

    public function __construct()
    {
        parent::__construct();
        Session::metAcceso();
        $this->atRecorridoModelo = $this->metCargarModelo('recorrido');

    }
	



    public function metIndex()
    {
        $complementosCss = array(
            'DataTables/jquery.dataTables',
            'DataTables/extensions/dataTables.colVis941e',
            'DataTables/extensions/dataTables.tableTools4029',
            'select2/select201ef',
            'jquery-ui-selectable/jquery-ui',
        );
        $complementosJs = array(
            'select2/select2.min',
            'DataTables/datatable',
            'mask/jquery.mask',
            'wizard/jquery.bootstrap.wizard.min',
            'jquery-ui-selectable/jquery-ui',);
        $js[] = 'materialSiace/core/demo/DemoTableDynamic';
        $js[] = 'Scripts/Form';

        $this->atVista->metCargarCssComplemento($complementosCss);
        $this->atVista->metCargarJsComplemento($complementosJs);
        $this->atVista->metCargarJs($js);
        $validar = array(
            'jquery-validation/dist/jquery.validate.min',
            'jquery-validation/dist/additional-metholistadods.min'
        );




        $primerDia = new DateTime(); $primerDia->modify('first day of this month'); $primerDia = $primerDia->format('Y-m-d');
        $ultimoDia= new DateTime(); $ultimoDia->modify('last day of this month'); $ultimoDia = $ultimoDia->format('Y-m-d');


        $recorridos = $this->atRecorridoModelo->metListarRecorridos($primerDia,$ultimoDia);
        $objetos = $this->atRecorridoModelo->metListarObjetoWithCaracteristicas();
        $this->atVista->assign('recorridos', $recorridos);

        /*$error = error_get_last();
        echo ' | error: ';
        print_r($error);*/

       /* echo '<pre>';
        print_r($recorridos);
        echo '</pre>';*/

        $this->atVista->metRenderizar('listado');
    }
    public function metConsultaCne()
    {

        $idCedula=$this->metObtenerInt('idCedula');
        $url="http://www4.cne.gov.ve/web/registro_electoral/ce.php?nacionalidad=V&cedula=$idCedula";
        // Compruebo si existe el modulo de curl
        if(!in_array('curl', get_loaded_extensions())) {
            $validacion['status'] = 'errorCurl';
            echo json_encode($validacion);
            exit;
        }


        $ch = curl_init();
        curl_setopt ($ch, CURLOPT_URL, $url);
// almacene en una variable
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, FALSE);
// Para informar todo lo relacionado al header de la conexion
        curl_setopt($ch, CURLOPT_HEADER, FALSE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

        $xxx1 = curl_exec($ch);
        curl_close($ch);
// Quitamos todas las etiquetas html existente dentro del retornado
        $page = strip_tags($xxx1);
// Dividimos el resultado en arreglos donde encuentre :
        $info = explode(":", $page);

// Dividimos este un resultado de la cedula en dos para sacar nac y cedula
        $cn=explode('-',substr(trim($info[1]),0,-6));

        if(isset($info[2])){
            $persona = explode(' ',trim($info[2]));
            $rows=count($persona);
            $rows2=count($info);

            // Procedimiento cuando devuelve un nombre completo ejemplo
            //Array ( [0] => ADRIANA [1] => DEL [2] => CARMEN [3] => VAAMONDE [4] => MUÃ‘OZ Estado ) 5

            if($rows==5){
                $nombre1=$persona[0];
                $nombre2=$persona[1].' '.$persona[2];
                $apellido1=$persona[3];
                $apellido2=$persona[4];
                $cual = 1;
                // Procedimiento cuando devuelve los nombre completo de forma normal
            }elseif($rows==4){
                $nombre1=$persona[0];
                $nombre2=$persona[1];
                $apellido1=$persona[2];
                $apellido2=$persona[3];
                $cual = 2;
            }else{
                // Procedimiento cuando solo no esta registrado en el CNE que devuelve arreglos diferente a los demás
                // sobreescribo la variable $info debido que el comportamiento es diferente
                $info = explode(' ',$page);
                $rows2=count($info);
                $ced=substr($info[1],0,-6);
                $nombre1=substr($info[9],0,-7);
                $nombre2=substr($info[11],0,-7);
                $apellido1=substr($info[13],0,-7);
                $apellido2=substr($info[15],0,-7);
                $cual = 3;
            }

            $cantCar = strlen($apellido2);
            $ape2='';
            for ($i=0;$i<$cantCar;$i++){
                if(substr($apellido2,$i,1)!='
'){
                    $ape2.=substr($apellido2,$i,1);
                } else {

                    $i = $cantCar;
                }
            }
            $validacion['nombres'] = $nombre1." ".$nombre2;
            $validacion['apellidos'] = $apellido1." ".$ape2;
            $validacion['status'] = 'correcto';
            $validacion['cual'] = $cual;
            $validacion['ape2'] = $ape2;
            $validacion['info'] = $info;
        } else {
            $validacion['status'] = 'errorIns';
        }



        echo json_encode($validacion);
        exit;



    }
    public function metOpenRecorrido($opcion = 'nuevo')
    {
        $complementosCss = array(
            'DataTables/jquery.dataTables',
            'wizard/wizardfa6c',
            'jquery-validation/dist/site-demo',
            'select2/select201ef',
            'bootstrap-datepicker/datepicker',
            'timeLine/timeline',
            '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'
        );
        $js[] = 'Aplicacion/appFunciones';
        $this->atVista->metCargarCssComplemento($complementosCss);
        $this->atVista->metCargarJsComplemento($complementoJs);
        $this->atVista->metCargarJs($js);



        if($opcion == 'nuevo'){



        }elseif ($opcion == 'ver' || $opcion == 'modificar'){

            $tipoCaracteristicasObjeto = $this->atRecorridoModelo->metListarCaracteristicasObjeto();

        }

        $tipoCaracteristicasObjeto = $this->atRecorridoModelo->metListarCaracteristicasObjeto();
        $tipoObjeto = $this->atRecorridoModelo->metListarTipoObjeto();
        $ubicacionesRecorrido = $this->atRecorridoModelo->metListarUbicacionesRecorrido();
        $tiemposRecorrido = $this->atRecorridoModelo->metListarTiemposdeRecorrido();



        /*$error = error_get_last();
        echo ' | error: ';
        print_r($error);*/

         /*echo '<pre>';
           print_r($tipoCaracteristicasObjeto);
         echo '</pre>';*/



        $this->atVista->assign('tipos_caracteristicas', $tipoCaracteristicasObjeto);
        $this->atVista->assign('tipos_objeto', $tipoObjeto);
        $this->atVista->assign('ubicaciones_recorrido', $ubicacionesRecorrido);
        $this->atVista->assign('tiempos_recorrido', $tiemposRecorrido);
        $this->atVista->assign('opcion', $opcion);
        $this->atVista->metRenderizar('crearModificar', 'modales');
    }

    function metInsertRecorrido(){
        $descripcion_Recorrido =$_POST['descripcion_Recorrido'];
        $id_tiempo_recorrido =$_POST['id_tiempo_recorrido'];
        $lugares_revisados =$_POST['lugares_revisados'];

        $lugares = json_decode($lugares_revisados[0], true);

        //echo $_POST['lugares_revisados'];
        //echo $lugares_revisados;
        //echo $lugares;

        $insertRecorrido = $this->atRecorridoModelo->metInsertRecorrido(
            $descripcion_Recorrido,
            $id_tiempo_recorrido,
            $lugares)
        ;

        return $insertRecorrido;

    }

    protected function metFormatoFecha($fecha)
    {
        $resultado=explode("/",$fecha);
        $resultado=$resultado[2]."-".$resultado[1]."-".$resultado[0];
        return $resultado;

    }
    public function metAmpliarFoto()
    {
        $foto = $this->metObtenerTexto('foto');

        $this->atVista->assign('foto',$foto);
        $this->atVista->metRenderizar('foto_vehiculo', 'modales');
    }

    public function metOpenSearchObjeto($origen)
    {
        $js[] = 'Aplicacion/appFunciones';
        $this->atVista->metCargarJs($js);

        $this->atVista->assign('origen', $origen);

        $this->atVista->metRenderizar('objetos', 'modales');
    }
    public function metJsonDataTablaObjeto()
    {
        $rol=Session::metObtener('perfil');

        $busqueda = $this->metObtenerFormulas('search');
        $sql = "select 
                    objeto.pk_num_objeto, 
                    pa_c008_tipo_objeto.descripcion as tipo_objeto,
                    objeto.descripcion,
					GROUP_CONCAT(concat('#',caracteristica.pk_num_caracteristica,'=',caracteristica.descripcion,' ',asignacion.descripcion,' ')) AS caracteristica,        
                    pa_c008_tipo_objeto.pk_num_tipo_objeto,
					objeto.estado as estado
                from pa_b013_objeto as objeto
                left join pa_d002_asignacion_caracteristica_objeto as asignacion on objeto.pk_num_objeto = asignacion.fk_pab013_objeto
                left join pa_c004_caracteristica_objeto as caracteristica on asignacion.fk_pac004_caracteristica = caracteristica.pk_num_caracteristica
                left join pa_c008_tipo_objeto on objeto.fk_pac008_tipo_objeto = pa_c008_tipo_objeto.pk_num_tipo_objeto
                where (objeto.estado = 'Activo' and asignacion.estado = 'Activo' and caracteristica.estado = 'Activo' )
                
				";



        if ($busqueda['value']) {
            $sql .= " AND
                        ( GROUP_CONCAT(concat(caracteristica.pk_num_caracteristica  ,caracteristica.descripcion, asignacion.descripcion)) LIKE '%$busqueda[value]%' 
                        or objeto.descripcion LIKE '%$busqueda[value]%' 
                        ) ";
        }

        $sql .= 'GROUP BY  objeto.pk_num_objeto, objeto.descripcion ';

        $campos = array('pk_num_objeto','tipo_objeto','descripcion','caracteristica','pk_num_tipo_objeto','estado');
        $clavePrimaria = 'pk_num_objeto';

        $this->metDataTabla($sql,$campos,$clavePrimaria);

    }
}