<?php 
defined('BASEPATH') OR exit('No direct script access allowed');
header('Access-Control-Allow-Origin: *');
header('Content-Type: text/html; charset=UTF-8');

require "assets\dist\PHPMailer\PHPMailerAutoload.php";

class ReporteMincit 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('ReporteMincit_Model');
        $this->load->model('Usuarios_Model');
        $this->load->model('Generales_Model');      
        $this->load->model('Reservas_Model');      

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

        $this->load->model('ReporteMincit_Model');
        $this->load->model('Reservas_Model');
        $this->load->model('Generales_Model');
            
        //Configurando el array de Seguimiento
		$dato = array('1','null','null','null','null','null','null','null','null','null','null','null','null','null','null','null');
        $query = $this->ReporteMincit_Model->getReporteMincitforParameter(null,null,$dato);

			foreach($query as $k0) {
				
				$Manifiesto = $k0['Manifiesto']; 
				$empresa    = $k0['IdCia']; 
				$Placa      = $k0['IdVehiculo'];
			}
			
		//Configurando el array de Diferencia Horaria
		$datohra = array('1'); 
		$horarios=$this->Generales_Model->getHorariosforParameter(null,null,$datohra);
			foreach($horarios as $k1) {
				$empresa= $k1['IdCia']; 
				$Punto= $k1['IdPunto']; 
				$Placa= $k1['IdVehiculo'];
			}
		
		//envio el arreglo
		$data['ReporteMincit'] = $query;
		$data['horarios'] = $horarios;
        $data['titulo'] = 'ReporteMincit';
		$data['sidebar'] = 'Lista de ReporteMincit';
       
		$this->load->view('admin/ReporteMincit/list', $data);
    }

    //Buscar ReporteMincit por parametro
    public function searchReporteMincit($offset = 0)
    {
        if ($this->session->userdata('iduser')=='') {
            redirect(base_url().'/admin');
        }

        $this->load->model('ReporteMincit_Model');
        //capturar los datos de busqueda
        $Orden = $this->input->post('Orden')==''?'null':$this->input->post('Orden');
        $Placa = "'".strval($this->input->post('Placa')==''?'null':$this->input->post('Placa'))."'";
        

        //Armando el arreglo del dato
		$dato = array('3','null',$Orden,'null','null','null','null','null','null','null','null','null','null',$Placa,'null','null');
        $query = $this->ReporteMincit_Model->getReporteMincitforParameter(false,false,$dato);
		
        //retornar los valores
        echo json_encode($query);   
    }
    
    //Guardar ReporteMincit
    public function insertReporteMincit()
    {
        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'));  

        $this->load->model('ReporteMincit_Model');
        $this->load->model('Bitacora_Model');
        
        //Solo los datos validos 
        $NumOrden = $this->input->post('NumOrden')==''?false:$this->input->post('NumOrden');
        $TipoDoc = "'".strval($this->input->post('TipoDoc')==''?false:$this->input->post('TipoDoc'))."'";
        $IdCia = "'".strval($this->input->post('IdCia')==''?false:$this->input->post('IdCia'))."'";
        $FechaSeguimiento = "'".strval($this->input->post('FechaSeguimiento')==''?false:$this->input->post('FechaSeguimiento'))."'";
        $HoraSeguimiento= "'".strval($this->input->post('HoraSeguimiento')==''?false:$this->input->post('HoraSeguimiento'))."'";
        $IdUsuario = $this->session->userdata('iduser');
        $DetalleSeguimiento = "'".strval($this->input->post('DetalleSeguimiento')==''?false:$this->input->post('DetalleSeguimiento'))."'";
        $IdRuta = "'".strval($this->input->post('IdRuta')==''?false:$this->input->post('IdRuta'))."'";
        $TipoReporte = $this->input->post('TipoReporte')==''?false:$this->input->post('TipoReporte');
        $IdNov = "'".strval($this->input->post('IdNov')==''?false:$this->input->post('IdNov'))."'";
        $IdEstado =  "'".strval($this->input->post('IdEstado')==''?false:$this->input->post('IdEstado'))."'";
        $IdPtoControl = $this->input->post('IdPtoControl')==''?false:$this->input->post('IdPtoControl');
        $IdVehiculo = $this->input->post('IdVehiculo')==''?false:$this->input->post('IdVehiculo');
        $Manifiesto = $this->input->post('Manifiesto')==''?false:$this->input->post('Manifiesto');
  	
        
        $IdUsuario = $this->session->userdata('iduser');

        $data = array(    
            'NumOrden'               => $NumOrden, 
            'TipoDoc'                => $TipoDoc, 
            'IdCia'                  => $IdCia, 
            'FechaSeguimiento'       => $FechaSeguimiento,  
            'HoraSeguimiento'        => $HoraSeguimiento,           
            'IdUsuario'              => $IdUsuario,
            'DetalleSeguimiento'     => $DetalleSeguimiento,
            'IdRuta'                 => $IdRuta,
            'TipoReporte'            => $TipoReporte,
            'IdNov'                  => $IdNov,
            'IdEstado'               => $IdEstado,
            'IdPtoControl'           => $IdPtoControl,
            'IdVehiculo'             => $IdVehiculo,
            'Manifiesto'             => $Manifiesto
            
        );
         
        //Arreglo Bitacora
        $datob = array( 'IdEvento'  => '23', 
                        'Fecha'     => $Date,
                        'Hora'      => $Time, 
                        'IdUsuario' => $IdUsuario);

        //validar si existe el registro en la base de datos
        $resultado=$this->ReporteMincit_Model->saveReporteMincit($data);
                            
        if($resultado)
        { 
			$this->Bitacora_Model->saveBitacora($datab);
            print_r(json_encode(array("res"=>"ok","msg"=>"Seguimiento creado satisfactoriamente")));
        
        }else{

            print_r(json_encode(array("res"=>"bad","msg"=>"El seguimiento no se puede Crear")));   
              
        }
    }

	//Enviar Correo de ReporteMincit
    public function enviarCorreo(){

		//Create a new PHPMailer instance
		$mail = new PHPMailer();
		$mail->IsSMTP();
		
        //capturar los datos de busqueda
        $Subject = $this->input->post('Subject')==''?'null':$this->input->post('Subject');
        $Email = $this->input->post('Email')==''?'null':$this->input->post('Email');
		$Message = $this->input->post('Message')==''?'null':$this->input->post('Message');
		$IdVehiculo = $this->input->post('IdVehiculo')==''?'null':$this->input->post('IdVehiculo');
		$IdSeguimiento = $this->input->post('IdSeguimiento')==''?'null':$this->input->post('IdSeguimiento');

        $this->load->model('ReporteMincit_Model');
		$this->load->model('Reservas_Model'); 
		$this->load->model('Generales_Model'); 

		//convertir en Array el correo
		$EmailArray = explode(';',$Email);

		//Configurando el array de seguimiento
		$datover = array('5',$IdSeguimiento,'null','null','null','null','null','null','null','null','null','null','null',$IdVehiculo,'null','null');
		$query = $this->ReporteMincit_Model->getReporteMincitforParameter(null,null,$datover);
		
			foreach($query as $k2) {
				$NumOrden = $k2['NumOrden'];
			}

		//Configurando el array de Orden de Cargue
		$dato = array('4','null',$NumOrden,'null','null',$IdVehiculo,'null','null','null'); 
        $orden = $this->Reservas_Model->getReservasforParameter(null,null,$dato);
			foreach($orden as $k3) {
				$origen   = $k3['IdLocOrigen'];
				$destino  = $k3['IdLocDestino'];
				$remolque = $k3['nRemolque'];
				$cliente  = $k3['RazonSocial'];
			}
       
		$LocOrigen  = "'".strval($origen)."'";
		$LocDestino = "'".strval($destino)."'";
		
			//Configurando el array de ciudad Origen
		$datoori = array('2',$LocOrigen); 
		$locorigen=$this->Generales_Model->getCiudadesforParameter(null,null,$datoori);
			foreach($locorigen as $k4) {
				$Norigen   = $k4['Localidad'];
			}

		//Configurando el array de ciudad Destino
		$datodtn = array('2',$LocDestino); 
		$locdestino=$this->Generales_Model->getCiudadesforParameter(null,null,$datodtn);
			foreach($locdestino as $k5) {
				$Ndestino   = $k5['Localidad'];
			}
 
		//Configurando el array de seguimiento
		$datover = array('5',$IdSeguimiento,'null','null','null','null','null','null','null','null','null','null','null',$IdVehiculo,'null','null');
		$query = $this->ReporteMincit_Model->getReporteMincitforParameter(null,null,$datover);
                
		//Construir el Correo
		$body="";
		$tabla="";
		$mensaje=$Message;
		$tabla=$tabla."<html>
						<table>
							<tr>
								<th>Fecha Seguimiento</th>
								<th>|</th>
								<th>Hora Seguimiento</th>
								<th>|</th>
								<th>Origen</th>
								<th>|</th>
								<th>Destino</th>
								<th>|</th>
								<th>Punto Control</th>
								<th>|</th>
								<th>Novedad</th>
								<th>|</th>
								<th>Vehiculo</th>
								<th>|</th>
								<th>Cliente</th>
								<th>|</th>
								<th>Detalle</th>
							</tr>";
		
		foreach($query as $k6) {
            
            $fecha_seg  = $k6['FechaSeguimiento'];
            $hora_seg   = $k6['HoraSeguimiento'];
			$detalle    = $k6['DetalleSeguimiento'];
			$usuario    = $k6['IdUsuario'];
			$ptocontrol = $k6['PtoControl'];
			$novedad    = $k6['Novedad'];
            $vehiculos  = $k6['IdVehiculo'];  
			
			$tabla=$tabla. "<tr> 
								<td>".$fecha_seg."</td> 
								<td>|</td> 
								<td>".$hora_seg."</td> 
								<td>|</td> 
								<td>".$Norigen."</td> 
								<td>|</td> 
								<td>".$Ndestino."</td> 
								<td>|</td> 
								<td>".$ptocontrol."</td> 
								<td>|</td> 
								<td>".$novedad."</td> 
								<td>|</td> 
								<td>".$vehiculos."</td> 
								<td>|</td> 
								<td>".$cliente."</td> 
								<td>|</td> 
								<td>".$detalle."</td>
							</tr>";
			
        }
		$tabla=$tabla."</table></html>";
        $body=$body.$mensaje."\n";
		$body=$body."\n";
		$body=$body.$tabla;

		//Configuracion servidor mail
		$mail->From = "contacto@globallogistica.com.co"; //remitente
		$mail->FromName = "Syscom Seguimiento";
		$mail->SMTPAuth = true;
		$mail->SMTPSecure = 'tls'; //seguridad
		$mail->Host = "smtp.gmail.com"; // servidor smtp
		$mail->Port = 587; //puerto
		$mail->Username ="contacto@globallogistica.com.co"; //nombre usuario
		$mail->Password = "Trafico2022+"; //contraseña
		
		//Agregar destinatario
		for($i=0; $i< count($EmailArray); $i++){
			$mail->Subject = $Subject;//asunto
			$mail->AddAddress($EmailArray[$i]);//email recibe
			$mail->Body = $body;//mensaje
			$mail->isHTML();
		};
	

		//Avisar si fue enviado o no 
		if ($mail->Send()) {
			print_r(json_encode(array("res"=>"ok","msg"=>"Envio de correo ok")));
		} else {
			print_r(json_encode(array("res"=>"bad","msg"=>"No se envio correo")));
						
		}
		//Hay que habilitar la opcion en gmail para aplicaciones poco seguras del correo remitente

	}
                   
}
