<?php namespace App\Http\Controllers;

use Session;
use Request; 
use App\Custom\SQLConnection;
use App\Custom\Misc;

class LegalesController extends Controller  {

public static $ent_bancaria;
public static $fuentes;
public static $eventos;
public static $eventos_morosidad;
public static $tipos_causas;
public static $tipo_procesos;

// Central de Deudores

	public function obtenerCentralDeudores(){
		$cuit = Session::get('cuit');
		$meses = 6;
		$visible = 1;
		$central_deudores = SQLConnection::backendCentralDeudores($cuit,$meses,$visible);
		
		//self::$ent_bancaria  = SQLConnection::obtenerEntidadesBancarias();
		//$ent_bancaria = self::$ent_bancaria;
		
		self::$ent_bancaria = SQLConnection::obtenerCodigos("obtener_EntidadesBancarias");
		$ent_bancaria = self::$ent_bancaria;
		
		self::$fuentes = SQLConnection::obtenerCodigos("obtener_Fuentes");
		$fuentes = self::$fuentes;
		
		self::$eventos = SQLConnection::obtenerCodigos("obtener_Eventos_deudas");
		$eventos = self::$eventos;
	  //print_r($eventos); die(); 	

		$params = array($cuit);

		$bloqueo_cendeu = SQLConnection::backendStoreProcedure("backend_cendeu_bloqueo",$params,'select');
		$cancela_cendeu = SQLConnection::backendStoreProcedure("backend_cendeu_cancela",$params,'select');
				
		return view('legales/central_deudores')->with(compact('central_deudores','meses','visible','ent_bancaria','eventos','fuentes','bloqueo_cendeu','cancela_cendeu'));
	}
	

	public function filtrarCentralDeudores(){
		$cuit = Session::get('cuit');
		/*
		$meses = (Request::input('meses')) ? Request::input('meses') : 6;
		$visible = (Request::input('visible')) ? Request::input('visible') : 1;
		$todos = (Request::input('todos')) ? Request::input('todos') : "N";
		*/
		$meses = Request::input('meses');
		$visible = Request::input('visible');
		$central_deudores = SQLConnection::backendCentralDeudores($cuit,$meses,$visible);
		return view('legales/tabla_central_deudores')->with(compact('central_deudores','meses','visible'));
	}

	public function visibleCentralDeudores(){ 
		$id_cendeu= Request::input('id_cendeu');
		$visible_central_deudores = SQLConnection::backendVisible($id_cendeu,'backend_vigente_central_deudores');
		return json_encode(array('error' => $visible_central_deudores->error,'mensaje' => $visible_central_deudores->mensaje)); 
	}

	public function altaCentralDeudores(){
		$cuit 			= Session::get('cuit');
		$codigo_ent = Request::input('banco');
		$fec_inf 		= Request::input('periodo');
		$deuda_total= Request::input('monto');
		$situacion 	= Request::input('situacion');
		$observaciones 	= Request::input('observaciones');
		$accion 		= Request::input('accion'); 
		$meses 			= Request::input('meses');
		$visible 		= Request::input('visible');
		if($accion == 'M'){
			self::visibleCentralDeudores();
		}	
		$mensaje_central_deudores = SQLConnection::backendAltaCentralDeudores($cuit,$codigo_ent,$fec_inf,$situacion,$deuda_total,$observaciones);
		$central_deudores = SQLConnection::backendCentralDeudores($cuit,$meses,$visible);
	 	return json_encode(array('error' => $mensaje_central_deudores->error,'mensaje' => $mensaje_central_deudores->mensaje,
	 	'tabla' => view('legales/tabla_central_deudores')->with(compact('central_deudores','visible','meses'))->render()
	 	));
	
	}
	
	/****************************/
	/* Bloqueo Central Deudores */
	/****************************/	

	public function bloqueoCendeu(){
		$cuit = Session::get('cuit');
		$bloqueo_cendeu = SQLConnection::obtenerCendeuBloqueo($cuit);
		//$ent_bancaria  = (self::$ent_bancaria) ? self::$ent_bancaria : SQLConnection::obtenerEntidadesBancarias();
	  $ent_bancaria  = (self::$ent_bancaria) ? self::$ent_bancaria : SQLConnection::obtenerCodigos("obtener_EntidadesBancarias");
  	return view('legales/tabla_bloqueo_cendeu')->with(compact('bloqueo_cendeu','ent_bancaria'));
	}
	
	public function visibleBloqueoCendeu(){
		$id_cendeu_bloqueo = Request::input('id_cendeu_bloqueo');
		$visible_central_deudores = SQLConnection::backendVisible($id_cendeu_bloqueo,'backend_visible_bloqueo_cendeu');
		return self::bloqueoCendeu();
	}

	public function altaBloqueoCendeu(){
		$cuit 			= Session::get('cuit');
		$codigo_ent = Request::input('blq_banco');
		$periodo_hta = Request::input('blq_periodo_hta');
		$blq_observaciones 	= Request::input('blq_observaciones');
		$id_persona = Session::get('id_padron');
		$usuario = Session::get("usuario")->user_id;

		$params = array($cuit,$codigo_ent,$periodo_hta,$blq_observaciones,$id_persona,$usuario);
		$blq_mensaje = SQLConnection::backendStoreProcedure("backend_alta_cendeu_bloqueo",$params,'selectOne');
		$tabla = self::bloqueoCendeu();

		return json_encode(array('error' => $blq_mensaje->error,'mensaje' => $blq_mensaje->mensaje, 'tabla'=>$tabla->render()));

	}

	/**********************************/
	/* Cancelaciones Central Deudores */
	/**********************************/	

	public function cancelaCendeu(){
		$cuit = Session::get('cuit');
		$cancela_cendeu = SQLConnection::obtenerCendeuCancela($cuit);
		//$ent_bancaria  = (self::$ent_bancaria) ? self::$ent_bancaria : SQLConnection::obtenerEntidadesBancarias();
	  $ent_bancaria  = (self::$ent_bancaria) ? self::$ent_bancaria : SQLConnection::obtenerCodigos("obtener_EntidadesBancarias");
	  $fuentes  = (self::$fuentes) ? self::$fuentes : SQLConnection::obtenerCodigos("obtener_Fuentes");
	  $eventos  = (self::$eventos) ? self::$eventos : SQLConnection::obtenerCodigos("obtener_Eventos_Deudas");
	  //print_r($eventos); die(); 
	  
  	return view('legales/tabla_cancela_cendeu')->with(compact('cancela_cendeu','ent_bancaria','fuentes','eventos'));
	}
	
	public function visibleCancelaCendeu(){
		$id_cendeu_cancela = Request::input('id_cendeu_cancela');
		$visible_central_deudores = SQLConnection::backendVisible($id_cendeu_cancela,'backend_visible_cancela_cendeu');
		return self::cancelaCendeu();
	}

	public function altaCancelaCendeu(){
		$cuit 			= Session::get('cuit');
		$codigo_ent = Request::input('can_banco');
		$periodo_dde = Request::input('can_periodo_dde');
		$periodo_hta = Request::input('can_periodo_hta');
		$can_evento  = Request::input('can_evento');
		$can_fecha  = Request::input('can_fecha');
		$can_fuente  = Request::input('can_fuente');
		$can_fecha_fuente  = Request::input('can_fecha_fuente');
		$can_observaciones 	= Request::input('can_observaciones');
		$id_persona = Session::get('id_padron');
		$usuario = Session::get("usuario")->user_id;

		$params = array($cuit,$codigo_ent,$periodo_dde,$periodo_hta,$can_evento,$can_fecha,$can_fuente,$can_fecha_fuente,		$can_observaciones,$id_persona,$usuario);
		$can_mensaje = SQLConnection::backendStoreProcedure("backend_alta_cendeu_cancela",$params,'selectOne');
		$tabla = self::cancelaCendeu();

		return json_encode(array('error' => $can_mensaje->error,'mensaje' => $can_mensaje->mensaje, 'tabla'=>$tabla->render()));

	}

	/**********************/
	/* Cheques rechazados */
	/**********************/
	public function obtenerChequesRechazados(){
		$cuit = Session::get('cuit');
		$id_persona = Session::get('id_padron');
		$solo_contar = 0;
		$meses = 6;
		$visible = 1;
		$params = array($cuit,$id_persona,$solo_contar,$meses,$visible);
		$cheques_rechazados = SQLConnection::backendStoreProcedure("backend_cheques_rechazados",$params);
		$causales = SQLConnection::backendStoreProcedure("obtener_causales_cheques",array());
		return view('legales/cheques_rechazados')->with(compact('cheques_rechazados','meses','visible','causales'));
	}

	public function filtrarChequesRechazados(){
		$cuit = Session::get('cuit');
		$id_persona = Session::get('id_padron');
		$solo_contar = 0;
		$meses = Request::input('meses');
		$visible = Request::input('visible');
		$params = array($cuit,$id_persona,$solo_contar,$meses,$visible);
		$cheques_rechazados = SQLConnection::backendStoreProcedure("backend_cheques_rechazados",$params);
		$causales = SQLConnection::backendStoreProcedure("obtener_causales_cheques",array());

		return view('legales/tabla_cheques_rechazados')->with(compact('cheques_rechazados','meses','visible','causales'));
	}

	public function visibleChequesRechazados(){
		$cuit = Session::get('cuit');
		$id_cheque = Request::input('id_cheque');
		$usuario = Session::get("usuario")->user_id;

		$params = array($cuit,$id_cheque,$usuario);
		$mensaje_visible = SQLConnection::backendStoreProcedure("backend_vigente_cheques_rechazados",$params,'selectOne');
		
		// cargo nuevamente cheques rechazados
		$id_persona = Session::get('id_padron');
		$solo_contar = 0;
		$meses = Request::input('meses');
		$visible = Request::input('visible');
		
		$params = array($cuit,$id_persona,$solo_contar,$meses,$visible);
		$cheques_rechazados = SQLConnection::backendStoreProcedure("backend_cheques_rechazados",$params);
		$causales = SQLConnection::backendStoreProcedure("obtener_causales_cheques",array());
		return json_encode(array('error' => $mensaje_visible->error,'mensaje' => $mensaje_visible->mensaje,
			'tabla' => view('legales/tabla_cheques_rechazados')->with(compact('cheques_rechazados','visible','meses','causales'))->render()));
		//return json_encode(array('error' => $visible_cheques_rechazados->error,'mensaje' => $visible_cheques_rechazados->mensaje)); 
	}

	public function altaChequesRechazados(){
		
		$user_id = Session::get("usuario")->user_id;
		$cuit = Session::get('cuit');
		$id_persona = Session::get('id_padron');
		
		$cuit_fir = Request::input('cuit_firmante');
		$cuit_rel = Request::input('Cuit_relacionado');
		$nro_cheque = Request::input('nro_cheque');
		$importe    = Request::input('importe');
		$fecha_pag  = Request::input('fecha_pago');
		$fecha_rec  = Request::input('fecha_rechazo'); 
		$fecha_lev  = Request::input('fecha_levantamiento');
		$id_causa   = Request::input('id_causa');

		$accion     = Request::input('accion'); 
		$meses      = Request::input('meses');
		$visible    = Request::input('visible');

		if($accion == 'A'){
			// alta cheque
			$params = array($cuit_fir,$cuit_rel,$nro_cheque,$importe,$fecha_pag,$fecha_rec,$fecha_lev,$id_causa,$user_id);
			$mensaje_cheques_rechazados = SQLConnection::backendStoreProcedure("backend_alta_cheques_rechazados",$params,'selectOne');

		}else{
			// modificacion cheque
			self::visibleChequesRechazados();

			$params = array($cuit,$nro_cheque,$fecha_rec,$fecha_pag,$fecha_lev,$importe,$id_causa,$user_id,$visible);
			$mensaje_cheques_rechazados = SQLConnection::backendStoreProcedure("backend_modificacion_cheques_rechazados",$params,'selectOne');
		}	
		
		$solo_contar = 0;
		$params = array($cuit,$id_persona,$solo_contar,$meses,$visible);
		$cheques_rechazados = SQLConnection::backendStoreProcedure("backend_cheques_rechazados",$params);
		$causales = SQLConnection::backendStoreProcedure("obtener_causales_cheques",array());
		return json_encode(array('error' => $mensaje_cheques_rechazados->error,
			'mensaje' => $mensaje_cheques_rechazados->mensaje,
			'tabla' => view('legales/tabla_cheques_rechazados')->with(compact('cheques_rechazados','visible','meses','causales'))->render()
			));
	}

	public function verificarChequesGemelos(){
		$cuit = Session::get('cuit');
		$id_cheque = Request::input('id_cheque');

		$params = array($cuit,$id_cheque);
		$res = SQLConnection::backendStoreProcedure("backend_verificar_cheques_gemelos",$params,'selectOne');
		return json_encode($res);
	}

	/*********************/
	/* Causas Judiciales como Actor y Demandano */
	/*********************/

	public function obtenerJuicios(){
		
		$cuit = Session::get('cuit');
		$meses = 6; 
		$visible = 1;
		
		$params = array(NULL,'D',$cuit,$meses,$visible);
		//var_dump($params);
		$juicios_demandado = SQLConnection::backendStoreProcedure("backend_juicios_demandado_actor",$params);

		$params = array(NULL,'A',$cuit,$meses,$visible);
		//var_dump($juicios_actor);
		$juicios_actor = SQLConnection::backendStoreProcedure("backend_juicios_demandado_actor",$params);

		self::$tipos_causas = SQLConnection::obtenerCodigos("obtener_tipos_causas");
		$tipos_causas = self::$tipos_causas;

		self::$tipo_procesos = SQLConnection::obtenerCodigos("obtener_tipo_procesos");
		$tipo_procesos = self::$tipo_procesos;
		
		return view('legales/juicios')->with(compact('juicios_demandado','juicios_actor','meses','visible','tipos_causas','tipo_procesos'));
	}

	public function filtrarJuicios(){
		
		$cuit = Session::get('cuit');
		$meses    = Request::input('meses');
		$visible  = Request::input('visible');
		
		$params = array(NULL,'D',$cuit,$meses,$visible);
		$juicios_demandado = SQLConnection::backendStoreProcedure("backend_juicios_demandado_actor",$params);

		$params = array(NULL,'A',$cuit,$meses,$visible);
		$juicios_actor = SQLConnection::backendStoreProcedure("backend_juicios_demandado_actor",$params);

	
  	$tabla_demandado = view('legales/tabla_juicios_demandado')->with(compact('juicios_demandado','meses','visible'))->render();
  	$tabla_actor     = view('legales/tabla_juicios_actor')->with(compact('juicios_actor','meses','visible'))->render();
  
		return json_encode(array('tablad'=>$tabla_demandado, 'tablaa'=>$tabla_actor));		

	}

	public function modalJuicios(){
		$id_juicio = Request::input('id_juicio');

		$causas_judiciales = SQLConnection::backendStoreProcedure("backend_juicios_demandado_actor",array($id_juicio,NULL,NULL,NULL,NULL),'selectOne');
		$tipos_causas  = (self::$tipos_causas) ? self::$tipos_causas : SQLConnection::obtenerCodigos("obtener_tipos_causas");
		$tipo_procesos  = (self::$tipo_procesos) ? self::$tipo_procesos : SQLConnection::obtenerCodigos("obtener_tipo_procesos");
		return view('modals/modal_juicios')->with(compact('causas_judiciales','tipos_causas','tipo_procesos'));
		
	}

	public function visibleJuicios(){ 
		$id_juicio = Request::input('id_juicio');
		//print_r($id_juicio); 
		$visible_mje = SQLConnection::backendVisible($id_juicio,'backend_visible_juicios');
		return json_encode(array('error' => $visible_mje->error,'mensaje' => $visible_mje->mensaje)); 
	}

	public function abmJuicios(){
	 	$cuit 		  = Session::get("cuit");
	 	$nombre     = Session::get("nombre");
		$user_id 		= Session::get("usuario")->user_id;
		$id_padron 	= Session::get("id_padron");

		$valores = [];
		$valores['cuit']			= $cuit; 
		$valores['nombre']		= $nombre; 
		$valores['id_padron']	= $id_padron; 
		$valores['user_id']		= $user_id; 

		foreach (\Input::except('_token','visible','meses','dni_actor','dni_demandado') as $key => $valor) {
		
		 	  if (empty($valor)) {
		      	$valor = '';
			      }
			  $valores[$key]=$valor;
			  //var_dump($key); var_dump($valor); 
		}
		
		$valores=array_values($valores);
				
		$store_procedure = 'backend_abm_juicios';
		$mensaje_abm = SQLConnection::backendStoreProcedure($store_procedure,$valores,"selectOne");
		
		$visible = (Request::input('visible')=="") ? 1 : Request::input('visible'); 
		$meses   = (Request::input('meses')=="") ? 6 : Request::input('meses'); 

		$params = array(NULL,'D',$cuit,$meses,$visible);
		$juicios_demandado = SQLConnection::backendStoreProcedure("backend_juicios_demandado_actor",$params);

		$params = array(NULL,'A',$cuit,$meses,$visible);
		$juicios_actor = SQLConnection::backendStoreProcedure("backend_juicios_demandado_actor",$params);

	  return json_encode(array('error' => $mensaje_abm->error,'mensaje' => $mensaje_abm->mensaje,
	 	'tablad' => view('legales/tabla_juicios_demandado')->with(compact('juicios_demandado','meses','visible'))->render(),
	  'tablaa' => view('legales/tabla_juicios_actor')->with(compact('juicios_actor','meses','visible'	))->render()
	 	));	 	
 	
	}

	/*********************/
	/* Causas Judiciales */
	/*********************/

	public function obtenerCausasJudiciales($view="legales/causas_judiciales"){
		$razon_social = Session::get('nombre');
		$cuit = Session::get('cuit');
		$meses = Request::input('meses') or 6; 
		$visible = Request::input('visible') or 1;
		// preparo $razon_social para el CONTAINS()
		$razon_social = preg_replace("/[ \t]{2,}/", " ", trim($razon_social));
		$razon_social = '"*' . str_replace(' ', '*" NEAR "*', $razon_social) . '*"';

		$params = array(NULL,$razon_social,$cuit,$meses,$visible);
		//var_dump($params); 
		$causas_judiciales = SQLConnection::backendStoreProcedure("backend_causas_judiciales",$params);
		$tipos_causas = SQLConnection::backendStoreProcedure('obtener_tipos_causas',array());
	
		return view($view)->with(compact('causas_judiciales','meses','visible','tipos_causas'));
	}

	public function filtrarCausasJudiciales(){
		return self::obtenerCausasJudiciales('legales/tabla_causas_judiciales');
	}

	public function visibleCausasJudiciales(){
		$id_juicio = Request::input('id_juicio');
		$usuario = Session::get("usuario")->user_id;

		$params = array($id_juicio,$usuario);
		$mensaje_visible = SQLConnection::backendStoreProcedure("backend_vigente_causas_judiciales",$params,'selectOne');
		
		$tabla_causas_judiciales = self::obtenerCausasJudiciales('legales/tabla_causas_judiciales');

		return json_encode(array('error'=>$mensaje_visible->error,'mensaje'=>$mensaje_visible->mensaje, 'tabla'=>$tabla_causas_judiciales->render() ));
	}

	public function altaCausasJudiciales(){
		$user_id = Session::get("usuario")->user_id;
		$accion = Request::input('accion');
		
		// Si es una ALTA, id_juicio = NULL 
		$id_juicio = ($accion == 'A') ? NULL : Request::input('id_juicio');

		// Preparo $params para la store procedure
		$params = array();
		$params["id_juicio"] = $id_juicio;
		$params["usuario"] = $user_id;
		foreach (\Input::except('_token','accion','meses','visible','id_juicio') as $key => $valor) {
			$params[$key] = $valor;
		}
		ksort($params);
		$params = array_values($params);

		$mensaje = SQLConnection::backendStoreProcedure("backend_alta_mod_causas_judiciales",$params,'selectOne');
		$tabla_causas_judiciales = self::obtenerCausasJudiciales('legales/tabla_causas_judiciales');
		return json_encode(array('error'=>$mensaje->error,'mensaje'=>$mensaje->mensaje, 'tabla'=>$tabla_causas_judiciales->render() ));
	}

	public function modalCausasJudiciales(){
		$id_juicio = Request::input('id_juicio');
		$causas_judiciales = SQLConnection::backendStoreProcedure("backend_causas_judiciales",array($id_juicio,NULL,NULL,NULL,NULL),'selectOne');
		$tipos_causas = SQLConnection::backendStoreProcedure("obtener_tipos_causas",array());
		return view('legales/modal_causas_judiciales')->with(compact('causas_judiciales','tipos_causas'));
	}


	/************************/
	/* Quiebras y concursos */
	/************************/

	public function obtenerConcursosQuiebras($view="legales/concursos_quiebras"){
		$razon_social = Session::get('nombre');
		$cuit = Session::get('cuit');
		$meses = Request::input('meses') or 6; 
		$visible = Request::input('visible') or 1;
		// preparo $razon_social para el CONTAINS()
		$razon_social = preg_replace("/[ \t]{2,}/", " ", trim($razon_social));
		$razon_social = '"*' . str_replace(' ', '*" NEAR "*', $razon_social) . '*"';

		$params = array(NULL,$razon_social,$cuit,$meses,$visible);
		$quiebras = SQLConnection::backendStoreProcedure("backend_concursos_quiebras",$params);
		$tipos_causas = SQLConnection::backendStoreProcedure('obtener_tipos_causas',array());
		return view($view)->with(compact('quiebras','meses','visible','tipos_causas'));
	}

	public function filtrarConcursosQuiebras(){
		return self::obtenerConcursosQuiebras('legales/tabla_concursos_quiebras');
	}

	public function visibleConcursosQuiebras(){
		$id_juicio = Request::input('id_juicio');
		$usuario = Session::get("usuario")->user_id;

		$params = array($id_juicio,$usuario);

		// uso la misma store de causas_judiciales porque la tabla es la misma = [Fidelitas].[juicios]
		$mensaje_visible = SQLConnection::backendStoreProcedure("backend_vigente_causas_judiciales",$params,'selectOne');
		
		$tabla_quiebras = self::obtenerConcursosQuiebras('legales/tabla_concursos_quiebras');

		return json_encode(array('error'=>$mensaje_visible->error,'mensaje'=>$mensaje_visible->mensaje, 'tabla'=>$tabla_quiebras->render() ));
	}

	public function altaConcursosQuiebras(){
		$user_id = Session::get("usuario")->user_id;
		$accion = Request::input('accion');
		
		// Si es una ALTA, id_juicio = NULL 
		$id_juicio = ($accion == 'A') ? NULL : Request::input('id_juicio');

		// Preparo $params para la store procedure
		$params = array();
		$params["id_juicio"] = $id_juicio;
		$params["usuario"] = $user_id;
		foreach (\Input::except('_token','accion','meses','visible','id_juicio') as $key => $valor) {
			$params[$key] = $valor;
		}
		ksort($params);
		$params = array_values($params);

		$mensaje = SQLConnection::backendStoreProcedure("backend_alta_mod_concursos_quiebras",$params,'selectOne');
		$tabla_quiebras = self::obtenerConcursosQuiebras('legales/tabla_concursos_quiebras');
		return json_encode(array('error'=>$mensaje->error,'mensaje'=>$mensaje->mensaje, 'tabla'=>$tabla_quiebras->render() ));
	}

	public function modalConcursosQuiebras(){
		$id_juicio = Request::input('id_juicio');
		$quiebras = SQLConnection::backendStoreProcedure("backend_concursos_quiebras",array($id_juicio,NULL,NULL,NULL,NULL),'selectOne');
		$tipos_causas = SQLConnection::backendStoreProcedure("obtener_tipos_causas",array());
		return view('legales/modal_concursos_quiebras')->with(compact('quiebras','tipos_causas'));
	}

/**************************************************/
/* Morosidad Comercial y/o Financiera							*/
/**************************************************/
	public function obtenerMorosidad(){
		$cuit = Session::get('cuit');
		$meses = 6;
		$visible = 1;

		$params = array($cuit,$meses,$visible);
		$morosidad = SQLConnection::backendStoreProcedure("backend_morosidad",$params,'select');
			
		self::$fuentes = SQLConnection::obtenerCodigos("obtener_Fuentes");
		$fuentes = self::$fuentes;
		
		self::$eventos_morosidad = SQLConnection::obtenerCodigos("obtener_Eventos_morosidad");
		$eventos_morosidad = self::$eventos_morosidad;
	  
		self::$eventos = SQLConnection::obtenerCodigos("obtener_Eventos_Deudas");
		$eventos = self::$eventos;
	  
		$params = array($cuit);

		$cancela_morosidad = SQLConnection::backendStoreProcedure("backend_morosidad_cancela",$params,'select');
				
		return view('legales/morosidad')->with(compact('morosidad','meses','visible','eventos_morosidad','fuentes','eventos','cancela_morosidad'));
	}

	public function filtrarMorosidad(){
		$cuit = Session::get('cuit');
		$meses = Request::input('meses');
		$visible = Request::input('visible');

		$params = array($cuit,$meses,$visible);
		$morosidad = SQLConnection::backendStoreProcedure("backend_morosidad",$params,'select');

		return view('legales/tabla_morosidad')->with(compact('morosidad','meses','visible'));
	}

	public function visibleMorosidad(){ 
		$id_morosidad= Request::input('id_morosidad');
		//print_r($id_morosidad); die(); 
		$visible_morosidad = SQLConnection::backendVisible($id_morosidad,'backend_visible_morosidad');
		return json_encode(array('error' => $visible_morosidad->error,'mensaje' => $visible_morosidad->mensaje)); 
	}

	public function altaModMorosidad(){
		$cuit 			= Session::get('cuit');

		$id_morosidad = Request::input('id_morosidad');
		$cau_codigo = Request::input('causa');
		$fecha 		  = Request::input('fecha');
		$codigo_ent = Request::input('entidad');
		$monto_original = Request::input('monto_original');
		$monto_act  = Request::input('monto_act');
		$observaciones 	= Request::input('observaciones');
		$id_persona = Session::get('id_padron');
		$usuario = Session::get("usuario")->user_id;

		$accion 		= Request::input('accion'); 
		$meses 			= Request::input('meses');
		$visible 		= Request::input('visible');

		if($accion == 'M'){
			self::visibleMorosidad();
		}	
		
		$params = array($cuit,$cau_codigo,$fecha,$codigo_ent,$monto_original,$monto_act,$observaciones,$id_persona,$usuario); 

		$mensaje_morosidad = SQLConnection::backendStoreProcedure("backend_alta_morosidad",$params,'selectOne');
		
		$params = array($cuit,$meses,$visible);
		$morosidad = SQLConnection::backendStoreProcedure("backend_morosidad",$params,'select');

		return json_encode(array('error' => $mensaje_morosidad->error,'mensaje' => $mensaje_morosidad->mensaje,
	 	'tabla' => view('legales/tabla_morosidad')->with(compact('morosidad','visible','meses'))->render()
	 	));

	}

	/**********************************/
	/* Cancelaciones Morosidad        */
	/**********************************/	

	public function cancelaMorosidad(){
		$cuit = Session::get('cuit');

		$params = array($cuit);
		$cancela_morosidad = SQLConnection::backendStoreProcedure("backend_morosidad_cancela",$params,'select');

	  $fuentes  = (self::$fuentes) ? self::$fuentes : SQLConnection::obtenerCodigos("obtener_Fuentes");
	  $eventos_morosidad  = (self::$eventos_morosidad) ? self::$eventos_morosidad : SQLConnection::obtenerCodigos("obtener_eventos_morosidad");
    $eventos  = (self::$eventos) ? self::$eventos : SQLConnection::obtenerCodigos("obtener_Eventos_Deudas");
		/*print_r($cancela_morosidad); 
		print_r($fuentes); 
		print_r($eventos); 
		die();*/ 
  	return view('legales/tabla_cancela_morosidad')->with(compact('cancela_morosidad','fuentes','eventos','eventos_morosidad'));
	}
	
	public function visibleCancelaMoros(){
		$id_morosidad_cancela = Request::input('id_morosidad_cancela');
		$visible_morosidad = SQLConnection::backendVisible($id_morosidad_cancela,'backend_visible_cancela_morosidad');
		return self::cancelaMorosidad();
	}

	public function altaCancelaMoros(){
		$cuit 			= Session::get('cuit');
		$can_entidad 	  = Request::input('can_entidad');
		$periodo_dde = Request::input('can_periodo_dde');
		$periodo_hta = Request::input('can_periodo_hta');
		$can_evento  = Request::input('can_evento');
		$can_fecha  = Request::input('can_fecha');
		$can_fuente  = Request::input('can_fuente');
		$can_fecha_fuente  = Request::input('can_fecha_fuente');
		$can_observaciones 	= Request::input('can_observaciones');
		$id_persona = Session::get('id_padron');
		$usuario = Session::get("usuario")->user_id;

		$params = array($cuit,$can_entidad,$periodo_dde,$periodo_hta,$can_evento,$can_fecha,$can_fuente,$can_fecha_fuente,$can_observaciones,$id_persona,$usuario);

		$can_mensaje = SQLConnection::backendStoreProcedure("backend_alta_morosidad_cancela",$params,'selectOne');
		$tabla = self::cancelaMorosidad();

		return json_encode(array('error' => $can_mensaje->error,'mensaje' => $can_mensaje->mensaje, 'tabla'=>$tabla->render()));

	}

	/* Funciones genericas */
	public function verificarExistenciaCuit(){
		$params = array(Request::input('cuit'));
		$store_procedure = "backend_verificar_existencia_cuit";
		$res = SQLConnection::backendStoreProcedure($store_procedure,$params,'selectOne');
		return json_encode($res);
	}

}