<?php

namespace App\Http\Controllers\Referencias;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use App\User;
use PhpOffice\PhpWord\TemplateProcessor;


class c_Referencias extends Controller
{
    public function index()
    {
        return view('referencias.v_listaReferencias');
    }

    public function generarREF(Request $request)
    {   
        
        if(Auth::check()){
            if($request->user()->hasRole('Administrador') || $request->user()->hasRole('Estandar')){

                //////////////// MANZANILLO ////////////////////////////////////
                $MZ = DB::select("SELECT * FROM referencias_mz ORDER BY id DESC LIMIT 1");
                foreach($MZ as $var){
                    $pedimento_pro = $var->pedimento; //PENDIENTE
                    $pedimento_pro2 = substr($var->folio, -10);
                }
                $provi = "CIE";
                $pedimento = $pedimento_pro+1;
                $caracteres = strlen ( $pedimento );
                $age = config('constants.fechaBitacora');

                if($caracteres == 4){ $pedimento = ''.$age.''.$pedimento; }
                if($caracteres == 3){ $pedimento = ''.$age.'0'.$pedimento; }
                if($caracteres == 2){ $pedimento = ''.$age.'00'.$pedimento; }
                if($caracteres == 1){ $pedimento = ''.$age.'000'.$pedimento; }
                if($age > 0){ $pedimento = substr($pedimento, 0); }
                $proviMZ = $provi.$pedimento_pro2;

                $pedimento_pro = $pedimento_pro+1;
                $caracteres = strlen ( $pedimento_pro );
                if($caracteres == 7){ $pedimento_proMZ = $pedimento_pro; }
                if($caracteres == 6){ $pedimento_proMZ = ''.$age.''.$pedimento_pro; }
                if($caracteres == 5){ $pedimento_proMZ = ''.$age.'0'.$pedimento_pro; }
                if($caracteres == 4){ $pedimento_proMZ = ''.$age.'00'.$pedimento_pro; }
                if($caracteres == 3){ $pedimento_proMZ = ''.$age.'000'.$pedimento_pro; }
                if($caracteres == 2){ $pedimento_proMZ = ''.$age.'0000'.$pedimento_pro; }
                if($caracteres == 1){ $pedimento_proMZ = ''.$age.'00000'.$pedimento_pro; }
                ////////////////////////////////////////////////////////////////////////////

                //////////////// MEXICO //////////////////////////////////////////////////
                $MX = DB::select("SELECT * FROM referencias_mx ORDER BY id DESC LIMIT 1");
                foreach($MX as $var){
                    $pedimento_pro = $var->pedimento; //PENDIENTE
                }
                $provi = "CIE";
                $pedimento = $pedimento_pro+1;
                $caracteres = strlen ( $pedimento );
                $age = config('constants.fechaBitacora');

                if($caracteres == 3){ $pedimento = ''.$age.''.$pedimento; }
                if($caracteres == 2){ $pedimento = ''.$age.'0'.$pedimento; }
                if($caracteres == 1){ $pedimento = ''.$age.'00'.$pedimento; }
                if($age > 0){ $pedimento = substr($pedimento, 1); $pedimento = $age.$pedimento;}
                $proviMX = $provi.$pedimento."-".config('constants.fechaRefB')."MX";

                $pedimento_pro = $pedimento_pro+1;
                $caracteres = strlen ( $pedimento_pro );
                if($caracteres == 7){ $pedimento_proMX = $pedimento_pro; }
                if($caracteres == 6){ $pedimento_proMX = ''.$age.''.$pedimento_pro; }
                if($caracteres == 5){ $pedimento_proMX = ''.$age.'0'.$pedimento_pro; }
                if($caracteres == 4){ $pedimento_proMX = ''.$age.'00'.$pedimento_pro; }
                if($caracteres == 3){ $pedimento_proMX = ''.$age.'000'.$pedimento_pro; }
                if($caracteres == 2){ $pedimento_proMX = ''.$age.'0000'.$pedimento_pro; }
                if($caracteres == 1){ $pedimento_proMX = ''.$age.'00000'.$pedimento_pro; }

                ////////////////////////////////////////////////////////////////////////////

                //////////////// VERACRUZ //////////////////////////////////////////////////
                $VZ = DB::select("SELECT * FROM referencias_vz ORDER BY id DESC LIMIT 1");
                foreach($VZ as $var){
                    $pedimento_pro = $var->pedimento; //PENDIENTE
                }
                $provi = "CIE";
                $pedimento = $pedimento_pro+1;
                $caracteres = strlen ( $pedimento );
                $age = config('constants.fechaBitacora');

                if($caracteres == 3){ $pedimento = ''.$age.''.$pedimento; }
                if($caracteres == 2){ $pedimento = ''.$age.'0'.$pedimento; }
                if($caracteres == 1){ $pedimento = ''.$age.'00'.$pedimento; }
                if($age > 0){ $pedimento = substr($pedimento, 1); $pedimento = $age.$pedimento;}
                $proviVZ = $provi.$pedimento."-".config('constants.fechaRefB')."VZ";

                $pedimento_pro = $pedimento_pro+1;
                $caracteres = strlen ( $pedimento_pro );
                if($caracteres == 7){ $pedimento_proVZ = $pedimento_pro; }
                if($caracteres == 6){ $pedimento_proVZ = ''.$age.''.$pedimento_pro; }
                if($caracteres == 5){ $pedimento_proVZ = ''.$age.'0'.$pedimento_pro; }
                if($caracteres == 4){ $pedimento_proVZ = ''.$age.'00'.$pedimento_pro; }
                if($caracteres == 3){ $pedimento_proVZ = ''.$age.'000'.$pedimento_pro; }
                if($caracteres == 2){ $pedimento_proVZ = ''.$age.'0000'.$pedimento_pro; }
                if($caracteres == 1){ $pedimento_proVZ = ''.$age.'00000'.$pedimento_pro; }

                ////////////////////////////////////////////////////////////////////////////

                //////////////// LAZARO CARDENAS ////////////////////////////////////
                $LZ = DB::select("SELECT * FROM referencias_lz ORDER BY id DESC LIMIT 1");
                foreach($LZ as $var){
                    $pedimento_pro = $var->pedimento; //PENDIENTE
                    $pedimento_pro2 = substr($var->folio, -10);
                }
                $provi = "CIE";
                $pedimento = $pedimento_pro+1;
                $caracteres = strlen ( $pedimento );
                $age = config('constants.fechaBitacora');

                if($caracteres == 3){ $pedimento = ''.$age.''.$pedimento; }
                if($caracteres == 2){ $pedimento = ''.$age.'0'.$pedimento; }
                if($caracteres == 1){ $pedimento = ''.$age.'00'.$pedimento; }
                if($age > 0){ $pedimento = substr($pedimento, 1); $pedimento = $age.$pedimento;}
                $proviLZ = $provi.$pedimento_pro2;
        
                $pedimento_pro = $pedimento_pro+1;
                $caracteres = strlen ( $pedimento_pro );
                if($caracteres == 7){ $pedimento_proLZ = $pedimento_pro; }
                if($caracteres == 6){ $pedimento_proLZ = ''.$age.''.$pedimento_pro; }
                if($caracteres == 5){ $pedimento_proLZ = ''.$age.'0'.$pedimento_pro; }
                if($caracteres == 4){ $pedimento_proLZ = ''.$age.'00'.$pedimento_pro; }
                if($caracteres == 3){ $pedimento_proLZ = ''.$age.'000'.$pedimento_pro; }
                if($caracteres == 2){ $pedimento_proLZ = ''.$age.'0000'.$pedimento_pro; }
                if($caracteres == 1){ $pedimento_proLZ = ''.$age.'00000'.$pedimento_pro; }

                /////////////////////////////////////////////////////////////////////////////

                $id = auth()->user()->id;
                $datos = DB::connection('usuariosMysql')->select("select * from vw_list_user WHERE id = '".$id."'");
                $ClntsMZ = DB::connection('clientesMysql')->select('SELECT * FROM clientes_MZ');

                return view('referencias.v_generarRef', compact('pedimento_proLZ', 'proviLZ', 'pedimento_proMZ', 'proviMZ', 'pedimento_proMX', 'proviMX', 'pedimento_proVZ', 'proviVZ', 'ClntsMZ', 'datos'));

            }else {
                return redirect()->route('login');
            }
        }else {
            return redirect()->route('login');
        }
        
    }

    public function wordExport($folio){
        
        $referencia = DB::connection('firebird')->select("SELECT * from BITACORA_WORD WHERE NUM_REFE = '".$folio."'");
        foreach($referencia as $var){
            $cli = $var->IMPORTADOR; 
            $ope = $var->TIPO_OPE; 
            $doc = $var->DOCUMENTO;
            $con = $var->CONTENEDOR;
            $refe = $var->NUM_REFE;
            $ped = $var->PEDIMENTO;
            $eje = $var->EJECUTIVO; 
            $bl = $var->BL;
            
        }

        if(empty($refe)){
             return redirect()->back()->with('FechaInvalida','Fecha Invalida o Vacia'); 
        }else{


        if($ope == 'Expo'){
        $templateProcessor = new TemplateProcessor('word-template/referencia_Expo.docx');  
        $templateProcessor->setValue('cliente',$cli);
        if($ope == 'Impo'){
        $ope = 'X';
        $impo = $ope;
        $expo = ' ';
        $templateProcessor->setValue('t_imp', $impo); 
        $templateProcessor->setValue('t_exp', $expo); 
        }
        elseif($ope == 'Expo'){
            $ope = 'X';
            $expo = $ope;
            $impo = ' ';
            $templateProcessor->setValue('t_imp', $impo); 
            $templateProcessor->setValue('t_exp', $expo);     

        }
        if($con == null){
         
        $con = 'C/S';    
        $templateProcessor->setValue('contenedor', $con);
        }
        $templateProcessor->setValue('contenedor', $con);
        $templateProcessor->setValue('referencia', $refe);
        $templateProcessor->setValue('pedimento', $ped);
        $templateProcessor->setValue('bl_master', $bl);
        $templateProcessor->setValue('ejecutivo', $eje);
        $templateProcessor->setValue('docu', $doc);


        $fileName = $refe;
        $templateProcessor->saveAs($fileName . '.docx');
        return response()->download($fileName . '.docx')->deleteFileAfterSend(true);

        }
        else
        {
        $templateProcessor = new TemplateProcessor('word-template/referencia_impo.docx');
        $templateProcessor->setValue('cliente',$cli);
        if($ope == 'Impo'){
        $ope = 'X';
        $impo = $ope;
        $expo = ' ';
        $templateProcessor->setValue('t_imp', $impo); 
        $templateProcessor->setValue('t_exp', $expo); 
        }
        elseif($ope == 'Expo'){
            $ope = 'X';
            $expo = $ope;
            $impo = ' ';
            $templateProcessor->setValue('t_imp', $impo); 
            $templateProcessor->setValue('t_exp', $expo);     

        }
        if($con == null){
         
        $con = 'C/S';    
        $templateProcessor->setValue('contenedor', $con);
        }
        $templateProcessor->setValue('contenedor', $con);
        $templateProcessor->setValue('referencia', $refe);
        $templateProcessor->setValue('pedimento', $ped);
        $templateProcessor->setValue('bl_master', $bl);
        $templateProcessor->setValue('ejecutivo', $eje);
        $templateProcessor->setValue('docu', $doc);


        $fileName = $refe;
        $templateProcessor->saveAs($fileName . '.docx');
        return response()->download($fileName . '.docx')->deleteFileAfterSend(true);
}
    }
}


 public function wordExport_Bitacora($folio){
        
        $referencia = DB::connection('mysql')->select("SELECT * from referencias_mz WHERE folio = '".$folio."'");
        foreach($referencia as $var){
            $cli = $var->cliente; 
            $ope = $var->tip_operacion; 
            $con = $var->cont1;
            $refe = $var->folio;
            $ped = $var->pedimento;            
        }

        if($ope == 'Exportación'){
        $templateProcessor = new TemplateProcessor('word-template/referencia_Bitacora_Expo.docx');
        $templateProcessor->setValue('cliente',$cli);
        if($ope == 'Importación'){
        $ope = 'X';
        $impo = $ope;
        $expo = ' ';
        $templateProcessor->setValue('t_imp', $impo); 
        $templateProcessor->setValue('t_exp', $expo); 
        }
        elseif($ope == 'Exportación'){
            $ope = 'X';
            $expo = $ope;
            $impo = ' ';
            $templateProcessor->setValue('t_imp', $impo); 
            $templateProcessor->setValue('t_exp', $expo);     

        }
        if($con == 'Suelta'){
         
        $con = 'C/S';    
        $templateProcessor->setValue('contenedor', $con);
        }
        $templateProcessor->setValue('contenedor', $con);
        $templateProcessor->setValue('referencia', $refe);
        $templateProcessor->setValue('pedimento', $ped);


        $fileName = $refe;
        $templateProcessor->saveAs($fileName . '.docx');
        return response()->download($fileName . '.docx')->deleteFileAfterSend(true);

    }else{
         $templateProcessor = new TemplateProcessor('word-template/referencia_Bitacora_Impo.docx');
         $templateProcessor->setValue('cliente',$cli);
        if($ope == 'Importación'){
        $ope = 'X';
        $impo = $ope;
        $expo = ' ';
        $templateProcessor->setValue('t_imp', $impo); 
        $templateProcessor->setValue('t_exp', $expo); 
        }
        elseif($ope == 'Exportación'){
            $ope = 'X';
            $expo = $ope;
            $impo = ' ';
            $templateProcessor->setValue('t_imp', $impo); 
            $templateProcessor->setValue('t_exp', $expo);     

        }
        if($con == 'Suelta'){
         
        $con = 'C/S';    
        $templateProcessor->setValue('contenedor', $con);
        }
        $templateProcessor->setValue('contenedor', $con);
        $templateProcessor->setValue('referencia', $refe);
        $templateProcessor->setValue('pedimento', $ped);


        $fileName = $refe;
        $templateProcessor->saveAs($fileName . '.docx');
        return response()->download($fileName . '.docx')->deleteFileAfterSend(true);


    }

}


}
