<?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'=> FALSE // 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"
			]
		];
	}


}
