<?php
namespace App\Http\Controllers;

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

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

class MorososEntidadesController extends Controller {
    // ---------------------------
    // Función que muestra la vista principal de carga
    public static function index() {
        $morosos = json_encode(SQLConnection::backendStoreProcedure('BCRA_Morosos', array('LISTAR')));
        return view("/morosos/morosos_entidades", compact("morosos"));
    }

    // ---------------------------
    // Función que valida los datos recibidos, los envía a 
    // una base de datos y devuelve una vista avisándole 
    // al usuario que se cargó con éxito. Sino manda otro 
    // tipo de archivo captura la ip en control de errores 
    // para lista negra

    static function carga_archivo() {
        $txtReg = "/.+\.txt$/";
        $fechaReg = "/^((20|19|21)[0-9]{2}(0|1)[0-9])$/";
        $denReg = "/^[A-Z\-\.\(\) ]+$/";
        $tipoIdReg = "/^[0-9]{2}$/";
        $numIdReg = "/^[A-Za-z0-9]{11}$/";
        $procReg = "/^(0|1|2)$/";
        // ----------------
        if (Misc::validar_data($txtReg, $_FILES['userText']['name'])) {
            $upload = ($_FILES['userText']['tmp_name']);
            //$entidades_morosas = [];
            $lista = file($upload);
            // ----------------
            $morosos = [];
            // ----------------
            $userId = Session::get('usuario')->user_id;
            //print_r($userId);
            //---------------
            foreach ($lista as $valor) {
                if (Misc::validar_data($fechaReg, substr($valor, 0, 6)) and Misc::validar_data($denReg, substr($valor, 6, 120)) and Misc::validar_data($tipoIdReg, substr($valor, 126, 2)) and Misc::validar_data($numIdReg, substr($valor, 128, 11)) and Misc::validar_data($procReg, substr($valor, 139, 1))) {
                    // ------------
                    $morosos = SQLConnection::backendStoreProcedure('BCRA_Morosos', array('INSERTAR', substr($valor, 128, 11), substr($valor, 0, 4) . "-" . substr($valor, 4, 2) . "-01", substr($valor, 6, 120), intval(substr($valor, 126, 2)), intval(substr($valor, 139, 1)), $userId));
                }
            }
            return view("morosos/morosos_entidades_carga", compact("morosos"));
        } else {
            $servidor = $_SERVER['REMOTE_ADDR'];
            $seccion = "MorososEntidadesController";
            $nombre_de_funcion = "cargar_archivo";
            $mensaje = "Alguien infiltró el javascript y esta es su ip: " . $servidor;
            SQLConnection::control_erores($seccion, $nombre_de_funcion, $mensaje);
        }
    }
}