<?php
namespace App\Custom;
use DB;

class Procesar {

    // get date microtime yyyy-mm-dd hh:mm:ss.uuuuuuuu
    public static function now() {
        list($usec, $sec) = explode(' ', microtime());
        return date('Y-m-d H:i:s', $sec) . substr(str_replace("0.", ".", $usec), 0, 3);
    }

    public static function procesosInsertDinamicoSP($store_procedure, $values, $original = "", $fuente = "") {
        try {
            $question_marks = array_fill(0, count($values), '?');
            $question_marks = implode(',', $question_marks);
            $res = DB::select('EXEC ' . $store_procedure . ' ' . $question_marks, $values);
        } catch (\Exception $e) {
            print_r($e->getMessage());
            die();
            //self::erroresProcesamiento($store_procedure,$values,$original,$fuente);
            //return 1;
        }
        return 0;
    }

    /* public static function erroresProcesamiento($nombre, $intento, $original, $fuente) {
        DB::select('EXEC insertar_errores ?,?,?,?', $nombre, $intento, $original, $fuente);
    } */

    public static function relacionarIdPadronArba() {
        return DB::select('EXEC ARBA_relacionar_id_padron', array());
    }

    public static function updateChequesBajas($nro_cheque) {
        return DB::select('EXEC CHEQUES_update_bajas_exec ?', array($nro_cheque));
    }

    public static function getFuentes() {
        return [
            'aduana' => [
                'folder' => 'aduana',
                'label' => 'Aduana',
                'store_procedure' => 'ADUANA_insertar',
                'separador_campos' => "\t"// campos fijos
            ],

            'arba' => [
                'folder' => 'arba',
                'label' => 'Arba',
                'store_procedure' => 'ARBA_actualizar_insertar',
                'separador_campos' => FALSE // campos fijos
            ],

            'cheques' => [
                'folder' => 'cheques_altas',
                'folder_bajas' => 'cheques_bajas',
                'label' => 'Cheques',
                'store_procedure' => 'CHEQUES_insertar',
                'separador_campos' => FALSE // campos fijos
            ],

            'defunciones' => [
                'folder' => 'defunciones',
                'label' => 'Defunciones',
                'store_procedure' => 'DEFUNCIONES_insertar',
                'separador_campos' => "\t"
            ],

            'inscripciones' => [
                'folder' => 'inscripciones',
                'label' => 'Inscripciones',
                'store_procedure' => 'INSCRIPCIONES_insertar',
                'separador_campos' => FALSE // campos fijos
            ],

            'juicios_bt' => [
                'folder' => 'juicios_bt',
                'label' => 'Juicios: fuente Bustos Thames',
                'store_procedure' => 'JUICIOS_BT_insertar',
                'normalizar' => [ // CSV_FIELD_NAME = table_field_name
                    "PROVINCIA" => "localidad_del_juzgado",
                    "FECHA" => "fecha_causa",
                    "JUZGADO" => "radicacion",
                    "ACTOR" => "actor",
                    "DEMANDADO" => "demandado",
                    "EXPEDIENTE" => "expediente",
                    "OBJETO" => "tipo_de_novedad",
                    "FOJA" => "foja",
                    "ORDEN" => "codigo",
                    "DECRETO" => "decreto",
                    "ABOGADO" => "abogado",
                    "TEXTO" => "observaciones"
                ],
                'separador_campos' => ';'
            ],

            'juicios_myf' => [
                'folder' => 'juicios_myf',
                'label' => 'Juicios: fuente MYF',
                'store_procedure' => 'JUICIOS_MYF_insertar',
                'organismos_solicitantes' => array('AFIP'),
                'separador_campos' => ';'
            ],

            'juicios_jurad' => [
                'folder' => 'juicios_jurad',
                'label' => 'Juicios: fuente Jurad',
                'store_procedure' => 'JUICIOS_JURAD_insertar',
                'separador_campos' => "\t"
            ],

            'sociedades_bt' => [
                'folder' => 'sociedades_bt',
                'folder_edictos' => 'sociedades_edictos',
                'label' => 'Sociedades: fuente Bustos Thames',
                'store_procedure' => 'SOCIEDADES_BT_insertar',
                'separador_campos' => "|"
            ],

            'sociedades_gj' => [
                'folder' => 'sociedades_gj',
                'label' => 'Sociedades: fuente Grupo Jurad',
                'store_procedure' => 'SOCIEDADES_GJ_insertar',
                'separador_campos' => "\t"
            ]
        ];
    }


}
