<?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 Illuminate\Support\Facades\Storage;

class c_ReferenciasVZ extends Controller
{
    //////////////////// GENERAR REFERENCIAS MEXICO //////////////////////////////////

   public function referenciasVZ(Request $request)
   {

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

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

                foreach($datos as $var){
                    $mail = $var->email;
                }

                /* DB::update('update referencias_mz set apart = 1 where id=1'); */
                $cons = DB::select('SELECT * FROM referencias_vz ORDER BY id DESC LIMIT 1');
                DB::statement('ALTER TABLE referencias_vz AUTO_INCREMENT = 1');
                foreach($cons as $var)
                {
                    $apart = $var->apart;
                    $pedimento_pro = $var->pedimento;
                }

                if($apart == 1)
                {

                    $clnt = $request['cliente']; $tipOperacion = $request['tipOperacion'];
                    $tipCarga = $request['tipCarga']; $fecha_eta = $request['fecha_eta'];
                    $aduana = $request['aduana']; $patente = $request['patente'];
                    $cont1 = $request['cont1']; $cont2 = $request['cont2'];
                    $cont3 = $request['cont3']; $cont4 = $request['cont4'];
                    $cont5 = $request['cont5']; $cont6 = $request['cont6'];
                    $cont7 = $request['cont7']; $cont8 = $request['cont8'];
                    $cont9 = $request['cont9']; $cont10 = $request['cont10'];
                    
                    $provi = "CIE";
                    $pedimento = $pedimento_pro+1;
                    $caracteres = strlen ( $pedimento );
                    $age = config('constants.fechaBitacora');

                    if($caracteres == 3){ $pedimento = ''.$age.''.$pedimento; } // Solo entra a los IF cuando la fecha tenga un 0
                    if($caracteres == 2){ $pedimento = ''.$age.'0'.$pedimento; }
                    if($caracteres == 1){ $pedimento = ''.$age.'00'.$pedimento; }
                    if($age > 0){ $pedimento = substr($pedimento, 2); }
                    $provi1 = $provi.$pedimento."-".config('constants.fechaRefB')."VZ";

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

                    $fecha_alt_ref = date('Y/m/d H:i:s');

                    if(empty($cont1)){$cont1=0;}if(empty($cont2)){$cont2=0;}if(empty($cont3)){$cont3=0;}
                    if(empty($cont4)){$cont4=0;}if(empty($cont5)){$cont5=0;}if(empty($cont6)){$cont6=0;}
                    if(empty($cont7)){$cont7=0;}if(empty($cont8)){$cont8=0;}if(empty($cont9)){$cont9=0;}
                    if(empty($cont10)){$cont10=0;}

                    if($apart != 2)
                        {
                            $pedd = DB::select('SELECT * FROM referencias_vz ORDER BY id DESC LIMIT 1');
                                foreach($pedd as $var)
                                {
                                    $pedimentoR = $var->pedimento;
                                }
                                    if($pedimento_pro == $pedimentoR){
                                        $list = "<script>alertify.error('Alguien te gano por milesimas de segundos espera 5 segundos');</script>"; 
                                        return $list;
                                    }else{
                                        DB::insert("INSERT INTO referencias_vz VALUES(
                                        null,
                                        '".$provi1."','".$pedimento_pro."','".$clnt."','".$tipOperacion."','".$tipCarga."','".$fecha_eta."','".$patente."','".$aduana."',null,'".$mail."',
                                        '".$cont1."','".$cont2."','".$cont3."','".$cont4."','".$cont5."','".$cont6."','".$cont7."','".$cont8."','".$cont9."','".$cont10."',
                                        '0','Activa',null,null,'1','-')");

                                        //GENERAR CARPETAS
                                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/DOCUMENTOS/');
                                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/FACTURAS/');
                                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/FOTO/');
                                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/PRIVADA/');
                                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/VALIDACIÓN/');
                                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/VUCEM/');

                                        $list = '<tr>';
                                            $list .= '<td>'.$pedimento_pro.'</td>';
                                            $list .= '<td>'.$provi1.'</td>';
                                        $list .= '</tr>';
                                        $list .= "<script>alertify.success('Se ha registrado con exito');</script>";
                                    }                          

                        }else{
                            $list = "<script>alertify.error('Espera 5 segundos, alguien  mas esta en consecutivo');</script>";
                        }

                    
                }else{
                    $list = "<script>alertify.error('Espera 5 segundos, alguien  mas esta en consecutivo');</script>";
                }
                
                return $list;

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

   /////////////////////// GENERAR REFERENCIAS EN CONSECUTIVOS EN MEXICO ////////////////////////////

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

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

                foreach($datos as $var){
                    $mail = $var->email;
                }

                $cons = DB::select('SELECT * FROM referencias_vz ORDER BY id DESC LIMIT 1');
                DB::statement('ALTER TABLE referencias_vz AUTO_INCREMENT = 1');
                foreach($cons as $var)
                {
                    $apart = $var->apart;
                    $pedimento_pro = $var->pedimento;
                }


                
                if($apart == 1)
                {
                    $cons = DB::select('SELECT * FROM referencias_vz ORDER BY id DESC LIMIT 1');
                    DB::statement('ALTER TABLE referencias_vz AUTO_INCREMENT = 1');
                    foreach($cons as $var)
                    {
                        $apart = $var->apart;
                        $pedimento_pro = $var->pedimento;
                    }
            
                    
                                        $consecutivo = $request['consecutivo'];
            
                        $clnt = $request['cliente']; $tipOperacion = $request['tipOperacion'];
                        $tipCarga = $request['tipCarga']; $fecha_eta = $request['fecha_eta'];
                        $aduana = $request['aduana']; $patente = $request['patente'];
                        $cont1 = $request['cont1']; $cont2 = $request['cont2'];
                        $cont3 = $request['cont3']; $cont4 = $request['cont4'];
                        $cont5 = $request['cont5']; $cont6 = $request['cont6'];
                        $cont7 = $request['cont7']; $cont8 = $request['cont8'];
                        $cont9 = $request['cont9']; $cont10 = $request['cont10'];
                        
                        $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, 2); }
                        $provi1 = $provi.$pedimento."-".config('constants.fechaRefB')."VZ";
            
                        $pedimento_pro = $pedimento_pro+1;
                        $caracteres = strlen ( $pedimento_pro );
                        if($caracteres == 7){ $pedimento_pro = $pedimento_pro; }
                        if($caracteres == 6){ $pedimento_pro = ''.$age.''.$pedimento_pro; }
                        if($caracteres == 5){ $pedimento_pro = ''.$age.'0'.$pedimento_pro; }
                        if($caracteres == 4){ $pedimento_pro = ''.$age.'00'.$pedimento_pro; }
                        if($caracteres == 3){ $pedimento_pro = ''.$age.'000'.$pedimento_pro; }
                        if($caracteres == 2){ $pedimento_pro = ''.$age.'0000'.$pedimento_pro; }
                        if($caracteres == 1){ $pedimento_pro = ''.$age.'00000'.$pedimento_pro; }
            
                        $fecha_alt_ref = date('Y/m/d H:i:s');
            
                        if(empty($cont1)){$cont1=0;}if(empty($cont2)){$cont2=0;}if(empty($cont3)){$cont3=0;}
                        if(empty($cont4)){$cont4=0;}if(empty($cont5)){$cont5=0;}if(empty($cont6)){$cont6=0;}
                        if(empty($cont7)){$cont7=0;}if(empty($cont8)){$cont8=0;}if(empty($cont9)){$cont9=0;}
                        if(empty($cont10)){$cont10=0;}
            
                        if($pedimento_pro <= '1002000'){
                            if($consecutivo == 1 || $consecutivo == '')
                            {   
                                $pedd = DB::select('SELECT * FROM referencias_vz ORDER BY id DESC LIMIT 1');
                                foreach($pedd as $var)
                                {
                                    $pedimentoR = $var->pedimento;
                                }
                                    if($pedimento_pro == $pedimentoR){
                                        $list = "<script>alertify.error('Alguien te gano por milesimas de segundos espera 5 segundos');</script>"; 
                                        return $list;
                                    }else{

                                        DB::insert("INSERT INTO referencias_vz VALUES(
                                        null,
                                        '".$provi1."','".$pedimento_pro."','".$clnt."','".$tipOperacion."','".$tipCarga."','".$fecha_eta."','".$patente."','".$aduana."',null,'".$mail."',
                                        '".$cont1."','".$cont2."','".$cont3."','".$cont4."','".$cont5."','".$cont6."','".$cont7."','".$cont8."','".$cont9."','".$cont10."',
                                        '0','Activa',null,null,'1','-')");

                                        //GENERAR CARPETAS
                                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/DOCUMENTOS/');
                                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/FACTURAS/');
                                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/FOTO/');
                                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/PRIVADA/');
                                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/VALIDACIÓN/');
                                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/VUCEM/');

                                        $list = '<tr>';
                                        $list .= '<td>'.$pedimento_pro.'</td>';
                                        $list .= '<td>'.$provi1.'</td>';
                                        $list .= '</tr>';
                                    }
                                return $list;
                            }else{
                                if($apart == 1)
                                {

                                    $pedd = DB::select('SELECT * FROM referencias_vz ORDER BY id DESC LIMIT 1');
                                    foreach($pedd as $var)
                                    {
                                        $pedimentoR = $var->pedimento;
                                    }
                                    if($pedimento_pro == $pedimentoR){
                                        $list = "<script>alertify.error('Alguien te gano por milesimas de segundos espera 5 segundos');</script>"; 
                                        return $list;
                                    }else{
                                        DB::insert("INSERT INTO referencias_vz VALUES(
                                        null,
                                        '".$provi1."','".$pedimento_pro."','".$clnt."','".$tipOperacion."','".$tipCarga."','".$fecha_eta."','".$patente."','".$aduana."',null,'".$mail."',
                                        '".$cont1."','".$cont2."','".$cont3."','".$cont4."','".$cont5."','".$cont6."','".$cont7."','".$cont8."','".$cont9."','".$cont10."',
                                        '0','Activa',null,null,'2','-')");
                                    }
                                    
                                }else{
                                    $list = "<script>alertify.error('Espera 5 segundos, alguien  mas esta en consecutivo');</script>"; 
                                    return $list;
                                }
                            }
                        

                        //GENERAR CARPETAS
                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/DOCUMENTOS/');
                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/FACTURAS/');
                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/FOTO/');
                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/PRIVADA/');
                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/VALIDACIÓN/');
                        Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/VUCEM/');
            
                        $list = '<tr>';
                            $list .= '<td>'.$pedimento_pro.'</td>';
                            $list .= '<td>'.$provi1.'</td>';
                        $list .= '</tr>';
                        $i = 2;
            
                        do{  
                            $cons = DB::select('SELECT * FROM referencias_vz ORDER BY id DESC LIMIT 1');
                            DB::statement('ALTER TABLE referencias_vz AUTO_INCREMENT = 1');
                            foreach($cons as $var)
                            {
                                $apart = $var->apart;
                                $pedimento_pro = $var->pedimento;
                            }
                            if($pedimento_pro <= '1002000'){
                                if($apart == 2)
                                {
                                        $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, 2); }
                                        $provi1 = $provi.$pedimento."-".config('constants.fechaRefB')."VZ";
                    
                                        $pedimento_pro = $pedimento_pro+1;
                                        $caracteres = strlen ( $pedimento_pro );
                                        if($caracteres == 7){ $pedimento_pro = $pedimento_pro; }
                                        if($caracteres == 6){ $pedimento_pro = ''.$age.''.$pedimento_pro; }
                                        if($caracteres == 5){ $pedimento_pro = ''.$age.'0'.$pedimento_pro; }
                                        if($caracteres == 4){ $pedimento_pro = ''.$age.'00'.$pedimento_pro; }
                                        if($caracteres == 3){ $pedimento_pro = ''.$age.'000'.$pedimento_pro; }
                                        if($caracteres == 2){ $pedimento_pro = ''.$age.'0000'.$pedimento_pro; }
                                        if($caracteres == 1){ $pedimento_pro = ''.$age.'00000'.$pedimento_pro; }
                    
                                        $fecha_alt_ref = date('Y/m/d H:i:s');
                                    if($pedimento_pro <= '1002000'){
                                        if($i == $consecutivo)
                                        {
                                            DB::insert("INSERT INTO referencias_vz VALUES(
                                            null,'".$provi1."','".$pedimento_pro."','".$clnt."','".$tipOperacion."','".$tipCarga."','".$fecha_eta."','".$patente."','".$aduana."',null,'".$mail."',
                                            '".$cont1."','".$cont2."','".$cont3."','".$cont4."','".$cont5."','".$cont6."','".$cont7."','".$cont8."','".$cont9."','".$cont10."',
                                            '0','Activa',null,null,'1','-')");
                                        }if($i != $consecutivo){
                                            DB::insert("INSERT INTO referencias_vz VALUES(
                                            null,'".$provi1."','".$pedimento_pro."','".$clnt."','".$tipOperacion."','".$tipCarga."','".$fecha_eta."','".$patente."','".$aduana."',null,'".$mail."',
                                            '".$cont1."','".$cont2."','".$cont3."','".$cont4."','".$cont5."','".$cont6."','".$cont7."','".$cont8."','".$cont9."','".$cont10."',
                                            '0','Activa',null,null,'2','-')");
                                        }
                                    }else{
                                        $list = "<script>alertify.error('Han llegado al limite de referencias para aperturar');</script>"; 
                                        return $list;
                                    }
                                }else{
                                    $list = "<script>alertify.error('Error al realizar el consecutivo');</script>"; 
                                    return $list;
                                }

                                //GENERAR CARPETAS
                                Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/DOCUMENTOS/');
                                Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/FACTURAS/');
                                Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/FOTO/');
                                Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/PRIVADA/');
                                Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/VALIDACIÓN/');
                                Storage::disk('ftpBitacora')->makeDirectory(''.$request->user()->usuario.'/20'.config('constants.fechaFolder').'/'.$provi1.' '.$clnt.'/VUCEM/');

                                $list .= '<tr>';
                                    $list .= '<td>'.$pedimento_pro.'</td>';
                                    $list .= '<td>'.$provi1.'</td>';
                                    $list .= '</tr>';
                                $i++;
                            }else{
                                $list = "<script>alertify.error('Han llegado al limite de referencias para aperturar');</script>";  
                            }
                        }while($consecutivo >= $i);
                    }else{
                        $list = "<script>alertify.error('Han llegado al limite de referencias para aperturar');</script>"; 
                        return $list;
                    }
                    
                }else{
                        $list = "<script>alertify.error('Espera 5 segundos, alguien  mas esta en consecutivo');</script>";
                }
                return $list;

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

    public function editRefVZ(Request $request){
        $id = auth()->user()->id;
        $datos = DB::connection('usuariosMysql')->select("select * from vw_list_user WHERE id = '".$id."'");

        foreach($datos as $var){
            $mail = $var->email;
        }
        $fecha_edit = date('d/m/Y H:i:s');
        $cliente = $request['cliente_edit'];
        $fecha_eta = $request['fecha_eta'];
        $tip_ope = $request['tip_ope'];
        $id_ref = $request['id_ref'];

        DB::update("UPDATE referencias_vz SET fecha_eta = '".$fecha_eta."', cliente = '".$cliente."', fecha_mod = '".$fecha_edit."', user_mod = '".$mail."', tip_operacion = '".$tip_ope."' WHERE folio = '".$id_ref."'");

        return $id_ref;

    }

}
