<?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 App\Models\Edicto;

use DB;
use Exception;

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

    // 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'];
    	$fuente = $_POST['fuente'];
		$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'];
        $estado = SQLConnection::backendStoreProcedure('sociedades_boletines_pdf',array($cuit,$titulo,$fecha,$region_name,$texto,1,null,$fuente)); //--> Produccion
        return json_encode(array('error' => 0));
    }

    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'));
        /*$excluir = [
            'NEUQUEN', 'LA PAMPA', 'MISIONES', 'CATAMARCA','TIERRA DEL FUEGO','SAN LUIS', 'CHACO', 'TUCUMAN', 'CORRIENTES', 'SAN JUAN', 'JUJUY', 'ENTRE RIOS', 'SALTA', 'RIO NEGRO', 'SANTA CRUZ', 'CHUBUT','SANTIAGO DEL ESTERO','FORMOSA'
        ];*/
        $excluir = [];

        // excluir regiones 
        $regionesFiltradas = array_filter($regiones, function($region) use ($excluir) {
            return !in_array($region->nombre_region, $excluir);
        });
        
    	$fuentes = SqlConnection::backendStoreProcedure('obtener_fuentes_edictos', array());
        
    	if($select == 'carga') {
        	return view('extractor/cargar')->with(compact(['regiones','cuit','nombre','edictos','fuentes']));
    	} else if($select == 'resumen') {
            return view('extractor/resumen')->with(compact(['regiones']));
        } else if($select == 'carga_fecha') {
            // reindexion
            $regiones = array_values($regionesFiltradas);
            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));
                        $aux = shell_exec(escapeshellcmd( ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'BORA';
                        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));
                        shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'BUENOS AIRES';
                        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));
                        $aux = shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'CORDOBA';
                        // 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));
                        shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'SANTA FE';
                        break;
                    
                    case '5':
                        // MENDOZA
                        array_push($seguimiento,'---> Se llamo al script de MENDOZA');
                        array_push($seguimiento,'---> Ejecutando script de MENDOZA...');
                        $aux = shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."mendoza_w.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        //$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;
                        $region = 'MENDOZA';
                        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(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'CATAMARCA';                                             
                        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));
                        $aux = shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'CHACO';
                        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));
                        $aux = shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."salta_w.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;
                        $region = 'SALTA';
                        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));
                        $auc = shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'MISIONES';                        
                        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));
                        $aux = shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'JUJUY';                        
                        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));
                        $aux = shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'LA PAMPA';
                        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));
                        $aux = shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'NEUQUEN';
                        /* 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(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'TUCUMAN';
                        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(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."entrerios_w.py ".$destino.$boletin." ".$fecha." ".$destino.$boletin_csv));
                        //$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;
                        $region = 'ENTRE RIOS';
                        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));
                        shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'LA RIOJA';
                        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));
                        shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."san_luis_w.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;
                        $region = 'SAN LUIS';                        
                        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));  
                        shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."rio_negro_pdf.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;
                        $region = 'RIO NEGRO';
                        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));
                        shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = '';
                        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));
                        shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = '';
                        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));
                        $aux = shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = '';
                        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));
                        $aux = shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."chubut_w.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;
                        $region = 'CHUBUT';
                        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));
                        $aux = shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."santacruz_w.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;
                        $region = 'SANTA CRUZ';
                        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));
                        $aux = shell_exec(escapeshellcmd(ENV('PATH_PYTHON_ENV_EDICTOS') ." ".ENV('PATH_PYTHON_SCRIPTS_EDICTOS')."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;
                        $region = 'CORRIENTES';
                        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', 'region', 'fecha']));
    }

    public static function guardar_boletin_individual_pdf() {
        $region = $_POST['region'] ?? null;
        $fecha  = $_POST['fecha']  ?? null;

        if (!$region || !$fecha || empty($_FILES['boletin']['tmp_name'])) {
            return response()->json(['error' => 1, 'mensaje' => 'Datos incompletos.']);
        }

        $extension = strtolower(pathinfo($_FILES['boletin']['name'], PATHINFO_EXTENSION));
        $mime      = mime_content_type($_FILES['boletin']['tmp_name']);

        if ($extension !== 'pdf' || $mime !== 'application/pdf') {
            return response()->json(['error' => 1, 'mensaje' => 'Solo se permiten archivos PDF.']);
        }

        $fechaArchivo    = str_replace(['/', '-', ' '], '_', $fecha);
        $nombreProvincia = self::provincias($region);
        $boletin         = $nombreProvincia . '_' . $fechaArchivo . '.' . $extension;
        $destino         = "/var/www/html/compartido/boletines_oficiales/" . $nombreProvincia . "/";

        if (!is_dir($destino) && !mkdir($destino, 0755, true)) {
            return response()->json(['error' => 1, 'mensaje' => 'No se pudo crear el directorio de destino.']);
        }

        if (!is_writable($destino)) {
            return response()->json(['error' => 1, 'mensaje' => 'El directorio de destino no tiene permisos de escritura.']);
        }

        $archivosExistentes = glob($destino . '*/' . $boletin);
        if (file_exists($destino . $boletin) || (!empty($archivosExistentes))) {
            return response()->json(['error' => 1, 'mensaje' => 'Ya existe un boletín de ' . $nombreProvincia . ' para la fecha ' . $fecha . '.']);                    
        }

        try {
            if (!move_uploaded_file($_FILES['boletin']['tmp_name'], $destino . $boletin)) {
                return response()->json(['error' => 1, 'mensaje' => 'No se pudo guardar el archivo.']);
            }
        } catch (Exception $e) {
            return response()->json(['error' => 1, 'mensaje' => 'Error al guardar el archivo: ' . $e->getMessage()]);
        }

        return response()->json(['error' => 0]);
    }

    
    private static function limpiarNombreArchivo($texto){
        // Convertir a mayúsculas
        $texto = mb_strtoupper($texto, 'UTF-8');
        // Reemplazar acentos
        $texto = strtr($texto, [
            'Á'=>'A', 'É'=>'E', 'Í'=>'I', 'Ó'=>'O', 'Ú'=>'U',
            'À'=>'A', 'È'=>'E', 'Ì'=>'I', 'Ò'=>'O', 'Ù'=>'U',
            'Ñ'=>'N', 'Ü'=>'U'
        ]);
        // Reemplazar espacios por guiones bajos
        $texto = str_replace(' ', '_', $texto);
        // Quitar caracteres no alfanuméricos (excepto guion bajo)
        $texto = preg_replace('/[^A-Z0-9_]/', '', $texto);
        return $texto;
    }

    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"];
        $razon_social = $_POST["razon_social"] ?? [];
        $cuit = $_POST["cuit"] ?? [];
        $edictos = $_POST["edictos"] ?? [];
        $fecha = $_POST["fecha"] ?? null;
        $region = $_POST["region"] ?? null;

        if (empty($fecha)) {
            return "La fecha está vacía. Por favor, proporcione una fecha válida.";
        }
    
        if (empty($region)) {
            return "La región está vacía. Por favor, proporcione una región válida.";
        }

        $ip = $_SERVER['REMOTE_ADDR'];
        $usuario_id = Session::get("usuario")->user_id;

        $prueba = [];

        $id_edicto = Edicto::obtenerIdPorNombre($region);

        $cant_edictos = count($edictos);
        
        if($cant_edictos != 0) {
            foreach($edictos as $index => $edicto) {
                $prueba[] = [
                    'razon_social' => $razon_social[$index],
                    'cuit' => $cuit[$index],
                    'fecha' => $fecha,
                    'region' => $region,
                    'edicto' => $edicto
                ];
    
                SQLConnection::backendStoreProcedure('sociedades_boletines_pdf',array($cuit[$index],$razon_social[$index],$fecha,$region,$edicto,1,null,'BOLPDF','INSERTAR')); //--> Produccion
                
                /* dd(array($razon_social[$index],$cuit[$index],$fecha,$region,$edicto)); */
            }
            //
            if($id_edicto != null) {
                $texto = 'Se grabaron edictos del boletin oficial';
                SQLConnection::backendStoreProcedure('backend_abm_fuentes_procesadas', array(
                    'A',
                    null,
                    $fecha,
                    $region,
                    1,
                    $texto,
                    $usuario_id,
                    $ip,
                    $id_edicto,
                    $cant_edictos
                ));
            }
            //
            return ("Datos guardados exitosamente");
        } else {
            $seccion = "ExtractorController";
            $nombre_funcion = "responder_edicto";
            $error = "el archivo no contiene edictos";
            //TODO: descomentar una vez finalizado feature
            #SQLConnection::control_erores($seccion, $nombre_funcion, $error);
            return ($error);
        }

    }

    // FUNCION QUE SE ENCARGA DE GUARDAR LOS EDICTOS PROCESADOS DE LA CARGA TOTAL
    public static function responder_edicto_old(){
        $archivo = $_POST["archivo_csv"];
        $razon_social = $_POST["razon_social"] ?? [];
        $cuit = $_POST["cuit"] ?? [];
        $edictos = $_POST["edictos"] ?? [];

        $ip = $_SERVER['REMOTE_ADDR'];
        $usuario_id = Session::get("usuario")->user_id;

        if (is_readable($archivo)) {
            $abrir = file($archivo);
            
            $prueba = [];
            if (count($abrir) != 0) {                
                foreach ($abrir as $index => $e) {
                    $e = explode("|",$e);

                    $e[0] = $razon_social[$index] ?? '';
                    $e[1] = $cuit[$index] ?? '';
                    //NUEVO
                    $e[4] = $edictos[$index] ?? '';

                    $prueba[] = [
                        'razon_social' => $e[0],
                        'cuit' => $e[1],
                        'fecha' => $e[2],
                        'region' => $e[3],
                        'edicto' => $e[4]
                    ];

                    // TODO: descomentar una vez finalizado feature
                    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, 22],
            'pdf' => [13, 4, 7, 11, 12, 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',
        ]);
    }

    public static function verificacion_edictos(){
        
        $regiones = SqlConnection::backendStoreProcedure('obtener_regiones_edictos', array('1'));
        
        /*   
            @rs VARCHAR(100),
            @cuit VARCHAR(50),
            @fecha VARCHAR(20),
            @provincia VARCHAR(50),
            @boletin text,
            @visible int = 1,
            @contenidoJSON varchar(max)=null,
            @fuente varchar(20) = 'BOLPDF',
            @action varchar(30) = 'INSERTAR',
            @idFideAI int = null,
            @nombre_archivo varchar(100)=null,
            @custom_id varchar(100)=null,
            @procesado bit = 0
        */

        $data = SqlConnection::backendStoreProcedure('dbo.sociedades_boletines_scrap', 
        array(null,null,null,null,null,null,null,null,'OBTENER_REGISTROS'));

        $filtrosAplicados = false;
        $region = null;
        $fecha = null;
        $razon_social = null;

        return view('extractor/verificacion-edictos')->with(compact(['data','regiones','filtrosAplicados', 'region','fecha','razon_social']));
    }
    

    public static function filtrar_edictos(){

        $regiones = SqlConnection::backendStoreProcedure('obtener_regiones_edictos', array('1'));

        //filtros de la vista
        $region = Request::input('region_filtro');
        $fecha = Request::input('fecha_filtro');
        $razon_social = Request::input('razonsocial_filtro');
        
        
        if (ctype_digit($razon_social)) {
            $data = SqlConnection::backendStoreProcedure('dbo.sociedades_boletines_scrap', array($razon_social,null,$fecha,$region,null,null,null,null,'FILTRAR'));
        } else {
            $data = SqlConnection::backendStoreProcedure('dbo.sociedades_boletines_scrap', array(null,$razon_social,$fecha,$region,null,null,null,null,'FILTRAR'));
        }
        
        /* $data = $db->select('EXEC dbo.sociedades_boletines_scrap ?,?,?,?,?,?,?,?,?', array($cuit,$razon_social,$fecha,$region,null,null,null,null,'FILTRAR')); */

        $filtrosAplicados = !is_null($region) || !is_null($fecha)  || !is_null($razon_social);
    
        return view('extractor/verificacion-edictos')->with(compact(['data','filtrosAplicados','region','fecha','razon_social','regiones']));
    }

    
        

    
    public static function eliminarEdicto(){
        $userid = Session::get('usuario')->user_id;
        $fide_id = Request::input('fide_id');               
        
        $edictos = SqlConnection::backendStoreProcedure('dbo.sociedades_boletines_scrap', 
        array( NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,'ELIMINAR',$fide_id,NULL,NULL,0,$userid));

        return 0;

    }

    public static function grabarEdictosVerificados(){
        
        $userid = Session::get('usuario')->user_id;
        $edictos = $_POST["edictos"] ?? [];
        $razon_social = $_POST["razonsocial"] ?? [];
        $cuit = $_POST["cuit"] ?? [];
        $fecha = $_POST["fecha"] ?? null;
        $region = $_POST["region"] ?? null;
        $id_fide = $_POST["id_fide"] ?? null;        
        $cant_edictos = count($edictos);        

        if($cant_edictos != 0) {
            foreach($edictos as $index => $edicto) {
                
                $edictos = SqlConnection::backendStoreProcedure('dbo.sociedades_boletines_pdf', 
                array($cuit[$index],$razon_social[$index],$fecha[$index],$region[$index],$edicto,1,null,'BOLPDF','INSERTAR_HASH',null,null,null,1,$userid));
                
                $edictos = SqlConnection::backendStoreProcedure('dbo.sociedades_boletines_scrap', 
                array($cuit[$index],$razon_social[$index],NULL,NULL,NULL,0,NULL,NULL,'MARCAR_PROC',$id_fide[$index],NULL,NULL, 1,$userid));
            }                        
            
            return 0;
        }
        
    }  

    public static function grabarEdictosIndividual(){
        
        $data = Request::only([
            'edicto',
            'razon_social',
            'cuit',
            'fecha_publicacion',
            'fuente',
            'fide_id'
        ]);        
        
        $validator = Validator::make($data, [
            'edicto' => 'required|string',
            'razon_social' => 'required|string|max:255',
            'cuit' => 'nullable|regex:/^\d{11}$/', 
            'fecha_publicacion' => 'required|date',
            'fuente' => 'required|string|max:100',
            'fide_id' => 'required|integer',
        ]);  
                

        if ($validator->fails()) {
            return response()->json([
                'status' => 'error',
                'errors' => $validator->errors()
            ]);
        }
               
        
        try {

            SqlConnection::backendStoreProcedure('dbo.sociedades_boletines_pdf', [
                Request::input('cuit') ?? '',
                Request::input('razon_social'),
                Request::input('fecha_publicacion'),
                Request::input('fuente'),
                Request::input('edicto') ?? '',
                1,
                null,
                'BOLPDF',
                'INSERTAR'
            ]);

            SqlConnection::backendStoreProcedure('EXEC dbo.sociedades_boletines_scrap', [
                null, 
                null, 
                null, 
                null, 
                null,
                0, 
                null, 
                null,
                'MARCAR_PROC',
                Request::input('fide_id'),
                null, 
                null,
                1
            ]);

            return response()->json([
                'status' => '200',
                'message' => 'Edicto procesado correctamente.'
            ], 200);

        } catch (\Exception $e) {
            return response()->json([
                'status' => 'error',
                'message' => 'Ocurrió un error al procesar el edicto.'
            ], 200);
        }
    }

    public static function boletines_oficiales() {

        // Array con todas las provincias
        $provincias = [
            '','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','SAN JUAN','FORMOSA','TIERRA DEL FUEGO'
        ];

        // Array para almacenar los resultados de cada provincia
        $resultados = [];


        // Iterar sobre cada provincia
        foreach ($provincias as $provincia) {
            // Ejecutar la consulta para la provincia actual
            $data = SQLConnection::backendStoreProcedure('dbo.sociedades_boletines_scrap', 
                array(
                    null, 
                    null, 
                    null, 
                    $provincia,
                    null, 
                    1,
                    null,
                    'BOLTPDF', 
                    'INTERFACE' 
                )
            );

            
            $resultados[$provincia] = $data;
        }

        // Mostrar los resultados (puedes usar dd para depurar)
       
        //dd($resultados);

        return view('extractor/boletines_oficiales')->with(compact(['resultados']));
    }

    public static function filtrar_edictos_modal() {
        $regiones = SqlConnection::backendStoreProcedure('obtener_regiones_edictos', array('1'));
    
        // Filtros de la vista
        $region = Request::input('region_filtro');
        $fecha = Request::input('fecha_filtro');
        $razon_social = Request::input('razonsocial_filtro');
    
        if (ctype_digit($razon_social)) {
            $data = SQLConnection::backendStoreProcedure('dbo.sociedades_boletines_scrap', array($razon_social, null, $fecha, $region, null, null, null, null, 'INTERFACE_MAX'));
        } else {
            $data = SQLConnection::backendStoreProcedure('dbo.sociedades_boletines_scrap', array(null, $razon_social, $fecha, $region, null, null, null, null, 'INTERFACE_MAX'));
        }
       // dd($data);
        // Devolver los datos en formato JSON
        return response()->json([
            'data' => $data,
            'filtrosAplicados' => !is_null($region) || !is_null($fecha) || !is_null($razon_social),
            'region' => $region,
            'fecha' => $fecha,
            'razon_social' => $razon_social,
            'regiones' => $regiones
        ]);
    }

}
 
