<?php 
defined('BASEPATH') OR exit('No direct script access allowed');
header('Access-Control-Allow-Origin: *');

class Establecimientos extends CI_Controller 
{
    public function __construct()
    {
        parent::__construct();
    
        //cargar la base de datos
        $this->load->database();
        //parser de json y xml
        $this->load->library("parser");

        //$this->load->model('Sesion_Model');
        $this->load->library('form_validation');
        //$this->load->library("Form_validation");
        $this->load->helper("url");
        $this->load->helper('form');
        $this->load->helper('text');
        
        //Cargando los modelos para gestion de la data sistema pena
        $this->load->model('Establecimientos_Model');
        $this->load->model('Bitacora_Model');
        
    }

    //Listar Bitacora
    public function listEstablecimientos($offset = 0)
    {
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

        $this->load->model('Tipos_Model');
        $this->load->model('Establecimientos_Model');

        $dato = array('1','null', 'null', 'null');
        $query = $this->Establecimientos_Model->getEstablecimientos($dato);
		
        //Configurando el array para consulta de Departamentos
		$datodt = array('1', 'null','null');
        $departamentos = $this->Tipos_Model->getDepartamentos($datodt);

        //Configurando el array para consulta de Ciudades
		$datocd = array('1', 'null', 'null', 'null');
        $ciudades = $this->Tipos_Model->getCiudades($datocd);

		//envio el arreglo
        $data['establecimientos'] = $query;
        $data['departamentos']    = $departamentos;
        $data['ciudades']         = $ciudades;

        $data['titulo'] = 'Establecimientos';
		$data['sidebar'] = 'Lista de Establecimientos';

		//Cargar los permisos
        $this->load->model('Security_Model');
        $profile = $this->session->userdata('profile');
        $modulo  = "all";
        $datos   = array('1', $profile, $modulo); 
		$permiso = $this->Security_Model->getAllSecurityProfile($datos);
        $data['permisos'] = $permiso;

		$this->load->view('admin/Establecimientos/list', $data);
    }

	//Buscar Establecimientos
    public function searchEstablecimientos()
    {
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

		//Cargar Modelo
        $this->load->model('Establecimientos_Model');
        
        //capturar datos
        $Nombre = "'".strval($this->input->post('nombre')==''?null:$this->input->post('nombre'))."'";
        $Nit    = "'".strval($this->input->post('nit')==''?null:$this->input->post('nit'))."'";
        
        //Configurando el array para consulta de Establecimientos
		$dato = array('2','null', $Nombre, $Nit);
        $query = $this->Establecimientos_Model->getEstablecimientosforParameter(null,null,$dato);

        //retornar los valores
        echo json_encode($query);
        
    }

    //Editar Establecimientos
    public function editEstablecimiento($IdEstablecimiento)
	{            
		if ($this->session->userdata('iduser')=='') {
			redirect(base_url().'/admin');
		} 

		$this->load->model('Establecimientos_Model');
		
		//Armando el arreglo del dato
		$dato = array('2',$IdEstablecimiento,'null','null','null','null','null'); 
		$establecimiento = $this->Establecimientos_Model->getEstablecimientoforParameter(false,false,$dato);

		//Enviar Arreglo
		$data['establecimiento'] = $establecimiento;
		$data['titulo']          = 'Editar Establecimiento';
		$data['sidebar']         = 'Establecimiento';

		//Cargar los permisos
        $this->load->model('Security_Model');
        $profile = $this->session->userdata('profile');
        $modulo  = "all";
        $datos   = array('1', $profile, $modulo); 
		$permiso = $this->Security_Model->getAllSecurityProfile($datos);
        $data['permisos'] = $permiso;
	
		$this->load->view('admin/Establecimiento/edit', $data);
	}

	//Update Establecimientos
    public function updateEstablecimientos()
    {     
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        } 

		date_default_timezone_set("America/Bogota");
        setlocale(LC_ALL,"es_CO");

        $meses = array("01","02","03","04","05","06","07","08","09","10","11","12");
        $Date = (date('Y')."-".$meses[date('n')-1]."-".date('d'));  
        $Time = (date('H').":".date('i').":".date('s'));  

        //Cargar Modal
        $this->load->model('Establecimientos_Model');
        $this->load->model('Bitacora_Model');
        
        //Solo los datos validos  
		$Nombre            = "'".strval($this->input->post('Nombre')==''?false:$this->input->post('Nombre'))."'";
		$Nit               = "'".strval($this->input->post('Nit')==''?false:$this->input->post('Nit'))."'";
		$Direccion         = "'".strval($this->input->post('Direccion')==''?false:$this->input->post('Direccion'))."'";
		$Movil             = "'".strval($this->input->post('Movil')==''?false:$this->input->post('Movil'))."'";
		$Rnt               = "'".strval($this->input->post('Rnt')==''?false:$this->input->post('Rnt'))."'";
		$Ciiu              = "'".strval($this->input->post('Ciiu')==''?false:$this->input->post('Ciiu'))."'";
		$IdEstado          = $this->input->post('IdEstado')==''?false:$this->input->post('IdEstado');
		$Mmercantil        = "'".strval($this->input->post('Mmercantil')==''?false:$this->input->post('Mmercantil'))."'";
		$IdDepartamento    = $this->input->post('IdDepartamento')==''?false:$this->input->post('IdDepartamento');
		$IdCiudad          = $this->input->post('IdCiudad')==''?false:$this->input->post('IdCiudad');
		$NombreContacto    = "'".strval($this->input->post('NombreContacto')==''?false:$this->input->post('NombreContacto'))."'";
		$TelContacto       = "'".strval($this->input->post('TelContacto')==''?false:$this->input->post('TelContacto'))."'";
		$EmailContacto     = "'".strval($this->input->post('EmailContacto')==''?false:$this->input->post('EmailContacto'))."'";
		$PaginaWeb         = "'".strval($this->input->post('PaginaWeb')==''?false:$this->input->post('PaginaWeb'))."'";
		$IdEstablecimiento = $this->input->post('IdEstablecimiento')==''?false:$this->input->post('IdEstablecimiento');
		 
		 
		$IdUsuario      = $this->session->userdata('iduser');

		//Armar Arreglo
		$data = array(
            'Nombre'            => $Nombre, 
			'Nit'               => $Nit,
			'Direccion'         => $Direccion, 
			'Movil'             => $Movil, 
			'Rnt'               => $Rnt,
            'Ciiu'              => $Ciiu,
            'IdEstado'          => $IdEstado,
            'Mmercantil'        => $Mmercantil,
            'IdDepartamento'    => $IdDepartamento,
            'IdCiudad'          => $IdCiudad,
            'NombreContacto'    => $NombreContacto,
            'TelContacto'       => $TelContacto,
            'EmailContacto'     => $EmailContacto,
            'PaginaWeb'         => $PaginaWeb, 
            'IdEstablecimiento' => $IdEstablecimiento     
        );

        $datob = array( 'IdEvento ' => '5', 
                        'Fecha'     => $Date,
                        'Hora'      => $Time, 
                        'IdUsuario' => $IdUsuario);
		
        //validar si existe el registro en la base de datos
        $resultado=$this->Establecimientos_Model->updateEstablecimientos($data);
                
        if($resultado){   
            $this->Bitacora_Model->saveBitacora($datob);
            print_r(json_encode(array("res"=>"ok","msg"=>"Establecimiento actualizado satisfactoriamente")));
        }else{
            print_r(json_encode(array("res"=>"bad","msg"=>"Establecimiento no existe")));
        }
    }

	//Insertar Nueva Establecimiento
    public function insertEstablecimientos()
    {     
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        } 

        date_default_timezone_set("America/Bogota");
        setlocale(LC_ALL,"es_CO");

        $meses = array("01","02","03","04","05","06","07","08","09","10","11","12");
        $Date = (date('Y')."-".$meses[date('n')-1]."-".date('d'));  
        $Time = (date('H').":".date('i').":".date('s'));  


		//Cargar Modal
        $this->load->model('Establecimientos_Model');
        $this->load->model('Bitacora_Model');
        
        //Solo los datos validos  
		$Nombre         = "'".strval($this->input->post('Nombre')==''?false:$this->input->post('Nombre'))."'";
		$Nit            = "'".strval($this->input->post('Nit')==''?false:$this->input->post('Nit'))."'";
		$Direccion      = "'".strval($this->input->post('Direccion')==''?false:$this->input->post('Direccion'))."'";
		$Movil          = "'".strval($this->input->post('Movil')==''?false:$this->input->post('Movil'))."'";
		$Rnt            = "'".strval($this->input->post('Rnt')==''?false:$this->input->post('Rnt'))."'";
		$Ciiu           = "'".strval($this->input->post('Ciiu')==''?false:$this->input->post('Ciiu'))."'";
		$IdEstado       = $this->input->post('IdEstado')==''?false:$this->input->post('IdEstado');
		$Mmercantil     = "'".strval($this->input->post('Mmercantil')==''?false:$this->input->post('Mmercantil'))."'";
		$IdDepartamento = $this->input->post('IdDepartamento')==''?false:$this->input->post('IdDepartamento');
		$IdCiudad       = $this->input->post('IdCiudad')==''?false:$this->input->post('IdCiudad');
		$NombreContacto = "'".strval($this->input->post('NombreContacto')==''?false:$this->input->post('NombreContacto'))."'";
		$TelContacto    = "'".strval($this->input->post('TelContacto')==''?false:$this->input->post('TelContacto'))."'";
		$EmailContacto  = "'".strval($this->input->post('EmailContacto')==''?false:$this->input->post('EmailContacto'))."'";
		$PaginaWeb      = "'".strval($this->input->post('PaginaWeb')==''?false:$this->input->post('PaginaWeb'))."'";
		 
		$IdUsuario = $this->session->userdata('iduser');

		//Armar Arreglo
		$data = array(
            'Nombre'         => $Nombre, 
			'Nit'            => $Nit,
			'Direccion'      => $Direccion, 
			'Movil'          => $Movil, 
			'Rnt'            => $Rnt,
            'Ciiu'           => $Ciiu,
            'IdEstado'       => $IdEstado,
            'Mmercantil'     => $Mmercantil,
            'IdDepartamento' => $IdDepartamento,
            'IdCiudad'       => $IdCiudad,
            'NombreContacto' => $NombreContacto,
            'TelContacto'    => $TelContacto,
            'EmailContacto'  => $EmailContacto,
            'PaginaWeb'      => $PaginaWeb        
        );
		
        //validar si existe el registro en la base de datos
        $dato = array('3','null', 'null', $Nit); 
        $resultado=$this->Establecimientos_Model->getEstablecimientosforParameter(null,null,$dato);

        $datob = array( 'IdEvento ' => '3', 
                        'Fecha'     => $Date,
                        'Hora'      => $Time, 
                        'IdUsuario' => $IdUsuario);
        
        if(count($resultado)>0)
        {
            
            print_r(json_encode(array("res"=>"bad","msg"=>"Establecimiento no se puede crear, ya existe")));

        }else{
			
			$this->Establecimientos_Model->saveEstablecimientos($data);
			$this->Bitacora_Model->saveBitacora($datob);
			print_r(json_encode(array("res"=>"ok","msg"=>"Establecimiento creado satisfactoriamente")));      

		}
    }

	//Eliminar Materiales
    public function deleteEstablecimientos()
    {      
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        } 
        
        date_default_timezone_set("America/Bogota");
        setlocale(LC_ALL,"es_CO");

        $meses = array("01","02","03","04","05","06","07","08","09","10","11","12");
        $Date = (date('Y')."-".$meses[date('n')-1]."-".date('d'));  
        $Time = (date('H').":".date('i').":".date('s')); 
        
		//Cargar Modelo
		$this->load->model('Establecimientos_Model');
        $this->load->model('Bitacora_Model');
        
		//Solo los datos validos  
		$IdEstablecimiento = $this->input->post('Establecimiento')==''?false:$this->input->post('Establecimiento');
		$IdUsuario      = $this->session->userdata('iduser');
        
        $datob = array( 'IdEvento ' => '4', 
                        'Fecha'     => $Date,
                        'Hora'      => $Time, 
                        'IdUsuario' => $IdUsuario);
     
        //Llamar el Procedimiento
        $resultado = $this->Establecimientos_Model->deleteEstablecimientos($IdEstablecimiento);
        
        if($resultado)
        {   
            $this->Bitacora_Model->saveBitacora($datob);
            print_r(json_encode(array("res"=>"ok","msg"=>"Establecimiento inactivado satisfactoriamente")));
             
        }else{
            
            print_r(json_encode(array("res"=>"bad","msg"=>"Establecimiento no se pudo eliminar")));
              
        }
    }
}
