<?php namespace App\Http\Controllers; 

use App\Custom\SQLConnection;
use App\Custom\Misc;
use App\Custom\ScoringUtilities;
use Request;
use Session;
use DateTime;
use Illuminate\Support\Facades\Input;
use DB;
use App\Http\Controllers\ServiciosExternosController;
use Sunra\PhpSimple\HtmlDomParser;
use App\Http\Controllers\ApiControllerV1;
use Jenssegers\Mongodb\Schema\Blueprint;
// use Illuminate\Session\TokenMismatchException;

class MainController extends Controller {

  private static $amerita_situacion_1 = false;
  private static $cantidad_situacion_1 = 0;
  private static $cuit = '';
  private static $tiene_pdf = false;
  private static $observado = false;
  private static $sesion_externa = '';
  private static $suma_de_grupos = 0;
  private static $porcentaje_por_grupo_afectado_por_preferencias = 0;
  private static $score_contables = 0;
  private static $edad = 28;
  public static $hoja = '';

  public function buscadorPadronGenerico(){
  	$url = Request::input('url');
  	if ($url == '/led/auditoria-generica') { $titulo = 'CONSULTA AUDITORIA'; }
		return view('/buscador_padron_generico')->with(compact('url','titulo'));
  }
  

  public function obtenerBuscador(){
	$productos        = Session::get('usuario')->cliente;
	$user_id          = Session::get('usuario')->user_id;
	$id_cliente       = Session::get('usuario')->cliente["client_id"];
	$consumos         = Misc::obtenerConsumos($productos,env('ID_INFORME_COMERCIAL'));
	$lista_paises     = SQLConnection::obtenerPaises();
	$lista_provincias = SQLConnection::obtenerProvincias('54');
	$nombre           = Request::input('p');
	$falta_data       = self::obtenerDatosPerfil($user_id);
	$productos_ids    = self::obtenerIdProductosCliente($id_cliente,'S','S');
	$monitoreo = 0;

	foreach ($productos_ids as $key => $value) {
	  if ($value == 16) {
		$monitoreo = 1;
	  } 
	}
	return view('informes/buscador')->with(compact('lista_paises','lista_provincias','consumos','nombre','falta_data','productos_ids','monitoreo'));
  }

  public static function obtenerResultadoPadronAutocomplete(){
	$todos_los_paises = false;
	$cms              = false;
	if(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')]->client_id == 3920694){
	  $cms = true;
	}
	if($cms === false){

	  $input_autocomplete = Request::input('input_autocomplete');
	  //$input_autocomplete = str_replace("-","",$input_autocomplete);
	  //$input_autocomplete = Misc::parsearBusquedaPadron($input_autocomplete);
	  if(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')]->client_id == 2254875){
		$todos_los_paises = true;
	  }
	  return SQLConnection::busquedaPadronAutocomplete($input_autocomplete,$todos_los_paises);
	}else{
	  $input_autocomplete = Request::input('input_autocomplete');
	  //$input_autocomplete = Misc::parsearBusquedaPadron($input_autocomplete);
   
	  return SQLConnection::busquedaPadronAutocompleteCMS($input_autocomplete,$todos_los_paises);
	}
  }
  
  public static function obtenerResultadoPadron($input_autocomplete="",$tipo_persona=''){
	$todos_los_paises   = false;
	$input_autocomplete = ($input_autocomplete != "") ? $input_autocomplete : Request::input('input_autocomplete');
	//$input_autocomplete = str_replace("-", "", $input_autocomplete);
	//$input_autocomplete = Misc::parsearBusquedaPadron($input_autocomplete);
	

	if(isset(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')])){
	  if(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')]->client_id == 2254875){
		$todos_los_paises = true;
	  }
	}
	  return SQLConnection::busquedaPadron($input_autocomplete,$todos_los_paises,$tipo_persona);
  }

  public static function obtenerResultadoPadronAvanzado(){
	$razon_social_avanzado  = Request::input('razon_social_avanzado');
	$fisica_juridica        = Request::input('select_fisica_juridica');
	$pais                   = Request::input('select_pais');
	$provincia              = Request::input('select_provincia');
	$edad                   = Request::input('select_rango');
	$genero                 = Request::input('select_genero');
	$condicion_fiscal       = Request::input('select_condicion');
	$actividad_economica    = Request::input('select_actividad');
	$tipo_persona           = Request::input('select_fisica_juridica');
	if ($tipo_persona == 'j') {
	  $actividad_economica = null;
	}

	$resultado_avanzado     = SQLConnection::obtenerPadronAvanzado($razon_social_avanzado,$fisica_juridica,$pais,$provincia,$edad,$genero,$condicion_fiscal,$actividad_economica,$tipo_persona); 

	$vista = \View::make('tablasgenerales/tabla_resultado_padron_avanzado')->with(compact('resultado_avanzado'))->render();
	return $vista;
	/*  
	return \Response::json(
	  array(
		'view' => $vista
	  ), 200, [], JSON_NUMERIC_CHECK);  
	*/
  }

  public function obtenerRegistroActividad(){
	$user_id            = Session::get('usuario')->user_id;
	$id_cliente         = Session::get('usuario')->cliente["client_id"];
	$registro_actividad = SQLConnection::obtenerRegistroActividad($user_id,$id_cliente);
	$productos_ids      = self::obtenerIdProductosCliente($id_cliente,'S','S');
	$monitoreo = 0;
	foreach ($productos_ids as $key => $value) {
	  if ($value == 16) {
		$monitoreo = 1;
	  }
	} 

	return view('informes/registro_actividad')->with(compact('registro_actividad','monitoreo'));
  }

  public function obtenerRegistroConsumos(){
	$user_id    = Session::get('usuario')->user_id;
	$id_cliente     = Session::get('usuario')->cliente["client_id"];
	$productos_ids        = self::obtenerIdProductosCliente($id_cliente,'S','S');

	$monitoreo = 0;
	foreach ($productos_ids as $key => $value) {
	  if ($value == 16) {
		$monitoreo = 1;
	  }
	}

	return view('informes/registro_consumos')->with(compact('monitoreo'))->render();
  }
  
  public function filtrarRegistroConsumos(){
	$fecha_desde = Request::input('fecha_desde_con');
	$fecha_hasta = Request::input('fecha_hasta_con');
	$user_id   = Session::get('usuario')->user_id;
	$id_cliente  = Session::get('usuario')->cliente["client_id"];
	$producto    = env('ID_INFORME_COMERCIAL');
	
	if ($fecha_desde == '') { $fecha_desde = ' ';}
	if ($fecha_hasta == '') { $fecha_hasta = ' ';}
	$fecha_desde_dmy = substr($fecha_desde, 8, 2) . "/" . substr($fecha_desde, 5, 2) . "/" . substr($fecha_desde, 0, 4);
	$fecha_hasta_dmy = substr($fecha_hasta, 8, 2) . "/" . substr($fecha_hasta, 5, 2) . "/" . substr($fecha_hasta, 0, 4);

	//$id_cliente = '460960454';
	$tipo = 'C'; // ve las consultas de todo el cliente
	if ($id_cliente == '592432729') {  
	  $tipo = 'U'; // ve las consultas solo del username
	}
	/*
	if ($id_cliente == '460960454') { 
		$tipo = 'F'; // ve todas las consultas de todos los clientes unificados en la facturacion
	}
	*/
	$union = 0; 
	$union = DB::selectOne("SELECT top 1 cliente from clientes_union where cliente_union = " . $id_cliente);
	$tipo = 'C'; // ve las consultas de todo el cliente
	if (isset($union)) 
	{ 
		$tipo = 'F'; // ve todas las consultas de todos los clientes unificados en la facturacion
	}

	$registros  = SQLConnection::obtenerRegistroConsumos($id_cliente,$user_id,$fecha_desde,$fecha_hasta,$producto,$tipo);

	$totales = [] ; 
	$total_gral = 0;
	foreach ($registros as $registro) {
		$total_gral += 1; 
		if (isset($totales[$registro->username])) {
			$totales[$registro->username] += 1;
		}
		else
		{
			$totales[$registro->username] = 1;
		}
	}
	//print_r($totales); die(); 
	return view('informes/tabla_registro_consumos')->with(compact('registros','totales','total_gral','fecha_desde_dmy','fecha_hasta_dmy')); 
  }



  
  public static function busquedaPadron(){
	$dni              = Request::input('dni');
	$cuit             = Request::input('cuit');
	$razon_social     = Request::input('razon_social');
	$todos_los_paises = false;
	if(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')]->client_id == 2254875){
	  $todos_los_paises = true;
	} 
	return SQLConnection::busquedaPadronAutocomplete($cuit.$dni.$razon_social,$todos_los_paises);
  }
  
  public function test(){
	return file_put_contents("reconocimiento.txt", "test");
  }

  
  public function obtenerCompacto($version_sabana = false, $secciones_sabana = []){
	$servicio_actual  = Session::get('servicio_actual') ?? 0;
	/* 08/10/2020 Vuelve a ver si no llego al limite, por si es el mismo momento otro esta consultando... */
	if ($servicio_actual == env('ID_INFORME_COMERCIAL')) 
	{
		$productos        = Session::get('usuario')->cliente;
		$consumos = Misc::obtenerConsumos($productos,env('ID_INFORME_COMERCIAL'));
		if ($consumos['error'] == '1') {
			$mensaje = $consumos['mensaje']; 
			if ($mensaje == NULL) 
				{
					$mensaje = 'No se permite el acceso a esta consulta'; 
				}
			$mensaje .= ', por favor contactese con el area comercial de Fidelitas al +54 11 5254 9950'; 
			return View('informes/no_permitir')->with(compact('mensaje'));
		}
	}
	/* Fin 08/10/2020 */ 

	/*if ($servicio_actual == '12')  // Informe Comercial 
	{ 
		$incluye_balance = 1; 
	}
	else 
	{
		$incluye_balance = Request::input('incluye_balance') ?? 1; 
	} */
	
	// Si viene por parametro toma el del parametro, sino 1 
	$incluye_balance = Request::input('incluye_balance') ?? 1; 

	Session::put('incluye_balance',$incluye_balance);

	if ($version_sabana == false) {
		$cliente_login = Request::input('cliente_login') ?? 0; 
		Session::put('cliente_login',$cliente_login);
	} else {
		$cliente_login = Session::get('cliente_login');
	}

	$mostrar_homonimos = true;
	$incluir_homonimos_impresion = Request::input('incluir_homonimos_impresion');
	if (isset(Session::get('usuario')->preferencias->incluir_homonimos) && (!(Session::get('usuario')->preferencias->incluir_homonimos))) {
	  $mostrar_homonimos = false;
	} elseif(isset($incluir_homonimos_impresion)) {
	  $mostrar_homonimos = ($incluir_homonimos_impresion == 'on');
	} 
	$cuit                 = Request::input('cuit');
	$nc                   = Request::input('nc');
	$razon_social         = Request::input('rs');
	$razon_social         = str_replace('#', 'ñ', $razon_social);
	$idp                  = Request::input('idp');
	$token                = Request::input('_token');
	$token_por_secciones  = Request::input('token_por_secciones');
	$token_por_secciones  = json_decode(Misc::decrypt($token_por_secciones));
	$token_id_usuario     = Request::input('token_id_usuario');
	$token_id_usuario     = json_decode(Misc::decrypt($token_id_usuario));
	$usuario              = Session::get('usuario');
	$monitoreo            = 0;
	$cliente              = '';
	self::$sesion_externa = isset($token_por_secciones->usuario->sesion_externa) ? true : false;
	$comentarios = [];
	//
	if(self::$sesion_externa){
	  $cliente = '2254875';
	  $token_por_secciones->usuario->cliente = get_object_vars($token_por_secciones->usuario->cliente);
	  //$token_por_secciones->usuario->cliente['client_id'] = $token_por_secciones->usuario->client_id;
	  $token_por_secciones->usuario->cliente['client_id'] = $cliente; 
	  $token_por_secciones->user_id = 15342812;
	  /* agregado por marita 23/10/2018 (no andaba para usuarios externos) */
	  $token_por_secciones->user_id = 15342812;
	  $usuario                    = $token_por_secciones->usuario; 
	  $usuario->cliente['client_id'] = $cliente;
	  $usuario->user_id = 15342812;
	  if (!isset($usuario->cliente[ENV('ID_INFORME_COMERCIAL')]) && 
		  isset($usuario->cliente['_empty_'])){
		  $usuario->cliente[ENV('ID_INFORME_COMERCIAL')] = $usuario->cliente['_empty_'] ; 
	  }
	  Session::put('usuario',$usuario);
	  Session::put('externo',true);
	  Session::save(); 

	}
	else if(!isset($token_id_usuario)) 
		{
		$token_id_usuario = $this->obtenerParametrosInformeComercialTodos();
		$secciones = $token_id_usuario->usuario->cliente[ENV('ID_INFORME_COMERCIAL')]->secciones; 
		$secciones_en_mantenimiento = [];
		$datos_cliente  = SQLConnection::obtenerCliente($token_id_usuario->user_id);
		$cliente_ordenado = [];   
		foreach($datos_cliente as $cliente){
			$cliente_ordenado[$cliente->id_producto] = $cliente;
		}
		//$token_id_usuario->usuario->cliente = get_object_vars($token_id_usuario->usuario->cliente);
		$token_id_usuario->usuario->cliente[ENV('ID_INFORME_COMERCIAL')]->secciones = $secciones;
		$cliente                    = $token_id_usuario->usuario->cliente[ENV('ID_INFORME_COMERCIAL')]->client_id;
		$secciones_en_mantenimiento = [];
		$usuario                    = $token_id_usuario->usuario;
		$usuario->cliente['client_id'] = $cliente;
		}
	else if($token_id_usuario){
		$datos_cliente  = SQLConnection::obtenerCliente($token_id_usuario->user_id);
		$secciones      = LoginController::obtenerSeccionesHabilitadas($token_id_usuario->user_id);
		$secciones      = array_change_key_case($secciones, CASE_LOWER);
		$cliente_ordenado = [];   
		foreach($datos_cliente as $cliente){
		$cliente_ordenado[$cliente->id_producto] = $cliente;
		}
		$token_id_usuario->usuario->cliente = get_object_vars($token_id_usuario->usuario->cliente);
		$token_id_usuario->usuario->cliente[ENV('ID_INFORME_COMERCIAL')]->secciones = $secciones;
		$cliente                    = $token_id_usuario->usuario->cliente[ENV('ID_INFORME_COMERCIAL')]->client_id;
		$secciones_en_mantenimiento = [];
		$usuario                    = $token_id_usuario->usuario;
		$usuario->cliente['client_id'] = $cliente;
		// MODIFICACION 26/05/2022 
		/* $productos_usuario = SQLConnection::backendStoreProcedure('login_info', array('obtener_productos_usuario',$token_id_usuario->user_id));
		if ( sizeof($productos_usuario) > 0 ){
			$servicio_actual = $productos_usuario[0]->id_producto; 
			$servicio_actual_nombre = $productos_usuario[0]->nombre_producto; 
			$usuario->servicios = $productos_usuario;
			//
			Session::put('servicio_actual',$servicio_actual);
            Session::put('servicio_actual_nombre',$servicio_actual_nombre);
		} */
		// FIN DE LA MODIFICACION
		Session::put('usuario',$usuario);
		Session::put('externo',true);
		Session::save(); 
	}
	else{
		$cliente            = $usuario->cliente['client_id'];
		$comentarios        = SQLConnection::obtenerComentario($cuit,$cliente);  
	}

	$comentarios          = SQLConnection::obtenerComentario($cuit,$cliente);
	$num_comentarios      = count($comentarios);
	$productos_ids        = self::obtenerIdProductosCliente($cliente,'S','S');
	$idp                  = SQLConnection::obtenerIdPadron($cuit);
	$idp = $idp->id_padron;
	$usuario = Session::get('usuario');
	$productos_especiales = SQLConnection::backendStoreProcedure('obtener_productos_usuario', array($usuario->user_id), false);
	if(!empty($productos_especiales)){ 
	  $usuario->productos_especiales = $productos_especiales;
	  Session::put('usuario',$usuario);
	}
	if($version_sabana == false){
	  $version_sabana = 0;
	}else{
	  $json = false;
	  $version_sabana = 1;
	}

	foreach ($productos_ids as $key => $value) {
	  if ($value == 16) {
		$monitoreo = 1;
	  }
	  
	}

	
   // if(!$razon_social || $razon_social == 'null'){
	  $razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
	  $nc = $razon_social . ' ' . $cuit;
   // }

	if($token_por_secciones){

	  $secciones = [];
	  $secciones_habilitadas    = LoginController::obtenerSeccionesHabilitadas($token_por_secciones->user_id);

	  foreach($secciones_habilitadas as $key=> $sh ){
		if($token_por_secciones->secciones == strtolower($sh->nombre_seccion) ){
		  $secciones[$key] = $sh; 
		}
	  }

	  $secciones      = array_change_key_case($secciones, CASE_LOWER);
	  $secciones_en_mantenimiento = [];
	  $usuario                    = $token_por_secciones->usuario;
	  $usuario->cliente[ENV('ID_INFORME_COMERCIAL')]->secciones = $secciones;
	  $secciones_en_mantenimiento = SQLConnection::obtenerSeccionesEnMantenimientoUsuarioCuit($token_por_secciones->user_id,$cuit);
	  
	  Session::put('usuario',$usuario);
	  Session::put('externo',true);
	  Session::save();   
	}else{
	  $id_usuario                 = Session::get('usuario')->user_id;
	  $secciones_en_mantenimiento = SQLConnection::obtenerSeccionesEnMantenimientoUsuarioCuit($id_usuario,$cuit);
	  $secciones                  = Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->secciones;
	}
	
	/*
	foreach ($secciones_en_mantenimiento as $key => $value) {
	  if($value->seccion_mantenimiento == "9" || $value->seccion_mantenimiento == "10" || $value->seccion_mantenimiento == "99"){
		$secciones_en_mantenimiento[$key] = $value->seccion_mantenimiento;
	  }else{
		unset($secciones_en_mantenimiento[$key]); 
	  }
	}
	*/
	foreach ($secciones_en_mantenimiento as $key => $value) {
	  $secciones_en_mantenimiento[$key] = $value->seccion_mantenimiento;
	}
	
	if(
	  isset($secciones['fuentes_externas']->nombre_seccion) && $secciones['fuentes_externas']->nombre_seccion == 'fuentes_externas' ||
	  isset($secciones['otras_fuentes']->nombre_seccion) && $secciones['otras_fuentes']->nombre_seccion == 'otras_fuentes'
	  ){
	  $secciones['fuentes_externas']->nombre_seccion = 'Otras Fuentes';
	}
	//$secciones_monitoreo = $secciones;
	$secciones_monitoreo          = SQLConnection::obtenerSeccionesMantenimiento($cliente);
	unset($secciones_monitoreo['fuentes_externas']);
	return View('informes/compacto')->with(compact('nc','cuit','token','idp','razon_social','secciones','secciones_en_mantenimiento','secciones_monitoreo','num_comentarios','monitoreo','version_sabana','secciones_sabana', 'mostrar_homonimos'));
  }
  
  public function obtenerVistaMarcas($json = true){
  	$imagen_fidelitas = Misc::obtenerImagenFidelitas();
		$cuit             = Request::input('cuit');

		/* 07/10/2021: para poder llamarlo desde led */

		$es_led = false; 
		$id = Request::input('contraparte') ?? null;
		if (!$cuit)
		{
			$qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
			$cuit = $qcontrap->identificacion ?? null;
			$json = false; 
			$es_led = true; 
		}
		
		$datos_generales  = SQLConnection::obtenerDatosGenerales($cuit);
		$marcas =  $this->obtenerMarcas();
		foreach($datos_generales as $datos){
		  if($datos->titulo == 'MARCAS, PATENTES Y LICENCIAS'){
			$datos->titulo = 'MPL';
	  	}
			$datos_generales_ordenados[$datos->titulo][] = $datos;
		}

		if (isset($datos_generales_ordenados)) {
	  	$datos_generales = $datos_generales_ordenados;
		} else{
		  $datos_generales = '';
		}

		//------
		$misc_truncate    = '\App\Custom\Misc::truncate';
		//------

		$vista = \View::make('informes/marcas')->with(compact( 'datos_generales','marcas','json','misc_truncate'))->render();
	  if(!$json){
	   return $vista;
		}
		return $vista;

	}

  	public function obtenerComerciales($json = true){
		$imagen_fidelitas = Misc::obtenerImagenFidelitas();
		$cuit             = Request::input('cuit');
		/* 07/10/2021: para poder llamarlo desde led */

		$es_led = false; 
		$id = Request::input('contraparte') ?? null;
		if (!$cuit){
			$qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
			$cuit = $qcontrap->identificacion ?? null;
			$json = false; 
			$es_led = true; 
		}
		//
		$consultas_ramos  = SQLConnection::obtenerConsultasPorRamos($cuit);
		$seguros          = SQLConnection::backendSeguros($cuit);
		$datos_generales  = SQLConnection::obtenerDatosGenerales($cuit);
		$misc_truncate    = '\App\Custom\Misc::truncate';
		$marcas =  $this->obtenerMarcas();
		//
		foreach($datos_generales as $datos){
			if($datos->titulo == 'MARCAS, PATENTES Y LICENCIAS'){
				$datos->titulo = 'MPL';
			}
			$datos_generales_ordenados[$datos->titulo][] = $datos;
		}

		if (isset($datos_generales_ordenados)) {
			$datos_generales = $datos_generales_ordenados;
		} else {
			$datos_generales = '';
		}
		//
		$consultas = [];
		$ramo = "";
		if($consultas_ramos){
			foreach($consultas_ramos as $consulta){
				$consultas[$consulta->descripcion][$consulta->antiguedad] = $consulta->cantidad;
			}
			foreach($consultas as $key => $consulta){
				if(!isset($consultas[$key]['entre_0_1'])){
					$consultas[$key]['entre_0_1'] = 0;
				}
				if(!isset($consultas[$key]['entre_1_2'])){
					$consultas[$key]['entre_1_2'] = 0;
				}
				if(!isset($consultas[$key]['entre_2_5'])){
					$consultas[$key]['entre_2_5'] = 0;
				}
				ksort($consultas[$key]);
			}

		} 
		//$enviar_mail = '\App\Custom\Misc::enviarMail';
		$vista = \View::make('informes/comerciales')->with(compact('consultas','seguros','datos_generales','marcas','misc_truncate','json','es_led'))->render();
		//Session::put($cuit." ".date('Y-m-d').".comerciales",json_encode($vista));
		if(!$json){
		return $vista;
		}
		/*
		if(!$json){
		return \View::make('informes/comerciales')->with(compact('consultas'))->render();
		}*/
		return \Response::json(
			array(
			'view' => $vista,
			'info' => compact('seguros','datos_generales','consultas','marcas','imagen_fidelitas')
			)
		, 200, [], JSON_NUMERIC_CHECK);
  	}

  public static function obtenerConstanciaPDF($json = true){
	$cuit               = Request::input('cuit');
	$link_pdf = env('AFIP_URL_COMPARTIDO_PEGAR').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.pdf';
	if(!file_exists($link_pdf)){
		return \Response::make('', 200, [
	  'Content-Type' => 'application/pdf',
	  'Content-Disposition' => 'inline; filename="constancia.pdf"'
	]);
	}
	return \Response::make(file_get_contents($link_pdf), 200, [
	  'Content-Type' => 'application/pdf',
	  'Content-Disposition' => 'inline; filename="constancia.pdf"'
	]);
  }

  public function obtenerFiscales($json = true,$pdf_inscripcion = ''){
	$imagen_fidelitas             = Misc::obtenerImagenFidelitas();
	$cuit                         = Request::input('cuit');
	$id_padron                    = Request::input('idp');

	/* 07/10/2021: para poder llamarlo desde led */
	$es_led = false; 
	$id = Request::input('contraparte') ?? null;
	if (!$cuit)
	{
		$qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
		$cuit = $qcontrap->identificacion ?? null;
		$json = false; 
		$es_led = true; 
	}

	if ( $cuit == '30532136934' ){
		$id_padron = '1629071';
	}

	if(!$id_padron){
		$idp       = SQLConnection::obtenerIdPadron($cuit);
		$id_padron = $idp->id_padron;
	}
	//
	$inscripciones                = SQLConnection::obtenerInscripciones($cuit);
	$arba                         = SQLConnection::obtenerArba($cuit);
	$claes                        = SQLConnection::obtenerClae($cuit);
	$sircreb                      = SQLConnection::obtenerSircreb($cuit);
	
	$fuentes_procesadas           = SQLConnection::obtenerUltimoPeriodoProcesado("sircreb");
	//$fuentes_procesadas='2017-06-30';

	$padron_impuestos             = SQLConnection::obtenerPadronImpuestos($id_padron);
	$padron_actividades           = SQLConnection::obtenerPadronActividades($id_padron);
	$padron_caracterizaciones     = SQLConnection::obtenerPadronCaracterizaciones($id_padron);
	$obtener_domicilios           = SQLConnection::obtenerDomicilios($cuit);
	$domicilios                   = new \stdClass;
	$domicilios->domicilio_fiscal = '';
	$tipo_persona                 = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
	
	/*var_dump($cuit);die();
	var_dump(DB::selectOne('EXEC dbo.obtener_razon_social ?', array($cuit)));die();
*/

	$razon_social                 = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
	$defuncion                    = SQLConnection::obtenerDefuncion($cuit);
	//
	foreach ($padron_impuestos as $key => $value) {
		if (isset($value->fecha_inscripcion)) {
			$value->fecha_inscripcion = Misc::convertirFormatoFecha($value->fecha_inscripcion,'Y-m-d','d/m/Y');
		} else {
			$value->fecha_inscripcion = '';
		}
	}
  
	foreach($obtener_domicilios as  $domicilio){
	  //if($domicilio->tipo_domicilio == 'F'){
	  	if(strpos($domicilio->tipo_domicilio, 'F') !== false){
			if($domicilio->domicilio !=''){
		  		$domicilios->domicilio_fiscal = Misc::armarDomicilio($domicilio->domicilio,$domicilio->codpos,$domicilio->loc_nombre,$domicilio->prv_nombre,$domicilio->pai_nombre);
		  		break; 
			} else {
		  		$domicilios->domicilio_fiscal = '';
			}
	  	}
	}
	//
	$fiscal_sircreb = array();

	if($sircreb){
	  	// Estableciendo las fechas correctas
	  	foreach($sircreb as $key => $info){
			$sircreb[$key]->fecha_publicacion = Misc::convertDate($info->fecha_publicacion,'d/m/Y');
			$sircreb[$key]->vigencia_hasta    = Misc::convertDate($info->vigencia_hasta,'d/m/Y');
			$sircreb[$key]->vigencia_desde    = Misc::convertDate($info->vigencia_desde,'d/m/Y');
	  	}
		$anio_actual = date("Y");
		$mes_actual = date("n");
		$fiscal_sircreb_anios = array();
		$fiscal_trimestres = array(
			0 => array(1,2,3),
			1 => array(4,5,6),
			2 => array(7,8,9),
			3 => array(10,11,12),
		);
	  	// Recorriendo fechas 
	  	foreach($sircreb as $key => $value) { 
			//$fiscal_mes  = substr($value->fecha_publicacion, 3,2);
			//$fiscal_anio = substr($value->fecha_publicacion, 6,4);
			$fiscal_mes  = substr($value->vigencia_desde, 3,2);
			$fiscal_mes = (int)$fiscal_mes;
			$fiscal_anio = substr($value->vigencia_desde, 6,4);
			$fiscal_anio = (int)$fiscal_anio;
			// Años fiscales desde/hasta
			if($key == 0) {
				$diferencia_anios = $anio_actual - $fiscal_anio;

				for($x=0; $x <= $diferencia_anios; $x++) {
					$nuevo_anio = $fiscal_anio + $x;
					$fiscal_sircreb_anios[$nuevo_anio] = $nuevo_anio;
				}
			}
			// Estableciendo Trimestres
			foreach($fiscal_trimestres as $key2 => $trimestre) {
				foreach($trimestre as $value_trimestre){
					if($fiscal_mes == $value_trimestre) {
						$fiscal_sircreb[$fiscal_anio][$key2] = "Riesgo Fiscal";
					} else {
						if(!isset($fiscal_sircreb[$fiscal_anio][$key2])){
							$fiscal_sircreb[$fiscal_anio][$key2] = "-";
						}
					}
				}
			}
	  	}
		if($fuentes_procesadas) {
			$fuentes_procesadas   = Misc::convertDate($fuentes_procesadas,'d/m/Y');
			$mes_fuente_procesada = substr($fuentes_procesadas, 3,2);
	  	}
		// Estableciendo los años/trimestres completos
		foreach($fiscal_sircreb_anios as $anio) {
			if(!isset($fiscal_sircreb[$anio])) {
				foreach($fiscal_trimestres as $key => $trimestre) {
					foreach($trimestre as $value_trimestre) {
						// Evaluando si existe registro fiscal en el año que esta transcurriendo
						if(($anio_actual == $anio) && ($value_trimestre >= $mes_actual)) {
							if((isset($mes_fuente_procesada)) && ($value_trimestre == $mes_fuente_procesada)) {
								$fiscal_sircreb[$anio][$key] = "-";
							}else{
								$fiscal_sircreb[$anio][$key] = "";
							}
						} else{
							$fiscal_sircreb[$anio][$key] = "-";
						}
					}
				}
			}
		}
	  	ksort($fiscal_sircreb);
	}

	
	/*
	if($claes){
	  foreach($claes as $clae){
		if($clae->fecha_inicio_actividad){
		$fecha_inicio_actividad =  $clae->fecha_inicio_actividad;
		}
	  }
	}
	*/

	$link_pdf       = env('AFIP_URL_COMPARTIDO_PEGAR').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.png';
	$link_pdf_vista = env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.png';
	$pdf_disponible = false;
	$texto_pdf = '';
	
	if ( empty($pdf_inscripcion)  ){
		$link_pdf       = env('AFIP_URL_COMPARTIDO_PEGAR').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.png';
		$link_pdf_vista = env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.png';
		if( file_exists($link_pdf) ) {
			$pdf_inscripcion = $link_pdf_vista;
		}

	}
	
	if(file_exists($link_pdf) && (filesize($link_pdf) > 3000)) {
	  	$pdf_disponible = true;
	} else {
	  	$exec = SQLConnection::backendStoreProcedure('afip_texto_sin_constancia', array($id_padron), true);
	  	$texto_pdf = ($exec->texto_constancia) ?? '';
	}

	$apocrifas = SQLConnection::backendStoreProcedure('obtener_apocrifas', array($cuit), false);


    if (isset($inscripciones->empleador) && $inscripciones->empleador == 'SI')
    {
       $tipo_aportes = 'j';
	   $aportes = SQLConnection::backendStoreProcedure('mis_aportes_empresa', array($cuit), false);	 
    }
	else 
	{
		$tipo_aportes = $tipo_persona; 
		$aportes = ($tipo_persona == 'f') ? SQLConnection::backendStoreProcedure('backend_mis_aportes', array($cuit, NULL, 12, 1), false) : SQLConnection::backendStoreProcedure('mis_aportes_empresa', array($cuit), false);
	}

	$misaportes = [];
	if($tipo_aportes == 'f' ) {   
	  	foreach ($aportes as $x => $aporte) {
			$misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['ddjj'] = $aporte->ddjj;
		  	$misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['aportes_os'] = $aporte->aportes_os;
		  	$misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['aportes_ss'] = $aporte->aportes_ss;
		  	$misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['contr_patronal'] = $aporte->contr_patronal;
	  	}
	} else {
	  	foreach ($aportes as $x => $aporte) {
			/*
			$misaportes[$aporte->periodo_str]['ddjj'] = $aporte->ddjj;
			$misaportes[$aporte->periodo_str]['aportes_os'] = $aporte->aportes_os;
			$misaportes[$aporte->periodo_str]['aportes_ss'] = $aporte->aportes_ss;
			$misaportes[$aporte->periodo_str]['contr_patronal'] = $aporte->contr_patronal;
			*/
			/*
			Si hay distintos en el mismo periodo gana el mayor 
			tomando este orden
			IMPAGO
			PAGO PARCIAL 
			PAGO (lo pasamos como PAGO TOTAL para que la comparacion de < haga el ordenamiento que queremos (pago total > pago parcial), despues lo volvemos a poner como PAGO)
			*/ 
			if ($aporte->ddjj == 'PAGO') {
				$aporte->ddjj = 'PAGO TOTAL'; 
			} 
		  	if (!isset($misaportes[$aporte->periodo_str]['ddjj']) || $misaportes[$aporte->periodo_str]['ddjj'] < $aporte->ddjj){
		  		$misaportes[$aporte->periodo_str]['ddjj'] = $aporte->ddjj;
		  	}
		  	if ($aporte->aportes_os == 'PAGO') { 
				$aporte->aportes_os = 'PAGO TOTAL'; 
			} 
		  	if (!isset($misaportes[$aporte->periodo_str]['aportes_os']) || $misaportes[$aporte->periodo_str]['aportes_os'] < $aporte->aportes_os){
		  		$misaportes[$aporte->periodo_str]['aportes_os'] = $aporte->aportes_os;
		  	}
		  	if ($aporte->aportes_ss == 'PAGO') { 
				$aporte->aportes_ss = 'PAGO TOTAL'; 
			} 
		  	if (!isset($misaportes[$aporte->periodo_str]['aportes_ss']) || $misaportes[$aporte->periodo_str]['aportes_ss'] < $aporte->aportes_ss){
		  		$misaportes[$aporte->periodo_str]['aportes_ss'] = $aporte->aportes_ss;
		  	}

		  	if ($aporte->contr_patronal == 'PAGO') {
				$aporte->contr_patronal = 'PAGO TOTAL'; 
			} 
		  	if (!isset($misaportes[$aporte->periodo_str]['contr_patronal']) || $misaportes[$aporte->periodo_str]['contr_patronal'] < $aporte->contr_patronal){
		  		$misaportes[$aporte->periodo_str]['contr_patronal'] = $aporte->contr_patronal;
		  	}
	  	}

	  foreach ($misaportes as $x => $aporte) {
		foreach ($aporte as $z => $ap) {
		  if ($ap == 'PAGO TOTAL')
		  { $misaportes[$x][$z] = 'PAGO';}
		}
	  }  


	}
	$repsal = SQLConnection::backendStoreProcedure('Repsal_BuscarPorCuit', array($cuit));

	/*$aporteshtml = (sizeof($misaportes) > 0) ? utf8_decode(Misc::decrypt($misaportes[0]->source_html)) : NULL;*/
	
	//$vista = \View::make('informes/fiscales')->with(compact('inscripciones','arba','claes','fecha_inicio_actividad','datos_generales','sircreb','domicilios', 'fiscal_sircreb','pdf_disponible','padron_impuestos','padron_actividades','padron_caracterizaciones','tipo_persona','razon_social','defuncion', 'texto_pdf','pdf_inscripcion','link_pdf_vista', 'apocrifas', 'misaportes'))->render();
	$vista = \View::make('informes/fiscales')->with(compact('inscripciones','arba','claes','sircreb','domicilios', 'fiscal_sircreb','pdf_disponible','padron_impuestos','padron_actividades','padron_caracterizaciones','tipo_persona','razon_social','defuncion', 'texto_pdf','pdf_inscripcion','link_pdf_vista', 'apocrifas', 'misaportes','tipo_aportes','repsal'))->render();
	//Session::put($cuit." ".date('Y-m-d').".fiscales",json_encode($vista));
	if(!$json){
	   return $vista;
	}
	
	return \Response::json(
	  array(
		'view' => $vista,
		'info'=>['pdf_disponible' => $pdf_disponible],
		'info_varios'=>compact('domicilios','inscripciones','padron_impuestos','padron_actividades','padron_caracterizaciones','fiscal_sircreb','arba','pdf_disponible','defuncion','imagen_fidelitas','link_pdf_vista', 'apocrifas', 'misaportes','tipo_aportes')
	  )
	, 200, [], JSON_NUMERIC_CHECK);
  }

  	public static function obtenerFormales($json=true){
		$imagen_fidelitas   = Misc::obtenerImagenFidelitas(); 
		$cuit               = Request::input('cuit') ?? null;
		$id_padron          = Request::input('idp') ?? null;
		// 07/10/2021: para poder llamarlo desde led 
		$es_led = false; 
		$id = Request::input('contraparte') ?? null;
		if (!$cuit){
			$qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
			$cuit = $qcontrap->identificacion ?? null;
			$json = false; 
			$es_led = true; 
		}
		//
		/*if ( $cuit == '30532136934' ){
			$id_padron = '1629071';
		}*/
		if(!$id_padron){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		//
		$fisica_juridica = Misc::tipoPersona($cuit); 
		$persona_fisica = ($fisica_juridica == 'F') ? true : false;
		$persona            = [];
		$sociedades         = [];
		$empleado_de        = [];
		$empleados          = [];
		$defuncion          = [];
		//$razon_social       = (isset(SQLConnection::obtenerRazonSocial($cuit)->nombre_persona)) ? SQLConnection::obtenerRazonSocial($cuit)->nombre_persona : 'FARMACIA MANES S. C. S.';
		$razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		$usuario            = Session::get('usuario');
		$cliente            = $usuario->cliente['client_id'];     
		$comentarios        = SQLConnection::obtenerComentario($cuit,$cliente);
		$inscripciones      = SQLConnection::obtenerInscripciones($cuit);
		$padron_actividades = SQLConnection::obtenerPadronActividades($cuit);
		if(!$persona_fisica){
		$nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
		$empleados      = SQLConnection::obtenerEmpleados($cuit);
		$sociedades     = SQLConnection::obtenerSociedades($cuit);
		} else {
		$dni            = (int)substr($cuit, 2,-1);
		$defuncion      = SQLConnection::obtenerDefuncion($cuit);
		$persona        = SQLConnection::obtenerPersona($cuit); 
		$empleado_de    = SQLConnection::obtenerEmpleadoDe($cuit);
		$persona->edad  = '';
			if(!empty($persona->fecha_nacimiento)){
				$edad = Misc::calcularEdad($persona->fecha_nacimiento);
				if($edad){
					$persona->edad = $edad;
				}
			}
		}
		//
		$domicilios     = new \stdClass;
		$formales       = SQLConnection::obtenerDomicilios($cuit);
		$telefonos      = SQLConnection::backendStoreProcedure('obtener_telefono', array($id_padron));
		//armarDomicilio($domicilio,$codpos,$loc_nombre,$prv_nombre,$pai_nombre)
		//$generales      = SQLConnection::obtenerDatosGenerales($cuit);
		$generales = [];
		/*
		$generales[0]->texto = utf8_encode($generales[0]->texto);
		$generales[0]->mostrar = utf8_encode($generales[0]->mostrar);
		$generales[0]->texto_formateado = utf8_encode($generales[0]->texto_formateado);
		*/
		//$generales      = [];
		//$otros_domicilios = SQLConnection::obtenerOtrosDomicilios($cuit);

		//$domicilios->domicilio vs $domicilios->otros_domicilios
		
		$domicilios->telefonos          = '';
		$domicilios->domicilio_fiscal   = '';
		$domicilios->domicilio_legal    = '';
		$domicilios->otros_domicilios   = '';
		$domicilios->domicilio          = '';
		foreach($formales as $formal) {
			/* Telefonos */
			if(isset($formal->telefono) && $formal->telefono != ""){
				$domicilios->telefonos .= $formal->telefono.' <br> ';
			}
			/* Domicilio Legal */
			//if($formal->tipo_domicilio == 'L'){
			if(strpos($formal->tipo_domicilio, 'L') !== false){
				if (isset($domicilios->domicilio_legal) && $domicilios->domicilio_legal != ''){
					if (strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'F') === false){
						$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
					}
				}
				else {
					$domicilios->domicilio_legal = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
				}
			}
			/* Domicilio Fiscal */
			//if($formal->tipo_domicilio == 'F'){
			if(strpos($formal->tipo_domicilio, 'F') !== false){
				if (isset($domicilios->domicilio_fiscal) && $domicilios->domicilio_fiscal != ''){
					if (strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'L') === false){
						$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
					}
				} else {
					$domicilios->domicilio_fiscal = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
				}
			}

			/* Domicilio Principal */ 
			//if($formal->tipo_domicilio == 'D' ||  $formal->tipo_domicilio == 'E'){
			if(strpos($formal->tipo_domicilio, 'D') !== false || strpos($formal->tipo_domicilio, 'E') !== false){
				if (isset($domicilios->domicilio) && $domicilios->domicilio != ''){
					if (strpos($formal->tipo_domicilio, 'F') === false && strpos($formal->tipo_domicilio, 'L') === false){
						$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
					}
				} else {
					$domicilios->domicilio = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
				}
			}
			/* Otros Domicilios */
			//if($formal->tipo_domicilio == 'O'){
			if (strpos($formal->tipo_domicilio, 'O') !== false && strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'L') === false && strpos($formal->tipo_domicilio, 'F') === false){
				$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
			}
		}


		if($domicilios->domicilio == '' && $domicilios->domicilio_fiscal != ''){
		$domicilios->domicilio  .= $domicilios->domicilio_fiscal;
		}

		if (isset($domicilios->domicilio_legal) && $domicilios->domicilio_legal != '') {
			$domicilios->otros_domicilios .= $domicilios->domicilio_legal . '<br>'; 
		}

		//$inscripciones  = SQLConnection::obtenerInscripciones($cuit,$id_padron);
		$claes          = SQLConnection::obtenerClae($cuit);
		if($claes){
		foreach($claes as $clae){
			if($clae->fecha_inicio_actividad){
			$fecha_inicio_actividad =  $clae->fecha_inicio_actividad;
			}
		}
		}
	/*
		if ($es_led)
		{
			return view('/informes/formales')->with(compact(['sociedades','inscripciones','formales','domicilios','generales','claes','persona_fisica','persona','empleado_de','fecha_inicio_actividad','defuncion','empleados','razon_social','cuit','comentarios','padron_actividades', 'json','nombres_anteriores','id_padron','telefonos']));
		}
	*/
		if (!isset($fecha_inicio_actividad)){
			$fecha_inicio_actividad = NULL;
		}
		//--
		if (!isset($nombres_anteriores)){
			$nombres_anteriores = NULL;
		}

		$vista = \View::make('informes/formales')->with(compact('sociedades','inscripciones','formales','domicilios','generales','claes','persona_fisica','persona','empleado_de','fecha_inicio_actividad','defuncion','empleados','razon_social','cuit','comentarios','padron_actividades', 'json','nombres_anteriores','id_padron','telefonos'))->render();

		if(!$json){
		return $vista;
		}
		return \Response::json(
		array(
			'view' => $vista,
			'info'=>compact('sociedades','persona','persona_fisica','imagen_fidelitas')

		)
		, 200, [], JSON_NUMERIC_CHECK);
  	}
	  
	public function obtenerSociedades($json=true,$relaciones_en_color='false'){

	$apikey = Request::input('apikey');
	$imagen_fidelitas  = Misc::obtenerImagenFidelitas();
	$mostrar_homonimos = true;
	$incluir_homonimos_impresion = Request::input('incluir_homonimos_impresion');
	if($json==false){
	  if($incluir_homonimos_impresion== 'on') {
		$mostrar_homonimos = true;
	  }else{
		$mostrar_homonimos = false; 
	  }
	}else{
	  if (isset(Session::get('usuario')->preferencias->incluir_homonimos) && (!(Session::get('usuario')->preferencias->incluir_homonimos))) {
		$mostrar_homonimos = false;
	  }
	}
	$cuit                      = Request::input('cuit');
	$razon_social_todos        = [];  
	$razon_social              = Request::input('razon_social');
	if(!$razon_social){
	  $razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
	}
 
	$razon_social              = str_replace('#', 'ñ', $razon_social);

	$razon_social_todos[5]     = $razon_social;
	$razon_social_f            = Request::input('razon_social');
	$razon_social_f            = str_replace('#', 'ñ', $razon_social_f);
	$razon_social_f            = preg_replace('/\(|\)/','',$razon_social);
	$malla_razon_social        = $razon_social;
	$participaciones_ordenados = [];
	$resultado_razon_social    = [];
	$sociedades                = SQLConnection::obtenerSociedades($cuit);
	$accionista_de             = SQLConnection::obtenerAccionistasDe($cuit);
	$tipo_persona              = ( Misc::tipoPersona($cuit) == 'F') ? 'f' : 'j' ;
	$resultado_nombres_ant     = []; 
	//busca nombres anteriores de la empresa relacionados con el CUIT
	//$nombres_anteriores        = SQLConnection::obtenerNombresAnteriores($cuit);
	$nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
	$resultado_nombres_ant[] = $razon_social;
	if ($tipo_persona =='j') {
	  $accionistas = SQLConnection::obtenerAccionistasNew($cuit);
	  if ($nombres_anteriores) {
		
		foreach ($nombres_anteriores as $nombre_ant) {
			$resultado_nombres_ant[] = $nombre_ant->nombre; 
		}
	  }
	}else{
	  $accionistas = '';
	}

	$participaciones           = SQLConnection::obtenerParticipacionSociosDirectores($cuit);
	//formateo de fechas - participaciones
	foreach ($participaciones as $key => $value) {
	  $participaciones[$key]->desde = Misc::convertirFormatoFecha($value->desde,'Y-m','m-Y'); 
	  $participaciones[$key]->hasta = Misc::convertirFormatoFecha($value->hasta,'Y-m','m-Y'); 
	}

	$edictos_homonimos         = [];
	$edictos                   = SQLConnection::obtenerEdictos($cuit);
	$socios_directores         = SQLConnection::obtenerSociosDirectores($cuit,$tipo_persona);
	$sinonimos                 = '';
	$razon_social_completa     = '';
	$razon_social_explode      = explode(" ", $razon_social_f);
	//formateo de fechas - socios_directores
	foreach ($socios_directores as $key => $value) {
	  $socios_directores[$key]->c04_periodo_desde = Misc::convertirFormatoFecha($value->c04_periodo_desde,'Y-m','m-Y');
	  $socios_directores[$key]->c04_periodo_hasta = Misc::convertirFormatoFecha($value->c04_periodo_hasta,'Y-m','m-Y');
	  $socios_directores[$key]->fecha_cons        = Misc::convertirFormatoFecha($value->fecha_cons,'Y-m-d','d-m-Y');
	}
	//formateo de fechas - accionistas_de
	foreach ($accionista_de as $key => $value) {
	  $accionista_de[$key]->fecha_ins_rpc = Misc::convertirFormatoFecha($value->fecha_ins_rpc,'Y-m-d','d-m-Y');
	  $accionista_de[$key]->fecha_cons = Misc::convertirFormatoFecha($value->fecha_cons,'Y-m-d','d-m-Y');
	}
	//Elimina de las combinaciones los valores que contienen una letra 
	$explode_aux = [];
	foreach ($razon_social_explode as $key => $value) {
	  if(isset($value) && (strlen($value) > 1)) {
		$explode_aux[] = $value;
		/*
		$longitud = strlen($razon_social_explode[$key]);
		if ($longitud == 1){
		  $razon_social_explode[$key] = '';
		  $razon_social_explode = array_filter($razon_social_explode);
		}
		*/
	  }
	}
	$razon_social_explode = $explode_aux;
	//echo(var_dump($razon_social_explode)); die();
	//P. FISICA
	if($tipo_persona == 'f'){
	  $razon_social_explode = array_values($razon_social_explode);
	  $resultado_razon_social    = Misc::resultadoCombinaciones($razon_social_explode);
	  //Limita a 10 resultados las combinaciones en PF
	  $resultado_razon_social = array_slice($resultado_razon_social, -10);
	  $cant_resultado_razon_social = count($resultado_razon_social);

	  if($cant_resultado_razon_social < 10){
		foreach($resultado_razon_social as $key => $rs){
		  if(!(end($resultado_razon_social) == $rs)){
			$razon_social_completa .='NEAR(('.str_replace(" ",",",$rs).'),0,true) OR ';
		  }else{
			$razon_social_completa .= 'NEAR(('.str_replace(" ",",",$rs).'),0,true)';
		  }
		}
	  }else{
		$razon_social_completa = "\"".$razon_social_f."\"";
		//$razon_social_completa = "\"".$$razon_social_todos[5]."\"";
	  }
	}
	//var_dump($razon_social_completa); die(); 

	// P. JURIDICA
	  //INCLUIR HOMONIMOS EN LA BUSQUEDA POR PERFIL DE USUARIO
	  if ($mostrar_homonimos) {
		if($tipo_persona == 'j'){
			$sinonimos                 = Misc::diccionarioSinonimosTEST($resultado_nombres_ant);
			$count_sinonimo = count($sinonimos)-1;
			foreach($sinonimos as $key => $rs){
			  if(!($key == $count_sinonimo)){
				$razon_social_completa .= $rs.'OR';
			  }else{
				$razon_social_completa .= $rs;
			  }
			}
			if(!$razon_social_completa){$razon_social_completa = "\"".$razon_social."\"";}
			//echo(var_dump($razon_social_completa)); die(); 
			$edictos_homonimos         = SQLConnection::obtenerEdictosHomonimos($razon_social_completa);
		}else{
		  //Edictos para PF
			//echo(var_dump($razon_social_completa)); die(); 
		  $edictos_homonimos       = SQLConnection::obtenerEdictosHomonimos($razon_social_completa);
		  $sinonimos = $razon_social_completa; 
		}
		
		if($edictos_homonimos){
			/* 15/11/2023: Eliminamos los que tienen asignado el cuit del que estamos viendo el informe, o tienen el texto del edicto vacio */
			foreach ($edictos_homonimos as $key => $value) {
				if ($value->cuit_soc == $cuit || empty($value->contenido_archivo))
				{
					unset($edictos_homonimos[$key]); 
				}
			}

		  if($json == true && !$apikey){
			if($tipo_persona == 'f') {
			  $edictos_homonimos = Misc::ResaltarResultadosEdictosHomonimosPF($edictos_homonimos,$resultado_razon_social);
			}else{
			  //if ($nombres_anteriores) {
				$edictos_homonimos   = Misc::ResaltarResultadosEdictosHomonimosNombresAnt($edictos_homonimos, $sinonimos);
			  //}
			}
		  }
		}
	  } //fin de incluir homonimos por perfil de usuario
	  


	if($edictos) {
		$palabras_agregar = []; 
		$sinonimos        = [];
		$razon_social_segmentada = [];
		//$razon_social     = Misc::diccionarioSinonimos($razon_social_todos[5]);
		$razon_social     = Misc::diccionarioSinonimos2020($razon_social_todos[5]);
		$razon_social     = str_replace('"','',$razon_social);

		//inicio - Obtener Sinonimos
		$palabras = explode(' ',$razon_social);
		//sinonimos PF usa combinacion de nombres que obtiene de $resultado_razon_social
		if ($tipo_persona == 'f') {
		  $sinonimos = $resultado_razon_social;
		  if($json == true  && !$apikey){
			$edictos = Misc::ResaltarResultadosEdictos($edictos,'',$sinonimos);
		  }
		}else{
		  //print_r(" 1 - ResaltarResultadosEdictos(edictos,razon_social,'')");
		  if($json == true  && !$apikey){
			$edictos = Misc::ResaltarResultadosEdictos($edictos,$razon_social,'');
		  }
		}
		
		foreach($palabras as $key => $palabra){
		  if(strlen($palabra) > 1){
			$razon_social_segmentada[] = $palabra;
		  }
		}

		foreach($razon_social_segmentada as $sinonimo){
		  $resp = SQLConnection::obtenerSinonimos($sinonimo);
		  if(empty($resp)){
			if($json == true  && !$apikey){
			//print_r(" 2 - ResaltarResultadosEdictos(edictos,razon_social,'')");
			  $edictos = Misc::ResaltarResultadosEdictos($edictos,$razon_social,'');
			}
		  }else{
			$palabras_agregar[] = $resp;
		  }
		}
		foreach ($palabras_agregar as $key => $value) {
		  foreach ($value as $sinonimo) {
			if (!empty($sinonimo)) {
			  $sinonimos[] =  $palabras[0]." ".$sinonimo;
			}
		  }
		}

		if ($sinonimos) {
		  //print_r(" 3 - ResaltarResultadosEdictos(edictos,'',sinonimos)");
		  if($json == true  && !$apikey){
			$edictos = Misc::ResaltarResultadosEdictos($edictos,'',$sinonimos);
		  }
		}
		
	}

	foreach($participaciones as $participacion){
	  $participaciones_ordenados[$participacion->nombre_socio][] =  $participacion;
	}

	$malla_societaria     = SQLConnection::grafoSociedades($cuit,$tipo_persona);
	//echo(var_dump($malla_societaria)); die();
	
	if(Misc::tieneRepetidos($malla_societaria)) {
		$malla_societaria = Misc::quitarRepetidos($malla_societaria);
	}

	if(isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], 'backend') !== false)
	  { $relaciones_en_color='true'; }
	else 
	  { $relaciones_en_color='false'; }

	if ($relaciones_en_color=='true')
	{
	//--------------------------------------------------------------------------------------------------
	// ESTA PARTE ES PARA QUE SE MUESTRE CADA RELACIONADO, CON EL CIRCULITO DEL COLOR SEGUN SU SCORE. (Todo lo demás gris)
	//--------------------------------------------------------------------------------------------------
	  foreach ($malla_societaria as $key => $malla) {
		$malla_societaria[$key]->score_color = '#cccccc';
		/* 03/03/2021: Se saco el if que solo lo hacia para socios, que lo haga para todas las vinculaciones 
		Solicitado por AGB */
		//if (($malla->seccion == "SOCIOS" || $malla->seccion == 'SOCIEDADES')) 
		//{
		  $w_cuit    = $malla->cuit; 
		  // Score de cada uno de los socios_directores 
		  $params = 'cuit=' . $w_cuit.'&apikey=1F44A3FAA0C15C42'; 
		  $html = Self::CURLCallScore(env("API_SCORE_INFORME_COMERCIAL"),$params,'POST');
		  $w_score = isset(json_decode($html)->score) ? json_decode($html)->score : 0;
		  usleep(100000); 
		  if ($w_score <= 50 ) {
			   $w_color = "#A72B2A"; }
		  if ($w_score > 50 && $w_score < 65) {
			   $w_color = "#FFB81C"; }
		  if ($w_score >= 65) {
			   $w_color = "#63b68c"; }
		  $malla_societaria[$key]->score =  $w_score;
		  $malla_societaria[$key]->score_color = $w_color;
		//}
	  }
	}
	else 
	{
	  foreach ($malla_societaria as $key => $malla) {
		$w_color = '#cccccc';
		if ($malla->seccion == "SOCIOS" || $malla->seccion == 'SOCIEDADES'){
			$w_color = '#5E8AB4'; 
			}
		if ($malla->seccion == 'ACCIONISTAS'){
			$w_color = '#309e99';
			}
		if ($malla->seccion =='VINCULACIONES_OTRAS'){
			$w_color = '#006064';
			}
		if ($malla->seccion == 'CONTROLADAS'){
			$w_color = '#977CD1';
			}
		if ($malla->seccion == 'CONTROLANTES'){
			$w_color = '#004D40';
			}
		if ($malla->seccion == 'FIRMANTES'){
			$w_color = '#793D87';
			}  
		if ($malla->seccion == 'ACCIONISTA_DE'){
			$w_color = '#793D87';
			}
		if ($malla->seccion == 'EMPLEADO_DE'){
			$w_color = '#AB47BC';
			}
		if ($malla->seccion =='FAMILIARES'){
			$w_color = '#793D87';
			}
		$malla_societaria[$key]->score_color = $w_color;
	  }
	}

	foreach($malla_societaria as $malla){
	  $malla_societaria[$malla->seccion] = true;
	  if ($relaciones_en_color=='true')
		 { $malla_societaria['COLORES'] = true; }
		 else 
		 { $malla_societaria['COLORES'] = false; }
	}




	$vinculaciones              = SQLConnection::obtenerVinculaciones($cuit);
	//formateo de fechas - vinculaciones
	foreach ($vinculaciones as $key => $value) {
	  $vinculaciones[$key]->desde = Misc::convertirFormatoFecha($value->desde,'Y-m','m-Y');
	  $vinculaciones[$key]->hasta = Misc::convertirFormatoFecha($value->hasta,'Y-m','m-Y');
	}
	$vinculaciones_indirectas   = SQLConnection::obtenerVinculacionesIndirectas($cuit);
	//$vista = \View::make('informes/sociedades')->with(compact('sociedades','socios_directores','accionista_de','edictos','vinculaciones','vinculaciones_indirectas','participaciones_ordenados','accionistas','edictos','json','edictos_homonimos','tipo_persona','idp','malla_societaria','nombres_anteriores','malla_razon_social', 'mostrar_homonimos'))->render();
	$vista = \View::make('informes/sociedades')->with(compact('sociedades','socios_directores','accionista_de','edictos','vinculaciones','vinculaciones_indirectas','participaciones_ordenados','accionistas','edictos','json','edictos_homonimos','tipo_persona','malla_societaria','nombres_anteriores','malla_razon_social', 'mostrar_homonimos'))->render();
	//Session::put($cuit." ".date('Y-m-d').".sociedades",json_encode($vista));
	//var_dump($vista); die(); 
	if(!$json){
	  return $vista;
	}
	return \Response::json(
	  array(
		'view' => $vista,
		//'info'=> compact('malla_societaria','tipo_persona','socios_directores','accionistas','accionista_de','vinculaciones','participaciones_ordenados','vinculaciones_indirectas','edictos','edictos_homonimos', 'mostrar_homonimos', 'idp','nombres_anteriores','malla_razon_social','imagen_fidelitas')
		'info'=> compact('malla_societaria','tipo_persona','socios_directores','accionistas','accionista_de','vinculaciones','participaciones_ordenados','vinculaciones_indirectas','edictos','edictos_homonimos', 'mostrar_homonimos','nombres_anteriores','malla_razon_social','imagen_fidelitas')

	  )
	, 200, [], JSON_NUMERIC_CHECK);
  }

public static function CURLCallScore($url,$params,$type="POST"){
	$curl = curl_init();
	curl_setopt_array($curl, array(
	  CURLOPT_URL => $url,
	  CURLOPT_RETURNTRANSFER => true,
	  CURLOPT_ENCODING => "",
	  CURLOPT_MAXREDIRS => 10,
	  CURLOPT_TIMEOUT => 9999,
	  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
	  CURLOPT_CUSTOMREQUEST => $type,
	  CURLOPT_POSTFIELDS => $params,
	  CURLOPT_HTTPHEADER => array(
		"cache-control: no-cache",
		"content-type: application/x-www-form-urlencoded"
	  ),
	));

	$response = curl_exec($curl);
	$err      = curl_error($curl);
	curl_close($curl);

	if ($err) {
	  return json_encode(array('error'=>true));
	} else {
	  return $response;
	}
  }


  public function obtenerPrensa(){
	//'{"responseData": null, "responseDetails": "This API is no longer available.", "responseStatus": 403}'
	//$razon_social = Request::input('razon_social');
	$buscar_prensa = Request::input('buscar');
	$infobae = "http://www.infobae.com/search/".$buscar_prensa."/?q=".$buscar_prensa."";
	$google_news = "https://www.google.com.ar/search?biw=1600&bih=770&tbm=nws&q=".$buscar_prensa."&oq=".$buscar_prensa."&gs_l=psy-ab.3...17448.18101.0.18209.0.0.0.0.0.0.0.0..0.0....0...1.1.64.psy-ab..0.0.0.BODGyPGXk-U";
	$google_custom_search = "https://www.googleapis.com/customsearch/v1?q=".$buscar_prensa."";
	//$google_news = "https://news.google.com/news/search/section/q/".$buscar_prensa."/".$buscar_prensa."?hl=en&ned=us";

	//$html_infobae = file_get_contents($infobae);
	$html_google_news = file_get_contents($google_news);
	$html_articulos =   preg_match_all('/<article(\s)+class="result-item result-teaser result-teaser-normal">.*?<\/article>/i', $html_google_news, $articulos);
	$count_articulos = count($articulos);


	$vista  = \View::make('informes/prensa')->with(compact('articulos'))->render();
	return response()->json(array('view' => $vista), 200, [], JSON_NUMERIC_CHECK);
  }

  public function formPrensa(){
	$razon_social = Request::input('razon_social');
	$cuit         = Request::input('cuit');
	$tipo_persona = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
	$vista        = \View::make('informes/form_prensa')->with(compact('razon_social','tipo_persona'))->render();
	return response()->json(array('view' => $vista), 200, [], JSON_NUMERIC_CHECK);
  }

  private function calcularContables($respuesta_activo,$respuesta_pasivo,$respuesta_estado,$indices_de_gestion){
	$activo               = [];
	$pasivo               = [];
	$estado_de_resultados = [];
	$indices              = [];
	$grafico_contable     = [];
	ksort($respuesta_activo);
	ksort($respuesta_pasivo);
	ksort($respuesta_estado);
	ksort($indices_de_gestion);

	foreach ($indices_de_gestion as $key_indice => $indice) { 
	  //Cuenta 'Efecto Palanca' 
	  $ganancia     = $indice->ganancia;
	  $activo_total = $indice->act_total;
	  if($activo_total > 0){
		$resultado_efecto_palanca = $ganancia / $activo_total;
	  }else{
		$resultado_efecto_palanca = 0;
	  }
	  $grafico_contable['periodo'][] = $indice->fecha_balance;
	  $grafico_contable['solvencia'][$key_indice][] = $indice->ind_solvencia_pat ;
	  $grafico_contable['liquidez_corriente'][$key_indice][] =  $indice->ind_liqcorr ;
	  $grafico_contable['endeudamiento_corriente'][$key_indice][] =  $indice->ind_endeu;
	  $grafico_contable['utilidad_neta'][$key_indice][] =  $indice->ind_utilfin ;
	  $grafico_contable['efecto_palanca'][$key_indice][] = $resultado_efecto_palanca ;
	  $indices = true;
	}
	
	foreach($respuesta_activo as $key_respuesta => $balances){
	  $grafico_contable['periodo'][] = $balances->fecha_balance;
	  $grafico_contable['total_activo_corriente'][$key_respuesta][] = $balances->ac_total ;
	  $grafico_contable['activo'][$key_respuesta][] = $balances->act_total ;
	  $activo = true;
	}

	foreach($respuesta_pasivo as $key_respuesta => $balances){
	  $grafico_contable['periodo'][] = $balances->fecha_balance;
	  $grafico_contable['total_pasivo_corriente'][$key_respuesta][] = $balances->pc_total ;
	  $grafico_contable['pasivo'][$key_respuesta][] = $balances->pas_total ;
	  $grafico_contable['patrimonio_neto'][$key_respuesta][] = $balances->patrimonio ;
	  $respuesta_pasivo = true;
	}

	foreach($respuesta_estado as $key_respuesta => $balances){
	  //Cuenta GASTOS TOTALES SOBRE VENTAS
	  $gasto_adm    =  $balances->res_gasadm;
	  $gasto_fin    =  $balances->res_gasfin;
	  $gasto_comer  = $balances->res_gascom;
	  $venta        = ($grafico_contable['res_vtanet'][$key_respuesta][] = $balances->res_vtanet);
	  $gastos_totales_sobre_ventas = ($venta > 0)  ? ((($gasto_adm+$gasto_fin+$gasto_comer) * 100) / $venta) : 0 ;
	  $grafico_contable['gastos_totales_sobre_ventas'][$key_respuesta][] =  $gastos_totales_sobre_ventas ;
	  $grafico_contable['periodo'][] = $balances->fecha_balance;
	  //$grafico_contable['efecto_palanca'][$key_respuesta][] = number_format( ($balances / $grafico_contable['activo'][$key_respuesta][1]),2);
	  $grafico_contable['ventas'][$key_respuesta][] = $balances->res_vtanet;
	  $respuesta_estado = true;
	}

	if(!$grafico_contable){$grafico_contable = [];}
	$return['graficos']             = $grafico_contable;
	$return['activo']               = $activo;
	$return['pasivo']               = $pasivo;
	$return['estado_de_resultados'] = $estado_de_resultados;
	$return['indices_de_gestion']   = $indices;
	return $return;
  }

  #--- FUNCION QUE TOMA UN ARRAY DE OBJETOS E INVIERTE EL ORDEN --- 
public static function arrayRever($arreglo){
	// SE CREA UN NUEVO ARRAY
	$nuevo = array();
	// RECORREMOS EL ARRAY PASADO COMO PARAMETRO EMPEZANDO DEL FINAL HASTA EL PRINCIPIO
	for($i = count($arreglo)-1; $i >= 0; $i-- ){
		// CREAMOS UN OBJETO GENERICO AL QUE DESPUES PODEMOS AGREGARLE PROPIEDADES.
		$n = new \stdClass;
		// EN ESTE CASO LE AGREGAMOS CADA OBJETO DEL ARRAY PASADO COMO PARAMETRO.
		$n = $arreglo[$i];
		// LUEGO PUSHEAMOS AL ARRAY NUEVO CON LOS VALORES DEL OBJETO GENERICO.
		array_push($nuevo,$n);
	}
	return $nuevo;  
	}
  #---

  public function obtenerContables($json=true,$grafico_capital_de_trabajo='',$grafico_patrimonial='',$grafico_solvencia='',$grafico_liquidez_corriente='',$grafico_endeudamiento_corriente='',$grafico_performance='',$grafico_efecto_palanca='',$grafico_ventas='',$grafico_gastos_totales_sobre_ventas='',$tipo_impresion = ''){
	$imagen_fidelitas               = Misc::obtenerImagenFidelitas();
	$cuit                           = Request::input('cuit');
	$ver_todos                      = 'N';
	$respuesta_activo               = self::arrayRever(SQLConnection::obtenerActivoResumido($cuit,$ver_todos));
	//$respuesta_activo               = Misc::procesarBalance($respuesta_activo);
	$respuesta_pasivo               = self::arrayRever(SQLConnection::obtenerPasivoResumido($cuit,$ver_todos));
	//$respuesta_pasivo               = Misc::procesarBalance($respuesta_pasivo);
	$respuesta_estado               = self::arrayRever(SQLConnection::obtenerEstadodeResultadosResumido($cuit,$ver_todos));
	//$respuesta_estado               = Misc::procesarBalance($respuesta_estado);
	$indices_de_gestion             = self::arrayRever(SQLConnection::obtenerIndicesDeGestionResumido($cuit,$ver_todos));
	//$indices_de_gestion             = Misc::procesarBalance($indices_de_gestion);
	$respuesta_activo_extendido     = self::arrayRever(SQLConnection::obtenerActivo($cuit,$ver_todos));
	//$respuesta_activo_extendido     = Misc::procesarBalance($respuesta_activo_extendido);
	$respuesta_pasivo_extendido     = self::arrayRever(SQLConnection::obtenerPasivo($cuit,$ver_todos));
	//$respuesta_pasivo_extendido     = Misc::procesarBalance($respuesta_pasivo_extendido);
	$respuesta_estado_extendido     = self::arrayRever(SQLConnection::obtenerEstadodeResultados($cuit,$ver_todos));
	//$respuesta_estado_extendido     = Misc::procesarBalance($respuesta_estado_extendido);
	$indices_de_gestion_extendido   = self::arrayRever(SQLConnection::obtenerIndicesDeGestion($cuit,$ver_todos));
	//$indices_de_gestion_extendido   = Misc::procesarBalance($indices_de_gestion_extendido);
	
	$contables                      = self::calcularContables($respuesta_activo,$respuesta_pasivo,$respuesta_estado,$indices_de_gestion);
	$contables_extendido            = self::calcularContables($respuesta_activo_extendido,$respuesta_pasivo_extendido,$respuesta_estado_extendido,$indices_de_gestion_extendido);
	$activo_extendido               = $contables_extendido['activo'];
	$pasivo_extendido               = $contables_extendido['pasivo'];
	$estado_de_resultados_extendido = $contables_extendido['estado_de_resultados'];
	$indices_extendido              = $contables_extendido['indices_de_gestion'];
	$activo                         = $contables['activo'];
	$pasivo                         = $contables['pasivo'];
	$estado_de_resultados           = $contables['estado_de_resultados'];
	$indices                        = $contables['indices_de_gestion'];
	$grafico_contable               = $contables['graficos'];
	$registros_contables            = $this->obtenerRegistrosContables($respuesta_activo,$respuesta_estado,$indices_de_gestion,$respuesta_activo_extendido,$respuesta_pasivo_extendido,$respuesta_estado_extendido,$indices_de_gestion_extendido);
	$traducciones_graficos          = Misc::obtenerTraduccionesGraficos();
	$registro_act                   = $registros_contables['registro_act'];
	$registro_estado                = $registros_contables['registro_estado'];
	$registro_ind_gestion           = $registros_contables['registro_ind_gestion'];
	$registro_gestion_ext           = $registros_contables['registro_gestion_ext'];
	$registro_act_ext               = $registros_contables['registro_act_ext'];
	$registro_pas_ext               = $registros_contables['registro_pas_ext'];
	$registro_estado_ext            = $registros_contables['registro_estado_ext'];
	$registro_gestion_ext           = $registros_contables['registro_gestion_ext'];
	$tipo_persona                   = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
	//
	//------ VISTA ANTERIOR DE CONTABLES
	/* $vista = \View::make('informes/contables')->with(compact('activo','pasivo','estado_de_resultados','indices',
	  'activo_extendido','pasivo_extendido','estado_de_resultados_extendido','indices_extendido','grafico_capital_de_trabajo','grafico_patrimonial','grafico_solvencia','grafico_liquidez_corriente','grafico_endeudamiento_corriente','grafico_performance','grafico_efecto_palanca','grafico_ventas','grafico_gastos_totales_sobre_ventas','json','registro_act',
	  'registro_estado','registro_ind_gestion','registro_gestion_ext','registro_act_ext','registro_pas_ext','registro_estado_ext','registro_gestion_ext','tipo_impresion','ver_todos'))->render(); */
	//----- NUEVA SECCION DE CONTABLES
	$hay_analisis = 0;
	$nuevo_extendido = null;
	// SE FORZA QUE LA VERSION DEL BALANCE SEA LA EXTENDIDA
	$productobalance = (object) ['version_balance'=>'F'];
	// VARIABLE QUE DETERMINA QUE LA LLAMADA ES DESDE PARA EL INFORME COMERCIAL
	$desde_infomre = true;
	//-----
	$balances_data = SQLConnection::backendStoreProcedure('LN_balances_data', array($cuit, null, null), 'select');
	//------
	foreach ($balances_data as $key => $datos_balance) {
		$nuevo_extendido['endeudamiento_total'][] = $datos_balance->endeudamiento_total;
		$nuevo_extendido['endeudamiento_corriente'][] = $datos_balance->endeudamiento_corriente;
		$nuevo_extendido['capital_corriente_sobre_activo'][] = $datos_balance->capital_corriente_sobre_activo;
		$nuevo_extendido['rotacion_pasivo_corriente'][] = $datos_balance->rotacion_pasivo_corriente;
		$nuevo_extendido['rotacion_activos'][] = $datos_balance->rotacion_activos;
		$nuevo_extendido['meses_deuda'][] = $datos_balance->meses_deuda;
		$nuevo_extendido['dias_deuda'][] = $datos_balance->dias_deuda;
		$nuevo_extendido['margen_operativo'][] = $datos_balance->margen_operativo;
		$nuevo_extendido['ebitda'][] = $datos_balance->ebitda;
		$nuevo_extendido['ebitda_ventas'][] = $datos_balance->ebitda_ventas;
		$nuevo_extendido['etitda_intereses'][] = $datos_balance->etitda_intereses;
		$nuevo_extendido['gastos_financieros_ventas'][] = $datos_balance->gastos_financieros_ventas;
		$nuevo_extendido['gastos_comerciales_ventas'][] = $datos_balance->gastos_comerciales_ventas;
		$nuevo_extendido['gastos_administracion_ventas'][] = $datos_balance->gastos_administracion_ventas;
		$nuevo_extendido['gastos_totales_ventas'][] = $datos_balance->gastos_totales_ventas;
		$nuevo_extendido['inversiones_bienes_uso'][] = $datos_balance->inversiones_bienes_uso;
		$nuevo_extendido['vida_restante_bienes_uso'][] = $datos_balance->vida_restante_bienes_uso;
		$nuevo_extendido['ebit'][] = $datos_balance->ebit;
		$nuevo_extendido['ebit_ventas'][] = $datos_balance->ebit_ventas;
	}
	// CONFIGURACIONES DEL IDIOMA
	$servicios = isset(Session::get('usuario')->servicios) ? Session::get('usuario')->servicios : null ;
	$idioma = 'esp';
	if ( !is_null($servicios) ){
		foreach ( $servicios as $servicio => $config ){
			if ( $config->id_producto == env('ID_INFORME_COMERCIAL') ){
				$idioma = $config->userLanguage;
			}
			continue;
		}
	}
	// CONTROL DE LOS DATOS QUE VIENEN
	$error = 0;
	if ( empty($registro_act) || empty($registro_estado) || empty($registro_ind_gestion) || empty($registro_gestion_ext) || empty($registro_act_ext) || empty($registro_pas_ext) || empty($registro_estado_ext) || empty($registro_gestion_ext) || empty($nuevo_extendido) ){
		$error++;
	}
	//$idioma = 'mix'; // PARA BALANCES BILINGUALES
	// FIN DE LA CONFIGURACION DE IDIOMA
	//-----
/* 02/11/2022: Si es Manifestacion de Bienes muestra el contables compacto */ 
	$bal_man = $balances_data[0]->bal_manifestacion ?? 'M';
	if ( $idioma != 'mix' && $bal_man !== 'M'){
		$vista = \View::make('/led/led_contables_ext')->with(compact(
			'productobalance',
			'nuevo_extendido',
			'hay_analisis',
			'activo',
			'pasivo',
			'estado_de_resultados',
			'indices',
			'activo_extendido',
			'pasivo_extendido',
			'estado_de_resultados_extendido',
			'indices_extendido',
			'grafico_capital_de_trabajo',
			'grafico_patrimonial',
			'grafico_solvencia',
			'grafico_liquidez_corriente',
			'grafico_endeudamiento_corriente',
			'grafico_performance',
			'grafico_efecto_palanca',
			'grafico_ventas',
			'grafico_gastos_totales_sobre_ventas',
			'json',
			'registro_act',
			'registro_estado',
			'registro_ind_gestion',
			'registro_gestion_ext',
			'registro_act_ext',
			'registro_pas_ext',
			'registro_estado_ext',
			'registro_gestion_ext',
			'tipo_impresion',
			'desde_infomre',
			'error'
		))->render();
	} else {
		// VISTA DE TRADUCCIONES
		$vista = \View::make('/informes/contables')->with(compact(
			'productobalance',
			'nuevo_extendido',
			'hay_analisis',
			'activo',
			'pasivo',
			'estado_de_resultados',
			'indices',
			'activo_extendido',
			'pasivo_extendido',
			'estado_de_resultados_extendido',
			'indices_extendido',
			'grafico_capital_de_trabajo',
			'grafico_patrimonial',
			'grafico_solvencia',
			'grafico_liquidez_corriente',
			'grafico_endeudamiento_corriente',
			'grafico_performance',
			'grafico_efecto_palanca',
			'grafico_ventas',
			'grafico_gastos_totales_sobre_ventas',
			'json',
			'registro_act',
			'registro_estado',
			'registro_ind_gestion',
			'registro_gestion_ext',
			'registro_act_ext',
			'registro_pas_ext',
			'registro_estado_ext',
			'registro_gestion_ext',
			'tipo_impresion',
			'desde_infomre',
			'ver_todos',
			'bal_man'
		))->render();
	}
	//--- FIN DE NUEVA SECCION CONTABLES
	if(!$json){
	  return $vista;
	}
	//Session::put($cuit." ".date('Y-m-d').".contables",json_encode($vista));
	$grafico_exportable = false;
	if(isset(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')])){
	  if(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')]->client_id == 2254875){
		$grafico_exportable = true;
	  } 
	}
	return \Response::json(
	array(
	  'view' => $vista,
	  'info'=>compact('activo','pasivo','estado_de_resultados','indices','grafico_contable','grafico_exportable','traducciones_graficos','tipo_persona','imagen_fidelitas','idioma')
	)
	, 200, [], JSON_NUMERIC_CHECK);
  }

  	// CONTABLES MULTIIDIOMA
  	public function obtenerContablesMulti($json=true,$grafico_capital_de_trabajo='',$grafico_patrimonial='',$grafico_solvencia='',$grafico_liquidez_corriente='',$grafico_endeudamiento_corriente='',$grafico_performance='',$grafico_efecto_palanca='',$grafico_ventas='',$grafico_gastos_totales_sobre_ventas='',$tipo_impresion = '',$idioma=''){
		$imagen_fidelitas               = Misc::obtenerImagenFidelitas();
		$cuit                           = Request::input('cuit');
		$ver_todos                      = 'N';
		$respuesta_activo               = self::arrayRever(SQLConnection::obtenerActivoResumido($cuit,$ver_todos));
		$respuesta_pasivo               = self::arrayRever(SQLConnection::obtenerPasivoResumido($cuit,$ver_todos));
		$respuesta_estado               = self::arrayRever(SQLConnection::obtenerEstadodeResultadosResumido($cuit,$ver_todos));
		$indices_de_gestion             = self::arrayRever(SQLConnection::obtenerIndicesDeGestionResumido($cuit,$ver_todos));
		$respuesta_activo_extendido     = self::arrayRever(SQLConnection::obtenerActivo($cuit,$ver_todos));
		$respuesta_pasivo_extendido     = self::arrayRever(SQLConnection::obtenerPasivo($cuit,$ver_todos));
		$respuesta_estado_extendido     = self::arrayRever(SQLConnection::obtenerEstadodeResultados($cuit,$ver_todos));
		$indices_de_gestion_extendido   = self::arrayRever(SQLConnection::obtenerIndicesDeGestion($cuit,$ver_todos));
		//
		$contables                      = self::calcularContables($respuesta_activo,$respuesta_pasivo,$respuesta_estado,$indices_de_gestion);
		$contables_extendido            = self::calcularContables($respuesta_activo_extendido,$respuesta_pasivo_extendido,$respuesta_estado_extendido,$indices_de_gestion_extendido);
		$activo_extendido               = $contables_extendido['activo'];
		$pasivo_extendido               = $contables_extendido['pasivo'];
		$estado_de_resultados_extendido = $contables_extendido['estado_de_resultados'];
		$indices_extendido              = $contables_extendido['indices_de_gestion'];
		$activo                         = $contables['activo'];
		$pasivo                         = $contables['pasivo'];
		$estado_de_resultados           = $contables['estado_de_resultados'];
		$indices                        = $contables['indices_de_gestion'];
		$grafico_contable               = $contables['graficos'];
		$registros_contables            = $this->obtenerRegistrosContables($respuesta_activo,$respuesta_estado,$indices_de_gestion,$respuesta_activo_extendido,$respuesta_pasivo_extendido,$respuesta_estado_extendido,$indices_de_gestion_extendido);
		$traducciones_graficos          = Misc::obtenerTraduccionesGraficos();
		$registro_act                   = $registros_contables['registro_act'];
		$registro_estado                = $registros_contables['registro_estado'];
		$registro_ind_gestion           = $registros_contables['registro_ind_gestion'];
		$registro_gestion_ext           = $registros_contables['registro_gestion_ext'];
		$registro_act_ext               = $registros_contables['registro_act_ext'];
		$registro_pas_ext               = $registros_contables['registro_pas_ext'];
		$registro_estado_ext            = $registros_contables['registro_estado_ext'];
		$registro_gestion_ext           = $registros_contables['registro_gestion_ext'];
		$tipo_persona                   = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
		//----- NUEVA SECCION DE CONTABLES
		$hay_analisis = 0;
		$nuevo_extendido = null;
		// SE FORZA QUE LA VERSION DEL BALANCE SEA LA EXTENDIDA
		$productobalance = (object) ['version_balance'=>'F'];
		// VARIABLE QUE DETERMINA QUE LA LLAMADA ES DESDE PARA EL INFORME COMERCIAL
		$desde_infomre = true;
		//-----
		$balances_data = SQLConnection::backendStoreProcedure('LN_balances_data', array($cuit, null, null), 'select');
		//------
		foreach ($balances_data as $key => $datos_balance) {
			$nuevo_extendido['endeudamiento_total'][] = $datos_balance->endeudamiento_total;
			$nuevo_extendido['endeudamiento_corriente'][] = $datos_balance->endeudamiento_corriente;
			$nuevo_extendido['capital_corriente_sobre_activo'][] = $datos_balance->capital_corriente_sobre_activo;
			$nuevo_extendido['rotacion_pasivo_corriente'][] = $datos_balance->rotacion_pasivo_corriente;
			$nuevo_extendido['rotacion_activos'][] = $datos_balance->rotacion_activos;
			$nuevo_extendido['meses_deuda'][] = $datos_balance->meses_deuda;
			$nuevo_extendido['dias_deuda'][] = $datos_balance->dias_deuda;
			$nuevo_extendido['margen_operativo'][] = $datos_balance->margen_operativo;
			$nuevo_extendido['ebitda'][] = $datos_balance->ebitda;
			$nuevo_extendido['ebitda_ventas'][] = $datos_balance->ebitda_ventas;
			$nuevo_extendido['etitda_intereses'][] = $datos_balance->etitda_intereses;
			$nuevo_extendido['gastos_financieros_ventas'][] = $datos_balance->gastos_financieros_ventas;
			$nuevo_extendido['gastos_comerciales_ventas'][] = $datos_balance->gastos_comerciales_ventas;
			$nuevo_extendido['gastos_administracion_ventas'][] = $datos_balance->gastos_administracion_ventas;
			$nuevo_extendido['gastos_totales_ventas'][] = $datos_balance->gastos_totales_ventas;
			$nuevo_extendido['inversiones_bienes_uso'][] = $datos_balance->inversiones_bienes_uso;
			$nuevo_extendido['vida_restante_bienes_uso'][] = $datos_balance->vida_restante_bienes_uso;
			$nuevo_extendido['ebit'][] = $datos_balance->ebit;
			$nuevo_extendido['ebit_ventas'][] = $datos_balance->ebit_ventas;
		}
		// CONFIGURACIONES DEL IDIOMA
		if ( !$json ){
			// EN CASO DE NO SER JSON
			if ( empty($idioma)  ){
				$idioma = (!is_null(Request::input('idioma-contables'))) ? Request::input('idioma-contables') : 'esp';
			}
		} else {
			$idioma = 'mix';
		}
		// FIN DE LA CONFIGURACION DE IDIOMA
		//-----
		$vista = \View::make('/informes/contables')->with(compact(
			'productobalance',
			'nuevo_extendido',
			'hay_analisis',
			'activo',
			'pasivo',
			'estado_de_resultados',
			'indices',
			'activo_extendido',
			'pasivo_extendido',
			'estado_de_resultados_extendido',
			'indices_extendido',
			'grafico_capital_de_trabajo',
			'grafico_patrimonial',
			'grafico_solvencia',
			'grafico_liquidez_corriente',
			'grafico_endeudamiento_corriente',
			'grafico_performance',
			'grafico_efecto_palanca',
			'grafico_ventas',
			'grafico_gastos_totales_sobre_ventas',
			'json',
			'registro_act',
			'registro_estado',
			'registro_ind_gestion',
			'registro_gestion_ext',
			'registro_act_ext',
			'registro_pas_ext',
			'registro_estado_ext',
			'registro_gestion_ext',
			'tipo_impresion',
			'desde_infomre',
			'ver_todos'
		))->render();
		//--- FIN DE NUEVA SECCION CONTABLES
		if(!$json){
			return $vista;
		}
		//
		$grafico_exportable = false;
		if(isset(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')])){
			if(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')]->client_id == 2254875){
				$grafico_exportable = true;
			} 
		}
		//
		return \Response::json(
			array(
				'view' => $vista,
				'info'=>compact('activo','pasivo','estado_de_resultados','indices','grafico_contable','grafico_exportable','traducciones_graficos','tipo_persona','imagen_fidelitas','idioma')
			)
		, 200, [], JSON_NUMERIC_CHECK);
  	}

public function obtenerLegales($json=true){
	$imagen_fidelitas  = Misc::obtenerImagenFidelitas();
	$mostrar_homonimos = true;
	$incluir_homonimos_impresion = Request::input('incluir_homonimos_impresion');
	if($json==false){
	  if($incluir_homonimos_impresion== 'on') {
		$mostrar_homonimos = true;
	  }else{
		$mostrar_homonimos = false; 
	  }
	}else{
	  if (isset(Session::get('usuario')->preferencias->incluir_homonimos) && (!(Session::get('usuario')->preferencias->incluir_homonimos))) {
		$mostrar_homonimos = false;
	  }
	}

	if(isset(Session::get('usuario')->preferencias->cantidad_juicios)) {
	  $cantidad = is_numeric(Session::get('usuario')->preferencias->cantidad_juicios) ? Session::get('usuario')->preferencias->cantidad_juicios : 500;
	} else {
	  $cantidad = 500;
	}

	$mostrar_todos_los_juicios = Request::input('mostrar_todos');
 
	if ($mostrar_todos_los_juicios == 'true') {
	  $mostrar_todos_los_juicios = true;
	} else {
	  $mostrar_todos_los_juicios = false;
	}

	$razon_social               = Request::input('razon_social');
	$razon_social               = str_replace('#', 'ñ', $razon_social);
	$malla_razon_social        = $razon_social;


	//inicio -var- nombres-anteriores
	$razon_social_todos         = [];
	$razon_social_todos[5]      = $razon_social;
	//inicio -var- nombres-anteriores
	$cuit                       = Request::input('cuit');
	$cuit_enmascarado           = $cuit;
	$otros_juicios_comerciales  = [];
	$concursos_quiebras         = [];
	$pedidos_quiebra            = [];


	/* 07/10/2021: para poder llamarlo desde led */
	$es_led = false; 
	$id = Request::input('contraparte') ?? null;
	if (!$cuit)
	{
		$qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
		$cuit = $qcontrap->identificacion ?? null;
		$json = false; 
		$es_led = true; 
	}

	if ($mostrar_todos_los_juicios) {
	  $demandados                 = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null, 'D', $cuit, 60, 1));
	  $actor                      = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null,'A',$cuit, 60, 1));
	} else {
	  $demandados                 = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null, 'D', $cuit, 60, 1, $cantidad));
	  $actor                      = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null,'A',$cuit, 60, 1, $cantidad));
	}
	$dni                        = '';
	$sinonimos                  = [];
	$demandado_homonimo         = [];
	$actores_homonimos          = [];
	//$p_fisica = (substr($cuit,0,1) == 3) ? false : true;
	$fisica_juridica = Misc::tipoPersona($cuit); 
	$p_fisica = ($fisica_juridica == 'F') ? true : false;

	$mask = substr( $cuit_enmascarado, 1,1 );
	$mask .= '-';
	$cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, 1,1);
	$mask = substr( $cuit_enmascarado, -1,-1 );
	$mask .= '-';
	$cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, -1,-1);
	$razon_social_completa     = '';
	$resultado_nombres_ant     = []; 
		$nombres_anteriores = []; 

	
	if($p_fisica){
	  $dni = (int)substr($cuit, 2,-1);
	}
	
	//if($json == true){
	  if($p_fisica == false) {
		//P Juridica
		$nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
		if ($nombres_anteriores) {
		  foreach ($nombres_anteriores as $nombre_ant) {
			  $resultado_nombres_ant[] = $nombre_ant->nombre; 
		  }
		  $resultado_nombres_ant[] = $razon_social;
		} 
		//$razon_social = "\"".$razon_social."\"";
		
		$sinonimos =  Misc::diccionarioSinonimosTest($resultado_nombres_ant);
		//print_r("sinonimos: "); 
		//var_dump($sinonimos); 
		$count_sinonimo = count($sinonimos)-1;
		foreach($sinonimos as $key => $rs) {
		  if (strlen($rs) < 3)
		  {
			continue; 
		  }
		  if(!($key == $count_sinonimo)){
			$razon_social_completa .= $rs.'OR';
		  }else{
			$razon_social_completa .= $rs;
		  }
		}
	  
	  //$razon_social_legales = Misc::diccionarioSinonimos($razon_social);
	  $razon_social_legales = Misc::diccionarioSinonimos2020($razon_social);

//print_r('COMPLETA: ' . $razon_social_completa . '---');
//print_r('legales: ' . $razon_social_legales  . '---');

	  if(!$razon_social_completa) { 
	  	$razon_social_completa = $razon_social_legales; 
		}
	  } 
	  else {//caso PF
		$razon_social_completa = "\"".$razon_social."\"";
	  }
//print_r('COMPLETA: ' . $razon_social_completa  . '---');
	  
	//print_r("razon_social: "); 
	 //var_dump($razon_social);   
//AGB
	  /*
	  print_r("razon_social_legales: "); 
	  var_dump($razon_social_legales);
	  print_r("razon_social_completa: "); 
	  var_dump($razon_social_completa);
	  
*/
/*
	  print_r("sinonimos: "); 
	  var_dump($sinonimos); 
	  print_r("razon social: "); 
	  var_dump($razon_social); 
	  print_r("razon_social_legales: "); 
	  var_dump($razon_social_legales); 
	  print_r("razon_social_completa: "); 
	  var_dump($razon_social_completa);
*/
	  
	  if (strlen($razon_social_completa) >= 3 && $mostrar_homonimos){
		$razon_social_completa = (Misc::parche_cla($razon_social_completa));
		if ($mostrar_todos_los_juicios) {
		  //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'D'));
		  //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'A'));
		  // Abril 2019: Se empiezan a mostrar los homonimos de nombres anteriores 
		  // si se quiere que solo se muestre los homonimos de la razon social actual volver a cambiar por las dos lineas anteriores (buscar $razon_social_legales)
		  //DICIEMBRE 2020 CAMBIAMOS POR RAZON SOCIAL PORQUE NO SALEN LOS HOMÓNIMOS
		  $demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'D', $cantidad));
		  $actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'A', $cantidad));
		  //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social,'D', $cantidad));
		  //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social,'A', $cantidad));

		} else {

/*print_r($razon_social);
print_r($cantidad);*/

		  //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'D', $cantidad));
		  //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'A', $cantidad));
		  // Abril 2019: Se empiezan a mostrar los homonimos de nombres anteriores
		  // si se quiere que solo se muestre los homonimos de la razon social actual volver a cambiar por las dos lineas anteriores (buscar $razon_social_legales)
		  //DICIEMBRE 2020 CAMBIAMOS POR RAZON SOCIAL PORQUE NO SALEN LOS HOMÓNIMOS
		  $demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'D', $cantidad));
		  $actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'A', $cantidad));
		  //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social,'D', $cantidad));
		  //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social,'A', $cantidad));
		  // foreach ($actores_homonimos as $key => $value) {
		  //  if (isset($value->actor) || isset($value->id_tipo_causa) || isset($value->nombre_causa) || isset($value->tipo_de_novedad) ) {
		  //    $actores_homonimos;
		  //  }else{
		  //    $actores_homonimos = [];
		  //  }
		  // }
		}
	  }
	//}

	if ($mostrar_todos_los_juicios) {
	  $remates = SQLConnection::obtenerRemates($cuit,$cuit_enmascarado,$dni);
	} else {
	  $remates = SQLConnection::backendStoreProcedure('obtener_remates', array($cuit,$cuit_enmascarado,$dni, $cantidad));
	}

	if($remates){
	  $remates = Misc::ResaltarResultadosRemates($remates,$razon_social);
	}
  //  $concursos_quiebras = SQLConnection::obtenerConcursosQuiebras($cuit);
	if($demandados){
	  foreach($demandados as $demandado){
		if($demandado->grupo  == 'OJC'){
		  $otros_juicios_comerciales[]  = $demandado;
		}elseif($demandado->grupo  == 'CYQ'){
		  $concursos_quiebras[] = $demandado;
		}elseif($demandado->grupo  == 'PQ'){
		  $pedidos_quiebra[] = $demandado;
		}
	  }
	}
	/*
	if ($demandado_homonimo) {
	  foreach ($demandado_homonimo as $key => $value) {
		$fecha_causa_dmy = $value->fecha_causa_dmy;
		$demandado_homonimo[$key]->fecha_causa_dmy =  str_replace('/', '-', $fecha_causa_dmy); 
	  }    
	}
	*/
	//$vista = \View::make('informes/legales')->with(compact('actor','pedidos_quiebra','concursos_quiebras','otros_juicios_comerciales','remates','actores_homonimos','p_fisica','json','nombre','demandado_homonimo', 'mostrar_homonimos', 'mostrar_todos_los_juicios','malla_razon_social','nombres_anteriores'))->render();
	$vista = \View::make('informes/legales')->with(compact('actor','pedidos_quiebra','concursos_quiebras','otros_juicios_comerciales','remates','actores_homonimos','p_fisica','json','demandado_homonimo', 'mostrar_homonimos', 'mostrar_todos_los_juicios','malla_razon_social','nombres_anteriores'))->render();
	
	if(!$json){
	   return $vista;
	}
	return \Response::json(
	  array(
		'view' => $vista,
		'info_varios'=>compact('concursos_quiebras','remates','pedidos_quiebra','otros_juicios_comerciales','actor','actores_homonimos','demandado_homonimo', 'mostrar_homonimos','imagen_fidelitas','malla_razon_social','nombres_anteriores')
	  )
	, 200, [], JSON_NUMERIC_CHECK);
  }

  public static function procesarGraficoGarantias($data,$periodos){
	$grafico_ordenado = [];
	$n=0;
	foreach($data as $key_info => $info){
	  foreach($periodos as $key_periodo => $periodo){
		$fecha = substr($periodo, 0,4).'-'.substr($periodo, 4,6).'-'.'01';
		if($info->periodo == $fecha){
		  $grafico_ordenado[$fecha]['periodo'] =  $fecha;
		  
		  if(isset($grafico_ordenado[$fecha]['con_garantias_a'])){
			$grafico_ordenado[$fecha]['con_garantias_a'] +=  $info->con_garantias_a;
		  }else{
			$grafico_ordenado[$fecha]['con_garantias_a'] =  ($info->con_garantias_a) ? $info->con_garantias_a : 0;
		  }

		  if(isset($grafico_ordenado[$fecha]['con_garantias_b'])){
			$grafico_ordenado[$fecha]['con_garantias_b'] +=  $info->con_garantias_b;
		  }else{
			$grafico_ordenado[$fecha]['con_garantias_b']=  ($info->con_garantias_b) ? $info->con_garantias_b : 0;
		  }

		  if(isset($grafico_ordenado[$fecha]['sin_garantias'])){
			$grafico_ordenado[$fecha]['sin_garantias'] +=  $info->sin_garantias;
		  }else{
			$grafico_ordenado[$fecha]['sin_garantias']=  ($info->sin_garantias) ? $info->sin_garantias : 0;
		  }

		  if(isset($grafico_ordenado[$fecha]['total'])){
			$grafico_ordenado[$fecha]['total'] +=  $info->total;
		  }else{
			$grafico_ordenado[$fecha]['total']=  ($info->total) ? $info->total : 0;
		  }
		}
		else{
		  if(!isset($grafico_ordenado[$fecha]['periodo'])){
			$grafico_ordenado[$fecha]['periodo']          =  $fecha;
			$grafico_ordenado[$fecha]['con_garantias_a']  =  0;
			$grafico_ordenado[$fecha]['con_garantias_b']  =  0;
			$grafico_ordenado[$fecha]['sin_garantias']    =  0;
			$grafico_ordenado[$fecha]['total']            =  0;
		  }
		}
	  }
	}
	 //arreglo periodos vacíos. 2019-10-07
	foreach ($grafico_ordenado as $fecha => $value) {
	  $total = $grafico_ordenado[$fecha]['total'] - ($grafico_ordenado[$fecha]['con_garantias_a'] + $grafico_ordenado[$fecha]['con_garantias_b'] + $grafico_ordenado[$fecha]['sin_garantias']);
	  if($total > 0){
		if((int)$grafico_ordenado[$fecha]['sin_garantias'] > 0){
		  $grafico_ordenado[$fecha]['sin_garantias'] =  $grafico_ordenado[$fecha]['sin_garantias'] + $total;
		}else{
		  $grafico_ordenado[$fecha]['sin_garantias'] = $total;

		}
	  }
	}
	return array_values($grafico_ordenado);
  }
  private function procesarGraficoSituaciones($data,$periodos){
	$grafico_ordenado = [];
	$n=0;
	foreach($data as $key_info => $info){
	  foreach($periodos as $key_periodo => $periodo){
		$fecha = substr($periodo, 0,4).'-'.substr($periodo, 4,6).'-'.'01';
	  if($info->periodo == $fecha){
		  $grafico_ordenado[$fecha]['periodo'] =  $fecha;
		  
		  if(isset($grafico_ordenado[$fecha]['con_garantias_a'])){
			$grafico_ordenado[$fecha]['con_garantias_a'] +=  $info->con_garantias_a;
		  }else{
			$grafico_ordenado[$fecha]['con_garantias_a'] =  ($info->con_garantias_a) ? $info->con_garantias_a : 0;
		  }

		  if(isset($grafico_ordenado[$fecha]['con_garantias_b'])){
			$grafico_ordenado[$fecha]['con_garantias_b'] +=  $info->con_garantias_b;
		  }else{
			$grafico_ordenado[$fecha]['con_garantias_b']=  ($info->con_garantias_b) ? $info->con_garantias_b : 0;
		  }

		  if(isset($grafico_ordenado[$fecha]['sin_garantias'])){
			$grafico_ordenado[$fecha]['sin_garantias'] +=  $info->sin_garantias;
		  }else{
			$grafico_ordenado[$fecha]['sin_garantias']=  ($info->sin_garantias) ? $info->sin_garantias : 0;
		  }

		  if(isset($grafico_ordenado[$fecha]['total'])){
			$grafico_ordenado[$fecha]['total'] +=  $info->total;
		  }else{
			$grafico_ordenado[$fecha]['total']=  ($info->total) ? $info->total : 0;
		  }
		}
		else{
		  if(!isset($grafico_ordenado[$fecha]['periodo'])){
			$grafico_ordenado[$fecha]['periodo']          =  $fecha;
			$grafico_ordenado[$fecha]['con_garantias_a']  =  0;
			$grafico_ordenado[$fecha]['con_garantias_b']  =  0;
			$grafico_ordenado[$fecha]['sin_garantias']    =  0;
			$grafico_ordenado[$fecha]['total']            =  0;
		  }
		}
		
	  }
	}
	  return array_values($grafico_ordenado);
  }

  	public function obtenerBancos($json = true,$grafico_cheques_bancos='',$grafico_financiero='',$grafico_situaciones='',$grafico_garantias=''){
		$imagen_fidelitas           = Misc::obtenerImagenFidelitas();
		$id_persona                 = Request::input('idp');
		$cuit                       = Request::input("cuit");
		$vinculados_segun_bcra      = SQLConnection::backendStoreProcedure('obtener_vinculados_segun_BCRA', array($cuit));
		$cheques_ordenados          = [];
	//  $periodo_maximo             = SQLConnection::obtenerPeriodoMaximo($cuit);
		$periodo_maximo             = SQLConnection::obtenerPeriodoMaximo($cuit);
		$card_status_bancario       = SQLConnection::obtenerStatusBancario($cuit);
		$periodos_ordenados         = [];
		$periodos_graficos          = [];
		$bancos_ordenados           = [];
		$bancos_ordenados_separados = [];
		$tipo_persona                 = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
		$fecha = time();
		$n=0;
		if(isset(Session::get('usuario')->preferencias->cantidad_cheques)) {
			$cantidad = is_numeric(Session::get('usuario')->preferencias->cantidad_cheques) ? Session::get('usuario')->preferencias->cantidad_cheques : 500;
		} else {
			$cantidad = 500;
		}
	//$cheques      = SQLConnection::obtenerCheques($cuit,$id_persona);
		$cheques      = SQLConnection::backendStoreProcedure('obtener_cheques', array($cuit,$id_persona,$cantidad));
	/*Cuadro de Cheques - Inicio */
		$cuadro_cheques         = [];
		$cuadro_cheques         = SQLConnection::backendStoreProcedure('obtener_cuadro_cheques2', array($cuit));
		$cuadro_cheques_totales = [];
		$total_cheques 					= [];
		$total_cheques['1propio']['cantidad']   = 0;
		$total_cheques['2empresa']['cantidad']  = 0;
		$total_cheques['1propio']['monto']   = 0;
		$total_cheques['2empresa']['monto']  = 0;
	

		if(!isset($cuadro_cheques_totales['1propio']['LEVANTADOS']['SIN FONDOS'])){
			$cuadro_cheques_totales['1propio']['LEVANTADOS']['SIN FONDOS'] = new \stdClass();
			$cuadro_cheques_totales['1propio']['LEVANTADOS']['SIN FONDOS']->cantidad  = 0;
			$cuadro_cheques_totales['1propio']['LEVANTADOS']['SIN FONDOS']->monto     = 0;
	  	}
		if(!isset($cuadro_cheques_totales['1propio']['LEVANTADOS']['DEFECTOS FORMALES'])){
			$cuadro_cheques_totales['1propio']['LEVANTADOS']['DEFECTOS FORMALES'] = new \stdClass();
			$cuadro_cheques_totales['1propio']['LEVANTADOS']['DEFECTOS FORMALES']->cantidad = 0;
			$cuadro_cheques_totales['1propio']['LEVANTADOS']['DEFECTOS FORMALES']->monto    = 0;
		}
	
		if(!isset($cuadro_cheques_totales['1propio']['SIN LEVANTAR']['SIN FONDOS'])){
			$cuadro_cheques_totales['1propio']['SIN LEVANTAR']['SIN FONDOS'] = new \stdClass();
			$cuadro_cheques_totales['1propio']['SIN LEVANTAR']['SIN FONDOS']->cantidad = 0;
			$cuadro_cheques_totales['1propio']['SIN LEVANTAR']['SIN FONDOS']->monto    = 0;
		}
	
		if(!isset($cuadro_cheques_totales['1propio']['SIN LEVANTAR']['DEFECTOS FORMALES'])){
			$cuadro_cheques_totales['1propio']['SIN LEVANTAR']['DEFECTOS FORMALES'] = new \stdClass();
			$cuadro_cheques_totales['1propio']['SIN LEVANTAR']['DEFECTOS FORMALES']->cantidad = 0;
			$cuadro_cheques_totales['1propio']['SIN LEVANTAR']['DEFECTOS FORMALES']->monto    = 0;
		}
	
		if(!isset($cuadro_cheques_totales['1propio']['CHEQUES']['SIN FONDOS'])){
			$cuadro_cheques_totales['1propio']['CHEQUES']['SIN FONDOS'] = new \stdClass();
			$cuadro_cheques_totales['1propio']['CHEQUES']['SIN FONDOS']->cantidad = 0;
			$cuadro_cheques_totales['1propio']['CHEQUES']['SIN FONDOS']->monto    = 0;
		}
		
		if(!isset($cuadro_cheques_totales['1propio']['CHEQUES']['DEFECTOS FORMALES'])){
			$cuadro_cheques_totales['1propio']['CHEQUES']['DEFECTOS FORMALES'] = new \stdClass();
			$cuadro_cheques_totales['1propio']['CHEQUES']['DEFECTOS FORMALES']->cantidad = 0;
			$cuadro_cheques_totales['1propio']['CHEQUES']['DEFECTOS FORMALES']->monto    = 0;
		}

		foreach ($cuadro_cheques as $key => $value) {
			if(!isset($cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->cantidad)){
				$cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal] = new \stdClass();
				$cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->cantidad = 0;
				$cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->monto    = 0;
			}
			$cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->cantidad = $value->cantidad;
			$cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->monto = $value->monto;
			if($value->cheques_o_levantados == 'CHEQUES'){
				$total_cheques[$value->tipo]['cantidad'] = $total_cheques[$value->tipo]['cantidad'] + $value->cantidad;
				$total_cheques[$value->tipo]['monto'] = $total_cheques[$value->tipo]['monto'] + $value->monto;
			}
		}

		if(isset($cuadro_cheques_totales['2empresa'])){
			krsort($cuadro_cheques_totales['2empresa']['CHEQUES']);
		}


	/*Cuadro de Cheques - Fin */
	

		$cheques_vinculaciones_todas = SQLConnection::backendStoreProcedure('obtener_cheques_vinculaciones_todas', array($cuit,$id_persona,$cantidad));
		$financiero             = SQLConnection::obtenerFinancieroBrief($cuit);
		//Gráfico de Situaciones
		$situaciones  = SQLConnection::obtenerSituacionesBancos($cuit);

		$sit_mayor_cero = false;
		if($situaciones){
			foreach ($situaciones as $situacion){
				foreach ($situacion as $key => $value) {
					if($key == 'periodo'){
						$situacion->$key = str_replace('-', ',', $value);
					}
					//
					if ($value == null) {
						$situacion->$key = 0;
					} elseif ($key != 'periodo') {
						$sit_mayor_cero = true;
					}
				}
			}
		}

	if (!$sit_mayor_cero) { $situaciones = null; }

	for ($i = 0; $i <= 23; $i++) {
		$periodos_graficos[$i] = date("Ym", strtotime( $periodo_maximo." -$i months"));
	}
	//Gráfico de garantías
	
	$garantias    = SQLConnection::backendStoreProcedure('obtener_garantias_bancos', array($cuit));
	$garantias    = self::procesarGraficoGarantias($garantias,$periodos_graficos);
	if($garantias){
		foreach ($garantias as $key => $garantia){
			foreach ($garantia as $key2 => $value) {
				if($key2 == 'periodo'){
					$garantias[$key][$key2] = str_replace('-', ',', $value);
				}
			}
		}
	}

	//tabla de bancos
	for ($i = 0; $i <= 23; $i++) {
	  	if ($i%8==0){
		  	$periodo[$i] = date("Ym", strtotime( $periodo_maximo." -$i months"));
	  	} else {
			$periodo[$i] = date("Ym", strtotime( $periodo_maximo." -$i months")); 
	  	}
	}
	krsort($periodo);
	$periodo = array_values($periodo);
	$obtenerBancos = SQLConnection::obtenerBancos($cuit);
	//
	if($obtenerBancos){
	  foreach($obtenerBancos as $key_banco =>$banco){
		foreach($periodo as $key_mes => $mes){
			if($mes == $banco->fec_inf){
			  if(!isset(  $bancos_ordenados['TOTAL_PERIODO'][$mes]['TOTAL_PERIODO'] )) {
				  $bancos_ordenados['TOTAL_PERIODO'][$mes]['TOTAL_PERIODO']  = 0;
			  }
			  $bancos_ordenados[$banco->nombre][$mes]['situacion']  = ($obtenerBancos[$key_banco]->situacion) ? $obtenerBancos[$key_banco]->situacion : '';
			  if(($obtenerBancos[$key_banco]->situacion && $obtenerBancos[$key_banco]->situacion > 1)) {

			  $bancos_ordenados[$banco->nombre][$mes]['desplegar']  = 1;
			  }
			  $bancos_ordenados[$banco->nombre][$mes]['total']      = ($obtenerBancos[$key_banco]->total) ? $obtenerBancos[$key_banco]->total : '';
			  $bancos_ordenados['TOTAL_PERIODO'][$mes]['TOTAL_PERIODO']   += ($obtenerBancos[$key_banco]->total) ? $obtenerBancos[$key_banco]->total : 0;
			}
		  }
		}
	  foreach($bancos_ordenados as $key_bo => $bancos){
		  foreach($periodo as $key_mes => $mes){
			if (!array_key_exists($mes,$bancos)){
			  $bancos_ordenados[$key_bo][$mes]['situacion'] = '';
			  $bancos_ordenados[$key_bo][$mes]['total'] = '';
			  $bancos_ordenados[$key_bo][$mes]['TOTAL_PERIODO'] = '';
			} 
		  }
	  }

	  foreach($bancos_ordenados as $key_bo => $bancos){
		ksort ($bancos_ordenados[$key_bo]);
	  }
	
	  foreach($bancos_ordenados as $key_bo => $bancos){
		$i =0;
		$n =0;
		foreach($bancos as $key_b  => $banco){
		  if($n%8==0){
			$i++;
		  }
		  $bancos_ordenados_separados[$key_bo][$i][$key_b] = $banco;
		  $n++;
			
		}
	  }
		$i =0;
	  foreach($periodo as $key_mes => $mes){
		if($key_mes%8==0){
			$i++;
		}
		$periodos_ordenados[$i][$key_mes] = $mes;
			
		}
	} 
	$periodo = $periodos_ordenados;
	$bancos_ordenados_separados = array_reverse($bancos_ordenados_separados);
	
	$obtener_bancos = $bancos_ordenados_separados;

	if($cheques || $cheques_vinculaciones_todas){
	  foreach($cheques as $key => $cheque){
		  $cheques_ordenados[$cheque->tipo][] = $cheque;
	  }

	  if($cheques_vinculaciones_todas) {
		foreach ($cheques_vinculaciones_todas as $key => $vinculacion_anterior) {
		  $vinculacion_encontrada = false;
		  if (isset($cheques_ordenados['vinculaciones'])) {
			foreach ($cheques_ordenados['vinculaciones'] as $key => $vinculacion) {
			  if ($vinculacion_anterior->cuit_firmante == $vinculacion->cuit_firmante ) {
				$vinculacion_encontrada = true;
			  }
			}
		  }
		  if ($vinculacion_encontrada === false) {
			$vinculacion_anterior->cantidad = 0;
			$cheques_ordenados['vinculaciones'][] = $vinculacion_anterior;
		  }
		}
	  }


	  /* esto se cambio por la linea de abajo 27/10/2020:
	  $cheques_ordenados['cantidad_propios'] = 0;
	  $cheques_ordenados['cantidad_propios'] += isset($cheques_ordenados['propio'][0]->total_cheques) ?$cheques_ordenados['propio'][0]->total_cheques : 0;
	  $cheques_ordenados['cantidad_propios'] += isset($cheques_ordenados['a_nombre_de_empresa'][0]->total_cheques) ?$cheques_ordenados['a_nombre_de_empresa'][0]->total_cheques : 0;
	  */
 	 /*
  	  $cheques_ordenados['cantidad_propios'] = isset($cheques_ordenados['propio']) ? sizeof($cheques_ordenados['propio']) : 0;
  	  $cheques_ordenados['cantidad_propios'] = isset($cheques_ordenados['propio']) ? sizeof($cheques_ordenados['propio']) : 
 	                     isset($cheques_ordenados['a_nombre_de_empresa']) ? sizeof($cheques_ordenados['a_nombre_de_empresa']) : 0; 	
	  */
      $cheques_ordenados['cantidad_propios'] = 0;
	  $cheques_ordenados['cantidad_propios'] += isset($cheques_ordenados['propio'][0]->total_cheques) ? $cheques_ordenados['propio'][0]->total_cheques : 0;
	  $cheques_ordenados['cantidad_propios'] += isset($cheques_ordenados['a_nombre_de_empresa'][0]->total_cheques) ? $cheques_ordenados['a_nombre_de_empresa'][0]->total_cheques : 0;
	   	  
	  $cheques_ordenados['cantidad_empresas'] = isset($cheques_ordenados['empresa']) ? sizeof($cheques_ordenados['empresa']) : 0;
	  $cheques_ordenados['cantidad_vinculaciones'] = isset($cheques_ordenados['vinculaciones']) ? sizeof($cheques_ordenados['vinculaciones']) : 0;
	}
	$grafico_cheques  = SQLConnection::graficoCardChequesRechazados($cuit);
	$cancelaciones    = SQLConnection::obtenerCancelacion($cuit);
	$grafico_cheques  = self::generarGraficoCheques($grafico_cheques,24);
	$persona_fisica   = (substr($cuit,0,1) != '3') ? true : false ;
	$cheques  = $cheques_ordenados;
	$env      = Misc::obtenerColoresEnv();
	
	$obtener_morosos = 	SQLConnection::backendStoreProcedure('obtener_morosos', array($cuit));

	$vista =  \View::make('informes/bancos')->with(compact('periodo','obtener_morosos','obtener_bancos','cheques','persona_fisica','card_status_bancario','json'
	  ,'grafico_cheques_bancos','grafico_financiero','grafico_situaciones','grafico_garantias','cancelaciones', 'id_persona', 'cuit','vinculados_segun_bcra','grafico_cheques','cuadro_cheques','cuadro_cheques_totales','total_cheques'))->render();
	//Session::put($cuit." ".date('Y-m-d').".bancos",json_encode($vista));
	if(!$json){
	  return $vista;
	}
	return \Response::json(
	  array(
		'view' => $vista,
		'info'=>compact('financiero','situaciones','garantias','env','grafico_cheques','cheques','obtener_morosos','obtener_bancos','cancelaciones','imagen_fidelitas')
	
	  )
	, 200, [], JSON_NUMERIC_CHECK);
  }
  
  
 	function obtenerComex($json=true,$grafico_impo_comex='',$grafico_expo_comex='',$grafico_pais_impo_comex='',$grafico_rubro_impo_comex='',$grafico_pais_expo_comex='',$grafico_rubro_expo_comex=''){
		$meses = 24;
		$imagen_fidelitas   = Misc::obtenerImagenFidelitas();
		$cuit               = Request::input("cuit");
		$periodo            = '';
		$periodos_null      = '';
		$periodo_expo       = '';
		$consumo            = '';
		$temporal           = '';
		$deposito           = '';
		$zonafranca         = '';
		$total              = '';
		$comex_pais_impo    = [];
		$comex_pais_expo    = [];
		$comex_grafico_impo = [];
		$otros_pais_impo    = 0;
		$otros_pais_expo    = 0;
		$periodo_procesado  = SQLConnection::obtenerUltimoPeriodoProcesado('comercio_exterior');
		$comex_impo         = SQLConnection::obtenerComex($cuit);
		$tipo_persona       = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;

		if($comex_impo){
			for ($i = 0; $i <= 24; $i++) {
				$periodos_null[$i] = date("Ym", strtotime($periodo_procesado." -$i months"));
				$anio     = substr($periodos_null[$i], 0,4);
				$mes      = substr($periodos_null[$i], 4,6);
				$comex_grafico_impo[$i]             = new \stdClass;
				$comex_grafico_impo[$i]->mes        = $mes;
				$comex_grafico_impo[$i]->anio       = $anio;
				$comex_grafico_impo[$i]->consumo    = 0;
				$comex_grafico_impo[$i]->temporal   = 0;
				$comex_grafico_impo[$i]->procesado  = 0;
				$comex_grafico_impo[$i]->date       = 0;
				$comex_grafico_impo[$i]->Date       = 0;
				$comex_grafico_impo[$i]->deposito   = 0;
				$comex_grafico_impo[$i]->zonafranca = 0;
				$comex_grafico_impo[$i]->total      = 0;
			}
			$number =0;
			/* $total_consumo     = '';
			$total_temporal    = '';  
			$total_deposito    = '';  
			$total_zona_franca = '';  
			$total_totales     = '';  */ 
			$total_consumo     = array();
			$total_temporal    = array();  
			$total_deposito    = array();  
			//$total_zona_franca = '';  
			$total_zonafranca = array();  
			$total_totales     = array(); 
			foreach($comex_impo as $key=>$impo){
				//totales que se muestran en 'tabla_comex'
				/* $total_consumo[$key]    = $impo->consumo;
				$total_temporal[$key]   = $impo->temporal;
				$total_deposito[$key]   = $impo->deposito;
				$total_zonafranca[$key] = $impo->zonafranca;
				$total_totales[$key]    = $impo->total; */
				array_push($total_consumo, isset($impo->consumo) ? $impo->consumo : 0);
				array_push($total_temporal, isset($impo->temporal) ? $impo->temporal : 0);
				array_push($total_deposito, isset($impo->deposito) ? $impo->deposito : 0);
				//$total_zonafranca = $impo->zonafranca;
				array_push($total_zonafranca, isset($impo->zonafranca) ? $impo->zonafranca : 0);
				array_push($total_totales, isset($impo->total) ? $impo->total : 0);
				foreach($comex_grafico_impo as $key => $graf){
					if($impo->anio==$graf->anio && $impo->mes == $graf->mes){
						$number = $key;
						//if($key == 0){
						//}
						if($graf->total != 0){
							$number++;
							$comex_grafico_impo[$number] = $impo;

						}else{
							$comex_grafico_impo[$number] = $impo;
							$number++;
						}
					}
				//sort($comex_grafico_impo['ordenar']);
				}
			}
			//totales que se muestran en 'tabla_comex'
			//echo(var_dump($total_totales));die();
			$total_consumo    = array_sum($total_consumo);
			$total_temporal   = array_sum($total_temporal);
			$total_deposito   = array_sum($total_deposito);
			//$total_zonafranca = $total_zonafranca;
			$total_zonafranca = array_sum($total_zonafranca);
			$total_totales    = array_sum($total_totales);

			//var_dump($total_temporal); die();
		}
		$comex_expo         = SQLConnection::obtenerGraficoExportaciones($cuit);
		$periodo_procesado  = SQLConnection::obtenerUltimoPeriodoProcesado('comex_pais_rubro');
		$comex_grafico_exportaciones            = [];
		$comex_grafico_exportaciones[]          = new \stdClass;

		if($comex_expo){
			for ($i = 0; $i <= 24; $i++) {
				$periodos_null[$i] = date("Ym", strtotime($periodo_procesado." -$i months"));
				$comex_grafico_exportaciones[$i]                = new \stdClass;
				$comex_grafico_exportaciones[$i]->valor_mensual = 0;
				$comex_grafico_exportaciones[$i]->periodo       = $periodos_null[$i];
			}

			foreach($comex_expo as $expo){
				foreach($comex_grafico_exportaciones as $key => $graf){
					if($expo->periodo==$graf->periodo){
						$comex_grafico_exportaciones[$key] = $expo;
					}
				}
			}

			foreach($comex_grafico_exportaciones as $key => $expo){
				$comex_grafico_exportaciones[$key]->anio = substr($expo->periodo, 0, 4);
				$comex_grafico_exportaciones[$key]->mes = substr($expo->periodo, 4, 6) - 1;
			}
		}
		$comex_paises     = SQLConnection::obtenerComexPais($cuit);
		$comex_rubros     = SQLConnection::obtenerComexRubros($cuit);
		$comex_totales    = SQLConnection::obtenerComexTotales($cuit,24);
		$ni               = 0;
		$ne               = 0;
		$total_pais_impo  = 0;
		$total_pais_expo  = 0;
		//Importacion/Exportacion PAISES
		foreach ($comex_paises as $key => $comex_pais){
		
			if($comex_pais->tipo_operacion == 'IMPO'){
				if($ni <5){
					$ni++;
					$comex_pais_impo[] = $comex_pais;
					$comex_pais->nombre = mb_strtoupper($comex_pais->nombre);
				}else{
					$otros_pais_impo += $comex_pais->fob;
				}
				$total_pais_impo += $comex_pais->fob;
			}

			if($comex_pais->tipo_operacion == 'EXPO'){
				if($ne <5){
					$ne++;
					$comex_pais_expo[] = $comex_pais;
					$comex_pais->nombre = mb_strtoupper($comex_pais->nombre);
				}else{
					$otros_pais_expo += $comex_pais->fob;
				}
				$total_pais_expo += $comex_pais->fob;
			}

		}
		if($otros_pais_expo > 0){
			$object = new \stdClass();
			$object->tipo_operacion = 'EXPO';
			$object->nombre   = 'Otros';
			$object->fob    = (string)$otros_pais_expo;
			$comex_pais_expo[] = $object;
		}

		$object = new \stdClass();
		$object->tipo_operacion = 'EXPO';
		$object->nombre   = 'Totales';
		$object->fob    = (string)$total_pais_expo;
		if($total_pais_expo > 0){
			$comex_pais_expo[] = $object;
		}

		if($otros_pais_impo > 0){
			$object = new \stdClass();
			$object->tipo_operacion = 'IMPO';
			$object->nombre   = 'Otros';
			$object->fob    = (string)$otros_pais_impo;
			$comex_pais_impo[] = $object;
		}

		$object = new \stdClass();
		$object->tipo_operacion = 'IMPO';
		$object->nombre   = 'Totales';
		$object->fob    = (string)$total_pais_impo;
		if($total_pais_impo > 0){
			$comex_pais_impo[] = $object;
		}
		//Importacion/Exportacion RUBROS
		$comex_rubro_impo = [];
		$comex_rubro_expo = [];
		$ni_r             = 0;
		$ne_r             = 0;
		$total_rubro_impo = 0;
		$total_rubro_expo = 0;
		$otros_rubro_impo = 0;
		$otros_rubro_expo = 0;

		foreach ($comex_rubros as $key => $comex_rubro){
		
			if($comex_rubro->tipo_operacion == 'IMPO'){
				if($ni_r < 5 ){
					$ni_r++;
					$comex_rubro_impo[] = $comex_rubro;
				}else{
					$otros_rubro_impo += $comex_rubro->fob;
				}
				$total_rubro_impo += $comex_rubro->fob;
			}

			if($comex_rubro->tipo_operacion == 'EXPO'){
				if($ne_r < 5 ){
					$ne_r++;
					$comex_rubro_expo[] = $comex_rubro;
				}else{
					$otros_rubro_expo += $comex_rubro->fob;
				}
				$total_rubro_expo += $comex_rubro->fob;
			}
		}
		
		if($otros_rubro_expo > 0){
			$obj                 = new \stdClass();
			$obj->tipo_operacion = 'EXPO';
			$obj->descripcion    = 'Otros';
			$obj->fob            = (string)$otros_rubro_expo;
			$comex_rubro_expo[]  = $obj;
		}
		$obj                 = new \stdClass();
		$obj->tipo_operacion = 'EXPO';
		$obj->descripcion    = 'Totales';
		$obj->fob            = (string)$total_rubro_expo;
		if($total_rubro_expo > 0){
			$comex_rubro_expo[] = $obj;
		}
		if($otros_rubro_impo > 0){
			$obj                  = new \stdClass();
			$obj->tipo_operacion  = 'IMPO';
			$obj->descripcion     = 'Otros';
			$obj->fob             = (string)$otros_rubro_impo;
			$comex_rubro_impo[]   = $obj;
		}

		$obj = new \stdClass();
		$obj->tipo_operacion  = 'IMPO';
		$obj->descripcion     = 'Totales';
		$obj->fob             = (string)$total_rubro_impo;
		if($total_rubro_impo > 0){
			$comex_rubro_impo[] = $obj;
		}
		$esled = '';

		//----
		if (!isset($total_consumo)){
			$total_consumo = NULL;
		}
		//---
		if (!isset($total_temporal)){
			$total_temporal = NULL;
		}
		//---
		if (!isset($total_deposito)){
			$total_deposito = NULL;
		}
		//---
		if (!isset($total_zonafranca)){
			$total_zonafranca = NULL;
		}
		//---
		if (!isset($total_totales)){
			$total_totales = NULL;
		}
		//$vista =  \View::make('informes/comex')->with(compact('total_pais_impo','total_pais_expo','periodo','consumo','temporal','deposito','zonafranca','total','comex_totales','json','grafico_impo_comex','grafico_expo_comex','grafico_pais_impo_comex','grafico_rubro_impo_comex','grafico_pais_expo_comex','grafico_rubro_expo_comex','comex_pais_impo','comex_pais_expo','comex_rubro_impo','comex_rubro_expo','total_rubro_impo','total_rubro_expo','comex_impo','comex_expo','total_consumo','total_temporal','total_deposito','total_zonafranca','total_totales','meses','esled'))->render();
		$vista =  \View::make('informes/comex')->with(compact('total_pais_impo','total_pais_expo','periodo','consumo','temporal','deposito','zonafranca','total','comex_totales','json','grafico_impo_comex','grafico_expo_comex','grafico_pais_impo_comex','grafico_rubro_impo_comex','grafico_pais_expo_comex','grafico_rubro_expo_comex','comex_pais_impo','comex_pais_expo','comex_rubro_impo','comex_rubro_expo','total_rubro_impo','total_rubro_expo','comex_impo','comex_expo','meses','esled','total_consumo','total_temporal','total_deposito','total_zonafranca','total_totales'))->render();
		
		if(!$json){
			return $vista;
		}
		Session::put($cuit." ".date('Y-m-d').".comex",json_encode($vista));
		$comex_json = json_encode($comex_impo);
		return \Response::json(
			array(
				'view' =>$vista,
				//'info'=>compact('comex_impo','comex_expo','maximo','sort_pais_impo','sort_pais_expo','sort_rubros_impo','sort_rubros_expo','comex_grafico_exportaciones','comex_pais_expo','comex_pais_impo','comex_rubro_impo','comex_rubro_expo','tipo_persona','total_consumo','total_temporal','total_deposito','total_zonafranca','total_totales')
				'info'=>compact('comex_impo','comex_expo','comex_grafico_exportaciones','comex_pais_expo','comex_pais_impo','comex_rubro_impo','comex_rubro_expo','tipo_persona','total_consumo','total_temporal','total_deposito','total_zonafranca','total_totales')
			)
		);
	}

	public function obtenerBrief($json=true,$graf_pdf_financiero='',$graf_pdf_empleados='',$graf_pdf_cheques='',$graf_pdf_score='',$graf_pdf_comex ='',$incluye_balance = 1, $cliente_login = 0){
		//--  ARRAY PARA GUARDAR LOS DATOS EN LOS CUALES SE GENERA ALGUN TIPO DE ERROR  --//
		//echo("Rs: ".$_POST['razon_social'].' Idp: '.$_POST['idp'].' Cuit: '.$_POST['cuit']); die();
		$partes_del_informe = '';
		try {
			$cuit  = Request::input("cuit");
			$user_id = Session::get('usuario')->user_id;
			$razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
			// $partes_del_informe .= "datos_usuario -> Cuit: ".$cuit." - User Id: ".$user_id.'<br>';
			$partes_del_informe .= "<b>DATOS DE USUARIO<br>Cuit: ".$cuit." - User Id: ".$user_id.'</b><br><br>';
	
			if(isset( Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')])){
				$servicio = SQLConnection::consumirServicio($user_id,$cuit,ENV('ID_INFORME_COMERCIAL'));
			} else if(isset(Session::get('usuario')->cliente[ENV('INFORME_API')])){
				$servicio = SQLConnection::consumirServicio($user_id,$cuit,ENV('INFORME_API'));
			}else {
				$servicio = new \stdClass;
				$servicio->sumar = 0;
			}
	
			if($servicio->sumar == 1){
				if(isset( Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')])){
					// SQLConnection::insertarRegistroActividad("INFORME COMERCIAL",$cuit);
					Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->usuario_consumido++;
					Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->cliente_consumido++;
				}
			}
			  /* Fin 08/10/2020 */ 
			
			/* 1 es lo que se toma por default, si está en 1, vemos si tenemos algo distinto en la sesion */
			if ($incluye_balance == 1) { 
				$incluye_balance = session::get('incluye_balance') ?? 1; 
			}
			/* vemos si tenemos algo distinto en la sesion */
			if ($cliente_login == 0) { 
				$cliente_login = Session::get('cliente_login') ?? Session::get('usuario')->cliente['client_id']; 
			}
			$idp               = Request::input('idp');
			$cuit              = Request::input("cuit");
			$imagen_fidelitas  = Misc::obtenerImagenFidelitas();
			$afip_respuesta = [];

			if(ENV('SERVICIOS_AFIP') == true){
				$afip_respuesta = AFIPController::obtenerPadron_test($cuit); //--> LINEA CON MEJORAS, PARA VOLVER AL ESTADO ANTERIOR DESCOMENTAR LA DE ABAJO Y COMENTAR ESTA.
				//$afip_respuesta = AFIPController::obtenerPadron($cuit); //--> LINEA ORIGINAL
				// $partes_del_informe .= 'obtenerPadron_test: si <br>';
				$partes_del_informe .= '<ul><li>Consulta AFIP --> Si </li>';
			} else {
				// $partes_del_informe .= 'obtenerPadron_test: no <br>';
				$partes_del_informe .= '<ul><li>Consulta AFIP --> No </li>';
			}
	
			// Agregado 10/07/2018: Si es persona fisica, ve si puede completar datos con Padron Electoral (ultimo domicilio, año de nacimiento)
			$fisica_juridica = Misc::tipoPersona($cuit);
			$p_fisica = ($fisica_juridica == 'F') ? true : false;
			if ($p_fisica){
				$actualiza = SQLConnection::actualizarDatosConPadron($cuit,'0');
				// $partes_del_informe .= 'actualizarDatosConPadron: si <br>';
				$partes_del_informe .= '<li>Persona física --> Si </li>';
			} else {
				// $partes_del_informe .= 'actualizarDatosConPadron: no <br>';
				$partes_del_informe .= '<li>Persona física --> No </li>';
			}
			
			// Obtener Bancos para calcular si amerita por situación uno y sumar al score
			// Se almacenan en variable de clase para ser reutilizadas en la pestaña de bancos
			$obtener_bancos = SQLConnection::obtenerBancos($cuit);
			// $partes_del_informe .= 'obtenerBancos: si <br>';
			if($obtener_bancos != []){
				$partes_del_informe .= '<li>Cálculo Bancos --> Si, registra '.strval(count($obtener_bancos)).' resultados de la consulta</li>';
			} else {
				$partes_del_informe .= '<li>Cálculo Bancos --> No, registra '.strval(count($obtener_bancos)).' resultados de la consulta</li>';
			}			
	
			$situacion_1 = Misc::ameritaPorSituacionUno($obtener_bancos);
			// $partes_del_informe .= 'ameritaPorSituacionUno: si <br>';
			if($obtener_bancos != []){
				$partes_del_informe .= '<li>Amerita Score --> Si</li>';
			} else {
				$partes_del_informe .= '<li>Amerita Score --> No</li>';
			}
			
	
			self::$amerita_situacion_1 = $situacion_1['amerita'];
			self::$cantidad_situacion_1 = $situacion_1['cantidad'];
	
			$link_pdf = env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.pdf';
			self::$tiene_pdf = file_exists($link_pdf);
			// $partes_del_informe .= 'tiene_pdf: si <br>';
			if(file_exists($link_pdf)){
				$partes_del_informe .= '<li>Pdf AFIP --> Existe </li>';
			} else {
				$partes_del_informe .= '<li>Pdf AFIP --> No existe </li>';
			}
	
			$card_score                   = [];
			$card_bancos                  = [];
			$card_cheques                 = [];
			$card_domicilios              = [];
			$card_empleados               = [];
			$card_comex                   = [];
			$card_personas_relacionadas   = [];
			$card_sociedades_relacionadas = [];
			$partes_del_informe .= '<li>cards_varios --> si </li>';
	
			//$p_fisica                     = (substr($cuit,0,1) == 3) ? false : true;
			$fisica_juridica = Misc::tipoPersona($cuit); 
			$p_fisica = ($fisica_juridica == 'F') ? true : false;
			$periodo                      = [];
			$grafico_cheques_ordenados    = [];
			$cheques[]                    =  new \stdClass;
			$env                          = Misc::obtenerColoresEnv();
			$score_ordenado               = [];
			$defuncion                    = [];
			/*CALCULO SCORE inicio*/
			$debug_score                  = '';
			$sesion_externa               = (Session::get('externo')) ? true : false;
			$partes_del_informe .= '<li>config_panel --> si </li>';
	
			$comex_impo                   = SQLConnection::obtenerComex($cuit);
			// $partes_del_informe .= 'obtenerComex: si <br>';
			if($comex_impo != []){
				$partes_del_informe .= '<li>Servicio de ComEx --> Si tiene</li>';
			} else {
				$partes_del_informe .= '<li>Servicio de ComEx --> No tiene</li>';
			}
	
			if(!$sesion_externa){
				if(isset(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')])){
					$cliente = Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->nombre_cliente;
				}
			} else {
				$cliente = 'Externo';
			}
	
			/* card 6 empleados inicio*/
			
			if(!$p_fisica){
				$card_fiscales = SQLConnection::obtenerCardFiscales($cuit);
				//$card_fiscales); //error con AKAPOL SA CUIT 30504065207 (12/09/2017) 
				if (is_null($card_fiscales)) {
					$card_fiscales = '';
				} else {
					$card_fiscales->inicio_actividad = Misc::convertirFormatoFecha($card_fiscales->inicio_actividad,'Y-m-d','d/m/Y');
				} 
			} else {
				$card_fiscales = SQLConnection::obtenerCardFiscalesPF($cuit);
				self::$edad = Misc::obtenerEdadPersonaFisica($cuit);
	
			}
			
			$sircreb = SQLConnection::obtenerSircreb($cuit);
	
			$riesgo_fiscal = 'NO';
			if($sircreb){
				foreach($sircreb as $info){
					$hoy = date('Y-m-d h:i:s');
					if (($hoy > $info->vigencia_desde) && ($hoy < $info->vigencia_hasta)) {
						$riesgo_fiscal='SI';
					}else if($hoy > $info->vigencia_desde){
						$riesgo_fiscal = '--';
					}
				}
			}
			$partes_del_informe .= '<li>card_6_empleados --> si </li>';
			/* card 6 empleados fin*/
	
			if (!self::$tiene_pdf && empty($card_fiscales)){
				self::$observado = true;
			}
			$respuesta_score = '';
			if(strlen($cuit) == 11){
				$respuesta_score  = json_decode(ApiControllerV1::obtenerServicioScore($cuit,$incluye_balance),true);
				// $partes_del_informe .= 'obtenerServicioScore: si <br>';
				$partes_del_informe .= '<li>obtenerServicioScore --> si </li>';
	
			} else {
				$partes_del_informe .= '<li>obtenerServicioScore --> no </li>';
			}
	
			$resp_constancia  = $respuesta_score['resp_constancia'] ?? '';
	
			if($respuesta_score == ''){
				$score = 0;
				$debug_score = '';
			} else {
				$score            = $respuesta_score['score'];
				$debug_score      = $respuesta_score['debug_score'];
			}
			//
			if($p_fisica){
				$defuncion      = SQLConnection::obtenerDefuncion($cuit);
				$dni            = (int)substr($cuit, 2,-1);
				$partes_del_informe .= '<li>obtenerDefuncion --> Si </li>';
			} else {
				$partes_del_informe .= '<li>obtenerDefuncion --> no </li>';
			}
	
			if(env('SERVICIOS_AFIP') == FALSE){
				$debug_score .= "<br>---------------<br><strong>RESPUESTA AFIP</strong><br>---------------<br><strong>EL LLAMADO A AFIP SE ENCUENTRA DESHABILITADO</strong><br>";
			}
	
			// En el detalle del score, se muestra la respuesta de AFIP
			if(ENV('SERVICIOS_AFIP') == true){
				$afip_ordenado = '';
				if(is_array($afip_respuesta)) {
					foreach($afip_respuesta as $afip){
						$afip_decode[] = json_decode($afip,true);
					}
					$afip_respuesta = $afip_decode;
				}
				  
				if(!is_array($afip_respuesta)) {
					$afip_ordenado .= "<br>" . $afip_respuesta;

				} else {
					foreach ($afip_respuesta as $key => $value) {
						if(!is_array($value)) {
							$afip_ordenado  .= "<strong><br>". $key .":</strong> ". $value ;
						} else {
							$afip_ordenado .= "<strong><br>" . $key . ":" . "</strong>";
							foreach ($value as $key2 => $value2) {
								if(!is_array($value2)) {
									$afip_ordenado  .= "<strong><br>   ". $key2 .":</strong> ". $value2 ;
								} else {
									$afip_ordenado .= "<strong><br>   " . $key2 . ":" . "</strong>";
	
									foreach ($value2 as $key3 => $value3) {
										if(!is_array($value3)) {
											$afip_ordenado  .= "<strong><br>      ". $key3 .":</strong> ". $value3 ;
										} else {
											foreach ($value3 as $key4 => $value4) {
												if(!is_array($value4)) {
													$afip_ordenado  .= "<strong><br>      ". $key4 .":</strong> ". $value4 ;
												} else {
						
												}
											}
										}
									}
								}
							}
						}
					}
				}
				//
				if ($afip_ordenado != '') {
					$debug_score .= "<br>---------------<br><strong>RESPUESTA AFIP</strong><br>---------------" .$afip_ordenado;
				}
				//
			}
			$debug_score  .= "<br>---------------<br><strong>RESPUESTA CONSTANCIA CUIT</strong><br>---------------<br><br>" ;
			if(!empty($resp_constancia)){
				$debug_score  .= "RESPUESTA : ".$resp_constancia['response']."<br>ERROR:".$resp_constancia['constancia_error'];
			}
			$partes_del_informe .= '<li>debug_score --> si </li>';
	 
			if(!$p_fisica){
				$datos_card_score   = SQLConnection::obtenerCardScore($cuit);
			} else {
				$datos_card_score   = SQLConnection::obtenerCardScorePF($cuit);
			}
			$partes_del_informe .= '<li>obtenerCardScorePF --> si </li>';
			/*CALCULO SCORE fin*/
			/*card 1 inicio */
			$vitalidad = 1;
			$motivo_vitalidad = 1;
			// CALCULO DE EDAD
			$menor_de_edad = 0;
			if ($p_fisica){
				self::$edad = Misc::obtenerEdadPersonaFisica($cuit);
				//--
				if ( self::$edad < 18 && self::$edad !== NULL){
					$menor_de_edad = 1;
				}
			}
			//
			/*
						var_dump("EDAD");
						var_dump(self::$edad);
						var_dump($menor_de_edad);
						die(); 
			*/
			$cheque_ultimo_rechazo_desde = '';
			if(!$p_fisica && strlen($cuit) == 11){
				$sintomas = SQLConnection::backendStoreProcedure('obtener_sintomas_de_vitalidad', array($cuit), true);
				$cheque_ultimo_rechazo_desde   = SQLConnection::backendStoreProcedure('obtener_no_cheqrech_desde', array($cuit), true);
				$vitalidad = 1;
				if ((!$p_fisica) && isset($sintomas->vitalidad) && $sintomas->vitalidad == 0) {
					$score = 0;
					$vitalidad = 0;
					$motivo_vitalidad = $sintomas->motivo; 
				}
			}

			// CALCULO DE ARGENTINO: Si no es argentino no se calcula el Score
			$nacionalidad = Misc::nacionalidad($cuit); 
			if ($nacionalidad !== 'AR')
			{
					$menor_de_edad = 0;
					$score = 0;
			}
			//

			$card_score['score']= $score;
			$card_score['datos']= $datos_card_score;
	
			// $partes_del_informe .= 'card_1: si <br>';
			$partes_del_informe .= '<li>Card Score --> Si </li>';
			/*card 1 fin */
	  
			/*card 2 inicio */
			$garantias          = SQLConnection::obtenerGarantiasBrief($cuit);
			$financiero         = SQLConnection::obtenerFinancieroBrief($cuit);
			$card_bancos        = SQLConnection::obtenerCardBancos($cuit);
	
			// $partes_del_informe .= 'card_2: si <br>';
			$partes_del_informe .= '<li>Card Financiero --> Si </li>';
			/*card 2 fin */
	
			/* card 3 cheques rechazados inicio*/
			$card_cheques     = SQLConnection::obtenerCardChequesRechazados($cuit);
			$grafico_cheques  = SQLConnection::graficoCardChequesRechazados($cuit);
			// return response()->json($grafico_cheques);
			$grafico_cheques  = self::generarGraficoCheques($grafico_cheques,24);
	
			// $partes_del_informe .= 'card_3: si <br>';
			$partes_del_informe .= '<li>Card Cheques --> Si </li>';
			/* card 3 cheques rechazados fin*/
	  
			/* card 4 domicilios inicio*/
			$domicilios = new \stdClass;
			$formales       = SQLConnection::obtenerDomicilios($cuit);
			$domicilios->otros_domicilios = '';
			$domicilios->domicilio_legal  = '';
			$domicilios->domicilio        = '';
			$domicilios->domicilio_fiscal = '';
	
			foreach($formales as $formal) {
				// Domicilio Legal 
				if(strpos($formal->tipo_domicilio, 'L') !== false){
					if (isset($domicilios->domicilio_legal) && $domicilios->domicilio_legal != '') {
						if (strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'F') === false) {
							$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
						}
					} else {
						$domicilios->domicilio_legal = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
					}
				}
				// Domicilio Fiscal 
				if(strpos($formal->tipo_domicilio, 'F') !== false){
					if (isset($domicilios->domicilio_fiscal) && $domicilios->domicilio_fiscal != '') {
						if (strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'L') === false) {
							$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
						}
					} else {
						$domicilios->domicilio_fiscal = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
					}
				}
	
				// Domicilio Principal
				if(strpos($formal->tipo_domicilio, 'D') !== false || strpos($formal->tipo_domicilio, 'E') !== false) {
					if (isset($domicilios->domicilio) && $domicilios->domicilio != '') {
						if (strpos($formal->tipo_domicilio, 'F') === false && strpos($formal->tipo_domicilio, 'L') === false) {
							$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
						}
					} else {
						$domicilios->domicilio = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
					}
				}
				// Otros Domicilios
				if (strpos($formal->tipo_domicilio, 'O') !== false && strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'L') === false && strpos($formal->tipo_domicilio, 'F') === false){
					$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
				}
			}
	
			if($domicilios->domicilio == '' && $domicilios->domicilio_fiscal != ''){
				$domicilios->domicilio  .= $domicilios->domicilio_fiscal;
			}
	
			$card_domicilios['domicilios'] = $domicilios;
			
			// $partes_del_informe .= 'card_4: si <br>';
			$partes_del_informe .= '<li>Card Domicilio --> Si </li>';
			// card 4 domicilios fin
	  
			//card 5 empleados inicio
			$card_empleados = SQLConnection::obtenerEmpleados($cuit);
			
			// $partes_del_informe .= 'card_5: si <br>';
			$partes_del_informe .= '<li>Card Empleados --> Si </li>';
			// card 5 empleados fin
	
			// card 7 empleados inicio
			$primero =date('Y');
			$segundo =date('Y')-1;
			$tercero =date('Y')-2;
			$mostrar_grafico_card_comex = false;

			if ($nacionalidad == 'AR' || (strlen($cuit) == 11 && is_numeric(($cuit)))) {

	                // Solo buscamos comex si es argentino / un cuit numerico de 11 digitos
			$card_comex[$primero] = SQLConnection::obtenerCardComex($cuit,$primero);
			$card_comex[$segundo] = SQLConnection::obtenerCardComex($cuit,$segundo);
			$card_comex[$tercero] = SQLConnection::obtenerCardComex($cuit,$tercero);
			foreach($card_comex as $comex){
				foreach($comex as $info){
					if(!empty($info) && $info->total_anual != null){
						$mostrar_grafico_card_comex = true;
					}
				}
			}

}
			// $partes_del_informe .= 'card_7: si <br>';
			$partes_del_informe .= '<li>Card Comex --> Si </li>';
			// card 7 empleados fin
	
			// card 8 empleados inicio
			$card_personas_relacionadas = SQLConnection::obtenerCardPersonasRelacionadas($cuit);
			// $partes_del_informe .= 'card_8: si <br>';
			$partes_del_informe .= '<li>Card Relacionadas --> Si </li>';
			// card 8 empleados fin
	  
			//card 9 empleados inicio
			$tipo_persona = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
			$card_sociedades_relacionadas = SQLConnection::obtenerCardSociedadesRelacionadas($cuit,$tipo_persona);
	
			// $partes_del_informe .= 'card_9: si <br>';
			$partes_del_informe .= '<li>Card Sociedades --> Si </li>';
			/* card 9 empleados fin*/
			
			/*card 10 Juicios*/
			//$razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
			/*$razon_debug = $razon_social;
			$razon_debug = explode(' ', $razon_debug);
			$razon_debug = $razon_debug[0].' '.$razon_debug[1];*/
			//$razon_social_legales = Misc::diccionarioSinonimos($razon_social);
			$razon_social_legales = Misc::diccionarioSinonimos2020($razon_social);
			$cuit_enmascarado = $cuit;
	
			$dni = '';
			if($p_fisica){
				$dni = (int)substr($cuit, 2,-1);
			}
			$mask = substr( $cuit_enmascarado, 1,1 );
			$mask .= '-';
			$cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, 1,1);
			$mask = substr( $cuit_enmascarado, -1,-1 );
			$mask .= '-';
			$cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, -1,-1);
	
			$card_juicios = new \stdClass();
			$card_juicios->concursos_quiebras         = [];
			$card_juicios->pedidos_quiebra            = [];
			$card_juicios->remates                    = SQLConnection::obtenerRemates($cuit,$cuit_enmascarado,$dni);
			$card_juicios->otros_juicios_comerciales  = [];
			$card_juicios->remates = sizeof($card_juicios->remates);
	
			$resultado_nombres_ant     = []; 
			$razon_social_completa     = '';
	
				if($p_fisica == false) {
					//P Juridica
				  	$nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
				  	if ($nombres_anteriores) {
						foreach ($nombres_anteriores as $nombre_ant) {
							$resultado_nombres_ant[] = $nombre_ant->nombre; 
						}		
						$resultado_nombres_ant[] = $razon_social;
				  	}
					
				  	$sinonimos =  Misc::diccionarioSinonimosTest($resultado_nombres_ant);
				  	$count_sinonimo = count($sinonimos)-1;
	
				  	foreach($sinonimos as $key => $rs) {
						if (strlen($rs) < 3) {
							continue; 
						}
	
						if(!($key == $count_sinonimo)){
							$razon_social_completa .= $rs.'OR';
						}else{
							$razon_social_completa .= $rs;
						}
				  	}

					if(!$razon_social_completa) {
						$razon_social_completa = $razon_social_legales;
					}
				} else {
					//caso PF
					$razon_social_completa = "\"".$razon_social."\"";
				}
	
				$razon_social_legales = $razon_social_completa; 
				$juicios_cantidades = new \stdClass();
				
				if (strlen($razon_social_legales) >= 4 && $razon_social_legales !== '"DE"') {
					$razon_social_legales = (Misc::parche_cla($razon_social_legales)); 
					try {
						$juicios_cantidades  =  SQLConnection::backendStoreProcedure('obtener_count_juicios',array($cuit,$razon_social_legales),true);
						$card_juicios->otros_juicios_comerciales = $juicios_cantidades->cantidad_ojc;
						$card_juicios->concursos_quiebras        = $juicios_cantidades->cantidad_cyq;
						$card_juicios->pedidos_quiebra           = $juicios_cantidades->cantidad_pq;
						$card_juicios->actor                     = $juicios_cantidades->cantidad_actor;
						$card_juicios->demandado_homonimo        = $juicios_cantidades->cantidad_demandado_homonimo;
						$card_juicios->actores_homonimos         = $juicios_cantidades->cantidad_actor_homonimo; 					
					} catch (\Throwable $th) {
						/*$card_juicios->otros_juicios_comerciales = '-';
						$card_juicios->concursos_quiebras        = '-';
						$card_juicios->pedidos_quiebra           = '-';
						$card_juicios->actor                     = '-';
						$card_juicios->demandado_homonimo        = '-';
						$card_juicios->actores_homonimos         = '-'; */
						
						$card_juicios->otros_juicios_comerciales = '0';
						$card_juicios->concursos_quiebras        = '0';
						$card_juicios->pedidos_quiebra           = '0';
						$card_juicios->actor                     = '0';
						$card_juicios->demandado_homonimo        = '0';
						$card_juicios->actores_homonimos         = '0'; 	
					}
				} else {
					$card_juicios->otros_juicios_comerciales = '0';
					$card_juicios->concursos_quiebras        = '0';
					$card_juicios->pedidos_quiebra           = '0';
					$card_juicios->actor                     = '0';
					$card_juicios->demandado_homonimo        = '0';
					$card_juicios->actores_homonimos         = '0'; 
				}
				$card_juicios->total = $card_juicios->actores_homonimos + $card_juicios->demandado_homonimo + $card_juicios->actor + $card_juicios->otros_juicios_comerciales + $card_juicios->remates + $card_juicios->concursos_quiebras + $card_juicios->pedidos_quiebra;
				// $partes_del_informe .= 'card_10: si <br>';
				$partes_del_informe .= '<li>Card Juicios --> Si </li>';
	
				//$sesion_externa = (Session::get('externo')) ? true : false;
				if(isset(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')])){
					$secciones = array_keys(Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->secciones);
				}else if(isset(Session::get('usuario')->cliente[env('INFORME_API')])){
					$secciones = array_keys(Session::get('usuario')->cliente[ENV('INFORME_API')]->secciones);
				}
	
				$antiguedad_situacion_1 = SQLConnection::backendStoreProcedure('obtener_cendeu_sit1_desde', array($cuit),true);

				$nivel_socioeconomico = new \stdClass();
				if($tipo_persona == 'j'){
					if($score > 50){
						$nivel_socioeconomico = SQLConnection::backendStoreProcedure('obtener_nivel_socioeconomico_2021', array($cuit,$tipo_persona),true);		
					} else {
						$nivel_socioeconomico->error = 'El Nivel del rango de ventas de la compañia no puede ser calculado';
					}
				} else {
					$nivel_socioeconomico = SQLConnection::backendStoreProcedure('obtener_nivel_socioeconomico_2021', array($cuit,$tipo_persona),true);
				}
				//
				$sujeto_obligado    = 0;
				$apocrifas          = SQLConnection::backendStoreProcedure('obtener_apocrifas', array($cuit), true);
				$client_id          = isset(Session::get('usuario')->cliente['client_id'] ) ? Session::get('usuario')->cliente['client_id'] : 0;
	
				if($client_id > 0 && ($client_id == '2254875' || $client_id == '745239806')) {
					$respuestaso =  SQLConnection::backendStoreProcedure('obtener_sujeto_obligado',array($cuit),true);
					if(!empty($respuestaso)){
						$sujeto_obligado = $respuestaso->sujeto_obligado;
					}  
				}
				// 06/11/2020 : Card de Limite de Crédito - Dependencia Económica 
				$solicitado = new \stdClass;
				$otorgado = new \stdClass;
				$cme = new \stdClass;
				$otorgado_cme = new \stdClass;
				$multiple = new \stdClass;
				$multiples_montos = []; 
				$depecon = new \stdClass;
				$depebal = new \stdClass;
				$fecha_bal = new \stdClass;
				$datos_dep = new \stdClass;
				$contraparte_lcs = 0; 
				$contraparte_de  = 0; 
				//
				$contrapartes = SQLConnection::backendStoreProcedure('LN_cuit_contraparte_lcs', array($cliente_login, $cuit,'LCS'), 'select');
				//
				if(!empty($contrapartes)){
					$id = $contrapartes[0]->contraparte; 
					$contraparte_lcs = $id; 
					$solicitado = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'monto_solicitado'), 'selectOne');
					$otorgado = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'monto_otorgado'), 'selectOne');
					$cme = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'CAPACIDAD_ENDEUDAMIENTO'), 'selectOne');
					$otorgado_cme = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'MONTO_OTORGADO_CME'), 'selectOne');
					$multiple  = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'PORCENTAJE_CREDITO'), 'selectOne');
					if ( !empty($multiple) ){
						$multiples_montos = SQLConnection::backendStoreProcedure('LN_limite_credito_multiple', array($id), 'select');
					}
				}
				$contrapartes = SQLConnection::backendStoreProcedure('LN_cuit_contraparte_lcs', array($cliente_login, $cuit,'DE'), 'select');
				//
				if(!empty($contrapartes)){
					$id = $contrapartes[0]->contraparte; 
					$contraparte_de = $id; 
					$depecon = SQLConnection::backendStoreProcedure('LN_dependencia_economica', array($id), 'selectOne');
					$depebal = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', $cliente_login, null, null, $id, 'DEP_ECON_BALANCE'), 'selectOne'); 
					$fecha_bal = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', $cliente_login, null, null, $id, 'DEP_ECON_BALANCE_FECHA'), 'selectOne'); 
					$datos_dep = SQLConnection::backendStoreProcedure('LN_dependencia_economica_balance', array($id), 'selectOne');
				}
                //
				$cliente = (isset($cliente)) ? $cliente : $cliente_login;
				
                if (isset($_POST['iv_new']) && $_POST['iv_new'] == 1){
				    $vista= view('iv/new/iv_brief')->with(compact('card_score','card_bancos','card_cheques','card_domicilios','card_empleados','card_fiscales', 'apocrifas', 'card_comex','card_personas_relacionadas','card_sociedades_relacionadas','json','p_fisica','debug_score','riesgo_fiscal','graf_pdf_empleados','graf_pdf_financiero','graf_pdf_cheques','graf_pdf_score','cliente','mostrar_grafico_card_comex','graf_pdf_comex','idp', 'card_juicios','nivel_socioeconomico','antiguedad_situacion_1','cheque_ultimo_rechazo_desde','sujeto_obligado', 'solicitado','otorgado','cme','otorgado_cme','multiple','multiples_montos','depecon','depebal','fecha_bal','datos_dep','contraparte_de','contraparte_lcs','partes_del_informe'))->render();
                }else {
                    $vista= view('informes/brief')->with(compact('card_score','card_bancos','card_cheques','card_domicilios','card_empleados','card_fiscales', 'apocrifas', 'card_comex','card_personas_relacionadas','card_sociedades_relacionadas','json','p_fisica','debug_score','riesgo_fiscal','graf_pdf_empleados','graf_pdf_financiero','graf_pdf_cheques','graf_pdf_score','cliente','mostrar_grafico_card_comex','graf_pdf_comex','idp', 'card_juicios','nivel_socioeconomico','antiguedad_situacion_1','cheque_ultimo_rechazo_desde','sujeto_obligado', 'solicitado','otorgado','cme','otorgado_cme','multiple','multiples_montos','depecon','depebal','fecha_bal','datos_dep','contraparte_de','contraparte_lcs','partes_del_informe'))->render();
                }
				if(!$json){
					return $vista;
				}
				
				//Session::put($cuit." ".date('Y-m-d').".brief",json_encode($vista));
				return \Response::json(
					array(
						'view' =>$vista,
						'info'=>compact('score','cheques','financiero','env','card_empleados','grafico_cheques','secciones','p_fisica','card_comex','mostrar_grafico_card_comex','defuncion','card_fiscales', 'vitalidad', 'motivo_vitalidad','menor_de_edad','card_bancos','idp','imagen_fidelitas','cuit','partes_del_informe')
					), 200, [], JSON_NUMERIC_CHECK);
	
		} catch (\Throwable $th) {
			// echo($th->getMessage().' '.$th->getLine()); die();
			SQLConnection::control_erores('MainController', 'obtenerBrief', $th->getMessage()." L: ".$th->getLine()." - DESARROLLO");
			//Misc::enviarMail_errores('claudio.arguello@fidelitas.com.ar','alejandro.burgol@fidelitas.com.ar',$partes_del_informe.$th->getMessage()." L: ".$th->getLine()." - DESARROLLO",$subject="Fidelitas");
			Misc::enviarMail_errores('rami.aleid@fidelitas.com.ar','alejandro.burgol@fidelitas.com.ar',$partes_del_informe.$th->getMessage()." L: ".$th->getLine()." - DESARROLLO",$subject="Fidelitas");
			http_response_code( 500 );
			die();	
		}
		  
    }
	

	public function obtenerBrief_noUsar($json=true,$graf_pdf_financiero='',$graf_pdf_empleados='',$graf_pdf_cheques='',$graf_pdf_score='',$graf_pdf_comex ='',$incluye_balance = 1, $cliente_login = 0){
		//--  ARRAY PARA GUARDAR LOS DATOS EN LOS CUALES SE GENERA ALGUN TIPO DE ERROR  --//
		$partes_del_informe = '';
		//try {
			$cuit  = Request::input("cuit");
			$user_id = Session::get('usuario')->user_id;
			$razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
			
			// $partes_del_informe .= "datos_usuario -> Cuit: ".$cuit." - User Id: ".$user_id.'<br>';
			$partes_del_informe .= "<b>DATOS DE USUARIO<br>Cuit: ".$cuit." - User Id: ".$user_id.'</b><br><br>';
	
			if(isset( Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')])){
				$servicio = SQLConnection::consumirServicio($user_id,$cuit,ENV('ID_INFORME_COMERCIAL'));
			}else if(isset(Session::get('usuario')->cliente[ENV('INFORME_API')])){
				$servicio = SQLConnection::consumirServicio($user_id,$cuit,ENV('INFORME_API'));
			}else{
				$servicio = new \stdClass;
				$servicio->sumar = 0;
			}
	
			if($servicio->sumar == 1){
				if(isset( Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')])){
					// SQLConnection::insertarRegistroActividad("INFORME COMERCIAL",$cuit);
					Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->usuario_consumido++;
					Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->cliente_consumido++;
				}
			}
			  /* Fin 08/10/2020 */ 
	
			if ($incluye_balance == 1) /* 1 es lo que se toma por default, si está en 1, vemos si tenemos algo distinto en la sesion */ 
				{ $incluye_balance = session::get('incluye_balance') ?? 1; }
			if ($cliente_login == 0) /* vemos si tenemos algo distinto en la sesion */ 
				{ $cliente_login = Session::get('cliente_login') ?? Session::get('usuario')->cliente['client_id']; }
	
			$idp               = Request::input('idp');
			$cuit              = Request::input("cuit");
			$imagen_fidelitas  = Misc::obtenerImagenFidelitas();
			$afip_respuesta = [];
			if(ENV('SERVICIOS_AFIP') == true){
				$afip_respuesta = AFIPController::obtenerPadron_test($cuit); //--> LINEA CON MEJORAS, PARA VOLVER AL ESTADO ANTERIOR DESCOMENTAR LA DE ABAJO Y COMENTAR ESTA.
				//$afip_respuesta = AFIPController::obtenerPadron($cuit); //--> LINEA ORIGINAL
				// $partes_del_informe .= 'obtenerPadron_test: si <br>';
				$partes_del_informe .= '<ul><li>Consulta AFIP --> Si </li>';
			} else {
				// $partes_del_informe .= 'obtenerPadron_test: no <br>';
				$partes_del_informe .= '<ul><li>Consulta AFIP --> No </li>';
			}
	
			// Agregado 10/07/2018: Si es persona fisica, ve si puede completar datos con Padron Electoral (ultimo domicilio, año de nacimiento)
			$fisica_juridica = Misc::tipoPersona($cuit); 
			$p_fisica = ($fisica_juridica == 'F') ? true : false;
			if ($p_fisica){
				$actualiza = SQLConnection::actualizarDatosConPadron($cuit,'0');
				// $partes_del_informe .= 'actualizarDatosConPadron: si <br>';
				$partes_del_informe .= '<li>Persona física --> Si </li>';
			} else {
				// $partes_del_informe .= 'actualizarDatosConPadron: no <br>';
				$partes_del_informe .= '<li>Persona física --> No </li>';
			}
			
			// Obtener Bancos para calcular si amerita por situación uno y sumar al score
			// Se almacenan en variable de clase para ser reutilizadas en la pestaña de bancos
			$obtener_bancos = SQLConnection::obtenerBancos($cuit);
			// $partes_del_informe .= 'obtenerBancos: si <br>';
			if($obtener_bancos != []){
				$partes_del_informe .= '<li>Cálculo Bancos --> Si, registra '.strval(count($obtener_bancos)).' resultados de la consulta</li>';
			} else {
				$partes_del_informe .= '<li>Cálculo Bancos --> No, registra '.strval(count($obtener_bancos)).' resultados de la consulta</li>';
			}			
	
			$situacion_1 = Misc::ameritaPorSituacionUno($obtener_bancos);
			// $partes_del_informe .= 'ameritaPorSituacionUno: si <br>';
			if($obtener_bancos != []){
				$partes_del_informe .= '<li>Amerita Score --> Si</li>';
			} else {
				$partes_del_informe .= '<li>Amerita Score --> No</li>';
			}
			
	
			self::$amerita_situacion_1 = $situacion_1['amerita'];
			self::$cantidad_situacion_1 = $situacion_1['cantidad'];
	
			$link_pdf = env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.pdf';
			self::$tiene_pdf = file_exists($link_pdf);
			// $partes_del_informe .= 'tiene_pdf: si <br>';
			if(file_exists($link_pdf)){
				$partes_del_informe .= '<li>Pdf AFIP --> Existe </li>';
			} else {
				$partes_del_informe .= '<li>Pdf AFIP --> No existe </li>';
			}
	
			$card_score                   = [];
			$card_bancos                  = [];
			$card_cheques                 = [];
			$card_domicilios              = [];
			$card_empleados               = [];
			$card_comex                   = [];
			$card_personas_relacionadas   = [];
			$card_sociedades_relacionadas = [];
			$partes_del_informe .= '<li>cards_varios --> si </li>';
	
			//$p_fisica                     = (substr($cuit,0,1) == 3) ? false : true;
			$fisica_juridica = Misc::tipoPersona($cuit); 
			$p_fisica = ($fisica_juridica == 'F') ? true : false;
			$periodo                      = [];
			$grafico_cheques_ordenados    = [];
			$cheques[]                    =  new \stdClass;
			$env                          = Misc::obtenerColoresEnv();
			$score_ordenado               = [];
			$defuncion                    = [];
			/*CALCULO SCORE inicio*/
			$debug_score                  = '';
			$sesion_externa               = (Session::get('externo')) ? true : false;
			$partes_del_informe .= '<li>config_panel --> si </li>';
	
			$comex_impo                   = SQLConnection::obtenerComex($cuit);
			// $partes_del_informe .= 'obtenerComex: si <br>';
			if($comex_impo != []){
				$partes_del_informe .= '<li>Servicio de ComEx --> Si tiene</li>';
			} else {
				$partes_del_informe .= '<li>Servicio de ComEx --> No tiene</li>';
			}
	
			if(!$sesion_externa){
				if(isset(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')])){
					$cliente = Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->nombre_cliente;
				}
			}else{
				$cliente = 'Externo';
			}
	
			/* card 6 empleados inicio*/
			if(!$p_fisica){
				$card_fiscales = SQLConnection::obtenerCardFiscales($cuit);
				//$card_fiscales); //error con AKAPOL SA CUIT 30504065207 (12/09/2017) 
				if (is_null($card_fiscales)) {
					$card_fiscales = '';
				}else{
					$card_fiscales->inicio_actividad = Misc::convertirFormatoFecha($card_fiscales->inicio_actividad,'Y-m-d','d/m/Y');
				} 
			}else{
				$card_fiscales = SQLConnection::obtenerCardFiscalesPF($cuit);
				self::$edad = Misc::obtenerEdadPersonaFisica($cuit);
	
			}
			$sircreb = SQLConnection::obtenerSircreb($cuit);
	
			$riesgo_fiscal = 'NO';
			if($sircreb){
				foreach($sircreb as $info){
				$hoy = date('Y-m-d h:i:s');
				if (($hoy > $info->vigencia_desde) && ($hoy < $info->vigencia_hasta))
				{
					$riesgo_fiscal='SI';
				}else if($hoy > $info->vigencia_desde){
					$riesgo_fiscal = '--';
				}
				}
			}
			$partes_del_informe .= '<li>card_6_empleados --> si </li>';
			/* card 6 empleados fin*/
	
			if (!self::$tiene_pdf && empty($card_fiscales)){
				self::$observado = true;
			}
			$respuesta_score = '';
			if(strlen($cuit) == 11){
				$respuesta_score  = json_decode(ApiControllerV1::obtenerServicioScore($cuit,$incluye_balance),true);
				// $partes_del_informe .= 'obtenerServicioScore: si <br>';
				$partes_del_informe .= '<li>obtenerServicioScore --> si </li>';
	
			} else {
				$partes_del_informe .= '<li>obtenerServicioScore --> no </li>';
			}
	
			$resp_constancia  = $respuesta_score['resp_constancia'] ?? '';
	
			if($respuesta_score == ''){
				$score = 0;
				$debug_score = '';
			}else{
				$score            = $respuesta_score['score'];
				$debug_score      = $respuesta_score['debug_score'];
			}
			if($p_fisica){
				$defuncion      = SQLConnection::obtenerDefuncion($cuit);
				$dni            = (int)substr($cuit, 2,-1);
				$partes_del_informe .= '<li>obtenerDefuncion --> Si </li>';
			} else {
				$partes_del_informe .= '<li>obtenerDefuncion --> no </li>';
			}
	
			if(env('SERVICIOS_AFIP') == FALSE){
				$debug_score .= "<br>---------------<br><strong>RESPUESTA AFIP</strong><br>---------------<br><strong>EL LLAMADO A AFIP SE ENCUENTRA DESHABILITADO</strong><br>";
			}
	
			// En el detalle del score, se muestra la respuesta de AFIP
			if(ENV('SERVICIOS_AFIP') == true){
				$afip_ordenado = '';
				  if(is_array($afip_respuesta)){
					foreach($afip_respuesta as $afip){
						  $afip_decode[] = json_decode($afip,true);
					}
					$afip_respuesta = $afip_decode;
				  }
				  
				  if(!is_array($afip_respuesta)) {
					 $afip_ordenado .= "<br>" . $afip_respuesta;
				  } else {
					foreach ($afip_respuesta as $key => $value) {
						 if(!is_array($value)) {
							$afip_ordenado  .= "<strong><br>". $key .":</strong> ". $value ;
						} else {
							  $afip_ordenado .= "<strong><br>" . $key . ":" . "</strong>";
							  foreach ($value as $key2 => $value2) {
								  if(!is_array($value2)) {
									 $afip_ordenado  .= "<strong><br>   ". $key2 .":</strong> ". $value2 ;
								  } else {
									$afip_ordenado .= "<strong><br>   " . $key2 . ":" . "</strong>";
	
									foreach ($value2 as $key3 => $value3) {
										  if(!is_array($value3)) {
											$afip_ordenado  .= "<strong><br>      ". $key3 .":</strong> ". $value3 ;
										  } else {
											foreach ($value3 as $key4 => $value4) {
												  if(!is_array($value4)) {
													$afip_ordenado  .= "<strong><br>      ". $key4 .":</strong> ". $value4 ;
												  } else {
							
												  }
											}
										  }
									}
								  }
							  }
						  }
					}
				  }
				  if ($afip_ordenado != '') {
					  $debug_score .= "<br>---------------<br><strong>RESPUESTA AFIP</strong><br>---------------" .$afip_ordenado;
				}
	
			}
			$debug_score  .= "<br>---------------<br><strong>RESPUESTA CONSTANCIA CUIT</strong><br>---------------<br><br>" ;
			if(!empty($resp_constancia)){
				$debug_score  .= "RESPUESTA : ".$resp_constancia['response']."<br>ERROR:".$resp_constancia['constancia_error'];
			}
			$partes_del_informe .= '<li>debug_score --> si </li>';
	 
			if(!$p_fisica){
				$datos_card_score   = SQLConnection::obtenerCardScore($cuit);
			}else{
				$datos_card_score   = SQLConnection::obtenerCardScorePF($cuit);
			}
			$partes_del_informe .= '<li>obtenerCardScorePF --> si </li>';
			/*CALCULO SCORE fin*/
	
			/*card 1 inicio */
			$cheque_ultimo_rechazo_desde = '';
			if(!$p_fisica && strlen($cuit) == 11){
				$sintomas = SQLConnection::backendStoreProcedure('obtener_sintomas_de_vitalidad', array($cuit), true);
				$cheque_ultimo_rechazo_desde   = SQLConnection::backendStoreProcedure('obtener_no_cheqrech_desde', array($cuit), true);
				$vitalidad = 1;
				if ((!$p_fisica) && isset($sintomas->vitalidad) && $sintomas->vitalidad == 0) {
					$score = 0;
					$vitalidad = 0;
					$motivo_vitalidad = $sintomas->motivo; 
				}
			}
	  
			$card_score['score']= $score;
			$card_score['datos']= $datos_card_score;
	
			// $partes_del_informe .= 'card_1: si <br>';
			$partes_del_informe .= '<li>Card Score --> Si </li>';
			/*card 1 fin */
	  
			/*card 2 inicio */
			$garantias          = SQLConnection::obtenerGarantiasBrief($cuit);
			$financiero         = SQLConnection::obtenerFinancieroBrief($cuit);
			$card_bancos        = SQLConnection::obtenerCardBancos($cuit);
	
			// $partes_del_informe .= 'card_2: si <br>';
			$partes_del_informe .= '<li>Card Financiero --> Si </li>';
			/*card 2 fin */
	
			/* card 3 cheques rechazados inicio*/
			$card_cheques     = SQLConnection::obtenerCardChequesRechazados($cuit);
			$grafico_cheques  = SQLConnection::graficoCardChequesRechazados($cuit);
			// return response()->json($grafico_cheques);
			$grafico_cheques  = self::generarGraficoCheques($grafico_cheques,24);
	
			// $partes_del_informe .= 'card_3: si <br>';
			$partes_del_informe .= '<li>Card Cheques --> Si </li>';
			/* card 3 cheques rechazados fin*/
	  
			/* card 4 domicilios inicio*/
			$domicilios = new \stdClass;
			$formales       = SQLConnection::obtenerDomicilios($cuit);
			$domicilios->otros_domicilios = '';
			$domicilios->domicilio_legal  = '';
			$domicilios->domicilio        = '';
			$domicilios->domicilio_fiscal = '';
	
			foreach($formales as $formal) {
				/* Domicilio Legal */
				if(strpos($formal->tipo_domicilio, 'L') !== false){
					if (isset($domicilios->domicilio_legal) && $domicilios->domicilio_legal != '') {
						if (strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'F') === false) {
							$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
						}
					} else {
						$domicilios->domicilio_legal = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
					}
				}
				/* Domicilio Fiscal */
				if(strpos($formal->tipo_domicilio, 'F') !== false){
					  if (isset($domicilios->domicilio_fiscal) && $domicilios->domicilio_fiscal != '') {
						if (strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'L') === false) {
							$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
						}
					  } else {
						$domicilios->domicilio_fiscal = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
					  }
				}
	
				/* Domicilio Principal */ 
				if(strpos($formal->tipo_domicilio, 'D') !== false || strpos($formal->tipo_domicilio, 'E') !== false) {
					  if (isset($domicilios->domicilio) && $domicilios->domicilio != '') {
						if (strpos($formal->tipo_domicilio, 'F') === false && strpos($formal->tipo_domicilio, 'L') === false) {
							$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
						}
					  } else {
						$domicilios->domicilio = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
					  }
				}
				/* Otros Domicilios */
				if (strpos($formal->tipo_domicilio, 'O') !== false && strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'L') === false && strpos($formal->tipo_domicilio, 'F') === false){
					$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
				}
			  }
	
			if($domicilios->domicilio == '' && $domicilios->domicilio_fiscal != ''){
				$domicilios->domicilio  .= $domicilios->domicilio_fiscal;
			}
	
			  $card_domicilios['domicilios'] = $domicilios;
			
			// $partes_del_informe .= 'card_4: si <br>';
			$partes_del_informe .= '<li>Card Domicilio --> Si </li>';
			  /* card 4 domicilios fin*/
	  
			/* card 5 empleados inicio*/
			$card_empleados = SQLConnection::obtenerEmpleados($cuit);
			// $partes_del_informe .= 'card_5: si <br>';
			$partes_del_informe .= '<li>Card Empleados --> Si </li>';
			/* card 5 empleados fin*/
			
			/* card 7 empleados inicio*/
			$primero =date('Y');
			$segundo =date('Y')-1;
			$tercero =date('Y')-2;
			$mostrar_grafico_card_comex = false;
			$card_comex[$primero] = SQLConnection::obtenerCardComex($cuit,$primero);
			$card_comex[$segundo] = SQLConnection::obtenerCardComex($cuit,$segundo);
			$card_comex[$tercero] = SQLConnection::obtenerCardComex($cuit,$tercero);
			foreach($card_comex as $comex){
				foreach($comex as $info){
					if(!empty($info) && $info->total_anual != null){
						$mostrar_grafico_card_comex = true;
					}
				}
			}
			// $partes_del_informe .= 'card_7: si <br>';
			$partes_del_informe .= '<li>Card Comex --> Si </li>';
			/* card 7 empleados fin*/
	
			/* card 8 empleados inicio*/
			$card_personas_relacionadas = SQLConnection::obtenerCardPersonasRelacionadas($cuit);
			// $partes_del_informe .= 'card_8: si <br>';
			$partes_del_informe .= '<li>Card Relacionadas --> Si </li>';
			/* card 8 empleados fin*/
	  
			/* card 9 empleados inicio*/
			$tipo_persona = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
			$card_sociedades_relacionadas = SQLConnection::obtenerCardSociedadesRelacionadas($cuit,$tipo_persona);
	
			// $partes_del_informe .= 'card_9: si <br>';
			$partes_del_informe .= '<li>Card Sociedades --> Si </li>';
			/* card 9 empleados fin*/
			
			/*card 10 Juicios*/
			//$razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
			/*$razon_debug = $razon_social;
			$razon_debug = explode(' ', $razon_debug);
			$razon_debug = $razon_debug[0].' '.$razon_debug[1];*/
			//$razon_social_legales = Misc::diccionarioSinonimos($razon_social);
			$razon_social_legales = Misc::diccionarioSinonimos2020($razon_social);
			
			$cuit_enmascarado = $cuit;
	
			$dni = '';
			if($p_fisica){
				$dni = (int)substr($cuit, 2,-1);
			}
			$mask = substr( $cuit_enmascarado, 1,1 );
			$mask .= '-';
			$cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, 1,1);
			$mask = substr( $cuit_enmascarado, -1,-1 );
			$mask .= '-';
			$cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, -1,-1);
	
			$card_juicios = new \stdClass();
			$card_juicios->concursos_quiebras         = [];
			$card_juicios->pedidos_quiebra            = [];
			$card_juicios->remates                    = SQLConnection::obtenerRemates($cuit,$cuit_enmascarado,$dni);
			$card_juicios->otros_juicios_comerciales  = [];
			$card_juicios->remates = sizeof($card_juicios->remates);
	
			$resultado_nombres_ant     = []; 
			$razon_social_completa     = '';
	
			  if($p_fisica == false) {
				  //P Juridica
				  $nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
				  if ($nombres_anteriores) {
					foreach ($nombres_anteriores as $nombre_ant) {
						$resultado_nombres_ant[] = $nombre_ant->nombre; 
					}		
					$resultado_nombres_ant[] = $razon_social;
				  } 
		  
				  $sinonimos =  Misc::diccionarioSinonimosTest($resultado_nombres_ant);
				  $count_sinonimo = count($sinonimos)-1;
	
				  foreach($sinonimos as $key => $rs) {
					if (strlen($rs) < 3) {
						  continue; 
					}
	
					if(!($key == $count_sinonimo)){
						$razon_social_completa .= $rs.'OR';
					}else{
						$razon_social_completa .= $rs;
					}
				  }
				if(!$razon_social_completa) {
					  $razon_social_completa = $razon_social_legales; }
				} else {//caso PF
					  $razon_social_completa = "\"".$razon_social."\"";
				}
				
				  $razon_social_legales = $razon_social_completa; 
				  $juicios_cantidades = new \stdClass();
				if (strlen($razon_social_legales) >= 4 && $razon_social_legales !== '"DE"') {
					$razon_social_legales = (Misc::parche_cla($razon_social_legales));
					try {
						$juicios_cantidades  =  SQLConnection::backendStoreProcedure('obtener_count_juicios',array($cuit,$razon_social_legales),true);
						$card_juicios->otros_juicios_comerciales = $juicios_cantidades->cantidad_ojc;
						$card_juicios->concursos_quiebras        = $juicios_cantidades->cantidad_cyq;
						$card_juicios->pedidos_quiebra           = $juicios_cantidades->cantidad_pq;
						$card_juicios->actor                     = $juicios_cantidades->cantidad_actor;
						$card_juicios->demandado_homonimo        = $juicios_cantidades->cantidad_demandado_homonimo;
						$card_juicios->actores_homonimos         = $juicios_cantidades->cantidad_actor_homonimo; 					
					} catch (\Throwable $th) {
						$card_juicios->otros_juicios_comerciales = '-';
						$card_juicios->concursos_quiebras        = '-';
						$card_juicios->pedidos_quiebra           = '-';
						$card_juicios->actor                     = '-';
						$card_juicios->demandado_homonimo        = '-';
						$card_juicios->actores_homonimos         = '-'; 	
					}
				} else {
					$card_juicios->otros_juicios_comerciales = '0';
					$card_juicios->concursos_quiebras        = '0';
					$card_juicios->pedidos_quiebra           = '0';
					$card_juicios->actor                     = '0';
					$card_juicios->demandado_homonimo        = '0';
					$card_juicios->actores_homonimos         = '0'; 
				}
	if ($card_juicios->otros_juicios_comerciales != '-')
	{
		
				$card_juicios->total = $card_juicios->actores_homonimos + $card_juicios->demandado_homonimo + $card_juicios->actor + $card_juicios->otros_juicios_comerciales + $card_juicios->remates + $card_juicios->concursos_quiebras + $card_juicios->pedidos_quiebra;
	}
				// $partes_del_informe .= 'card_10: si <br>';
				$partes_del_informe .= '<li>Card Juicios --> Si </li>';
	
				  //$sesion_externa = (Session::get('externo')) ? true : false;
				  if(isset(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')])){
					  $secciones = array_keys(Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->secciones);
				  }else if(isset(Session::get('usuario')->cliente[env('INFORME_API')])){
					  $secciones = array_keys(Session::get('usuario')->cliente[ENV('INFORME_API')]->secciones);
				  }
	
				  $antiguedad_situacion_1 = SQLConnection::backendStoreProcedure('obtener_cendeu_sit1_desde', array($cuit),true);
	
				  $nivel_socioeconomico = new \stdClass();
				  if($tipo_persona == 'j'){
					if($score > 50){
						  $nivel_socioeconomico = SQLConnection::backendStoreProcedure('obtener_nivel_socioeconomico_2021', array($cuit,$tipo_persona),true);
						  
					} else {
						  $nivel_socioeconomico->error = 'El Nivel del rango de ventas de la compañia no puede ser calculado';
					}
				  } else {
					$nivel_socioeconomico = SQLConnection::backendStoreProcedure('obtener_nivel_socioeconomico_2021', array($cuit,$tipo_persona),true);
				  }
				$sujeto_obligado    = 0;
				$apocrifas          = SQLConnection::backendStoreProcedure('obtener_apocrifas', array($cuit), true);
				$client_id          = isset(Session::get('usuario')->cliente['client_id'] ) ? Session::get('usuario')->cliente['client_id'] : 0;
	
				  if($client_id > 0 AND ($client_id == '2254875' || $client_id == '745239806')) {
					$respuestaso      =  SQLConnection::backendStoreProcedure('obtener_sujeto_obligado',array($cuit),true);
					if(!empty($respuestaso)){
						  $sujeto_obligado = $respuestaso->sujeto_obligado;
					}  
				 }
	
				  /* 06/11/2020 : Card de Limite de Crédito - Dependencia Económica */
				$solicitado = new \stdClass;
				$otorgado = new \stdClass;
				$cme = new \stdClass;
				$otorgado_cme = new \stdClass;
				$multiple = new \stdClass;
				$multiples_montos = []; 
				$depecon = new \stdClass;
				$depebal = new \stdClass;
				$fecha_bal = new \stdClass;
				$datos_dep = new \stdClass;
				$contraparte_lcs = 0; 
				$contraparte_de  = 0; 
	
				$contrapartes = SQLConnection::backendStoreProcedure('LN_cuit_contraparte_lcs', array($cliente_login, $cuit,'LCS'), 'select');
	
				if(!empty($contrapartes)){
					$id = $contrapartes[0]->contraparte; 
					$contraparte_lcs = $id; 
					$solicitado = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'monto_solicitado'), 'selectOne');
					$otorgado = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'monto_otorgado'), 'selectOne');
					$cme = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'CAPACIDAD_ENDEUDAMIENTO'), 'selectOne');
					$otorgado_cme = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'MONTO_OTORGADO_CME'), 'selectOne');
					$multiple  = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'PORCENTAJE_CREDITO'), 'selectOne');
					if (!empty($multiple )){
						$multiples_montos = SQLConnection::backendStoreProcedure('LN_limite_credito_multiple', array($id), 'select');
					}
				}
	  
				  $contrapartes = SQLConnection::backendStoreProcedure('LN_cuit_contraparte_lcs', array($cliente_login, $cuit,'DE'), 'select');
	
				if(!empty($contrapartes)){
					$id = $contrapartes[0]->contraparte; 
					$contraparte_de = $id; 
					$depecon = SQLConnection::backendStoreProcedure('LN_dependencia_economica', array($id), 'selectOne');
					$depebal = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', $cliente_login, null, null, $id, 'DEP_ECON_BALANCE'), 'selectOne'); 
					$fecha_bal = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', $cliente_login, null, null, $id, 'DEP_ECON_BALANCE_FECHA'), 'selectOne'); 
					$datos_dep = SQLConnection::backendStoreProcedure('LN_dependencia_economica_balance', array($id), 'selectOne');
				}
				
				$vista= view('informes/brief')->with(compact('card_score','card_bancos','card_cheques','card_domicilios','card_empleados','card_fiscales', 'apocrifas', 'card_comex','card_personas_relacionadas','card_sociedades_relacionadas','json','p_fisica','debug_score','riesgo_fiscal','graf_pdf_empleados','graf_pdf_financiero','graf_pdf_cheques','graf_pdf_score','cliente','mostrar_grafico_card_comex','graf_pdf_comex','idp', 'card_juicios','nivel_socioeconomico','antiguedad_situacion_1','cheque_ultimo_rechazo_desde','sujeto_obligado', 
					'solicitado','otorgado','cme','otorgado_cme','multiple','multiples_montos','depecon','depebal','fecha_bal','datos_dep','contraparte_de','contraparte_lcs','partes_del_informe'))->render();
				if(!$json){
					return $vista;
				}
				//Session::put($cuit." ".date('Y-m-d').".brief",json_encode($vista));
				if (! isset($motivo_vitalidad) ){
					$motivo_vitalidad = null;
				}
				

				return \Response::json(
					array(
						'view' =>$vista,
						'info'=>compact('score','cheques','financiero','env','card_empleados','grafico_cheques','secciones','p_fisica','card_comex','mostrar_grafico_card_comex','defuncion','card_fiscales', 'vitalidad', 'motivo_vitalidad', 'card_bancos','idp','imagen_fidelitas','cuit','partes_del_informe')), 200, [], JSON_NUMERIC_CHECK);
	
		/*} catch (\Throwable $th) {
			SQLConnection::control_erores('MainController', 'obtenerBrief', $th->getMessage()." L: ".$th->getLine()." - TEST");
			Misc::enviarMail_errores('claudio.arguello@fidelitas.com.ar','alejandro.burgol@fidelitas.com.ar',$partes_del_informe.$th->getMessage()." L: ".$th->getLine()." - TEST",$subject="Fidelitas");
			http_response_code( 500 );
			die();	
		}*/
		  
	  }

  	public function obtenerBrief_Ant($json=true,$graf_pdf_financiero='',$graf_pdf_empleados='',$graf_pdf_cheques='',$graf_pdf_score='',$graf_pdf_comex ='',$incluye_balance = 1, $cliente_login = 0){
  		/* 08/10/2020 Guardo el consumo, apenas entra, de esta manera si se alcanza el limite con este informe, 
  	   	nadie mas pueda consumir en el mismo momento, antes al tardar, otro podia estar consultando en los mismo momento... */
		
		$cuit              = Request::input("cuit");
  		$user_id = Session::get('usuario')->user_id;
		if(isset( Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')])){
			$servicio = SQLConnection::consumirServicio($user_id,$cuit,ENV('ID_INFORME_COMERCIAL'));
		}else if(isset(Session::get('usuario')->cliente[ENV('INFORME_API')])){
			$servicio = SQLConnection::consumirServicio($user_id,$cuit,ENV('INFORME_API'));
		}else{
			$servicio = new \stdClass;
			$servicio->sumar = 0;
		}
		if($servicio->sumar == 1){
			if(isset( Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')])){
			// SQLConnection::insertarRegistroActividad("INFORME COMERCIAL",$cuit);
				Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->usuario_consumido++;
				Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->cliente_consumido++;
			}
		}
    	/* Fin 08/10/2020 */ 

		if ($incluye_balance == 1) /* 1 es lo que se toma por default, si está en 1, vemos si tenemos algo distinto en la sesion */ 
			{ $incluye_balance = session::get('incluye_balance') ?? 1; }
		if ($cliente_login == 0) /* vemos si tenemos algo distinto en la sesion */ 
			{ $cliente_login = Session::get('cliente_login') ?? Session::get('usuario')->cliente['client_id']; }
		$idp               = Request::input('idp');
		$cuit              = Request::input("cuit");
		$imagen_fidelitas  = Misc::obtenerImagenFidelitas();
		$afip_respuesta = [];
		if(ENV('SERVICIOS_AFIP') == true){
			$afip_respuesta = AFIPController::obtenerPadron($cuit);
		}
		// Agregado 10/07/2018: Si es persona fisica, ve si puede completar datos con Padron Electoral (ultimo domicilio, año de nacimiento)
		$fisica_juridica = Misc::tipoPersona($cuit); 
		$p_fisica = ($fisica_juridica == 'F') ? true : false;
		if ($p_fisica)  
		{
			$actualiza = SQLConnection::actualizarDatosConPadron($cuit,'0');
		}

		// Obtener Bancos para calcular si amerita por situación uno y sumar al score
		// Se almacenan en variable de clase para ser reutilizadas en la pestaña de bancos
		$obtener_bancos = SQLConnection::obtenerBancos($cuit);
		$situacion_1 = Misc::ameritaPorSituacionUno($obtener_bancos);
		self::$amerita_situacion_1 = $situacion_1['amerita'];
		self::$cantidad_situacion_1 = $situacion_1['cantidad'];

		$link_pdf = env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.pdf';
		self::$tiene_pdf = file_exists($link_pdf);

		$card_score                   = [];
		$card_bancos                  = [];
		$card_cheques                 = [];
		$card_domicilios              = [];
		$card_empleados               = [];
		$card_comex                   = [];
		$card_personas_relacionadas   = [];
		$card_sociedades_relacionadas = [];
		//$p_fisica                     = (substr($cuit,0,1) == 3) ? false : true;
		$fisica_juridica = Misc::tipoPersona($cuit); 
		$p_fisica = ($fisica_juridica == 'F') ? true : false;
		$periodo                      = [];
		$grafico_cheques_ordenados    = [];
		$cheques[]                    =  new \stdClass;
		$env                          = Misc::obtenerColoresEnv();
		$score_ordenado               = [];
		$defuncion                    = [];
		/*CALCULO SCORE inicio*/
		$debug_score                  = '';
		$sesion_externa               = (Session::get('externo')) ? true : false;
		$comex_impo                   = SQLConnection::obtenerComex($cuit);

		if(!$sesion_externa){
			if(isset(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')])){
				$cliente = Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->nombre_cliente;
		}
		}else{
			$cliente = 'Externo';
		}

		/* card 6 empleados inicio*/
		if(!$p_fisica){
			$card_fiscales = SQLConnection::obtenerCardFiscales($cuit);
		//$card_fiscales); //error con AKAPOL SA CUIT 30504065207 (12/09/2017) 
		if (is_null($card_fiscales)) {
			$card_fiscales = '';
		}else{
			$card_fiscales->inicio_actividad = Misc::convertirFormatoFecha($card_fiscales->inicio_actividad,'Y-m-d','d/m/Y');
		} 
		}else{
			$card_fiscales = SQLConnection::obtenerCardFiscalesPF($cuit);
			self::$edad = Misc::obtenerEdadPersonaFisica($cuit);

		}
		$sircreb = SQLConnection::obtenerSircreb($cuit);

		$riesgo_fiscal = 'NO';
		if($sircreb){
			foreach($sircreb as $info){
				$hoy = date('Y-m-d h:i:s');
				if (($hoy > $info->vigencia_desde) && ($hoy < $info->vigencia_hasta))
				{
					$riesgo_fiscal='SI';
				}else if($hoy > $info->vigencia_desde){
					$riesgo_fiscal = '--';
				}
			}
		}
		/* card 6 empleados fin*/
		if (!self::$tiene_pdf && empty($card_fiscales)){
			self::$observado = true;
		}
		$respuesta_score = '';
		if(strlen($cuit) == 11){
			$respuesta_score  = json_decode(ApiControllerV1::obtenerServicioScore($cuit,$incluye_balance),true);
		}

		$resp_constancia  = $respuesta_score['resp_constancia'] ?? '';
		if($respuesta_score == ''){
			$score = 0;
			$debug_score = '';
		}else{
			$score            = $respuesta_score['score'];
			$debug_score      = $respuesta_score['debug_score'];
		}
		if($p_fisica){
			$defuncion      = SQLConnection::obtenerDefuncion($cuit);
			$dni            = (int)substr($cuit, 2,-1);
		}
		if(env('SERVICIOS_AFIP') == FALSE){
			$debug_score .= "<br>---------------<br><strong>RESPUESTA AFIP</strong><br>---------------<br><strong>EL LLAMADO A AFIP SE ENCUENTRA DESHABILITADO</strong><br>";
		}
// En el detalle del score, se muestra la respuesta de AFIP
		if(ENV('SERVICIOS_AFIP') == true){
			$afip_ordenado = '';
			if(is_array($afip_respuesta)){
				foreach($afip_respuesta as $afip){
					$afip_decode[] = json_decode($afip,true);
				}
				$afip_respuesta = $afip_decode;
			}
			if(!is_array($afip_respuesta)) {
				$afip_ordenado .= "<br>" . $afip_respuesta;
			}
			else
			{
				foreach ($afip_respuesta as $key => $value) {
					if(!is_array($value)) {
						$afip_ordenado  .= "<strong><br>". $key .":</strong> ". $value ;
					}else{
						$afip_ordenado .= "<strong><br>" . $key . ":" . "</strong>";
						foreach ($value as $key2 => $value2) {
							if(!is_array($value2)) {
								$afip_ordenado  .= "<strong><br>   ". $key2 .":</strong> ". $value2 ;
							}else{
								$afip_ordenado .= "<strong><br>   " . $key2 . ":" . "</strong>";

								foreach ($value2 as $key3 => $value3) {
									if(!is_array($value3)) {
										$afip_ordenado  .= "<strong><br>      ". $key3 .":</strong> ". $value3 ;
									}else{
										foreach ($value3 as $key4 => $value4) {
											if(!is_array($value4)) {
												$afip_ordenado  .= "<strong><br>      ". $key4 .":</strong> ". $value4 ;
											}else{
											
											}
										}
									}
								}
							}
						}
					}
				}
			}
			if ($afip_ordenado != '')
			{
				$debug_score .= "<br>---------------<br><strong>RESPUESTA AFIP</strong><br>---------------" .$afip_ordenado;
			}
  
  		}
		$debug_score  .= "<br>---------------<br><strong>RESPUESTA CONSTANCIA CUIT</strong><br>---------------<br><br>" ;
		if(!empty($resp_constancia)){
			$debug_score  .= "RESPUESTA : ".$resp_constancia['response']."<br>ERROR:".$resp_constancia['constancia_error'];
		}
	
		if(!$p_fisica){
			$datos_card_score   = SQLConnection::obtenerCardScore($cuit);
		}else{
			$datos_card_score   = SQLConnection::obtenerCardScorePF($cuit);
		}
	/*CALCULO SCORE fin*/
  
	/*card 1 inicio */
	
	/* 
	// 08/10/2020	Lo subi al principio de esta funcion, para que guarde el consumo apenas entra.
	$user_id = Session::get('usuario')->user_id;
	if(isset( Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')])){
	  $servicio = SQLConnection::consumirServicio($user_id,$cuit,ENV('ID_INFORME_COMERCIAL'));
	}else if(isset(Session::get('usuario')->cliente[ENV('INFORME_API')])){
	  $servicio = SQLConnection::consumirServicio($user_id,$cuit,ENV('INFORME_API'));
	}else{
		$servicio = new \stdClass;
		$servicio->sumar = 0;
	}
	if($servicio->sumar == 1){
	  if(isset( Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')])){
	   // SQLConnection::insertarRegistroActividad("INFORME COMERCIAL",$cuit);
		Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->usuario_consumido++;
		Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->cliente_consumido++;
	  }
	}
	*/
	
	
		$cheque_ultimo_rechazo_desde = '';
		if(!$p_fisica && strlen($cuit) == 11){
			$sintomas = SQLConnection::backendStoreProcedure('obtener_sintomas_de_vitalidad', array($cuit), true);
			$cheque_ultimo_rechazo_desde   = SQLConnection::backendStoreProcedure('obtener_no_cheqrech_desde', array($cuit), true);
			$vitalidad = 1;
			if ((!$p_fisica) && isset($sintomas->vitalidad) && $sintomas->vitalidad == 0) {
				$score = 0;
				$vitalidad = 0;
				$motivo_vitalidad = $sintomas->motivo; 
			}
		}
		// echo(var_dump($debug_score));die();
		$card_score['score']= $score;
		$card_score['datos']= $datos_card_score;
		/*card 1 fin */
		
		/*card 2 inicio */
		$garantias          = SQLConnection::obtenerGarantiasBrief($cuit);
		$financiero         = SQLConnection::obtenerFinancieroBrief($cuit);
		$card_bancos        = SQLConnection::obtenerCardBancos($cuit);
		/*card 2 fin */

		/* card 3 cheques rechazados inicio*/
		$card_cheques     = SQLConnection::obtenerCardChequesRechazados($cuit);
		$grafico_cheques  = SQLConnection::graficoCardChequesRechazados($cuit);
		// return response()->json($grafico_cheques);
		$grafico_cheques  = self::generarGraficoCheques($grafico_cheques,24);

	/* card 3 cheques rechazados fin*/
		
		/* card 4 domicilios inicio*/
		$domicilios = new \stdClass;
		$formales       = SQLConnection::obtenerDomicilios($cuit);
		$domicilios->otros_domicilios = '';
		$domicilios->domicilio_legal  = '';
		$domicilios->domicilio        = '';
		$domicilios->domicilio_fiscal = '';

		foreach($formales as $formal) {
	/* Domicilio Legal */
		//if($formal->tipo_domicilio == 'L'){
		if(strpos($formal->tipo_domicilio, 'L') !== false){
			if (isset($domicilios->domicilio_legal) && $domicilios->domicilio_legal != '')
			{
			if (strpos($formal->tipo_domicilio, 'D') === false &&
				strpos($formal->tipo_domicilio, 'E') === false &&
				strpos($formal->tipo_domicilio, 'F') === false)
			{$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';}
			}
			else 
			{
			$domicilios->domicilio_legal = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
			}
		}
	/* Domicilio Fiscal */
		//if($formal->tipo_domicilio == 'F'){
		if(strpos($formal->tipo_domicilio, 'F') !== false){
			if (isset($domicilios->domicilio_fiscal) && $domicilios->domicilio_fiscal != '')
			{
			if (strpos($formal->tipo_domicilio, 'D') === false &&
				strpos($formal->tipo_domicilio, 'E') === false &&
				strpos($formal->tipo_domicilio, 'L') === false)
				{$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';}
			}
			else 
			{
			$domicilios->domicilio_fiscal = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
			}
		}

	/* Domicilio Principal */ 
		//if($formal->tipo_domicilio == 'D' ||  $formal->tipo_domicilio == 'E'){
		if(strpos($formal->tipo_domicilio, 'D') !== false ||
			strpos($formal->tipo_domicilio, 'E') !== false){

			if (isset($domicilios->domicilio) && $domicilios->domicilio != '')
			{
			if (strpos($formal->tipo_domicilio, 'F') === false &&
				strpos($formal->tipo_domicilio, 'L') === false)
			{$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';}
			}
			else 
			{
			$domicilios->domicilio = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
			}
		}
	/* Otros Domicilios */
		//if($formal->tipo_domicilio == 'O'){
		if (strpos($formal->tipo_domicilio, 'O') !== false &&
			strpos($formal->tipo_domicilio, 'D') === false &&
			strpos($formal->tipo_domicilio, 'E') === false &&
			strpos($formal->tipo_domicilio, 'L') === false &&
			strpos($formal->tipo_domicilio, 'F') === false){
			$domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
		}

		}

	if($domicilios->domicilio == '' && $domicilios->domicilio_fiscal != ''){
	  $domicilios->domicilio  .= $domicilios->domicilio_fiscal;
	}

	$card_domicilios['domicilios'] = $domicilios;
	
	/* card 4 domicilios fin*/
	
	/* card 5 empleados inicio*/
	$card_empleados = SQLConnection::obtenerEmpleados($cuit);
	/* card 5 empleados fin*/
	
	

	/* card 7 empleados inicio*/
	$primero =date('Y');
	$segundo =date('Y')-1;
	$tercero =date('Y')-2;
	$mostrar_grafico_card_comex = false;
	$card_comex[$primero] = SQLConnection::obtenerCardComex($cuit,$primero);
	$card_comex[$segundo] = SQLConnection::obtenerCardComex($cuit,$segundo);
	$card_comex[$tercero] = SQLConnection::obtenerCardComex($cuit,$tercero);
	foreach($card_comex as $comex){
	  foreach($comex as $info){
		if(!empty($info) && $info->total_anual != null){
		  $mostrar_grafico_card_comex = true;
		}
	  }
	}
	/* card 7 empleados fin*/

	/* card 8 empleados inicio*/
	$card_personas_relacionadas = SQLConnection::obtenerCardPersonasRelacionadas($cuit);
	/* card 8 empleados fin*/
	
	/* card 9 empleados inicio*/
	$tipo_persona = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
	$card_sociedades_relacionadas = SQLConnection::obtenerCardSociedadesRelacionadas($cuit,$tipo_persona);
	/* card 9 empleados fin*/

	/*card 10 Juicios*/
	$razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
	//$razon_social_legales = Misc::diccionarioSinonimos($razon_social);
	$razon_social_legales = Misc::diccionarioSinonimos2020($razon_social);
	
	/*
	$demandados                 = SQLConnection::obtenerJuiciosDemandadoActor(null,'D',$cuit);
	$actor                      = SQLConnection::obtenerJuiciosDemandadoActor(null,'A',$cuit);
	$demandado_homonimo = SQLConnection::obtenerJuiciosHomonimos($razon_social_legales,'D');
	$actores_homonimos  = SQLConnection::obtenerJuiciosHomonimos($razon_social_legales,'A');
	*/
	$cuit_enmascarado = $cuit;

	$dni = '';
	if($p_fisica){
	  $dni = (int)substr($cuit, 2,-1);
	}
	$mask = substr( $cuit_enmascarado, 1,1 );
	$mask .= '-';
	$cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, 1,1);
	$mask = substr( $cuit_enmascarado, -1,-1 );
	$mask .= '-';
	$cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, -1,-1);

	$card_juicios = new \stdClass();
	$card_juicios->concursos_quiebras         = [];
	$card_juicios->pedidos_quiebra            = [];
	$card_juicios->remates                    = SQLConnection::obtenerRemates($cuit,$cuit_enmascarado,$dni);;
	$card_juicios->otros_juicios_comerciales  = [];
	/*
	if($demandados){
	  foreach($demandados as $demandado){
		if($demandado->grupo  == 'OJC'){
		  $card_juicios->otros_juicios_comerciales[]  = $demandado;
		}elseif($demandado->grupo  == 'CYQ'){
		  $card_juicios->concursos_quiebras[] = $demandado;
		}elseif($demandado->grupo  == 'PQ'){
		  $card_juicios->pedidos_quiebra[] = $demandado;
		}
	  }
	}
	$card_juicios->pedidos_quiebra = sizeof($card_juicios->pedidos_quiebra);
	$card_juicios->concursos_quiebras = sizeof($card_juicios->concursos_quiebras);
	$card_juicios->otros_juicios_comerciales = sizeof($card_juicios->otros_juicios_comerciales);
	$card_juicios->actor = sizeof($actor);
	$card_juicios->demandado_homonimo = sizeof($demandado_homonimo);
	$card_juicios->actores_homonimos = sizeof($actores_homonimos);
	*/
	$card_juicios->remates = sizeof($card_juicios->remates);

	$resultado_nombres_ant     = []; 
	$razon_social_completa     = '';
	if($p_fisica == false) {
		//P Juridica
		$nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
		if ($nombres_anteriores) {
		  foreach ($nombres_anteriores as $nombre_ant) {
			  $resultado_nombres_ant[] = $nombre_ant->nombre; 
		  }
		  $resultado_nombres_ant[] = $razon_social;
		} 
		//$razon_social = "\"".$razon_social."\"";
		
		$sinonimos =  Misc::diccionarioSinonimosTest($resultado_nombres_ant);
		//print_r("sinonimos: "); 
		//var_dump($sinonimos); 
		$count_sinonimo = count($sinonimos)-1;
		foreach($sinonimos as $key => $rs) {
		  if (strlen($rs) < 3)
		  {
			continue; 
		  }
		  if(!($key == $count_sinonimo)){
			$razon_social_completa .= $rs.'OR';
		  }else{
			$razon_social_completa .= $rs;
		  }
		}
	  if(!$razon_social_completa) { $razon_social_completa = $razon_social_legales; }
	  } 
	  else {//caso PF
		$razon_social_completa = "\"".$razon_social."\"";
	  }
	  $razon_social_legales = $razon_social_completa;

	$juicios_cantidades = new \stdClass();
	if (strlen($razon_social_legales) >= 3)
	{
//		print_r("obtener_count_juicios");
//		print_r($razon_social_legales);

	$juicios_cantidades  =  SQLConnection::backendStoreProcedure('obtener_count_juicios',array($cuit,$razon_social_legales),true);
	}

	$card_juicios->otros_juicios_comerciales = isset($juicios_cantidades->cantidad_ojc) ? $juicios_cantidades->cantidad_ojc : NULL;
	$card_juicios->concursos_quiebras        = isset($juicios_cantidades->cantidad_cyq) ? $juicios_cantidades->cantidad_cyq : NULL;
	$card_juicios->pedidos_quiebra           = isset($juicios_cantidades->cantidad_pq) ? $juicios_cantidades->cantidad_pq : NULL;
	$card_juicios->actor                     = isset($juicios_cantidades->cantidad_actor) ? $juicios_cantidades->cantidad_actor : NULL;
	$card_juicios->demandado_homonimo        = isset($juicios_cantidades->cantidad_demandado_homonimo) ? $juicios_cantidades->cantidad_demandado_homonimo : NULL;
	$card_juicios->actores_homonimos         = isset($juicios_cantidades->cantidad_actor_homonimo) ? $juicios_cantidades->cantidad_actor_homonimo : NULL; 

	$card_juicios->total = $card_juicios->actores_homonimos + $card_juicios->demandado_homonimo + $card_juicios->actor + $card_juicios->otros_juicios_comerciales + $card_juicios->remates + $card_juicios->concursos_quiebras + $card_juicios->pedidos_quiebra;
	/*card 10 Juicios*/

	//$sesion_externa = (Session::get('externo')) ? true : false;
	if(isset(Session::get('usuario')->cliente[env('ID_INFORME_COMERCIAL')])){
	$secciones = array_keys(Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->secciones);
	}else if(isset(Session::get('usuario')->cliente[env('INFORME_API')])){
	$secciones = array_keys(Session::get('usuario')->cliente[ENV('INFORME_API')]->secciones);
	}

	$antiguedad_situacion_1 = SQLConnection::backendStoreProcedure('obtener_cendeu_sit1_desde', array($cuit),true);

	$nivel_socioeconomico = new \stdClass();
	if($tipo_persona == 'j'){
	  if($score > 50){
		/*agregado el 28/06 a prod directamente por Leo.*/
		$nivel_socioeconomico = SQLConnection::backendStoreProcedure('obtener_nivel_socioeconomico_2021', array($cuit,$tipo_persona),true);
		/**/
	  }else{
		$nivel_socioeconomico->error = 'El Nivel del rango de ventas de la compañia no puede ser calculado';
	  }
	}else{
	  $nivel_socioeconomico = SQLConnection::backendStoreProcedure('obtener_nivel_socioeconomico_2021', array($cuit,$tipo_persona),true);
	}
	$sujeto_obligado    = 0;
	$apocrifas          = SQLConnection::backendStoreProcedure('obtener_apocrifas', array($cuit), true);
	$client_id          = isset(Session::get('usuario')->cliente['client_id'] ) ? Session::get('usuario')->cliente['client_id'] : 0;

	if($client_id > 0 AND ($client_id == '2254875' || $client_id == '745239806')) {
	  $respuestaso      =  SQLConnection::backendStoreProcedure('obtener_sujeto_obligado',array($cuit),true);
	  if(!empty($respuestaso)){
		$sujeto_obligado = $respuestaso->sujeto_obligado;
	  }  
	}

	/* 06/11/2020 : Card de Limite de Crédito - Dependencia Económica */

	$solicitado = new \stdClass;
	$otorgado = new \stdClass;
	$cme = new \stdClass;
	$otorgado_cme = new \stdClass;
	$multiple = new \stdClass;
	$multiples_montos = []; 
	$depecon = new \stdClass;
	$depebal = new \stdClass;
	$fecha_bal = new \stdClass;
	$datos_dep = new \stdClass;
	$contraparte_lcs = 0; 
	$contraparte_de  = 0; 

	$contrapartes = SQLConnection::backendStoreProcedure('LN_cuit_contraparte_lcs', array($cliente_login, $cuit,'LCS'), 'select');
	if(!empty($contrapartes)){
		$id = $contrapartes[0]->contraparte; 
		$contraparte_lcs = $id; 
		$solicitado = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'monto_solicitado'), 'selectOne');
		$otorgado = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'monto_otorgado'), 'selectOne');
		$cme = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'CAPACIDAD_ENDEUDAMIENTO'), 'selectOne');
		$otorgado_cme = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'MONTO_OTORGADO_CME'), 'selectOne');
		$multiple  = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULL, NULL, NULL, $id, 'PORCENTAJE_CREDITO'), 'selectOne');
		if (!empty($multiple ))
		{
			$multiples_montos = SQLConnection::backendStoreProcedure('LN_limite_credito_multiple', array($id), 'select');
		}
	}
	
	$contrapartes = SQLConnection::backendStoreProcedure('LN_cuit_contraparte_lcs', array($cliente_login, $cuit,'DE'), 'select');
	if(!empty($contrapartes)){
		$id = $contrapartes[0]->contraparte; 
		$contraparte_de = $id; 
		$depecon = SQLConnection::backendStoreProcedure('LN_dependencia_economica', array($id), 'selectOne');
		$depebal = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', $cliente_login, null, null, $id, 'DEP_ECON_BALANCE'), 'selectOne'); 
		$fecha_bal = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', $cliente_login, null, null, $id, 'DEP_ECON_BALANCE_FECHA'), 'selectOne'); 
		$datos_dep = SQLConnection::backendStoreProcedure('LN_dependencia_economica_balance', array($id), 'selectOne');
	}

	$vista= view('informes/brief')->with(compact('card_score','card_bancos','card_cheques','card_domicilios','card_empleados','card_fiscales', 'apocrifas', 'card_comex','card_personas_relacionadas','card_sociedades_relacionadas','json','p_fisica','debug_score','riesgo_fiscal','graf_pdf_empleados','graf_pdf_financiero','graf_pdf_cheques','graf_pdf_score','cliente','mostrar_grafico_card_comex','graf_pdf_comex','idp', 'card_juicios','nivel_socioeconomico','antiguedad_situacion_1','cheque_ultimo_rechazo_desde','sujeto_obligado', 
		'solicitado','otorgado','cme','otorgado_cme','multiple','multiples_montos','depecon','depebal','fecha_bal','datos_dep','contraparte_de','contraparte_lcs'))->render();

	if(!$json){
	   return $vista;
	}
	if (!isset($vitalidad)){
		$vitalidad = NULL;
	}
	if (!isset($motivo_vitalidad)){
		$motivo_vitalidad = NULL;
	}
/*
	$usuario =  Session::get('usuario_logeado') ?? Session::get('usuario');
	Session::put('usuario',$usuario);
	Session::save();
*/

	//Session::put($cuit." ".date('Y-m-d').".brief",json_encode($vista));
	return \Response::json(
	  array(
		'view' =>$vista,
		//'info'=>compact('score','cheques','financiero','env','card_empleados','grafico_cheques','secciones','p_fisica','card_comex','mostrar_grafico_card_comex','defuncion','card_fiscales', 'vitalidad', 'motivo_vitalidad','menor_de_edad', 'card_bancos','idp','imagen_fidelitas','cuit')
		'info'=>compact('score','cheques','financiero','env','card_empleados','grafico_cheques','secciones','p_fisica','card_comex','mostrar_grafico_card_comex','defuncion','card_fiscales', 'vitalidad', 'motivo_vitalidad', 'card_bancos','idp','imagen_fidelitas','cuit')
	  )
	, 200, [], JSON_NUMERIC_CHECK);
  }
  //Kevin

    public function generarGraficoCheques($grafico_cheques,$meses){
	    $grafico_cheques_ordenados['total']  = 0;
        for ($i = 0; $i < $meses; $i++) {
            $periodo[$i] = date("Y-m", strtotime( date("Y-m")." -$i months"));
            $grafico_cheques_ordenados['abonado'][$periodo[$i]]           = 0;
            $grafico_cheques_ordenados['pendiente_de_pago'][$periodo[$i]] = 0;
            $grafico_cheques_ordenados['defectos_formales'][$periodo[$i]] = 0;
        }
	    sort($periodo);
        //$periodo = array_values($periodo);
        if($grafico_cheques){
            foreach($grafico_cheques as $key_cheque =>$cheque){
                foreach($periodo as $key_mes => $mes){

                    if($mes == $cheque->fecha){
                        if ($cheque->id_causa == 1) {
                        $grafico_cheques_ordenados['total'] += 1;
                        $grafico_cheques_ordenados['defectos_formales'][$mes] += 1;
                        } else {
                            if($cheque->abonado == 1){
                                $grafico_cheques_ordenados['total'] += 1;
                                $grafico_cheques_ordenados['abonado'][$mes] += 1;
                            } else {
                                $grafico_cheques_ordenados['total'] += 1;
                                $grafico_cheques_ordenados['pendiente_de_pago'][$mes] += 1;
                            }
                        }
                    }
                }
            }
        }
        //sort($grafico_cheques_ordenados['abonado']);
        if (isset($grafico_cheques_ordenados['defectos_formales'])) {
        ksort($grafico_cheques_ordenados['defectos_formales']);
        }
        if (isset($grafico_cheques_ordenados['abonado'])) {
        ksort($grafico_cheques_ordenados['abonado']);
        }
        if (isset($grafico_cheques_ordenados['pendiente_de_pago'])) {
        ksort($grafico_cheques_ordenados['pendiente_de_pago']);
        }
        return $grafico_cheques_ordenados;
    }

  public function generarContenidoExportable($html=false){
	Session::put('html', 1);
	$contraparte    = Request::input('_contraparte');
	$gestion        = Request::input('_gestion');
	$cuit           = Request::input('cuit');
	$usuario        = Session::get('usuario')->username;
	//-- NUEVA MODIFICACION -> PARA HACER QUE EL NOMBRE DEL CLIENTE SEA DINAMICO
	$datos_cliente = SQLConnection::obtenerCliente(ENV('ID_INFORME_COMERCIAL'),Session::get('usuario')->user_id);
	if ( is_array($datos_cliente) and is_object($datos_cliente[0]) and !empty($datos_cliente[0]->nombre_cliente) ){
		$nombre_cliente = $datos_cliente[0]->nombre_cliente;
	} else{
		$nombre_cliente = Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->nombre_cliente;
	}
	//--
	$token          = Request::input('_token');
	$titulo_pdf     = Request::input('titulo_pdf');
	$header         = '<div class="col-md-12 title-report " style="margin-top:30px;padding:5px;"><div class="col-md-7 col-sm-7 col-xs-7 text-left" id="nc" style="padding: 5px; ">'.$titulo_pdf.'</div><div class="col-md-5 col-sm-5 col-xs-5 text-right" id="nc" style="padding-right: 50px; padding-top: 5px; padding-bottom: 5px; padding-left: 5px;">'.$nombre_cliente. '-'.$usuario.'</div></div>';
	$url_actual = "http://$_SERVER[HTTP_HOST]";
	$data_web = Session::get('webdata')['id_plataforma'];
    
	if ($url_actual=="http://informes.infodata.com.ar") {
	  $fidelitas  = Misc::obtenerImagenInfodata();
	} elseif ($data_web == 'IV'){
		$fidelitas = Misc::obtenerImagenInquiro();
	} elseif ($data_web == 'IM'){
		$fidelitas = Misc::obtenerImagenImperium();
	} elseif ($data_web == 'AV'){
		$fidelitas = Misc::obtenerImagenAvalDigital();
	} else{
	  $fidelitas  = Misc::obtenerImagenFidelitas();
	}
	//fiscales
	//$pdf_inscripcion = Request::input('imp_pdf_inscripcion');
	$pdf_inscripcion = Request::input('imp_pdf_inscripcion');
	//comex
	$grafico_impo_comex                  = Request::input('grafico_impo_comex');

	$grafico_expo_comex                  = Request::input('grafico_expo_comex');
	$grafico_pais_impo_comex             = Request::input('grafico_pais_impo');
	$grafico_rubro_impo_comex            = Request::input('grafico_rubros_impo');
	$grafico_pais_expo_comex             = Request::input('grafico_pais_expo');
	$grafico_rubro_expo_comex            = Request::input('grafico_rubros_expo');
	//brief
	$grafico_financiero_brief            = Request::input('grafico_financiero_brief');
	$grafico_empleados_brief             = Request::input('grafico_empleados_brief');
	$grafico_cheques_brief               = Request::input('grafico_cheques_brief');
	$grafico_score_brief                 = Request::input('grafico_score_brief');
	$grafico_comex_brief                 = Request::input('grafico_comex_brief');
	//contables
	$imp_grafico_capital_de_trabajo      = Request::input('grafico_capital_de_trabajo_esp');
	$imp_grafico_patrimonial             = Request::input('grafico_patrimonial_esp');
	$imp_grafico_solvencia               = Request::input('grafico_solvencia_esp');
	$imp_grafico_liquidez_corriente      = Request::input('grafico_liquidez_corriente_esp');
	$imp_grafico_endeudamiento_corriente = Request::input('grafico_endeudamiento_corriente_esp');
	$imp_efecto_palanca                  = Request::input('grafico_efecto_palanca_esp');
	$imp_ventas                          = Request::input('grafico_ventas_esp');
	$imp_gastos_totales_sobre_ventas     = Request::input('grafico_gastos_totales_sobre_ventas_esp');
	$imp_grafico_performance             = Request::input('grafico_performance_esp');
	//bancos
	$grafico_cheques_bancos   = Request::input('grafico_cheques_bancos');
	$grafico_financiero       = Request::input('grafico_financiero');
	$grafico_situaciones      = Request::input('grafico_situaciones');
	$grafico_garantias        = Request::input('grafico_garantias');
	$html = '';
	$html .= view('exportar/css')->render();
	$html .= '<div class="container">';
    // $html .= $contenido;
	$seccion_contables_extendido = Request::input('seccion_contables_extendido');
	$seccion_contables_compacto  = Request::input('seccion_contables_compacto');
	$seccion_contables           = Request::input('seccion_contables');
	
    foreach (Input::except('_token') as $seccion => $valor) {
	    switch($seccion){
            //TODO
            case 'seccion_brief':
            $html .= '<img src="'.$fidelitas.'"  class="text-left"  style="height:60px;margin-top: 50px;">';
            $html .= $header;
            $html .= "<h2 class='text-center background-fidelitas' style='color:light;margin-top: 25px;'>Resumen</h2>";
            $html .= self::obtenerBrief(false,$grafico_financiero_brief,$grafico_empleados_brief,$grafico_cheques_brief,$grafico_score_brief,$grafico_comex_brief);
            //$html .= self::obtenerBrief(false,$grafico_financiero_brief,$grafico_empleados_brief,$grafico_cheques_brief,$grafico_score_brief);
            $html .= '<div class="page-breaker">';
            $html .= "</div>";
            break;
            case 'seccion_formales': 
            $html .= '<img src="'.$fidelitas.'"  class="text-left"  style="height:60px;margin-top: 50px;">';
            $html .= $header;
            $html .= "<h2 class='text-center background-fidelitas text-white' style='margin-top: 25px;' >Formales</h2>";
            $html .= self::obtenerFormales(false);
            $html .= '<div class="page-breaker">';
            $html .= "</div>";
            break;
            case 'seccion_fiscales':
            //$html .= '<div class="page-breaker">';
            $html .= '<img src="'.$fidelitas.'"  class="text-left"  style="height:60px;margin-top: 50px;">';
            $html .= $header;
            $html .= "<h2 class='text-center background-fidelitas text-white' style='margin-top: 25px;'>Fiscales</h2>";
            $html .= self::obtenerFiscales(false,$pdf_inscripcion);
            $html .= '<div class="page-breaker">';
            $html .= "</div>";
            break;
            case 'seccion_comerciales':
            //$html .= '<div class="page-breaker">';
            $html .= '<img src="'.$fidelitas.'"  class="text-left"  style="height:60px;margin-top: 50px;">';
            $html .= $header;
            $html .= "<h2 class='text-center background-fidelitas text-white' style='margin-top: 25px;'>Comerciales</h2>";
            $html .= self::obtenerComerciales(false);
            $html .= '<div class="page-breaker">';
            $html .= "</div>";
            break;
            case 'seccion_contables':
            /*        
            if ($seccion_contables== 'on' && $seccion_contables_extendido =='off' && $seccion_contables_compacto =='off') {
                $html .= '<div class="page-breaker">';
                $html .= '<img src="'.$fidelitas.'"  class="text-left"  style="height:60px;margin-top: 50px;">';
                $html .= $header;
                $html .= self::obtenerContables(false,$imp_grafico_capital_de_trabajo,$imp_grafico_patrimonial,$imp_grafico_solvencia,$imp_grafico_liquidez_corriente,$imp_grafico_endeudamiento_corriente,$imp_grafico_performance,$imp_efecto_palanca,$imp_ventas,$imp_gastos_totales_sobre_ventas,'impresion_compacto');
                $html .= "</div>";
            }
            */
                //contable simple + extendido
                if($seccion_contables == 'on' && $seccion_contables_extendido == 'on') {
                //$html .= '<div class="page-breaker">';
                $html .= '<img src="'.$fidelitas.'"  class="text-left"  style="height:60px;margin-top: 50px;">';
                $html .= $header;
                $html .= "<h2 class='text-center background-fidelitas text-white' style='margin-top: 25px;'>Contables</h2>";
                $html .= self::obtenerContables(false,$imp_grafico_capital_de_trabajo,$imp_grafico_patrimonial,$imp_grafico_solvencia,$imp_grafico_liquidez_corriente,$imp_grafico_endeudamiento_corriente,$imp_grafico_performance,$imp_efecto_palanca,$imp_ventas,$imp_gastos_totales_sobre_ventas,'impresion_extendido');
                $html .= '<div class="page-breaker">';
                $html .= "</div>";
                } elseif($seccion_contables == 'on' && $seccion_contables_compacto == 'on'){
                //contable simple + compacto
                //$html .= '<div class="page-breaker">';
                $html .= '<img src="'.$fidelitas.'"  class="text-left"  style="height:60px;margin-top: 50px;">';
                $html .= $header;
                $html .= "<h2 class='text-center background-fidelitas text-white' style='margin-top: 25px;'>Contables</h2>";
                $html .= self::obtenerContables(false,$imp_grafico_capital_de_trabajo,$imp_grafico_patrimonial,$imp_grafico_solvencia,$imp_grafico_liquidez_corriente,$imp_grafico_endeudamiento_corriente,$imp_grafico_performance,$imp_efecto_palanca,$imp_ventas,$imp_gastos_totales_sobre_ventas,'impresion_compacto');
                $html .= '<div class="page-breaker">';
                $html .= "</div>";
                }
            break;
            case 'seccion_sociedades':
            //$html .= '<div class="page-breaker">';
            $html .= '<img src="'.$fidelitas.'"  class="text-left"  style="height:60px;margin-top: 50px;">';
            $html .= $header;
            $html .= "<h2 class='text-center background-fidelitas text-white' style='margin-top: 25px;'>Sociedades</h2>";
            $html .= self::obtenerSociedades(false);
            $html .= '<div class="page-breaker">';
            $html .= "</div>";
            break;
            case 'seccion_legales':
            //$html .= '<div class="page-breaker">';
            $html .= '<img src="'.$fidelitas.'"  class="text-left"  style="height:60px;margin-top: 50px;">';
            $html .= $header;
            $html .= "<h2 class='text-center background-fidelitas text-white' style='margin-top: 25px;'>Legales</h2>";
            $html .= self::obtenerLegales(false);
            $html .= '<div class="page-breaker">';
            $html .= "</div>";
            break;
            case 'seccion_bancos':
            //$html .= '<div class="page-breaker">';
            $html .= '<img src="'.$fidelitas.'"  class="text-left"  style="height:60px;margin-top: 50px;">';
            $html .= $header;
            $html .= "<h2 class='text-center background-fidelitas text-white' style='margin-top: 25px;'>Bancos</h2>";
            $html .= self::obtenerBancos(false,$grafico_cheques_bancos,$grafico_financiero,$grafico_situaciones,$grafico_garantias);
            $html .= '<div class="page-breaker">';
            $html .= "</div>";
			break;
            case 'seccion_comex':
            //$html .= '<div class="page-breaker">';
            $html .= '<img src="'.$fidelitas.'" class="text-left" style="height:60px;margin-top: 50px;">  ';
            $html .= $header;
            $html .= "<h2 class='text-center background-fidelitas text-white' style='margin-top: 25px;'>Comercio Exterior</h2>";
            $html .= self::obtenerComex(false,$grafico_impo_comex,$grafico_expo_comex,$grafico_pais_impo_comex,$grafico_rubro_impo_comex,$grafico_pais_expo_comex,$grafico_rubro_expo_comex);
            $html .= '<div class="page-breaker">';
            $html .= "</div>";
            break;
        }
	}
	
    $html   .= "</div>";
    $html   .= "</body>";

    //return $html;
    
	$user_id = Session::get('usuario')->user_id;
	$nombre    = $cuit."_contraparte".".html";
	//$nombre .= date('Y-m-d').'.html';
	if(!isset(Session::get('usuario')->cliente['client_id'])){
	  	return false;
	}
	//---- ENTRA POR ESTA CONDICION , GUARDA EL PDF Y NO LO DEVUELVE AL USUARIO, CUANDO SE DA DE ALTA UNA CONTRAPARTE
	//---- if ( !empty($gestion) or !empty($contraparte) ){
	if ( !empty($gestion) and !empty($contraparte) ){
		$client_id = Session::get('usuario')->cliente['client_id'];
		//--
		$pdf_save = SQLConnection::backendStoreProcedure('LN_ic_historico_pdf_',array('INSERTAR',$contraparte,$gestion,$user_id));
		$id_pdf = $pdf_save[0]->pdfid;
		//--
		$nombre = $cuit."_".$id_pdf.".html";
		//--
		$file           = ENV('TEMP_PDF').'/'.$client_id.'/'.$contraparte.'/'.$gestion.'/'.$nombre;
		$file_download  = ENV('HISTORICO_PDF').'/'.$client_id.'/'.$contraparte.'/'.$gestion.'/'.str_replace('.html', '.pdf', $nombre);
		//---- CUANDO GENERA EL ARHCIVO LO GUARDA EN ESPACIO TEMPORAL (OCCURE SIEMPRE)
		if(!is_dir(ENV('TEMP_PDF').'/'.$client_id)){
			mkdir(ENV('TEMP_PDF').'/'.$client_id, 0777,true);
			//chmod(filename, 777);
		}
		if(!is_dir(ENV('HISTORICO_PDF').'/'.$client_id)){
			mkdir(ENV('HISTORICO_PDF').'/'.$client_id, 0777,true);
		}
		if(!is_dir(ENV('TEMP_PDF').'/'.$client_id.'/'.$contraparte)){
			mkdir(ENV('TEMP_PDF').'/'.$client_id.'/'.$contraparte, 0777,true);
		}
		if(!is_dir(ENV('HISTORICO_PDF').'/'.$client_id.'/'.$contraparte)){
			mkdir(ENV('HISTORICO_PDF').'/'.$client_id.'/'.$contraparte, 0777,true);
		}
		if(!is_dir(ENV('TEMP_PDF').'/'.$client_id.'/'.$contraparte.'/'.$gestion)){
			mkdir(ENV('TEMP_PDF').'/'.$client_id.'/'.$contraparte.'/'.$gestion, 0777,true);
		}
		if(!is_dir(ENV('HISTORICO_PDF').'/'.$client_id.'/'.$contraparte.'/'.$gestion)){
			mkdir(ENV('HISTORICO_PDF').'/'.$client_id.'/'.$contraparte.'/'.$gestion, 0777,true);
		}
		//--- EN CASO QUE TENGA EL PRODUCTO PDF HIISTORICO QUE LO COPIE A DONDE CORRESPONDA
		//---- CHEQUEAR LA VARIABLE DE ENVIROMENT
		// ACA PREGUNTAR SI EL USUARIO TIENE PRODUCTO PDF HISTORICO //
		/* if(!is_dir(ENV('PATH_COMPARTIDO').'/'.$client_id)){
			mkdir(ENV('PATH_COMPARTIDO').'/'.$client_id, 0777,true);
	        chmod(filename, 777);
		} */

		file_put_contents($file,utf8_decode($html));
		chmod($file, 0777);
		//--- EN LUGAR DE MOVER EL ARCHIVO EN CASO DE LA PRESENCIA DEL PRODUCTO PDF HISTORICO, COPIAR EL ARCHIVO ASI SE MANTIENE LA PRESENCIA DEL MISMO EN TEMP Y LA POSIBILIDAD DE DESCARGARLO EN AMBAS CONDICIONES
		//exec("/usr/local/bin/wkhtmltopdf -d 300 -L 10 -R 10 -T 10 -B 10 --header-font-size 8 --header-right ' [page] de [toPage]'  --viewport-size 1920x1080 --zoom 1 ".ENV('TEMP_PDF').'/'.$client_id."/".$nombre." ".ENV('PATH_COMPARTIDO').'/'.$client_id."/".str_replace('.html', '.pdf', $nombre));
		//exec("/usr/local/bin/wkhtmltopdf -d 300 -L 10 -R 10 -T 10 -B 10 --header-font-size 8 --header-right ' [page] de [toPage]'  --viewport-size 1920x1080 --zoom 1 ".ENV('TEMP_PDF').'/'.$client_id.'/'.$contraparte.'/'.$gestion.'/'.$nombre." ".ENV('HISTORICO_PDF').'/'.$client_id.'/'.$contraparte.'/'.$gestion.'/'.str_replace('.html', '.pdf', $nombre));	
		exec("wkhtmltopdf -d 300 -L 10 -R 10 -T 10 -B 10 --enable-local-file-access --header-font-size 8 --header-right ' [page] de [toPage]'  --viewport-size 1920x1080 --zoom 1 ".ENV('TEMP_PDF').'/'.$client_id.'/'.$contraparte.'/'.$gestion.'/'.$nombre." ".ENV('HISTORICO_PDF').'/'.$client_id.'/'.$contraparte.'/'.$gestion.'/'.str_replace('.html', '.pdf', $nombre));	
		//----
		Session::forget('html');
		//----
		//return response()->download($file_download);
		return redirect('/led/led-contrapartes');
	}
	else{
		//-------ENTRA EN ESTA CONDICION CUANDO ES LLAMADO POR EL LINK O CUANDO SE TOCA EL BOTON GENERAR PDF INFORME COMERCIAL EN EL MODAL DE PANEL DE CONTROL, DEVUELVE EL PDF AL USUARIO
		$client_id = Session::get('usuario')->cliente['client_id'];
		$file           = ENV('TEMP_PDF').'/'.$client_id.'/'.$nombre;
		$file_download  = ENV('TEMP_PDF').'/'.$client_id.'/'.str_replace('.html', '.pdf', $nombre);
		//---- CUANDO GENERA EL ARHCIVO LO GUARDA EN ESPACIO TEMPORAL (OCCURE SIEMPRE)
		if(!is_dir(ENV('TEMP_PDF').'/'.$client_id)){
			mkdir(ENV('TEMP_PDF').'/'.$client_id, 0777,true);
		//        chmod(filename, 777);
		}
		//--- EN CASO QUE TENGA EL PRODUCTO PDF HIISTORICO QUE LO COPIE A DONDE CORRESPONDA
		//---- CHEQUEAR LA VARIABLE DE ENVIROMENT
		// ACA PREGUNTAR SI EL USUARIO TIENE PRODUCTO PDF HISTORICO //
		/* if(!is_dir(ENV('PATH_COMPARTIDO').'/'.$client_id)){
			mkdir(ENV('PATH_COMPARTIDO').'/'.$client_id, 0777,true);
		//        chmod(filename, 777);
		} */
		file_put_contents($file,utf8_decode($html));
		chmod($file, 0777);
		//--- EN LUGAR DE MOVER EL ARCHIVO EN CASO DE LA PRESENCIA DEL PRODUCTO PDF HISTORICO, COPIAR EL ARCHIVO ASI SE MANTIENE LA PRESENCIA DEL MISMO EN TEMP Y LA POSIBILIDAD DE DESCARGARLO EN AMBAS CONDICIONES
		//exec("/usr/local/bin/wkhtmltopdf -d 300 -L 10 -R 10 -T 10 -B 10 --header-font-size 8 --header-right ' [page] de [toPage]'  --viewport-size 1920x1080 --zoom 1 ".ENV('TEMP_PDF').'/'.$client_id."/".$nombre." ".ENV('TEMP_PDF').'/'.$client_id."/".str_replace('.html', '.pdf', $nombre));
		exec("wkhtmltopdf -d 300 -L 10 -R 10 -T 10 -B 10 --enable-local-file-access --header-font-size 8 --header-right ' [page] de [toPage]'  --viewport-size 1920x1080 --zoom 1 ".ENV('TEMP_PDF').'/'.$client_id."/".$nombre." ".ENV('TEMP_PDF').'/'.$client_id."/".str_replace('.html', '.pdf', $nombre));
		// FIN DE PDF HISTORICO
		Session::forget('html');
		//----
		return response()->download($file_download);
	}
	
	//----- SIEMPRE LO DEBE HACER DESCARGAR DESDE EL ESPACIO TEMP, NO OLVIDAR DE CAMBIAR 

	//Kevin
	/*
	header('Content-Transfer-Encoding: binary');
	header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($file_download)) . ' GMT');
	header('Accept-Ranges: bytes');
	header('Content-Length: ' . filesize($file_download));
	header('Content-Encoding: none');
	header('Content-Type: application/pdf');
	header('Content-Disposition: attachment; filename=' .$cuit.'_'.date("Y-m-d").'.pdf');
	readfile($file_download);
	$chmod = chmod($file_download, 0777);
	return 'ok';
  */
	

  } 
  public static function cookieGuardar(){
	$params = []; 
	$params['user_id']      = Session::get('usuario')->user_id;
	$params['platform_id']  = Session::get('id_plataforma'); 
	$params['user_agent']   = $_SERVER["HTTP_USER_AGENT"]; 
	$params['user_ip']      = $_SERVER["REMOTE_ADDR"];
	$params['id_terminos']  = Session::get('id_terminos'); 
	$params['id_padron']    = null; 
	$params['cliente']      = Session::get('usuario')->cliente['client_id']; 
	$param = http_build_query($params); 
	$url      = ENV('URL_BASE') . '/api/tyc-trazabilidad'; 
	$trazabilidad = self::CURLCallScore($url,$param,'POST');
	$resp = isset(json_decode($trazabilidad)->error) ? 'error' : 'ok' ;
	return $resp; 
  }

  public static function cookieDisclaimer(){
	\Cookie::queue('disclaimer', true, 21600); //60 minutos * 24 horas * 15 días
	return 'ok';
  }

  public function enviarSolicitudDossier(){
	$user_id      = Session::get('usuario')->user_id;     
	$cuit         = Request::input('dossier_cuit');
	$analisis     = Request::input('dossier_analisis');
	$confidencial = Request::input('dossier_confidencial');
	$observacion  = Request::input('dossier_observacion');
	$telefono     = Request::input('dossier_telefono');
	$dato_cliente = SQLConnection::obtenerDatosCliente($user_id);
	$content = array(
	"user_id" => $user_id,
	"cuit_dossier" => $cuit,
	"analisis"=> $analisis,
	"confidencial"=> $confidencial,
	"observacion"=> $observacion,
	"dato_cliente" => $dato_cliente,
	"telefono" => $telefono,
	);

	if (!$dato_cliente) {
	  return 0;
	} 
	  
	$envio_mail = Misc::enviarMail('mails/solicitud_dossier','ventas@fidelitas.com.ar', $content,"Consulta desde formulario");
	SQLConnection::consumirServicio($user_id,$cuit,ENV('ID_DOSSIER'));
	
	return 'ok';
  }

  public function enviarComentarioComercial(){
	$usuario        = Session::get('usuario');
	$user_id        = $usuario->user_id;
	$cliente        = $usuario->cliente['client_id'];
	$msj_comentario = Request::input('comentario_observacion');
	$cuit           = Request::input('cuit');

	if(!$usuario){
	  return 0;
	}
	
	$comentarios = SQLConnection::cargaComentario($user_id,$cliente,$msj_comentario,$cuit);
	return \Response::json($comentarios, 200, [], JSON_NUMERIC_CHECK);
  }

  private function obtenerRegistrosContables($respuesta_activo,$respuesta_estado,$indices_de_gestion,$respuesta_activo_extendido,$respuesta_pasivo_extendido,$respuesta_estado_extendido,$indices_de_gestion_extendido){
	$registro_act         = [];
	$registro_estado      = [];
	$registro_ind_gestion = [];
	$registro_act_ext     = [];
	$registro_pas_ext     = [];
	$registro_estado_ext  = [];
	$registro_gestion_ext = [];
	//ACTIVO-PASIVO-PN resumido
	foreach ($respuesta_activo as $key_array => $objeto) {
		
	  $registro_act['periodo'][] = $objeto->fecha_balance;
	  $registro_act['estado'][] = $objeto->estado;
	  $registro_act['ac_total'][] = $objeto->ac_total;
	  $registro_act['anc_total'][] = $objeto->anc_total;
	  $registro_act['act_total'][] = $objeto->act_total;
	  $registro_act['pc_total'][] = $objeto->pc_total;
	  $registro_act['pnc_total'][] = $objeto->pnc_total;
	  $registro_act['pas_total'][] = $objeto->pas_total;
	  $registro_act['patrimonio'][] = $objeto->patrimonio;
	  $registro_act['nombre_moneda'] = $objeto->nombre_moneda;
	  $registro_act['ruta_archivo'][] = $objeto->ruta_archivo;
	  $registro_act['fecha_amd'][] = $objeto->fecha_order;
	  $registro_act['cuit'][] = $objeto->cuit;
	}
	//ESTADO DE RESULTADO resumido
	foreach ($respuesta_estado as $key_array => $objeto) {
	  $registro_estado['periodo'][] = $objeto->fecha_balance;
	  $registro_estado['estado'][] = $objeto->estado;
	  $registro_estado['res_vtanet'][] = $objeto->res_vtanet;
	  $registro_estado['ganancia'][] = $objeto->ganancia;
	  $registro_estado['nombre_moneda'] = $objeto->nombre_moneda;
	}
	//INDICE DE GESTION resumido
	foreach ($indices_de_gestion as $key_array => $objeto) {
	  $registro_ind_gestion['periodo'][] = $objeto->fecha_balance;
	  $registro_ind_gestion['estado'][] = $objeto->estado;
	  $registro_ind_gestion['ind_liqcorr'][] = $objeto->ind_liqcorr;
	  $registro_ind_gestion['ind_endeu'][] = $objeto->ind_endeu;
	  //se cambio "ind_solvencia_pat" x "ind_solvencia"
	  //se cambio "ind_solvencia" x "ind_solvencia_pat" 28-12-2017 a pedido de edu
	  $registro_ind_gestion['ind_solvencia_pat'][] = $objeto->ind_solvencia_pat;
	  $registro_ind_gestion['ind_captra'][] = $objeto->ind_captra;
	  $registro_ind_gestion['ind_rentabilidad'][] = $objeto->ind_rentabilidad;
	  $registro_ind_gestion['ind_rotact'][] = $objeto->ind_rotact;
	  $registro_ind_gestion['ind_rotinv'][] = $objeto->ind_rotinv;
	  $registro_ind_gestion['ind_marbru'][] = $objeto->ind_marbru;
	  $registro_ind_gestion['nombre_moneda'] = $objeto->nombre_moneda;
	}

	// ACTIVO extendido
	foreach ($respuesta_activo_extendido as $key_array => $objeto) {
	  $registro_act_ext['periodo'][] = $objeto->fecha_balance;
	  $registro_act_ext['estado'][] = $objeto->estado;
	  $registro_act_ext['ac_cajban'][] = $objeto->ac_cajban;
	  $registro_act_ext['ac_inver'][] = $objeto->ac_inver;
	  $registro_act_ext['ac_crevta'][] = $objeto->ac_crevta;
	  $registro_act_ext['ac_otrcre'][] = $objeto->ac_otrcre;
	  $registro_act_ext['ac_biecam'][] = $objeto->ac_biecam;
	  $registro_act_ext['ac_bietan'][] = $objeto->ac_bietan;
	  $registro_act_ext['ac_otract'][] = $objeto->ac_otract;
	  $registro_act_ext['ac_total'][] = $objeto->ac_total;
	  $registro_act_ext['anc_crevta'][] = $objeto->anc_crevta;
	  $registro_act_ext['anc_otrcre'][] = $objeto->anc_otrcre;
	  $registro_act_ext['anc_inver'][] = $objeto->anc_inver;
	  $registro_act_ext['anc_actint'][] = $objeto->anc_actint;
	  $registro_act_ext['anc_otract'][] = $objeto->anc_otract;
	  $registro_act_ext['anc_bieuso'][] = $objeto->anc_bieuso;
	  $registro_act_ext['anc_bieusovo'][] = $objeto->anc_bieusovo;
	  $registro_act_ext['anc_depacu'][] = $objeto->anc_depacu;
	  $registro_act_ext['anc_total'][] = $objeto->anc_total;
	  $registro_act_ext['act_total'][] = $objeto->act_total;
	  $registro_act_ext['nombre_moneda'] = $objeto->nombre_moneda;
	}
	//PASIVOS extendidos
	foreach ($respuesta_pasivo_extendido as $key_array => $objeto) {
	  $registro_pas_ext['periodo'][] = $objeto->fecha_balance;
	  $registro_pas_ext['estado'][] = $objeto->estado;
	  $registro_pas_ext['pc_ctapag'][] = $objeto->pc_ctapag;
	  $registro_pas_ext['pc_presta'][] = $objeto->pc_presta;
	  $registro_pas_ext['pc_remune'][] = $objeto->pc_remune;
	  $registro_pas_ext['pc_carfis'][] = $objeto->pc_carfis;
	  $registro_pas_ext['pc_antcli'][] = $objeto->pc_antcli;
	  $registro_pas_ext['pc_otrpas'][] = $objeto->pc_otrpas;
	  $registro_pas_ext['pc_total'][] = $objeto->pc_total;
	  $registro_pas_ext['pnc_cuepag'][] = $objeto->pnc_cuepag;
	  $registro_pas_ext['pnc_previ'][] = $objeto->pnc_previ;
	  $registro_pas_ext['pnc_presta'][] = $objeto->pnc_presta;
	  $registro_pas_ext['pnc_otrpas'][] = $objeto->pnc_otrpas;
	  $registro_pas_ext['pnc_deufis'][] = $objeto->pnc_deufis;
	  $registro_pas_ext['pnc_total'][] = $objeto->pnc_total;
	  $registro_pas_ext['pas_total'][] = $objeto->pas_total;
	  $registro_pas_ext['capsoc'][] = $objeto->capsoc;
	  $registro_pas_ext['res_noasig'][] = $objeto->res_noasig;
	  $registro_pas_ext['patrimonio'][] = $objeto->patrimonio;
	  $registro_pas_ext['nombre_moneda'] = $objeto->nombre_moneda;

	}
	//ESTADO DE RESULTADO extendido
	foreach ($respuesta_estado_extendido as $key_array => $objeto) {
	  $v1 = $objeto->res_vtanet;
	  $v2 = $objeto->res_cosmer;
	  $resultado_bruto =  $v1 - $v2;
	  $registro_estado_ext['periodo'][]         = $objeto->fecha_balance;
	  $registro_estado_ext['estado'][] = $objeto->estado;
	  $registro_estado_ext['res_vtanet'][]      = $objeto->res_vtanet;
	  $registro_estado_ext['res_compras'][]     = $objeto->res_compras;
	  $registro_estado_ext['res_cosmer'][]      = $objeto->res_cosmer; 
	  $registro_estado_ext['amortiza'][]        = $objeto->amortiza;
	  $registro_estado_ext['res_gascom'][]      = $objeto->res_gascom;
	  $registro_estado_ext['res_gasadm'][]      = $objeto->res_gasadm;
	  $registro_estado_ext['res_gasfin'][]      = $objeto->res_gasfin;
	  $registro_estado_ext['res_otrosegr'][]    = $objeto->res_otrosegr;
	  $registro_estado_ext['res_otrosing'][]    = $objeto->res_otrosing;
	  $registro_estado_ext['res_resfin'][]      = $objeto->res_resfin;
	  $registro_estado_ext['res_iva'][]         = $objeto->res_iva;
	  $registro_estado_ext['ganancia'][]        = $objeto->ganancia;
	  $registro_estado_ext['resultado_bruto'][] = $resultado_bruto;
	  $registro_estado_ext['nombre_moneda']     = $objeto->nombre_moneda;
	}
	//INDICE DE GESTION extendido
	foreach ($indices_de_gestion_extendido as $key_array => $objeto) {
	  $registro_gestion_ext['periodo'][] = $objeto->fecha_balance;
	  $registro_gestion_ext['estado'][] = $objeto->estado;
	  $registro_gestion_ext['ind_liqcorr'][] = $objeto->ind_liqcorr;
	  $registro_gestion_ext['ind_liqseca'][] = $objeto->ind_liqseca;
	  $registro_gestion_ext['ind_endeu'][] = $objeto->ind_endeu;
	  $registro_gestion_ext['ind_endeuact'][] = $objeto->ind_endeuact;
	  //$registro_gestion_ext['ind_solvencia'][] = $objeto->ind_solvencia; se remplazo el 28/12/2017 a pedido de Edu x "ind_solvencia_pat"
	  $registro_gestion_ext['ind_solvencia_pat'][] = $objeto->ind_solvencia_pat;
	  $registro_gestion_ext['ind_captra'][] = $objeto->ind_captra;
	  //$registro_gestion_ext['ind_cappro'][] = $objeto->ind_cappro;
	  $registro_gestion_ext['ind_invbu'][] = $objeto->ind_invbu;
	  //$registro_gestion_ext['ind_inmact'][] = $objeto->ind_inmact;
	  //$registro_gestion_ext['ind_inmpat'][] = $objeto->ind_inmpat;
	  $registro_gestion_ext['ind_retpat'][] = $objeto->ind_retpat;
	  $registro_gestion_ext['ind_rotvta'][] = $objeto->ind_rotvta;
	  $registro_gestion_ext['ind_marbru'][] = $objeto->ind_marbru;
	  $registro_gestion_ext['ind_utilfin'][] = $objeto->ind_utilfin;
	  $registro_gestion_ext['ind_rentabilidad'][] = $objeto->ind_rentabilidad;
	  $registro_gestion_ext['ind_ebipas'][] = $objeto->ind_ebipas;
	  $registro_gestion_ext['ind_indrot'][] = $objeto->ind_indrot;
	  $registro_gestion_ext['ind_rotinv'][] = $objeto->ind_rotinv;
	  $registro_gestion_ext['ind_prest_pn'][] = $objeto->ind_prest_pn;
	  $registro_gestion_ext['ind_prest_vtas'][] = $objeto->ind_prest_vtas;
	  $registro_gestion_ext['ind_rotact'][] = $objeto->ind_rotact;
	  $registro_gestion_ext['nombre_moneda'] = $objeto->nombre_moneda;

	}
	$resp['registro_act']               = $registro_act;
	$resp['registro_estado']            = $registro_estado;
	$resp['registro_ind_gestion']       = $registro_ind_gestion;
	$resp['registro_gestion_ext']       = $registro_gestion_ext;
	$resp['registro_act_ext']           = $registro_act_ext;
	$resp['registro_pas_ext']           = $registro_pas_ext;
	$resp['registro_estado_ext']        = $registro_estado_ext;
	return $resp;   
  }


 public function mailMasivo(){
 	 	$clientes = SQLConnection::backendStoreProcedure('mails_clientes_activos',array(),'select');
 	 	foreach($clientes as $cli){
			$envio_mail = Misc::enviarMail('mails/mail_masivo_banco',$cli->email,'',"Fidelitas SA - Cambio banco");
		  if ($envio_mail == true) 
		  {
	  		print_r("\r\n" . $cli->cliente . ' - ' . $cli->nombre_cliente . ' - ' . $cli->email . ' OK');
			}
			else 
			{
	  		print_r("\r\n" . $cli->cliente . ' - ' . $cli->nombre_cliente . ' - ' . $cli->email . ' ERROR');
			}

  	}
  }



  public function mailMasivoAnterior(){
	if(Misc::enviarMail("mails/mail_masivo",array('leonel.turchetto@fidelitas.com.ar','juan.elidd@fidelitas.com.ar','alejandro.burgol@fidelitas.com.ar','npenza@colorin.com','ttulchinsky@segurossura.com.ar','avisodepago@ipesa.com.ar','pagos.argentina@ar.atlascopco.com','lilia.holubek@ferro.com','alejandro.andreas@icbc.com.ar','maximo.richards@metlife.com.ar','franco.merlini@revlon.com','veronica.lixklett@rabobank.com','cobranzas@forvis.com.ar','rmorello@bandex.com.ar','marianaf@iraola.com','cleveroni@petroleracopsa.com.ar','facturaselectronicas@nacion-seguros.com.ar','rch@uniformes-saber.com.ar','fabior@artwresolution.com','sergiorodriguez@seguvip.com.ar','nildaprieto@fibertel.com.ar','radiceo@fadete.com','cal@editores.org.ar','acerinoxargentina@acerinox.com','egulmez@arcor.com','efava@ryhlsa.com.ar','erabra@fibertel.com.ar','hbarbiero@propato.com.ar','talasesco@envases-riviere.com.ar','alejandra@tejidosdelrincon.com','facturacion@ospm.org.ar','nildaprieto@fibertel.com.ar','mcalvet@electra.com.ar','info@vbgpropiedades.com.ar','departamentolegal@neumatex.com.ar','calabreseyjuan@redynet2.com.ar','lmb@copanseguros.com.ar','samanta@pinturasandina.com.ar','montalbanohnos@yahoo.com.ar','a.borroni@acerosborroni.com','carolina@estudioaranguren.com.ar','ctaspagartrn@transener.com.ar','evazquez@sintesis.com.ar','administracion@amecco.org.ar','generaltrading@interlink.com.ar','rosanap@bancopublicitario.com','dgf.infopagosar@dhl.com','proveedores@abcsalud.com.ar','bua.curz@gsk.com','anita@tora.com.br','silvia.boschi@dellteam.com','gviale@pagina12.com.ar','romina.ramirez@symrise.com','administracion@chillari.com.ar','schocho@elsolarshopping.com.ar','gabriela.bordon@bausch.com','fabi_admreyes@hotmail.com','rperalta@bafcapital.net','credimar-ave@speedy.com.ar','administracion@cosenaseguros.com.ar','personalsol5@yahoo.com.ar','controlfinanciero@heritage.com.uy','etabasso@hamui-louys.com.ar','diego.chimirri@metlife.com.ar','mmitchelena@fuerzasolidaria.gov.ar','creditam_cooperativa@yahoo.com','fvalenti@cadime.com.ar','riesgos@solunion.com.ar','CorreaUrquizaM@ver.com.ar','smesa@pkfargentina.com.ar','russobienesraices@hotmail.com','proveedores@tucanotours.com.ar','inesfernandez@aibal.com.ar','convac@elcable.tv','escribanogomez_@hotmail.com','fernandop@zimil.com.ar','fabiola@loneco.com.ar','mquinteros@cetsa.com.ar','pagoproveedores@gasmeridional.com.ar','gperez@micropack.com.ar','alejandro.leone@renault.com','gabrielchazarreta@solucion-credito.com','anavaleriablanco@hotmail.com','mutualamerica@hotmail.com','monica@stoppello.com.ar','proveedores@saniplast.com.ar','constructoraaconcagua@hotmail.com','marina@maure.com.ar','alp@totalluz.com.ar','smarkov@arm-service.com','jaortiz@eling.com.ar','brebolledo@funmedorg.ar','ventas@bszapatos.com','paulacassano@hotmail.com','proveedores@sixcom.com.ar','fruiz@ase.com.ar','lperrotta@vfb.com.ar','info@cucchiara.sba.com.ar','administracion@rulemanesalvear.com.ar','martintavano@telpin.com.ar','pfrias@maco.com.ar','creditos@pagani-sa.com.ar','mcoroas@ldcsemillas.com','patricia@vairo.com','dscullino@bavsa.com','jbalderrama@ecadat.com.ar','ib@llauro.com.ar','jaexposito@fibercorp.com.ar','proveedores@taccahnos.com.ar','cristina.desouza@vicentin.com.ar','gabrielfernandez@lapompeya.com.ar','hernan.wehr@carrier.utc.com','ddidelitoseconomicos@outlook.com','adelantos@drogueria-avenida.com.ar','joseclaudiorusso@hotmail.com','distribuidorapinocor@hotmail.com','alquileresmosca@gmail.com','contrataciones@mseg.gba.gov.ar','admin@sabtextil.com','amendelzon@responsa.com.ar','MELISA@COOPSANJOSE.COM.AR','amuratorio@celulosasanpedro.com.ar','anne.bruentrup@eulerhermes.com','trafficmgr@asiancredit.com','pscagliotti@worldsys.com.ar','lmaldonado@bna.com.ar','info@tasa-sa.com.ar')
	  ,'nada',"Fidelitas SA - Aumento de Tarifa")){
	  print_r('enviado');

	}
  }

  public static function obtenerDatosPerfil($user_id){
	//$user_id              = Session::get('usuario')->user_id;
	$datos_usuario_perfil = SQLConnection::obtenerPerfil($user_id);
	$nombre               = $datos_usuario_perfil->first_name;
	$apellido             = $datos_usuario_perfil->last_name;
	//$fecha_nacimiento     = $datos_usuario_perfil->birthday;
	$email                = $datos_usuario_perfil->email;
	//$cargo                = $datos_usuario_perfil->position;
	$falta_data           = 0;
	
	if(is_null($nombre) || is_null($apellido) || is_null($email) ) {
	  $falta_data = 1;
	}elseif( $nombre !='' || $apellido !='' || $email !=''){
	  $falta_data = 1 ;
	}else{
	  $falta_data = 0;
	}

	if( isset($nombre) && isset($apellido) && isset($email)){
	  $falta_data = 0;
	}else{
	  $falta_data = 1;
	}
	return $falta_data;
  }

  public static function obtenerIdProductosCliente($id_cliente,$es_cliente,$es_usuario){
	$productos_cliente = SQLConnection::obtenerProductosCliente($id_cliente,$es_cliente,$es_usuario);
	foreach ($productos_cliente as $producto) {
	  $id_producto[] = $producto->prod_codigo ;
	}

	return $id_producto;
  }
	/* 13/10/2021: */
	public function informePDFcontraparte(){
		$contraparte = Request::input('contraparte');
		$cont = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $contraparte, null, null, null, null, null, null, null, null, null, null, null, null, null));
		return view('/Api/informePDFcontraparte')->with(compact('cont'));
	}

	/**/

  public  function generarSabana(){
	$secciones_sabana ['seccion_fiscales']            = Request::input('seccion_fiscales');
	$secciones_sabana ['seccion_brief']               = Request::input('seccion_brief');
	$secciones_sabana ['seccion_formales']            = Request::input('seccion_formales');
	$secciones_sabana ['seccion_comerciales']         = Request::input('seccion_comerciales');
	$secciones_sabana ['seccion_contables']           = Request::input('seccion_contables');
	$secciones_sabana ['seccion_sociedades']          = Request::input('seccion_sociedades');
	$secciones_sabana ['seccion_legales']             = Request::input('seccion_legales');
	$secciones_sabana ['seccion_bancos']              = Request::input('seccion_bancos');
	$secciones_sabana ['seccion_comex']               = Request::input('seccion_comex');
	$secciones_sabana ['seccion_fuentes_externas']    = Request::input('seccion_fuentes_externas');
	$secciones_sabana ['seccion_sabana']              = Request::input('seccion_sabana');
	$secciones_sabana ['seccion_contables_compacto']  = Request::input('seccion_contables_compacto');
	$secciones_sabana ['seccion_contables_extendido'] = Request::input('seccion_contables_extendido');
	$secciones_sabana ['incluir_homonimos_impresion'] = Request::input('incluir_homonimos_impresion');
	
	$cliente = Request::input('cliente') ?? '0';
	$cuit = Request::input('cuit') ?? '0';
	$contraparte = Request::input('contraparte') ?? '0';
	$gestion = Request::input('gestion') ?? '0';
	$es_led = Request::input('es_led') ?? '0';
	
	$html  = '';
	$html .= view('header_sabana')->render();
	$html .= self::obtenerCompacto(true,$secciones_sabana);
	//$html = preg_replace("/\r\n|\r|\n|\t/",'',$html);
	
	if ($es_led == '0')
			{
			return $html;
			}
	else 
	{
		/*
		var_dump("Grabando!!"); 
		var_dump("html:".$html); 
		die(); */

		/* $nombre = $contraparte . '_' . $gestion . '_ic2.html'; 
		$file           = ENV('TEMP_PDF').'/'.$cliente.'/'.$contraparte.'/'.$gestion.'/'.$nombre;
		$file_download  = ENV('PATH_COMPARTIDO').'/'.$cliente.'/'.$contraparte.'/'.$gestion.'/'.str_replace('.html', '.pdf', $nombre);
		if(!is_dir(ENV('TEMP_PDF').'/'.$cliente)){
			mkdir(ENV('TEMP_PDF').'/'.$cliente, 0777,true);
		}
		if(!is_dir(ENV('PATH_COMPARTIDO').'/'.$cliente)){
			mkdir(ENV('PATH_COMPARTIDO').'/'.$cliente, 0777,true);
		}
		if(!is_dir(ENV('TEMP_PDF').'/'.$cliente.'/'.$contraparte)){
			mkdir(ENV('TEMP_PDF').'/'.$cliente.'/'.$contraparte, 0777,true);
		}
		if(!is_dir(ENV('PATH_COMPARTIDO').'/'.$cliente.'/'.$contraparte)){
			mkdir(ENV('PATH_COMPARTIDO').'/'.$cliente.'/'.$contraparte, 0777,true);
		}
		if(!is_dir(ENV('TEMP_PDF').'/'.$cliente.'/'.$contraparte.'/'.$gestion)){
			mkdir(ENV('TEMP_PDF').'/'.$cliente.'/'.$contraparte.'/'.$gestion, 0777,true);
		}
		if(!is_dir(ENV('PATH_COMPARTIDO').'/'.$cliente.'/'.$contraparte.'/'.$gestion)){
			mkdir(ENV('PATH_COMPARTIDO').'/'.$cliente.'/'.$contraparte.'/'.$gestion, 0777,true);
		}
		
		file_put_contents($file,utf8_decode($html));
		file_put_contents($file,$html);
		chmod($file, 0777);
		exec("/usr/local/bin/wkhtmltopdf -d 300 -L 10 -R 10 -T 10 -B 10 --header-font-size 8 --header-right ' [page] de [toPage]'  --viewport-size 1920x1080 --zoom 1 ".ENV('TEMP_PDF').'/'.$cliente.'/'.$contraparte.'/'.$gestion.'/'.$nombre." ".ENV('PATH_COMPARTIDO').'/'.$cliente.'/'.$contraparte.'/'.$gestion.'/'.str_replace('.html', '.pdf', $nombre)); */
		return $html;
	}
 } 

 public static function obtenerMarcas(){
	$token            = Request::input('_token');
	$cuit             = Request::input('cuit');
	/* 07/10/2021: para poder llamarlo desde led */

	$es_led = false; 
	$id = Request::input('contraparte') ?? null;
	if (!$cuit)
	{
		$qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
		$cuit = $qcontrap->identificacion ?? null;
		$json = false; 
		$es_led = true; 
	}

	$marcas           = SQLConnection::obtenerMarcas($cuit);
	if($marcas){
	  $marcas_unificadas = [];
	  foreach ($marcas as $key => $value) {
		if($key == 0){
		  $marcas_unificadas[] =  $value;
		}else{
		  $item = false;
		  $index = false;
		  foreach($marcas_unificadas as $key2 => $mu) {
			  if (
				$value->marca == $mu->marca &&
				$value->tipo == $mu->tipo
			  ) {
				  $item = $value;
				  $index = $key2;
				  break;
			  }
		  }

		  if($item){
			 $marcas_unificadas[$index]->clase .=  ','.$value->clase;
		   }else{
			 $marcas_unificadas[] =  $value;
		   }

		}
	  
	  }
	  $marcas = $marcas_unificadas;
	  foreach ($marcas as $key => $value) {


		//si no encuentra nuestra imagen , va a buscarla afuera
		$marcas[$key]->encontrada = false;
		if($value->web == 'null') {
		  //obtener Imagen fuente externa
		  if (!file_exists('/var/www/html/compartido/marcas/'.$value->num_boletin.'/marcas/'.$value->num_acta.'.gif')) {
			SQLConnection::cargarEstadoMarcasExterno($cuit,0,'web',$value->num_acta);
			$value->web = 0;
			$marcas[$key]->encontrada = false;
		  }else{
			SQLConnection::cargarEstadoMarcasExterno($cuit,1,'web',$value->num_acta);
			$value->web = 1;
			$marcas[$key]->encontrada = true;
		  }
		}
		if(
		  $value->directorio == null && $value->web == 0 
		  ){
			//$imagen_marca_externa = Misc::obtenerImagenMarcasExterno($value->num_acta,$value->num_boletin);
			$imagen_marca_externa = false;
			if($imagen_marca_externa){
			  $marcas[$key]->encontrada = true;
			  SQLConnection::cargarEstadoMarcasExterno($cuit,1,'directorio',$value->num_acta);
			}else{
			  $marcas[$key]->encontrada = false;
			  SQLConnection::cargarEstadoMarcasExterno($cuit,0,'directorio',$value->num_acta);
			}

		}

		if($value->web == 1 || $value->directorio == 1) {
		  $marcas[$key]->encontrada = true;
		}
		//$Web-$directorio ordenamiento en presentacion imagenes  
		$web[$key] = $value->web;
		$directorio[$key] = $value->directorio;
		$clase[$key] = $value->clase; 
		
		//Ordenamiento de las clases de menor a mayor Y eliminacion de numeros repetidos
		$stringParts = str_split($marcas[$key]->clase);
		$out = explode(',', $marcas[$key]->clase);
		sort($out);
		$out = implode(',', $out);
		$marcas[$key]->clase = $out;
		$marcas[$key]->clase = implode(', ',array_unique(explode(',', $marcas[$key]->clase)));
		
		$nombre_marcas = trim($value->marca);
		$marcas[$key]->marca = $nombre_marcas;
		$tipo_marca = $value->tipo;
		if ($tipo_marca == 'D') {
		  $marcas[$key]->tipo = 'DENOMINATIVA';
		}elseif ($tipo_marca == 'F') {
		  $marcas[$key]->tipo = 'FIGURATIVA';
		}elseif ($tipo_marca == 'M') {
		  $marcas[$key]->tipo = 'MIXTA';
		}


	  }//endforeach
	  //ordena array para que se muestren marcas con imagenes en los primeros resultados
	  array_multisort($web, SORT_DESC, $directorio, SORT_DESC, $marcas);
	}else{
	  return $marcas = '';
	}
	
   return $marcas;
  }

  public function enviarMailDefuncionError(){

	$defunciones = SQLConnection::mailDefuncionError();
	if (!$defunciones) {
	  return 0;
	} 
	$envio_mail = Misc::enviarMail('mails/mail_defuncion_error','soporte@fidelitas.com.ar',$defunciones,"Fechas de Defunción que cambiaron según AFIP");
	return 'ok';
  }
	
  
  public function mailIIBB(){
	$dirmail = [];

	$dirmail[] = 'facturas.argentina@merck.com';
	$dirmail[] = 'facturas-e@godoypovina.com.ar';
	$dirmail[] = 'facturaselectronicas.bayer.fb@bayer.com';
	$dirmail[] = 'facturaselectronicas@bpba.com.ar';
	$dirmail[] = 'facturaselectronicas@lacaja.com.ar';
	$dirmail[] = 'facturaselectronicas@nacion-seguros.com.ar';
	$dirmail[] = 'facturasicbc@icbc.com.ar';
	$dirmail[] = 'facturasproveedores@mapfre.com.ar';
	$dirmail[] = 'facundo.medalis@bausch.com';
	$dirmail[] = 'falcain@manpower.com.uy';
	$dirmail[] = 'FBelardinelli@securitasargentina.com';
	$dirmail[] = 'fc@escribaniaormaechea.com.ar';
	$dirmail[] = 'fcrovi@pagina12.com.ar';
	$dirmail[] = 'fernanda.lavena@fcagroup.com';
	$dirmail[] = 'fernandop@zimil.com.ar';
	$dirmail[] = 'ffischer@mneustardt-asoc.com.ar';
	$dirmail[] = 'finanzas@credibel.com.ar';
	$dirmail[] = 'fmortiz@arcor.com';
	$dirmail[] = 'fornoni@hotmail.com';
	$dirmail[] = 'fperez@asp-la.com';
	$dirmail[] = 'Gabriel.Abiusi@skf.com';
	$dirmail[] = 'gabriel.hernandez@segurossura.com.ar';
	$dirmail[] = 'gabrielchazarreta@solucion-credito.com.ar';
	$dirmail[] = 'gabrielvito@kornpropiedades.com.ar';
	$dirmail[] = 'gastonl@lanera-austral.com';
	$dirmail[] = 'gcarrel@bice.com.ar';
	$dirmail[] = 'gdepalma@claves.com.ar';
	$dirmail[] = 'gdipietro@segurosinsur.com.ar';
	$dirmail[] = 'german.murgia@henkel.com';
	$dirmail[] = 'gianluca.lisacchi@ext.mpsa.com';
	$dirmail[] = 'gicaserta@maco.com.ar';
	$dirmail[] = 'globalpayment.argentina@unilever.com';
	$dirmail[] = 'gmoya@gruporhuo.com';
	$dirmail[] = 'gmuniz@colegioinmobiliario.org.ar';
	$dirmail[] = 'goncalvesviviana@gmail.com';
	$dirmail[] = 'gperez@micropack.com.ar';
	$dirmail[] = 'graciela@folger.com.ar';
	$dirmail[] = 'graciela@sintesis.com.ar';
	$dirmail[] = 'gtorres@atfa.com.ar';
	$dirmail[] = 'gustavoaliaga.adm@gmail.com';
	$dirmail[] = 'H2ONT@HOTMAIL.COM';
	$dirmail[] = 'haddadsarandi@yahoo.com.ar';
	$dirmail[] = 'hbarbiero@propato.com.ar';
	$dirmail[] = 'helen.auris@revlon.com';
	$dirmail[] = 'horacio@colimodio.com.ar';
	$dirmail[] = 'hsans@cetsa.com.ar';
	$dirmail[] = 'hwehr@mideacarrier.com';
	$dirmail[] = 'i2cico@sidic.mseg.gba.gov.ar';
	$dirmail[] = 'ian@pinturasandina.com.ar';
	$dirmail[] = 'ib@llauro.com.ar';
	$dirmail[] = 'ibanezaf@estudioafibanez.com.ar';
	$dirmail[] = 'ines@stargate.com.ar';
	$dirmail[] = 'info@cucchiara.sba.com.ar';
	$dirmail[] = 'info@estudioruizyasoc.com';
	$dirmail[] = 'info@estudiosaade.com';
	$dirmail[] = 'info@farjatehijos.com.ar';
	$dirmail[] = 'info@jlatorre.com.ar';
	$dirmail[] = 'info@mingrino-schmidt.com.ar';
	$dirmail[] = 'info@siderca.com';
	$dirmail[] = 'info@tasa-sa.com.ar';
	$dirmail[] = 'info@tefquim.com.ar';
	$dirmail[] = 'info@vbgpropiedades.com.ar';
	$dirmail[] = 'inmobiliariamitchell@yahoo.com.ar';
	$dirmail[] = 'invoices0087.ptp@beiersdorf.com';
	$dirmail[] = 'ipereira@questadivisers.com';
	$dirmail[] = 'ivonnemarina@gmail.com';
	$dirmail[] = 'jaortiz@eling.com.ar';
	$dirmail[] = 'javier.fernandez@styropek.com';
	$dirmail[] = 'javierpo@geraci.com.ar';
	$dirmail[] = 'jbalderrama@ecadat.com.ar';
	$dirmail[] = 'JBianch3@its.jnj.com';
	$dirmail[] = 'jclemenz@agd.com.ar';
	$dirmail[] = 'jcrodriguez@la-gauchita.com.ar';
	$dirmail[] = 'jjguadagnini@arnet.com.ar';
	$dirmail[] = 'jmaiorano@macstation.com.ar';
	$dirmail[] = 'johanna@elaguara.com.ar';
	$dirmail[] = 'jose.bravo@galantedantonio.com';
	$dirmail[] = 'joseaexposito@speedy.com.ar';
	$dirmail[] = 'jpastoriza@bna.com.ar';
	$dirmail[] = 'JPCORREA@HOTMAIL.COM';
	$dirmail[] = 'jperri@fabricadepizzas.com.ar';
	$dirmail[] = 'jpradi@macro-seed.com';
	$dirmail[] = 'julian@zommer.com.ar';
	$dirmail[] = 'julianacoronel@nybureau.com.ar';
	$dirmail[] = 'k.damasco@newland.com.uy';
	$dirmail[] = 'karina.digiorgio@fidelitas.com.ar';
	$dirmail[] = 'karina.mojica@holder-korpus.com';
	$dirmail[] = 'ksueiro@wolrdsys.com.ar';
	$dirmail[] = 'laura.calvitti@claro.com.ar';
	$dirmail[] = 'laura.crotti@willistowerswatson.com';
	$dirmail[] = 'lautaroelorz@estudioeyp.com.ar';
	$dirmail[] = 'lbas@romikin.com';
	$dirmail[] = 'lcalderone@superdyop.com.ar';
	$dirmail[] = 'lcorno@came.org.ar';
	$dirmail[] = 'leonardo@cesarprop.com.ar';
	$dirmail[] = 'lgraeff@eficasia.com';
	$dirmail[] = 'lilianapellizzari@daria.com.ar';
	$dirmail[] = 'lisandro.bechis@pbleiner.com';
	$dirmail[] = 'lmruiz@funmed.org.ar';
	$dirmail[] = 'lperrotta@vfb.com.ar';
	$dirmail[] = 'lregiretti@cadime.com.ar';
	$dirmail[] = 'lsarnachiaro@makro.com.ar';
	$dirmail[] = 'luciatagliaferri@remax.com.ar';
	$dirmail[] = 'lucrecia.espindola@arecosemillas.com.ar';
	$dirmail[] = 'luis.moyano@telam.com.ar';
	$dirmail[] = 'lumes.silvera@cysa.com.py';
	$dirmail[] = 'mailroom@directvla.com.ar';
	$dirmail[] = 'marcela.propato@tel3.com.ar';
	$dirmail[] = 'marcelo@repuestosfurlan.com.ar';
	$dirmail[] = 'maria_florencia.marinic@novartis.com';
	$dirmail[] = 'mariana.campana@metlife.com.ar';
	$dirmail[] = 'mariana.garcia@focusbs.com';
	$dirmail[] = 'marianaf@iraola.com';
	$dirmail[] = 'mariano.gonzalez@masisa.com';
	$dirmail[] = 'marina@maure.com.ar';
	$dirmail[] = 'martintavano@telpin.com.ar';
	$dirmail[] = 'matias.aron@tora.com.br';
	$dirmail[] = 'matias.cellerino@ingredion.com';
	$dirmail[] = 'matias@vasile.com.ar';
	$dirmail[] = 'mbarman@finargen.com.ar';
	$dirmail[] = 'mcalise@hojoar.com';
	$dirmail[] = 'mcalvet@electra.com.ar';
	$dirmail[] = 'mcasares@cambrianet.com.ar';
	$dirmail[] = 'mcgallo@yamaha.com.ar';
	$dirmail[] = 'MELISA@COOPSANJOSE.COM.AR';
	$dirmail[] = 'merojas@sinersa.com';
	$dirmail[] = 'mfseguin@cnea.gov.ar';
	$dirmail[] = 'mguerreiro@bancoindustrial.com.ar';
	$dirmail[] = 'micaela@abacolorsrl.com';
	$dirmail[] = 'mila.musich@wilo.com.ar';
	$dirmail[] = 'mjwilhelm@cspsa.com.ar';
	$dirmail[] = 'mlesta@meridionalseguros.com.ar';
	$dirmail[] = 'mluissi@elementum.com';
	$dirmail[] = 'mminteguia@fuerzasolidaria.gov.ar';
	$dirmail[] = 'mmoya@knightsbridgeconsult.com';
	$dirmail[] = 'mnahon@thinkbrg.com';
	$dirmail[] = 'mocretich@galiciaseguros.com.ar';
	$dirmail[] = 'monica.perez@gsagroup.com.ar';
	$dirmail[] = 'monica.vila@ferro.com';
	$dirmail[] = 'monsanto.proveedores@monsanto.com';
	$dirmail[] = 'montalbanohnos@yahoo.com.ar';
	$dirmail[] = 'mpereyra@bna.com.ar';
	$dirmail[] = 'msurri@kroll.com';
	$dirmail[] = 'mtedesco@pullmen.com';
	$dirmail[] = 'mtombetti@kpmg.com.ar';
	$dirmail[] = 'mturinetto@editores.org.ar';
	$dirmail[] = 'mtutor@timacagro.com.ar';
	$dirmail[] = 'mutualamerica@hotmail.com';
	$dirmail[] = 'mvina@prokarma.com.ar';
	$dirmail[] = 'mvpeluffo@gmail.com';
	$dirmail[] = 'nancy@alfieinmobiliaria.com.ar';
	$dirmail[] = 'natalia.bernardini@ldcom.com';
	$dirmail[] = 'natalia.castro@metlife.com.ar';
	$dirmail[] = 'nicolas.aranguren@arcurisa.com.ar';
	$dirmail[] = 'nicolas.vilche@baggio.com.ar';
	$dirmail[] = 'nildaprieto@fibertel.com.ar';
	$dirmail[] = 'noelia.pasotti@freudenberg-pm.com';
	$dirmail[] = 'npenza@colorin.com';
	$dirmail[] = 'nrichetti@chubb.com';
	$dirmail[] = 'ntrama@nucete.com.ar';
	$dirmail[] = 'ocrecaudatorio@prefecturanaval.gov.ar';
	$dirmail[] = 'olga@distefanopropiedades.com';
	$dirmail[] = 'oscarnigro@hotmail.com';
	$dirmail[] = 'osmard@speedy.com.ar';
	$dirmail[] = 'osvaldo.fleitas@vicentin.com.ar';
	$dirmail[] = 'pablo.fama@gropupecat.com.ar';
	$dirmail[] = 'pago.proveedores@ar.ey.com';
	$dirmail[] = 'pagoaproveedores@gasmeridional.com.ar';
	$dirmail[] = 'pagoaproveedores@liargentino.com';
	$dirmail[] = 'paola.martinez@grupobimbo.com';
	$dirmail[] = 'paola@bellagamba.com';
	$dirmail[] = 'paulacassano@otmail.com';
	$dirmail[] = 'peacoy@gmail.com';
	$dirmail[] = 'personalsol5@yahoo.com.ar';
	$dirmail[] = 'peter@schaenburg-rk.com';
	$dirmail[] = 'pilar.castrovidela@walmart.com';
	$dirmail[] = 'planta@neumatex.com.ar';
	$dirmail[] = 'pmaggio@sinergizagro.com';
	$dirmail[] = 'probledo@cajadocente.com.ar';
	$dirmail[] = 'proveedores.rc-arg@bbva.com';
	$dirmail[] = 'proveedores@abcsalud.com.ar';
	$dirmail[] = 'proveedores@chatelet.com.ar';
	$dirmail[] = 'proveedores@cultura.gob.ar';
	$dirmail[] = 'proveedores@intercargo.com.ar';
	$dirmail[] = 'proveedores@precisionglobal.com';
	$dirmail[] = 'proveedores@saniplast.com.ar';
	$dirmail[] = 'proveedores@tucanotours.com.ar';
	$dirmail[] = 'proveedores@vairo.com';
	$dirmail[] = 'proveedores@ver.com.ar';
	$dirmail[] = 'proveedores@whirlpool.com.ar';
	$dirmail[] = 'radiceo@fadete.com';
	$dirmail[] = 'raquelaliarias@hotmail.com';
	$dirmail[] = 'rbeato@riosma.com';
	$dirmail[] = 'rc@adnrh.com.ar';
	$dirmail[] = 'rch@uniformes-saber.com.ar';
	$dirmail[] = 'recepcion.dgfargentina@dhl.com';
	$dirmail[] = 'recepcion@pkfargentina.com.ar';
	$dirmail[] = 'recepcionacarg@ar.atlascopco.com';
	$dirmail[] = 'recepcionfacturas@alstomgroup.com';
	$dirmail[] = 'recepcionfacturaspae@pan-energy.com';
	$dirmail[] = 'recfactelect@hipotecario.com.ar';
	$dirmail[] = 'renriquez@drogueria-avenida.com.ar';
	$dirmail[] = 'rialprop@gmail.com';
	$dirmail[] = 'ricardodefran@yahoo.com.ar';
	$dirmail[] = 'rmorello@bandex.com.ar';
	$dirmail[] = 'rocio.ferrari@solunion.com.ar';
	$dirmail[] = 'rocio.mendieta@cummins.com';
	$dirmail[] = 'rodolfo_campagnola@yahoo.com.ar';
	$dirmail[] = 'rodrigogabriel.moreno@cencosud.com.ar';
	$dirmail[] = 'ruben.valido@gruposaporiti.com';
	$dirmail[] = 'russobienesraices@hotmail.com';
	$dirmail[] = 'russogestioninmobiliaria@hotmail.com';
	$dirmail[] = 'sandra.ronchetti@biscaynecapital.com';
	$dirmail[] = 'santiago.iacobelli@buenosaires2018.com';
	$dirmail[] = 'santiago.imbellone@coldwellbanker.com.ar';
	$dirmail[] = 'sasturizaga@serviciosexternos.com.ar';
	$dirmail[] = 'sclemenco@bavsa.com';
	$dirmail[] = 'sdiaz@ffmm.gov.ar';
	$dirmail[] = 'sebastian.barreca@sanandres.esc.edu.ar';
	$dirmail[] = 'Sebastian.Morello@allianz.com.ar';
	$dirmail[] = 'secretaria@cajaodo.org.ar';
	$dirmail[] = 'SERGIO.MINGO@PERMANENT.COM.BR';
	$dirmail[] = 'sergiorodriguez@seguvip.com.ar';
	$dirmail[] = 'sfrassone@villadagri.net';
	$dirmail[] = 'sgauna@anamayasa.com.ar';
	$dirmail[] = 'sgonzalez@estudiosag.com.ar';
	$dirmail[] = 'SilvaG@lacaja.com.ar';
	$dirmail[] = 'silvia.acosta@fidelitas.com.ar';
	$dirmail[] = 'silvia@aibal.com.ar';
	$dirmail[] = 'silvina@bancopublicitario.net';
	$dirmail[] = 'sjoaquin@remax.com.ar';
	$dirmail[] = 'smarkov@arm-services.com';
	$dirmail[] = 'snavarra@cosenaseguros.com.ar';
	$dirmail[] = 'sofia.gay@willistowerswatson.com';
	$dirmail[] = 'sonia.giberti@carassai.com';
	$dirmail[] = 'susana.perez@timken.com';
	$dirmail[] = 'systemas@forvis.com.ar';
	$dirmail[] = 'tappeto@fibertel.com.ar';
	$dirmail[] = 'tdestefano@northlands.edu.ar';
	$dirmail[] = 'tesoreria@redlink.com.ar';
	$dirmail[] = 'tetchegoyen@exiros.com';
	$dirmail[] = 'torresivana@hotmail.com';
	$dirmail[] = 'total_luz@fibertel.com.ar';
	$dirmail[] = 'traderxpeedsa@gmail.com';
	$dirmail[] = 'trafficmgr@asiancredit.com';
	$dirmail[] = 'valeria.sosa@freixenet.com.ar';
	$dirmail[] = 'vanesa.lenzi@gramon.com.ar';
	$dirmail[] = 'vaninap@artwaresolution.com';
	$dirmail[] = 'ventas@bszapatos.com';
	$dirmail[] = 'ventas@saintjulien.com.ar';
	$dirmail[] = 'vera@vms.com.ar';
	$dirmail[] = 'veronica.camporro@rrd.com';
	$dirmail[] = 'victoria.gatti@renault.com';
	$dirmail[] = 'victorialeloir@hotmail.com';
	$dirmail[] = 'viejascepas@yahoo.com.ar';
	$dirmail[] = 'vvargas@randstad.com.ar';
	$dirmail[] = 'vvinas@nacionservicios.com.ar';
	$dirmail[] = 'walter.devetac@frigorificobiocam.com';
	$dirmail[] = 'xavier.blanco@bancogalicia.com.ar';
	$dirmail[] = 'ximena.rivero@precisionglobal.com';
	$dirmail[] = 'yesica.mendez@ivi.es';
	$dirmail[] = 'yesica.sosa@symrise.com';
	$dirmail[] = 'YOLANDAASSAD@HOTMAIL.COM';
	$dirmail[] = 'yquiroga@laestrellaretiro.com.ar';
	$dirmail[] = 'karina.digiorgio@fidelitas.com.ar';
	$dirmail[] = 'maria.soria@fidelitas.com.ar';
	
	foreach($dirmail as $key =>$dir){
	  if(Misc::enviarMail("mails/mail_iibb",$dir,'',"Fidelitas SA - Certificado retención ingresos brutos","Adecuacion.pdf")){
		print_r ($dir."\r\n"); 
	  }
	}
}
 public static function pruebaURL() {
  //$url = 'https://seti.afip.gob.ar/padron-puc-constancia-internet/ConsultaConstanciaAction.do';
  $urls = SQLConnection::backendStoreProcedure('sp_servicios',array(),'select');
  return view('pruebas/pruebasurl')->with(compact('urls'));
 }

public static function pruebasURL() {
  //$url = 'https://seti.afip.gob.ar/padron-puc-constancia-internet/ConsultaConstanciaAction.do';
  $urls = SQLConnection::backendStoreProcedure('sp_servicios',array(),'select');
  $cuits = SQLConnection::backendStoreProcedure('sp_cuit_aleatorio',array(),'select');
  $hoja = '<table align="center" style="width:95%;font-family: Calibri,Trebuchet MS,arial,sans-serif;">';
  $hoja .='<tr style="background-color:#cccccc; font-weight: bold;"><td>Proceso</td><td>URL</td><td>Parámetros</td><td>Estado</td></tr>'; 
  foreach($urls as $url){
	if (strpos($url->parametros, 'XXXXXXXXXXX')!='0')
	{
	  foreach($cuits as $cuit){
		//$url->url = str_replace('/v1/','/lñakfalñsdkf/', $url->url);

		$param = str_replace('XXXXXXXXXXX',$cuit->cuit, $url->parametros);
		$c = substr ($cuit->cuit,0,1); 
		if ($c=='3')
		{
		$param = str_replace('TYPE','COMPANY', $param);
		$param = str_replace('TIPO','J', $param);
		}
		else 
		{
		$param = str_replace('TYPE','PERSON', $param);
		$param = str_replace('TIPO','F', $param);
		}
		$hoja .= self::CURLCall($url->nombre, $url->url,$param,$url->metodo);
	  }
	}
	else
	{
	  $hoja .= self::CURLCall($url->nombre, $url->url,$url->parametros,$url->metodo);
	}
	$hoja .= '<tr style="background-color:#cccccc;"><td colspan=4></td></tr>';
  }
  $hoja .= '</table>';
  echo $hoja; 
}


public static function pruebasURL1() {

  $url = Request::input('url');
  $parametros = Request::input('parametros');
  $id = Request::input('id');
  $nombre = Request::input('nombre');
  $metodo = Request::input('metodo');

  $hoja = '<table align="center" style="width:95%;font-family: Calibri,Trebuchet MS,arial,sans-serif;">';
  $hoja .='<tr style="background-color:#cccccc; font-weight: bold;"><td>Proceso</td><td>URL</td><td>Parámetros</td><td>Estado</td></tr>'; 
   if (strpos($parametros, 'XXXXXXXXXXX')!='0')
   {
	   $cuits = SQLConnection::backendStoreProcedure('sp_cuit_aleatorio',array(),'select');    
   }
   if (strpos($parametros, 'XXXXXXXXXXX')!='0')
	{
	  foreach($cuits as $cuit){
		$param = str_replace('XXXXXXXXXXX',$cuit->cuit, $parametros);
		$c = substr ($cuit->cuit,0,1); 
		if ($c=='3')
		{
		$param = str_replace('TYPE','COMPANY', $param);
		$param = str_replace('TIPO','J', $param);
		}
		else 
		{
		$param = str_replace('TYPE','PERSON', $param);
		$param = str_replace('TIPO','F', $param);
		}
		$hoja .= self::CURLCall($nombre, $url,$param,$metodo);
	  }
	}
	else
	{
	  $hoja .= self::CURLCall($nombre, $url,$parametros,$metodo);
	}
	$hoja .= '</table>';
	return view('pruebas/modal_pruebasurl')->with(compact('hoja'));

  }


public static function CURLCall($nombre, $url,$params,$type="POST"){
	$curl = curl_init();
	curl_setopt_array($curl, array(
	  CURLOPT_URL => $url,
	  CURLOPT_RETURNTRANSFER => true,
	  CURLOPT_VERBOSE => true,
	  CURLOPT_HEADER => true, 
	  CURLOPT_ENCODING => "",
	  CURLOPT_MAXREDIRS => 10,
	  CURLOPT_TIMEOUT => 30,
	  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
	  CURLOPT_CUSTOMREQUEST => $type,
	  CURLOPT_POSTFIELDS => $params,
	  CURLOPT_HTTPHEADER => array(
		"cache-control: no-cache",
		"content-type: application/x-www-form-urlencoded"
	  ),
	));

	$response = curl_exec($curl);
	$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
	$header = substr($response, 0, $header_size);
	$body = substr($response, $header_size);

	$err      = curl_error($curl);
	$info     = curl_getinfo($curl); 

	curl_close($curl);

	if (!empty($err) || strpos($response,' 400 ')!= 0 || strpos($response,' 404 ')!= 0 ) {
	  $hoja2 = '<tr style="color:red;"><td>'. $nombre. '</td><td>' . $url. '</td><td>'. $params. '</td><td>ERROR</td></tr>'; 
	} else {
	  $hoja2 = '<tr><td>'. $nombre. '</td><td>' . $url. '</td><td>'. $params. '</td><td>OK</td></tr>'; 
	}
	return $hoja2;
  }
  public static function verificarMongo($iden){
	if(env('SERVICIO_MONGO') != TRUE){ return false;}
	$info = DB::connection('mongodb')->collection('cendeu')->where('iden', $iden)->get();
	$borrar = 1;
	foreach ($info as $key => $value) {
	$resp = SQLConnection::backendStoreProcedure('cendeu_mongo_batch', array($value['codigo_ent'],$value['fec_inf'],$value['tipo'],$value['iden'],$value['actividad'],$value['situacion'],$value['prestamos'],$value['particip'],$value['garotor'],$value['o_cptos'],$value['garprefa'],$value['garprefb'],$value['singarpref'],$value['cgarprefa'],$value['cgarprefb'],$value['sincgarpre'],$value['previ'],$value['deuda_cubr'],$value['proc_jud'],$value['refinanc'],$value['rec_oblig'],$value['sit_juridi'],$value['irre_dispt'],$value['dia_atraso'],$value['vigente'],$value['dbf_filename']), true);
	if(isset($resp->resultado) && $resp->resultado == 0){
		$borrar = 0;
	  }
	}
	if($borrar == 1){
	  DB::connection('mongodb')->collection('cendeu')->where('iden', $iden)->delete();
	}
  }
  
  public static function verificarMonitoreosEnMongo(){
	$cuit = $_GET['cuit'];
	self::verificarMongo($cuit);
	return "se cargó correctamente";
  }
/*
  public  function generarPDFInformeCompleto(){
	$secciones_sabana ['seccion_fiscales']            = 1; 
	$secciones_sabana ['seccion_brief']               = 1; 
	$secciones_sabana ['seccion_formales']            = 1; 
	$secciones_sabana ['seccion_comerciales']         = 1; 
	$secciones_sabana ['seccion_contables']           = 1; 
	$secciones_sabana ['seccion_sociedades']          = 1; 
	$secciones_sabana ['seccion_legales']             = 1; 
	$secciones_sabana ['seccion_bancos']              = 1; 
	$secciones_sabana ['seccion_comex']               = 1; 
	$secciones_sabana ['seccion_fuentes_externas']    = 1; 
	$secciones_sabana ['seccion_sabana']              = 1; 
	$secciones_sabana ['seccion_contables_compacto']  = 1; 
	$secciones_sabana ['seccion_contables_extendido'] = 1; 
	$secciones_sabana ['incluir_homonimos_impresion'] = 1; 
	$incluye_balance = Request::input('incluye_balance') ?? 1; 
	Session::put('incluye_balance',$incluye_balance);
	$cuit = Request::input('cuit'); 
	$token_id_usuario = $this->obtenerParametrosInformeComercial();
	$html  = '';
	$html .= view('header_sabana')->render();
	$html .= self::obtenerCompacto(true,$secciones_sabana,true,$token_id_usuario);
	//$html = preg_replace("/\r\n|\r|\n|\t/",'',$html);
	return $html;
  }
*/


  	//--  CONSULTAR AFIP, ESTO VA SI O SI  --//
	public static function consultaPrivada() {
		if(isset($_GET['cuit']) && preg_match('/^[0-9]{11}$/',$_GET['cuit']) == 1) {
			echo(json_encode(AFIPController::obtenerPadronSi($_GET['cuit'])));
		} else {
			echo("Debe ingresar un valor numerico de 11 digitos.");
		}
	}

        
	public function generarPDFInformeCompleto(){
		$incluye_balance = Request::input('incluye_balance') ?? 1; 
		Session::put('incluye_balance',$incluye_balance);
		$cliente_login = Request::input('cliente_login') ?? 0; 
		Session::put('cliente_login',$cliente_login);
		$cuit = Request::input('cuit'); 
		$token_id_usuario = $this->obtenerParametrosInformeComercial();
		return view('informes/get_pdf_informes')->with(compact('cuit','incluye_balance','cliente_login','token_id_usuario'));
	}


	public static function obtenerParametrosInformeComercial(){
		//llamado en Front MainC:obtenerCompacto = $token_id_usuario
		$usuario 						= Session::get('usuario');
	 	$hora_actual				= date("h:i:s");
	 	$clientes 					= SQLConnection::obtenerCliente(ENV('ID_INFORME_COMERCIAL'),$usuario->user_id);
		$cliente_ordenado 	= [];	 	
	 	$secciones 					= LoginController::obtenerSeccionesHabilitadas($usuario->user_id);
		$secciones 					= array_change_key_case($secciones, CASE_LOWER);
	 	foreach($clientes as $cliente){
	 		$cliente_ordenado[$cliente->id_producto] = $cliente;
	 		$cliente_ordenado[$cliente->id_producto]->secciones = $secciones; 
	 	}
	 	$datos 										= new \stdClass;
	 	$datos->usuario	 					= $usuario;
	 	$datos->usuario->cliente  = $cliente_ordenado;
	 	$datos->user_id	 					= $usuario->user_id;
	 	$datos->hora_actual				= $hora_actual;
	 	$datos->usuario->sesion_externa = true; //pato 18-12-17
	 	$datos 	= Misc::encrypt(json_encode($datos));
	 	return $datos;
	}

	public static function obtenerParametrosInformeComercialTodos(){
		//llamado en Front MainC:obtenerCompacto = $token_id_usuario
		$usuario 						= Session::get('usuario');
		/* Tomamos todo del usuario sa (15342812), 
		   el producto 12 (Informe Comercial) y todas las secciones 
		   (ya que el usuario sa tiene el producto 12 y todas las secciones) */
	 	$hora_actual				= date("h:i:s");
	 	// $clientes 					= SQLConnection::obtenerCliente(ENV('ID_INFORME_COMERCIAL'),15342812);
		$clientes = SQLConnection::obtenerCliente(ENV('ID_INFORME_COMERCIAL'),0); //$usuario->user_id);
		$cliente_ordenado 	= [];	 	
	 	$secciones 					= LoginController::obtenerSeccionesHabilitadas(0); //$usuario->user_id);
		$secciones 					= array_change_key_case($secciones, CASE_LOWER);
		//
	 	foreach($clientes as $cliente){
	 		$cliente->client_id =$usuario->cliente['client_id'];
	 		$cliente_ordenado[$cliente->id_producto] = $cliente;
	 		$cliente_ordenado[$cliente->id_producto]->secciones = $secciones; 
	 	}
	 	$datos 							= new \stdClass;
	 	$datos->usuario	 				= $usuario;
	 	$datos->usuario->cliente  		= $cliente_ordenado;
	 	$datos->user_id	 				= $usuario->user_id;
	 	$datos->hora_actual				= $hora_actual;
	 	$datos->usuario->sesion_externa = true; //pato 18-12-17
	 	//$datos 										= Misc::encrypt(json_encode($datos));
	 	return $datos;
	}


	

}
