<?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;
use Illuminate\Support\Facades\View;

use App\Custom\Procesar;
use DB;

class DataCleaningController extends Controller {

	/* public function obtenerDetalleJuicio() {
		$novedad = Request::input('nombre_tipo_novedad');
		$juicios_detalle  = SQLConnection::backendStoreProcedure('obtener_detalle_juicios_sin_tipo_causa', array($novedad));
		return view ('/datacleaning/juicios/detalle_juicios_sin_causa')->with(compact('juicios_detalle'));

	} */

	public function obtenerDetalleJuicio() {
		$novedad = Request::input('nombre_causa');
		$juicios_detalle  = SQLConnection::backendStoreProcedure('obtener_detalle_juicios_sin_tipo_causa', array($novedad));
		//
		return View::make('/datacleaning/juicios/detalle_juicios_sin_causa')->with(compact('juicios_detalle'))->render();
	}

	public function obtenerJuiciosActoresDemandados() {
		$juicios_homonimos_actores 		= SQLConnection::obtenerJuiciosHomonimosActores();
		$juicios_homonimos_demandados = SQLConnection::obtenerJuiciosHomonimosDemandados();
		$homonimos 										= SQLConnection::obtenerHomonimos();
		return view ('/datacleaning/juicios')->with(compact('juicios_homonimos_actores','juicios_homonimos_demandados','homonimos'));
	}

	public function modificarJuiciosActoresDemandados() {
		$tipo 								= Request::input('tipo');
		$id_juicio 						= Request::input('id_juicio');
		$cuit 								= Request::input('cuit');
		$nombre  	 						= Request::input('nombre');
		$modificacion_juicios = SQLConnection::modificarJuiciosHomonimosBackend($tipo,$id_juicio,$cuit,$nombre);
		return 'ok';
	}

	public function modificarHomonimos() {
		$id_juicio 		= Request::input('id_juicio_homonimo');
		$actor 				= Request::input('nombre_actor');
		$cuit_actor 	= Request::input('cuit_a');
		$demandado  	= Request::input('nombre_demandado');
		$cuit_demando = Request::input('cuit_d');
		$modificacion_homonimos = SQLConnection::modificarHomonimosBackend($id_juicio,$cuit_actor,$cuit_demando,$actor,$demandado);
		return 'ok';
	}

	public function obtenerPadron() {
		Session::forget('cuit');
		Session::forget('nombre');
		Session::save();
		return view("datacleaning/padron/buscador_padron");
	}

	public function obtenerEdictos() {
		$dni = '';
		$cuit = Request::input('cuit');
		$razon_social = Request::input('razon_social');
		$padron = SQLConnection::busquedaPadron($cuit,$dni,$razon_social);
		$cuit = $padron[0]->identificacion;
		$razon_social = $padron[0]->nombre_persona;
		$dni = $padron[0]->cuerpo_clave;
		$edictos = [];
		$edictos_homonimos = [];
		$tipo_persona = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
  	$sinonimos = '';

		if ($tipo_persona == 'j') {
			$edictos = SQLConnection::backendStoreProcedure('obtener_edictos', array($cuit));
			$sinonimos = Misc::diccionarioSinonimos($razon_social);
			$cuits = Misc::diccionarioCuits($cuit);
			$sinonimos = array_merge([$sinonimos], $cuits);
			$sinonimos = implode(" or ", $sinonimos);
			if (!$sinonimos) {
				$sinonimos = '"'.$razon_social.'"';
			}
			$edictos_homonimos = SQLConnection::backendStoreProcedure('backend_obtener_edictos_homonimos', array($sinonimos));
			if ($edictos_homonimos) {
				$edictos_homonimos = Misc::ResaltarResultadosEdictosHomonimos($sinonimos, $edictos_homonimos, $razon_social);
			}
		} else {
			$dnis = Misc::diccionarioDNIs($dni);
			$cuits = Misc::diccionarioCuits($cuit);
			$sinonimos = array_merge(['"'.$razon_social.'"'], $dnis);
			$sinonimos = array_merge($sinonimos, $cuits);
			$sinonimos = implode(" or ", $sinonimos);
			$edictos = SQLConnection::backendStoreProcedure('obtener_edictos_por_persona_fisica', array($sinonimos));
		}

		if ($edictos) {
			if ($sinonimos) {
				$edictos = Misc::ResaltarResultadosEdictos($sinonimos, $edictos, $razon_social);
			} else {
				$edictos = Misc::ResaltarResultadosEdictos($razon_social, $edictos, $razon_social);
			}
		}

		$cargos = SQLConnection::backendStoreProcedure('obtener_Cargos',array());

		return view('datacleaning.edictos')->with(compact(['edictos', 'edictos_homonimos', 'cuit', 'razon_social', 'cargos', 'tipo_persona']));
	}

	public function modificarEdictosHomonimos(){
		$id = Request::input('modal_id_fide');
		$cuit = Request::input('modal_cuit');
		$current_cuit = Request::input('modal_current_cuit');
		$exec = SQLConnection::backendStoreProcedure('backend_modificar_edictos_homonimos', array($id, $cuit) );
		return [
		'status' => 'success', 
		'store_procedure' => 'backend_modificar_edictos_homonimos',
		'sql_exec: ' => $exec];
	}

	public function obtenerJuiciosSinTipoCausa (){
		$lista_juicios_sin_id_tipo_causa 		 = SQLConnection::backendStoreProcedure('obtener_juicios_sin_tipo_causa', array());
		$lista_nombres_tipo_de_causa  			 = SQLConnection::backendStoreProcedure('obtener_juicios_tipos_novedad', array());
		$tarea_juicios  			 								 = SQLConnection::backendStoreProcedure('obtener_tarea_juicios', array());
		$lista_juicios_sin_id_tipo_causa 		 = json_decode(json_encode($lista_juicios_sin_id_tipo_causa), true);
		$lista_nombres_tipo_de_causa  			 = json_decode(json_encode($lista_nombres_tipo_de_causa), true);
		return view ('/datacleaning/juicios/juicios_clean')->with(compact('lista_nombres_tipo_de_causa','lista_juicios_sin_id_tipo_causa','tarea_juicios'));
	}

	public function asignarIdDeCausa(){
		$token 				 				= Request::input('token');
		$id_tipo_causa 				= Request::input('id_tipo_causa');
		$nombre_tipo_novedad  = Request::input('nombre_tipo_novedad');
		$nombre_causa  				= Request::input('nombre_causa');
		$valor_editado 				= 'Se asigno '.$nombre_causa.' a: '.$nombre_tipo_novedad;
		
		if (isset($id_tipo_causa,$nombre_tipo_novedad)) {
			SQLConnection::backendStoreProcedure('modificar_juicios_id_tipo_causa', array($id_tipo_causa,$nombre_tipo_novedad,1,$valor_editado));
			return 'ok';
		}else{
			return 'error';
		}
	}

		
}
