<?php namespace App\Http\Controllers;

/*use DateTime;
use App\Custom\SQLConnection;
use App\Custom\Misc;*/
use App\Http\Controllers\Route;

use App\Custom\SQLConnection;
use App\Custom\Misc;

use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Request;

use DB;
use Exception;

class ExtractorController extends Controller {
    // PRIMERA VISTA
    public static function index() {
    	$regiones = SqlConnection::backendStoreProcedure('obtener_regiones_edictos', array('1'));
        return view('extractor/extractor')->with(compact(['regiones']));
    }

    // FUNCION QUE GUARDA LOS EDICTOS EN LA CARGA INDIVIDUAL
    public static function carga_edicto() {        
        $informe = str_replace("\n", " ", $_POST['informe']);
    	//-- PARAMETRO  --//
    	// $action = 'ALTA';
        $action = 'SOCIEDADES';
    	$region = $_POST['region'];
		$titulo = $_POST['rs'];
        $texto = $informe;
		$fecha = $_POST['fecha'];
		$userid = Session::get('usuario')->user_id;
		$activo = 1;
		$idcarga = null;
        $fecha_hasta = null;
        $grupoInfo = null;
        $cuit = $_POST['cuit'];
        $region_name = $_POST['region_name'];
		// if(SqlConnection::backendStoreProcedure('carga_edictos_AI', array($action, $region, $titulo, $texto, $fecha, $userid, $activo, $idcarga)) > 0) {
        if(SqlConnection::backendStoreProcedure('carga_edictos_AI', array($action, $region, $titulo, $texto, $fecha, $userid, $activo, $idcarga,$fecha_hasta,$grupoInfo,$cuit,$region_name)) > 0) {
            return 'true';
		} 
		return 'false';
    }

    //--  METODO ENCARGADO DEL CAMBIO ENTRE VISTAS (CARGA-RESUMEN)  --//
    public static function cambio_vista() {
    	$action = 'REGIONES';
    	$select = $_GET['n'];
        $cuit = $_GET['cuit'] ?? null;
        $nombre = $_GET['nombre'] ?? null;
        $edictos = [];
        if ($cuit !== null)
        {
            $edictos = SqlConnection::backendStoreProcedure('obtener_edictos', array($cuit));
        }
        $regiones = SqlConnection::backendStoreProcedure('obtener_regiones_edictos', array('1'));
        
    	if($select == 'carga') {
        	return view('extractor/cargar')->with(compact(['regiones','cuit','nombre','edictos']));
    	} else if($select == 'resumen') {
            return view('extractor/resumen')->with(compact(['regiones']));
        } else if($select == 'carga_fecha') {
            return view('extractor/carga-por-fecha')->with(compact(['regiones']));
        } else {
    		return view('extractor/descarga');
    	}
    }

    static function lo_contiene($arreglo, $e) {
        foreach ($arreglo as $key) {
            if($key == $e) {
                return true;
            }
        }
        return false;
    }

    public static function resumen_edicto() {
        $regiones_filtradas = array();

        //-- PARAMETRO  --//
        $action = 'LISTAR';
        $region = 0;
        $titulo = null;
        $texto = 'n';
        $fecha = $_POST['desde'];
        $userid = Session::get('usuario')->user_id;
        $activo = 1;
        $idcarga = null;
        $hasta = $_POST['hasta'];

        $resultado = SqlConnection::backendStoreProcedure('carga_edictos_AI', array($action, $region, $titulo, $texto, $fecha, $userid, $activo, $idcarga, $hasta));
        
        foreach ($resultado as $key) {
            if(!self::lo_contiene($regiones_filtradas, $key->nombre_region)) {
                $regiones_filtradas[$key->id_region_edicto] = $key->nombre_region;
            }
        }

        //$n = array('fecha' => 'fecha', 'region' => 'region', 'rs' => 'rs', 'activo' => '1');

        return view('extractor/tabla-resumen')->with(compact(['resultado','regiones_filtradas']));
    }

    static function getFecha() {
        date_default_timezone_set('America/Argentina/Buenos_Aires');
        setlocale(LC_TIME, "es_AR.UTF-8");
        return date("d-m-Y H:i:s");
    }

    static function getNombreBoletin() {
        date_default_timezone_set('America/Argentina/Buenos_Aires');
        setlocale(LC_TIME, "es_AR.UTF-8");
        // --> se comenta temporal solo para pruebas --> return date("dmYHis").".pdf";
        return 'prueba.pdf';
    }

    static function getNombreBoletinCsv($boletin) {
        $boletin = explode('.', $boletin);
        //--> se comenta temporal solo para pruebas --> return date("dmYHis").".pdf";
        return $boletin[0].'.csv';
    }

    static function getNombreBoletin2($fecha, $p, $extension) {
        //date_default_timezone_set('America/Argentina/Buenos_Aires');
        //setlocale(LC_TIME, "es_AR.UTF-8");
        //--> se comenta temporal solo para pruebas --> return date("dmYHis").".pdf";
        return $p.'_'.$fecha.'.'.$extension;
    }

    static function provincias($n) {
        $prov = ['','BORA','BUENOS_AIRES','CORDOBA','SANTA_FE','MENDOZA','CATAMARCA','CHACO','SALTA','MISIONES','JUJUY','LA_PAMPA','NEUQUEN','TUCUMAN','ENTRE_RIOS','LA_RIOJA','SAN_LUIS','RIO_NEGRO','BUENOS_AIRES_JUDICIALES','SANTA_FE_JUDICIALES','CORDOBA_JUDICIALES','CHUBUT','SANTA_CRUZ','CORRIENTES','SANTIAGO_DEL_ESTERO'];
        return $prov[$n];
    }
    
    // FUNCION QUE DEVUELLVE LA DESCARGA DE LOS EDICTOS YA PROCESADOS (SECCION RESUMEN)
    public static function descargar_todo() {
       //-- PARAMETRO  --//
        $action = 'LISTAR';
        $region = $_POST['region'];
        $titulo = null;
        $texto = 'n';
        $fecha = $_POST['desde'];
        $userid = Session::get('usuario')->user_id;
        $activo = 1;
        $idcarga = null;
        $hasta = $_POST['hasta'];

        $resultado = SqlConnection::backendStoreProcedure('carga_edictos_AI', array($action, $region, $titulo, $texto, $fecha, $userid, $activo, $idcarga, $hasta));
        
        //return json_encode($resultado);
        $filename = "edictos_".self::getFecha().".txt";
        $f = fopen('php://memory', 'w');

        foreach ($resultado as $key) {
            $alias = $key->titulo." ".$key->texto_edicto;
            fputs($f, $alias);
            fputs($f, "\n");
        }

        fseek($f, 0);

        header("Content-Type: text/txt; charset=UTF-8");
        //header('Content-Disposition: attachment; filename="default-filename.txt"');
        header('Content-Disposition: attachment; filename="'.$filename.'";');

        fpassthru($f);
        exit();
    }

    public static function cargar_boletin() {        
        
        $seguimiento = array();
        $mensaje = "";
        $region = $_POST['region'];
        $fecha = $_POST['fecha'];

        if (preg_match("/^\d{2}\/\d{2}\/\d{4}$/", $fecha)) {
            // Convertimos la fecha de mm/dd/yyyy a yyyy-mm-dd
            $fechaArray = explode('/', $fecha);
            if (count($fechaArray) === 3) {
                $fecha = $fechaArray[2] . '-' . $fechaArray[0] . '-' . $fechaArray[1];
            }
        }
        
        $boletin = $_FILES['boletin']['name'];
        
        $extension = strtolower(pathinfo($boletin, PATHINFO_EXTENSION));        
        
        $p = self::provincias($region);
        $boletin = self::getNombreBoletin2($fecha, $p, $extension);
        $boletin_csv = self::getNombreBoletinCsv($boletin);                    
        $temporal = $_FILES['boletin']['tmp_name'];            
        $destino = "/var/www/html/compartido/edictos-ai/";
        $todo = array($boletin, $boletin_csv, $temporal, $region, $fecha, $destino.$boletin, $destino.$boletin_csv);           
                                   
        if(move_uploaded_file($temporal, $destino.$boletin)) {         
            try {                
                array_push($seguimiento,'---> Creando CSV...');
                //--> debe crear primero el csv
                $arch = fopen($destino.$boletin_csv, 'a');
                
                $fwrite = fwrite($arch, 'Se produjo un error.. ExtractorController linea->185');
                
                fclose($arch);
                array_push($seguimiento,'---> CSV creado');
                //--> se deberia llamar al script correspondiente para parsear y guardar el contenido dentro del nuevo 
                array_push($seguimiento,'---> Llamando script de su correspondiente pais...');
                switch ($region) {
                    case '1':                        
                        // BORA
                        // $auc = system(escapeshellcmd("python3 /var/www/html/edictos_ai/./bora_prueba.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se llamo al script de BORA');
                        array_push($seguimiento,'---> Ejecutando script de BORA...');
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./bora_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));                                                
                        // $auc = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./bora_ninja.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv)); // Script que guarda un txt por cada edicto. La ruta de almacenado está en el script. Hay que pulir al script porque hay cosas que no son necesarias, como por ejemplo la ruta del csv
                        array_push($seguimiento,'---> Se ejecuto script de BORA');                        
                        $mensaje = file($destino.$boletin_csv);                        
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '2':
                        // BUENOS AIRES
                        array_push($seguimiento,'---> Se llamo al script de BUENOS AIRES');
                        array_push($seguimiento,'---> Ejecutando script de BUENOS AIRES...');
                        shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/ba_prueba.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de BUENOS AIRES');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '3':
                        // CORDOBA                        
                        array_push($seguimiento,'---> Se llamo al script de CORDOBA');
                        array_push($seguimiento,'---> Ejecutando script de CORDOBA...');                        
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./cordoba_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        // $auc = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./cordoba_ninja.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv)); // Script que guarda un txt por cada edicto. La ruta de almacenado está en el script. Hay que pulir al script porque hay cosas que no son necesarias, como por ejemplo la ruta del csv
                        array_push($seguimiento,'---> Se ejecuto script de CORDOBA');                                                
                        $mensaje = file($destino.$boletin_csv);                        
                        $archivo_csv = $destino.$boletin_csv;
                        // dd($aux);
                        break;
                    case '4':
                        // SANTA FE
                        array_push($seguimiento,'---> Se llamo al script de SANTA FE');
                        array_push($seguimiento,'---> Ejecutando script de SANTA FE...');
                        shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./santafe_comerciales_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de SANTA FE');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    
                    case '5':
                        // MENDOZA
                        array_push($seguimiento,'---> Se llamo al script de MENDOZA');
                        array_push($seguimiento,'---> Ejecutando script de MENDOZA...');
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./mendoza_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        // $aux = system(escapeshellcmd("python3 /var/www/html/edictos_ai/./mendoza_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de MENDOZA');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '6':
                        // CATAMARCA                        
                        array_push($seguimiento,'---> Se llamo al script de CATAMARCA');
                        array_push($seguimiento,'---> Ejecutando script de CATAMARCA...');                        
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./catamarca_v1.2_avisos-y-quiebras.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));                                                                        
                        #$aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./catamarca_v2.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));                                     
                        // $aux = system(escapeshellcmd("python3 /var/www/html/edictos_ai/./catamarca_v1.2_avisos-y-quiebras.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        // dd(system(escapeshellcmd("python3 /var/www/html/edictos_ai/./catamarca_v1.2_avisos-y-quiebras.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv)));
                        array_push($seguimiento,'---> Se ejecuto script de CATAMARCA');                        
                        $mensaje = file($destino.$boletin_csv);                        
                        $archivo_csv = $destino.$boletin_csv;                                             
                        break;
                    case '7':
                        // CHACO
                        // system(escapeshellcmd("python3 /var/www/html/edictos_ai/./chaco.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se llamo al script de CHACO');
                        array_push($seguimiento,'---> Ejecutando script de CHACO...');
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./chaco_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de CHACO');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '8':
                        // SALTA
                        array_push($seguimiento,'---> Se llamo al script de SALTA');
                        array_push($seguimiento,'---> Ejecutando script de SALTA...');
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./salta_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de SALTA');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '9':
                        // MISIONES
                        // system(escapeshellcmd("python3 /var/www/html/edictos_ai/./misiones.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se llamo al script de MISIONES');
                        array_push($seguimiento,'---> Ejecutando script de MISIONES...');
                        $auc = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./misiones_v1.3_judiciales.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));                        
                        array_push($seguimiento,'---> Se ejecuto script de MISIONES');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;                        
                        break;
                    case '10':
                        // JUJUY                        
                        array_push($seguimiento,'---> Se llamo al script de JUJUY');
                        array_push($seguimiento,'---> Ejecutando script de JUJUY...');
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./jujuy_v2.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));                        
                        array_push($seguimiento,'---> Se ejecuto script de JUJUY');                        
                        $mensaje = file($destino.$boletin_csv);                                                                        
                        $archivo_csv = $destino.$boletin_csv;                        
                        break;
                    case '11':
                        // LA PAMPA
                        array_push($seguimiento,'---> Se llamo al script de LA PAMPA');
                        array_push($seguimiento,'---> Ejecutando script de LA PAMPA...');
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./la_pampa.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de LA PAMPA');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '12':
                        // NEUQUEN
                        array_push($seguimiento,'---> Se llamo al script de NEUQUEN');
                        array_push($seguimiento,'---> Ejecutando script de NEUQUEN...');
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./neuquen_judiciales.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        /* dd('python3 /var/www/html/edictos_ai/./neuquen_judiciales.py ' . $destino. $boletin. " " . $fecha. " " .$destino.$boletin_csv); */
                        array_push($seguimiento,'---> Se ejecuto script de NEUQUEN');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        /* dd($destino.$boletin." ".$fecha." ".$destino.$boletin_csv); */
                        break;
                    case '13':
                        // TUCUMAN
                        array_push($seguimiento,'---> Se llamo al script de TUCUMAN');
                        array_push($seguimiento,'---> Ejecutando script de TUCUMAN...');
                        shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./tucuman_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv)); 
                        // shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./tucuman_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        // $aux = system(escapeshellcmd("python3 /var/www/html/edictos_ai/./tucuman.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        // dd($aux);
                        array_push($seguimiento,'---> Se ejecuto script de TUCUMAN');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '14':
                        // ENTRE RIOS
                        array_push($seguimiento,'---> Se llamo al script de ENTRE RIOS');
                        array_push($seguimiento,'---> Ejecutando script de ENTRE RIOS...');
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./entrerios_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de ENTRE RIOS');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '15':
                        // LA RIOJA
                        array_push($seguimiento,'---> Se llamo al script de LA RIOJA');
                        array_push($seguimiento,'---> Ejecutando script de LA RIOJA...');
                        shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./la_rioja.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de LA RIOJA');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '16':
                        // SAN LUIS
                        array_push($seguimiento,'---> Se llamo al script de SAN LUIS');
                        array_push($seguimiento,'---> Ejecutando script de SAN LUIS...');
                        shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./san_luis.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de SAN LUIS');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;                        
                        break;
                    case '17':
                        // RIO NEGRO
                        array_push($seguimiento,'---> Se llamo al script de RIO NEGRO');
                        array_push($seguimiento,'---> Ejecutando script de RIO NEGRO...');
                        shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./rionegro_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));  
                        array_push($seguimiento,'---> Se ejecuto script de RIO NEGRO');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '18':
                        // BS AS JUDICIALES
                        array_push($seguimiento,'---> Se llamo al script de BS AS JUDICIALES');
                        array_push($seguimiento,'---> Ejecutando script de BS AS JUDICIALES...');
                        shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./pba_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de BS AS JUDICIALES');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '19':
                        // SANTA FE JUDICIALES
                        array_push($seguimiento,'---> Se llamo al script de SANTA FE JUDICIALES');
                        array_push($seguimiento,'---> Ejecutando script de SANTA FE JUDICIALES...');
                        shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./santafe_judiciales_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de SANTA FE JUDICIALES');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;    
                    case '20':
                        // CORDOBA JUDICIALES
                        array_push($seguimiento,'---> Se llamo al script de CORDOBA JUDICIALES');
                        array_push($seguimiento,'---> Ejecutando script de CORDOBA JUDICIALES...');
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./cordoba_judiciales_n.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de CORDOBA JUDICIALES');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '21':
                        // CHUBUT
                        array_push($seguimiento,'---> Se llamo al script de CHUBUT');
                        array_push($seguimiento,'---> Ejecutando script de CHUBUT...');
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./chubut.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de CHUBUT');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '22':
                        // SANTA CRUZ
                        array_push($seguimiento,'---> Se llamo al script de SANTA CRUZ');
                        array_push($seguimiento,'---> Ejecutando script de SANTA CRUZ...');
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./santaCruz.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de SANTA CRUZ');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                    case '23':
                        // CORRIENTE
                        array_push($seguimiento,'---> Se llamo al script de CORRIENTE');
                        array_push($seguimiento,'---> Ejecutando script de CORRIENTE...');
                        $aux = shell_exec(escapeshellcmd("python3 /var/www/html/edictos_ai/./corrientes.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        array_push($seguimiento,'---> Se ejecuto script de CORRIENTE');
                        $mensaje = file($destino.$boletin_csv);
                        $archivo_csv = $destino.$boletin_csv;
                        break;
                }                                              
            } catch (Exception $e) {                
                $seccion = "ExtractorController";
                $nombre_funcion = "carga_boletin";
                $error = "Error en la funcion generica linea->335";
                SQLConnection::control_erores($seccion, $nombre_funcion, $error);
                $mensaje = $e->getMessage();
            }
            
        } else {
            array_push($seguimiento,'---> ERROR! al subir el archivo. ExtractorController linea -> 181');
            $seccion = "ExtractorController";
            $nombre_funcion = "carga_boletin";
            $mensaje = "No se puede cargar el archivo o el archivo ingresado es invalido. linea -> 343";
            SQLConnection::control_erores($seccion, $nombre_funcion, $mensaje);
        }
        
        return view("extractor/notificacion-carga-boletin")->with(compact(['mensaje','archivo_csv','seguimiento']));
    }

    public static function etiquetador() {
        return view('extractor/etiquetador');
    }

    public static function procesador_inicio() {
        return view('procesador_edictos/inicio');
    }

    // FUNCION QUE SE ENCARGA DE GUARDAR LOS EDICTOS PROCESADOS DE LA CARGA TOTAL
    public static function responder_edicto(){
        $archivo = $_POST["archivo_csv"];
        
        if (is_readable($archivo)) {
            $abrir = file($archivo);
            
            if (count($abrir) != 0) {                
                foreach ($abrir as $e) {
                    $e = explode("|",$e);                                        
                    SQLConnection::backendStoreProcedure('sociedades_boletines_pdf',array($e[0],$e[1],$e[2],$e[3],$e[4])); //--> Produccion
                }

                return ("Datos guardados exitosamente");
            } else {
                $seccion = "ExtractorController";
                $nombre_funcion = "responder_edicto";
                $error = "el archivo no contiene edictos";
                SQLConnection::control_erores($seccion, $nombre_funcion, $error);

                return ($error);
            }
        } else {
            $seccion = "ExtractorController";
            $nombre_funcion = "responder_edicto";
            $error = "no se pudo abrir el archivo"; 
            SQLConnection::control_erores($seccion, $nombre_funcion, $error);
            
            return ($error);
        }
    }

    private static function endswith($haystack, $needle) {
        $length = strlen($needle);
        return $length > 0 ? substr($haystack, -$length) === $needle : true;
    }

    public static function cuitsExtraccionURL() {
        //wget https://backend.fidelitas.com.ar/compartido/LED/202109/7048064/6084/202109_7048064_00779_C4974042974_altadechoferenafip.pdf
        //$enviar = array();
        //$doc_id = '4972386713';
        //$path_previo = '/var/www/html/compartido/LED/202010/3915936/2309/';
        $doc_id = $_GET["variable1"];
        $path_previo = $_GET["variable2"];
        $ruta_completa = "";
        $nuevo = str_replace("/var/www/html", "", $path_previo);
        $contenido = opendir($path_previo);
        while (($archivo = readdir($contenido)) !== false)  {
            if(strpos($archivo, $doc_id) && endswith($archivo, ".pdf")) {
                $ruta_completa .= env('URL_CONTRATISTA') . $nuevo . $archivo;
                //array_push($enviar, $ruta_completa);
                return $ruta_completa;
            }
        }

        //return $enviar;
        closedir($contenido);
        //return json_encode($enviar);
    }

    public static function validacion_region() {
        $region = Request::input('region');
        $fileType = Request::input('fileType');
    
        $regionesEsperadas = [
            'txt' => [3, 1, 2, 5, 8, 9 ,14, 15, 17, 16, 21, 10, 23],
            'pdf' => [13, 4, 7, 11, 12, 18, 19, 6],
        ];
    
        // Validar si la región tiene un tipo esperado
        foreach ($regionesEsperadas as $ext => $regiones) {
            if (in_array($region, $regiones)) {
                return self::validarTipoArchivo($fileType, $ext);
            }
        }
        
        return json_encode([
            'error' => 1,
            'mensaje' => "La región no está definida para archivos .txt o .pdf"
        ]);
    }
    
    private static function validarTipoArchivo($fileType, $extensionEsperada) {
        $tiposEsperados = [
            'txt' => 'text/plain',
            'pdf' => 'application/pdf',
        ];
    
        // Verificamos si el tipo de archivo es el esperado
        if ($fileType != $tiposEsperados[$extensionEsperada]) {
            return json_encode([
                'error' => 1,
                'mensaje' => "Se esperaba un archivo .{$extensionEsperada}, pero se subió un archivo de tipo {$fileType}",
            ]);
        }
    
        return json_encode([
            'error' => 0,
            'mensaje' => 'success',
        ]);
    }

}
 
