<?php namespace App\Http\Controllers;

use App\Custom\SQLConnection;
use App\Http\Controllers\MainController;
use App\Http\Controllers\AFIPController;
use App\Http\Controllers\RenaperController;
use App\Custom\Misc;
use Request;
use Session;
use stdClass;
use DateTime;
use DB;
use LynX39\LaraPdfMerger\PdfManage;

class ApiControllerIC extends Controller {
public static $MainController;
/* BRIEF */ 
/*----------------------------------------------------------------------------------------------------------------------*/
/* Seccion Formales */
/*----------------------------------------------------------------------------------------------------------------------*/

	public static function ICFormales($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}	
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}

		if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$fisica_juridica = Misc::tipoPersona($cuit); 
		$persona_fisica = ($fisica_juridica == 'F') ? true : false;

		$persona            = new stdClass();
		$sociedades         = new stdClass();
		$empleado_de        = [];
		$empleados          = [];
		$defuncion          = [];
		$usuario            = Session::get('usuario');
		$cliente            = $usuario->cliente['client_id'];     
		$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;
				}
			}
		}
	
	  $datos  = new stdClass();
	  if( $idioma == 'SPA' ){
			$datos->formales  = new stdClass();
			$datos->formales->identificacion    = $cuit;
			$datos->formales->razon_social      = $razon_social;
			$datos->formales->tipo_persona      = $fisica_juridica;
			$datos->formales->persona_fisica    = new stdClass();
			$datos->formales->persona_juridica  = new stdClass();
	  } elseif( $idioma == 'ENG' ){
			$datos->formaldata  = new stdClass();
			$datos->formaldata->taxid      = $cuit;
			$datos->formaldata->legal_name = $razon_social;
			$datos->formaldata->legal_type = $fisica_juridica;
			$datos->formaldata->person     = new stdClass();
			$datos->formaldata->company    = new stdClass();
	  }

	  if($fisica_juridica == 'F'){
	  /* Persona Fisica */
			if( $idioma == 'SPA' ){
				$datos->formales->persona_fisica->dni               = $persona->cuerpo_clave ?? '';
				$datos->formales->persona_fisica->sexo              = $persona->sexo ?? '';
				$datos->formales->persona_fisica->fecha_nacimiento  = $persona->fecha_nacimiento ?? '';
				$datos->formales->persona_fisica->anio_nacimiento   = $persona->anio_nacimiento ?? '';
				$datos->formales->persona_fisica->pais_nacimiento   = $persona->pais_nacimiento ?? '';
				$datos->formales->persona_fisica->defuncion         = new stdClass();
			} elseif( $idioma == 'ENG' ){
				$datos->formaldata->person->national_id             = $persona->cuerpo_clave ?? '';
				$datos->formaldata->person->gender                  = $persona->sexo ?? '';;
				$datos->formaldata->person->DOB                     = $persona->fecha_nacimiento ?? '';
				$datos->formaldata->person->YOB                     = $persona->anio_nacimiento ?? '';;
				$datos->formaldata->person->country_birth           = $persona->pais_nacimiento ?? '';
				$datos->formaldata->person->death_info              = new stdClass();
			}

			$edad = ''; 
			if(!empty($persona->fecha_nacimiento)){
			  $edad = Misc::calcularEdad($persona->fecha_nacimiento);
			}
			if($edad){
				if( $idioma == 'SPA' ){
					$datos->formales->persona_fisica->edad = empty($defuncion->fecha_deceso) ? ($edad ?? '') : '';
				} elseif( $idioma == 'ENG' ){
					$datos->formaldata->person->age = empty($defuncion->fecha_deceso) ? ($edad ?? '') : '';
				}
			}
			$employee_of = [];
			foreach ($empleado_de as $key => $value) {
				if( $idioma == 'ENG' ){
					$employee_of[$key]->employer_taxid = $value->cuit_empleador;
					$employee_of[$key]->employer_name = $value->nombre_empleador;
					$employee_of[$key]->period = $value->periodo;
				}
				unset($empleado_de[$key]->ultimo_periodo_procesado);
			}

			if( $idioma == 'SPA' ){
				$datos->formales->persona_fisica->empleado_de       = $empleado_de;
				//$datos->formales->persona_fisica->profesion         = $persona->profesion ?? '';
				$datos->formales->persona_fisica->estado_civil      = $persona->estado_civil ?? ''; 

				$datos->formales->persona_fisica->defuncion->fuente       = !empty($defuncion->fecha_deceso) ? ($defuncion->fuente ?? '') : '' ;
				$datos->formales->persona_fisica->defuncion->fecha_deceso = $defuncion->fecha_deceso ?? '';
				$datos->formales->persona_fisica->defuncion->comentario   = !empty($defuncion->fecha_deceso) ? 'Se ha detectado una persona con mismo nombre y documento informada como fallecida en fecha ' .  $defuncion->fecha_deceso . ' (Fuente AFIP). Recomendamos verificar la existencia de homónimos o posibles errores en la fuente de datos.' : '';
			} elseif( $idioma == 'ENG' ){
				$datos->formaldata->person->employee_of         = $employee_of;
				//$datos->formaldata->person->profession          = $persona->profesion ?? '';
				$datos->formaldata->person->marital_status      = $persona->estado_civil ?? '';

				$datos->formaldata->person->death_info->source  = !empty($defuncion->fecha_deceso) ? ($defuncion->fuente ?? '') : '' ;
				$datos->formaldata->person->death_info->DOD     = $defuncion->fecha_deceso ?? '';

				$datos->formaldata->person->death_info->comment =  !empty($defuncion->fecha_deceso) ? 'We have detected a person with the same name and document reported as deceased on date ' . $defuncion->fecha_deceso . '  (Font AFIP). We recommend verifying the existence of homonyms or possible errors in the data source.' : '';
			}

	  }else{

	  /* Persona Juridica */

		if(isset($empleados->total)){
			if( $idioma == 'SPA' ){
				$empleados->total_aproximado_empleados = (int)$empleados->total;
			} elseif( $idioma == 'ENG' ){
				$empleados->approx_total_employees = (int)$empleados->total;
			}
			unset($empleados->cantidad_mujeres);
			unset($empleados->cantidad_hombres);
			unset($empleados->total);
			unset($empleados->fecha);
		}
		if( $idioma == 'SPA' ){
			$datos->formales->persona_juridica->empleados = $empleados;
		} elseif( $idioma == 'ENG' ){
			$datos->formaldata->company->employees = $empleados;
		}
		
		$nombres_anteriores_1 = []; 

		if( $idioma == 'SPA' ){
				$datos->formales->persona_juridica->forma_juridica 		    = $sociedades->tipo_sociedad ?? ''; 
				$datos->formales->persona_juridica->ramo 					= $sociedades->ramo ?? ''; 
				$datos->formales->persona_juridica->subramo 			    = $sociedades->subramo ?? ''; 
				$datos->formales->persona_juridica->capital 			    = (int)$sociedades->capital ?? ''; 
				if(isset($inscripciones->fecha_inscripcion) && $inscripciones->fecha_inscripcion != '01/01/1901' && $inscripciones->fecha_inscripcion !='')
				{
					$datos->formales->persona_juridica->fecha_inscripcion = $inscripciones->fecha_inscripcion ?? ''; 
				}
				else 
				{
					$datos->formales->persona_juridica->fecha_inscripcion = '';
				}

				if(isset($inscripciones->fecha_contrato_social) && $inscripciones->fecha_contrato_social !='' && $inscripciones->fecha_contrato_social != '01/01/1901' )
				{
					$datos->formales->persona_juridica->fecha_contrato_social = $inscripciones->fecha_contrato_social ?? ''; 
				}
				else 
				{
					$datos->formales->persona_juridica->fecha_contrato_social = '';
				}
				foreach ($nombres_anteriores as $key => $value) {
					$nombres_anteriores_1[$key] = new StdClass(); 
					if( $idioma == 'SPA' ){ 
						$nombres_anteriores_1[$key]->nombre = $value->nombre; 
					} elseif( $idioma == 'ENG' ){
						$nombres_anteriores_1[$key]->name   = $value->nombre; 
					}
				}
				$datos->formales->persona_juridica->nombres_anteriores = $nombres_anteriores_1; 

		} elseif( $idioma == 'ENG' ){
			
				$datos->formaldata->company->legal_form 			= $sociedades->tipo_sociedad ?? ''; 
				$datos->formaldata->company->business_line			= $sociedades->ramo ?? ''; 
				$datos->formaldata->company->business_subline       = $sociedades->subramo ?? ''; 
				$datos->formaldata->company->capital 			    = (int)$sociedades->capital ?? '';  

				if(isset($inscripciones->fecha_inscripcion) && $inscripciones->fecha_inscripcion != '01/01/1901' && $inscripciones->fecha_inscripcion !='')
				{
					$datos->formaldata->company->registration_date = $inscripciones->fecha_inscripcion ?? ''; 
				}
				else 
				{
					$datos->formaldata->company->registration_date = '';
				}
				if(isset($inscripciones->fecha_contrato_social) && $inscripciones->fecha_contrato_social !='' && $inscripciones->fecha_contrato_social != '01/01/1901' )
				{
					$datos->formaldata->company->social_contract_date = $inscripciones->fecha_inscripcion ?? ''; 
				}
				else 
				{
					$datos->formaldata->company->fecha_contrato_social = '';
				}
				foreach ($nombres_anteriores as $key => $value) {
					$nombres_anteriores_1[$key] = new StdClass(); 
					$nombres_anteriores_1[$key]->name = $value->nombre; 
				}
				$datos->formaldata->company->previous_names = $nombres_anteriores_1; 
		}
	  }

/* Persona Física y Jurídica */
		$claes = [];
		$claes_info = SQLConnection::obtenerClae($cuit);
		if( $idioma == 'SPA' ){
			foreach ($claes_info as $key => $value) {
				$claes[$key] 				= new stdClass();
				$claes[$key]->cod_clae 		= $value->cod_clae ?? ''; 
				$claes[$key]->descripcion 	= $value->descripcion ?? ''; 
			}
			$datos->formales->actividad = $claes;
		} elseif( $idioma == 'ENG' ){
			foreach ($claes_info as $key => $value) {
				$claes[$key] 				= new stdClass();
				$claes[$key]->clae_code 	= $value->cod_clae ?? ''; 
				$claes[$key]->description 	= $value->descripcion ?? ''; 
			}
			$datos->formaldata->economic_activity = $claes;
		} 

	  	$telefonos = [];
		$telefonos = SQLConnection::backendStoreProcedure('obtener_telefono', array($id_padron));
	  	$telefono = [];
		if( $idioma == 'SPA' )
		{
			foreach ($telefonos as $key => $value) {
				$telefono[] = new StdClass(); 
				$telefono[$key]->numero_telefono  = $value->telefono ?? '';
				$telefono[$key]->tipo  = $value->tipo ?? '';
			}
			$datos->formales->telefonos = $telefono;
		} elseif( $idioma == 'ENG' )
		{
			foreach ($telefonos as $key => $value) {
				$telefono[] = new StdClass(); 
				$telefono[$key]->phone_number  = $value->telefono ?? '';
				$telefono[$key]->type  = $value->tipo ?? '';
			}
			$datos->formaldata->phone  = $telefono;
		}

		$domicilios_formales = SQLConnection::obtenerDomicilios($cuit);
		$domicilio           = [];
		$domicilio_fiscal    = [];
		$domicilio_legal     = [];
		$otros_domicilios    = [];
		$otros = 0;
		foreach($domicilios_formales as $formal) {
			/* Domicilio Legal */
			if(strpos($formal->tipo_domicilio, 'L') !== false){
				if (!empty($domicilio_legal))
				{
					if (strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'F') === false){
						$otros_domicilios[$otros] = new StdClass(); 
						if( $idioma == 'SPA' ){
							$otros_domicilios[$otros]->domicilio  = $formal->domicilio ?? '';
							$otros_domicilios[$otros]->codPos     = $formal->codpos  ?? '';
							$otros_domicilios[$otros]->Localidad  = $formal->loc_nombre  ?? '';
							$otros_domicilios[$otros]->Provincia  = $formal->prv_nombre  ?? '';
							$otros_domicilios[$otros]->Pais       = $formal->pai_nombre  ?? '';
						} 
						elseif( $idioma == 'ENG' ){		
							$otros_domicilios[$otros]->address  = $formal->domicilio ?? '';
							$otros_domicilios[$otros]->zip_code = $formal->codpos ?? '';
							$otros_domicilios[$otros]->city     = $formal->loc_nombre ?? '';
							$otros_domicilios[$otros]->state    = $formal->prv_nombre ?? '';
							$otros_domicilios[$otros]->country  = $formal->pai_nombre ?? '';
						}

						$otros += 1; 
						}
				}
				else {
						$domicilio_legal[0] = new StdClass(); 
						if( $idioma == 'SPA' ){
							$domicilio_legal[0]->domicilio  = $formal->domicilio ?? '';
							$domicilio_legal[0]->CodPos    	= $formal->codpos ?? '';
							$domicilio_legal[0]->Localidad  = $formal->loc_nombre ?? '';
							$domicilio_legal[0]->Provincia  = $formal->prv_nombre ?? '';
							$domicilio_legal[0]->Pais       = $formal->pai_nombre ?? '';
						} 
						elseif( $idioma == 'ENG' ){		
							$domicilio_legal[0]->address  = $formal->domicilio ?? '';
							$domicilio_legal[0]->zip_code = $formal->codpos ?? '';
							$domicilio_legal[0]->city     = $formal->loc_nombre ?? '';
							$domicilio_legal[0]->state    = $formal->prv_nombre ?? '';
							$domicilio_legal[0]->country  = $formal->pai_nombre ?? '';
						}

				}
			}
			/* Domicilio Fiscal */
			if(strpos($formal->tipo_domicilio, 'F') !== false){
				if (!empty($domicilio_fiscal))
					{
					if (strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'L') === false){
						if( $idioma == 'SPA' ){
							$otros_domicilios[$otros]->domicilio  = $formal->domicilio ?? '';
							$otros_domicilios[$otros]->codPos     = $formal->codpos  ?? '';
							$otros_domicilios[$otros]->Localidad  = $formal->loc_nombre  ?? '';
							$otros_domicilios[$otros]->Provincia  = $formal->prv_nombre  ?? '';
							$otros_domicilios[$otros]->Pais       = $formal->pai_nombre  ?? '';
						} 
						elseif( $idioma == 'ENG' ){		
							$otros_domicilios[$otros]->address  = $formal->domicilio ?? '';
							$otros_domicilios[$otros]->zip_code = $formal->codpos ?? '';
							$otros_domicilios[$otros]->city     = $formal->loc_nombre ?? '';
							$otros_domicilios[$otros]->state    = $formal->prv_nombre ?? '';
							$otros_domicilios[$otros]->country  = $formal->pai_nombre ?? '';
						}
						$otros += 1; 
						}
				} else {
						$domicilio_fiscal[0] = new StdClass(); 
						if( $idioma == 'SPA' ){
							$domicilio_fiscal[0]->domicilio  = $formal->domicilio ?? '';
							$domicilio_fiscal[0]->codPos    	= $formal->codpos ?? '';
							$domicilio_fiscal[0]->localidad  = $formal->loc_nombre ?? '';
							$domicilio_fiscal[0]->provincia  = $formal->prv_nombre ?? '';
							$domicilio_fiscal[0]->pais       = $formal->pai_nombre ?? '';
						} 
						elseif( $idioma == 'ENG' ){		
							$domicilio_fiscal[0]->address  = $formal->domicilio ?? '';
							$domicilio_fiscal[0]->zip_code = $formal->codpos ?? '';
							$domicilio_fiscal[0]->city     = $formal->loc_nombre ?? '';
							$domicilio_fiscal[0]->state    = $formal->prv_nombre ?? '';
							$domicilio_fiscal[0]->country  = $formal->pai_nombre ?? '';
						}
				}
			}

			/* Domicilio Principal */ 
			if(strpos($formal->tipo_domicilio, 'D') !== false || strpos($formal->tipo_domicilio, 'E') !== false){
				if (!empty($domicilio))
				{
					if (strpos($formal->tipo_domicilio, 'F') === false && strpos($formal->tipo_domicilio, 'L') === false){
						$otros_domicilios[$otros] = new StdClass(); 
						if( $idioma == 'SPA' ){
							$otros_domicilios[$otros]->domicilio  = $formal->domicilio ?? '';
							$otros_domicilios[$otros]->codPos     = $formal->codpos ?? '';
							$otros_domicilios[$otros]->localidad  = $formal->loc_nombre ?? '';
							$otros_domicilios[$otros]->provincia  = $formal->prv_nombre ?? '';
							$otros_domicilios[$otros]->pais       = $formal->pai_nombre ?? '';
						} 
						elseif( $idioma == 'ENG' ){		
							$otros_domicilios[$otros]->address  = $formal->domicilio ?? '';
							$otros_domicilios[$otros]->zip_code = $formal->codpos ?? '';
							$otros_domicilios[$otros]->city     = $formal->loc_nombre ?? '';
							$otros_domicilios[$otros]->state    = $formal->prv_nombre ?? '';
							$otros_domicilios[$otros]->country  = $formal->pai_nombre ?? '';
						}
						$otros += 1; 
					}
				} else {
						$domicilio[0] = new StdClass(); 
						if( $idioma == 'SPA' ){
							$domicilio[0]->domicilio  = $formal->domicilio ?? '';
							$domicilio[0]->codPos     = $formal->codpos ?? '';
							$domicilio[0]->localidad  = $formal->loc_nombre ?? '';
							$domicilio[0]->provincia  = $formal->prv_nombre ?? '';
							$domicilio[0]->pais       = $formal->pai_nombre ?? '';
						} 
						elseif( $idioma == 'ENG' ){		
							$domicilio[0]->address  = $formal->domicilio ?? '';
							$domicilio[0]->zip_code = $formal->codpos ?? '';
							$domicilio[0]->city     = $formal->loc_nombre ?? '';
							$domicilio[0]->state    = $formal->prv_nombre ?? '';
							$domicilio[0]->country  = $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){
						$otros_domicilios[$otros] = new StdClass(); 
						if( $idioma == 'SPA' ){
							$otros_domicilios[$otros]->domicilio  = $formal->domicilio ?? '';
							$otros_domicilios[$otros]->codPos     = $formal->codpos  ?? '';
							$otros_domicilios[$otros]->Localidad  = $formal->loc_nombre  ?? '';
							$otros_domicilios[$otros]->Provincia  = $formal->prv_nombre  ?? '';
							$otros_domicilios[$otros]->Pais       = $formal->pai_nombre  ?? '';
						} 
						elseif( $idioma == 'ENG' ){		
							$otros_domicilios[$otros]->address  = $formal->domicilio ?? '';
							$otros_domicilios[$otros]->zip_code = $formal->codpos ?? '';
							$otros_domicilios[$otros]->city     = $formal->loc_nombre ?? '';
							$otros_domicilios[$otros]->state    = $formal->prv_nombre ?? '';
							$otros_domicilios[$otros]->country  = $formal->pai_nombre ?? '';
						}
						$otros += 1; 
			}
		}

		if (empty($domicilio)){
			$domicilio[0] = $domicilio_fiscal[0];
		}

		if( $idioma == 'SPA' ){
			$datos->formales->domicilio_fiscal = $domicilio_fiscal;
			$datos->formales->domicilio_legal = $domicilio_legal;
			$datos->formales->domicilio = $domicilio;
			$datos->formales->otros_domicilios = $otros_domicilios;
		} 
		elseif( $idioma == 'ENG' ){
			$datos->formaldata->fiscal_address = $domicilio_fiscal;
			$datos->formaldata->legal_address = $domicilio_legal;
			$datos->formaldata->address = $domicilio;
			$datos->formaldata->other_address = $otros_domicilios;
		}
	  
		return json_encode($datos);
	}

/*----------------------------------------------------------------------------------------------------------------------*/
/* Seccion Balances */
/*----------------------------------------------------------------------------------------------------------------------*/

	public static function ICBalances($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}	
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}

		if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}

		$balances = [];
		$balances = SQLConnection::backendStoreProcedure('api_obtener_balances', array($cuit));
		foreach ($balances as $key => $value) {
			unset($balances[$key]->cuit);
			unset($balances[$key]->id_balance);
			$balances[$key]->bal_manifestacion = ($value->bal_manifestacion == 'M') ? 'Manifestacion de bienes' : 'Balance'; 
		}
		
		// FALTA TARDUCIR
		// FALTA VER SI SE MUESTRAN TODOS LOS CAMPOS Y CON LOS NOMBRES QUE VIENEN

		if( $idioma == 'SPA' ){
			$persona->balances = [];
			$persona->balances  = $balances;
		} elseif( $idioma == 'ENG' ){
			// FALTA TRADUCIR
			$persona->balance_sheets = [];
			$persona->balance_sheets  = $balances;
		}

		return json_encode($persona);

	}

/*----------------------------------------------------------------------------------------------------------------------*/
/* Seccion Malla Societaria */
/*----------------------------------------------------------------------------------------------------------------------*/

	public static function ICMapaRelaciones($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
	
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
		if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion = $cuit;
			$persona->razon_social   = $razon_social;
			$persona->cometario      = 'Las vinculaciones en el gráfico pueden no ser las últimas. Verifique posibles cambios recientes en los Boletines Oficiales.';
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
			// FALTA TRADUCIR
			$persona->cometario      = 'Las vinculaciones en el gráfico pueden no ser las últimas. Verifique posibles cambios recientes en los Boletines Oficiales.';

		}
		$fisica_juridica   = Misc::tipoPersona($cuit); 
		$malla_societaria  = [];
		$malla_societaria  = SQLConnection::grafoSociedades($cuit,$fisica_juridica);

		// Ordenamos por seccion
		$aux = [];
		foreach ($malla_societaria as $key => $row) {
		    $aux[$key] = $row->seccion;
		}
		array_multisort($aux, SORT_ASC, $malla_societaria);
		
		$malla = [];
		foreach ($malla_societaria as $key => $row) 
		 {
		 	$malla[$key] = new StdClass();
		 	if( $idioma == 'SPA' ){
	            $malla[$key]->CentroGrafo = $row->CentroGrafo;
	            $malla[$key]->IDCentroGrafo = $row->IDCentroGrafo;
	            $malla[$key]->seccion = $row->seccion;
	            $malla[$key]->idNodoGrafo = $row->idNodoGrafo;
	            $malla[$key]->cuit = $row->cuit;
	            $malla[$key]->razon_social = $row->nombre_persona;
	            $malla[$key]->score = $row->score ?? '';
	            $malla[$key]->score_color = $row->score_color ?? '';
	        } elseif( $idioma == 'ENG' ){
	        	$malla[$key]->CentroGrafo = $row->CentroGrafo;
	            $malla[$key]->IDCentroGrafo = $row->IDCentroGrafo;
	            $malla[$key]->section = $row->seccion;
	            $malla[$key]->idNodoGrafo = $row->idNodoGrafo;
	            $malla[$key]->taxid = $row->cuit;
	            $malla[$key]->legal_name = $row->nombre_persona;
	            $malla[$key]->score = $row->score ?? '';
	            $malla[$key]->score_color = $row->score_color ?? '';
	        }
        }

		if( $idioma == 'SPA' ){
			$persona->mapa_relaciones = [];
			$persona->mapa_relaciones  = $malla;
		} elseif( $idioma == 'ENG' ){
			$persona->relationship_map = [];
			$persona->relationship_map  = $malla;
		}

		return json_encode($persona);


	}


	/* Seccion Relaciones */
	public static function ICRelaciones($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
			if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
		if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}

		$participaciones  = [];

		if( $idioma == 'SPA' ){
			$persona->relaciones = new stdClass();
			$persona->relaciones->accionistas     = [];
			$persona->relaciones->accionista_de   = [];
			$persona->relaciones->socio_director_de = [];
			$persona->relaciones->socios_directores = [];
			$persona->relaciones->participaciones = [];
			$persona->relaciones->vinculaciones   = [];
			$persona->relaciones->vinculaciones_indirectas   = [];
			$persona->relaciones->nombres_anteriores = new stdClass();
		} elseif( $idioma == 'ENG' ){
			$persona->corporate_realationships = new stdClass();
			$persona->corporate_realationships->shareholders    = [];
			$persona->corporate_realationships->shareholder_of = [];
			$persona->corporate_realationships->partner_of = [];
			$persona->corporate_realationships->partners = [];
			$persona->corporate_realationships->shareholding_activity = [];
			$persona->corporate_realationships->linkages = [];
			$persona->corporate_realationships->indirect_linkages = [];
			$persona->corporate_realationships->previous_names = new stdClass();

		}

		$accionista_de = [];
		$accionistas   = [];
		$nombres_anteriores      = [];
		$nombres_anteriores_1   = [];
		$fisica_juridica    = Misc::tipoPersona($cuit);
		if($fisica_juridica == 'F'){
			$accionista_de      = SQLConnection::obtenerAccionistasDe($cuit);
		}else{
		  	$nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
		  	foreach ($nombres_anteriores as $key => $value) {
					$nombres_anteriores_1[$key] = new StdClass();
					if( $idioma == 'SPA' ){ 
						$nombres_anteriores_1[$key]->nombre = $value->nombre; 
					} elseif( $idioma == 'ENG' ){
						$nombres_anteriores_1[$key]->name = $value->nombre; 
					}
			}
			$accionistas = SQLConnection::obtenerAccionistasNew($cuit);
		}

		$edictos_homonimos = [];
		$edictos           = SQLConnection::obtenerEdictos($cuit);
		$socios_directores = [];
		$socios_directores = SQLConnection::obtenerSociosDirectores($cuit,$fisica_juridica);
		$participaciones   = [];
		$participaciones   = SQLConnection::obtenerParticipacionSociosDirectores($cuit);
		$vinculaciones     = [];
		$vinculaciones     = SQLConnection::obtenerVinculaciones($cuit);
		$vinculaciones_indirectas = [];
	    $vinculaciones_indirectas = SQLConnection::obtenerVinculacionesIndirectas($cuit);

		if( $idioma == 'SPA' ){
			foreach($participaciones as $key => $value){
			  $persona->relaciones->participaciones[$key] = new stdClass();
			  $persona->relaciones->participaciones[$key]->razon_social_sociedad  = $value->nombre_sociedad ?? '';
			  $persona->relaciones->participaciones[$key]->cuit_sociedad          = $value->cuit_sociedad ?? '';
			  $persona->relaciones->participaciones[$key]->cuit_socio             = $value->cuit_socio ?? '';
			  $persona->relaciones->participaciones[$key]->nombre_socio           = $value->nombre_socio ?? '';
			  $persona->relaciones->participaciones[$key]->cargo                  = $value->cargo ?? '';
			}
  			if ($fisica_juridica == 'F')
  			{
				foreach($socios_directores as $key => $value){
				  $persona->relaciones->socio_director_de[$key] = new stdClass();
				  $persona->relaciones->socio_director_de[$key]->identificador   = $value->identificador ?? 'C.U.I.T';
				  $persona->relaciones->socio_director_de[$key]->identificacion  = $value->cuit ?? '';
				  $persona->relaciones->socio_director_de[$key]->razon_social    = $value->nombre_persona ?? '';
				  $persona->relaciones->socio_director_de[$key]->cargo           = $value->car_nombre ?? '';
				  $persona->relaciones->socio_director_de[$key]->desde           = $value->c04_periodo_desde ?? '';
				  $persona->relaciones->socio_director_de[$key]->hasta           = $value->c04_periodo_hasta ?? '';
				  $persona->relaciones->socio_director_de[$key]->fecha_inicio_actividad    = $value->fecha_cons ?? '';
				  $persona->relaciones->socio_director_de[$key]->fecha_ins_rpc           = $value->fecha_ins_rpc ?? '';
				  $persona->relaciones->socio_director_de[$key]->actividad           = $value->actividad ?? '';
				} 
  			}
  			else
  			{
  				foreach($socios_directores as $key => $value){
				  $persona->relaciones->socios_directores[$key] = new stdClass();
				  $persona->relaciones->socios_directores[$key]->identificador   = $value->identificador ?? 'C.U.I.T';
				  $persona->relaciones->socios_directores[$key]->identificacion  = $value->cuit ?? '';
				  $persona->relaciones->socios_directores[$key]->nombre          = $value->nombre_persona ?? '';
				  $persona->relaciones->socios_directores[$key]->cargo           = $value->car_nombre ?? '';
				  $persona->relaciones->socios_directores[$key]->desde           = $value->c04_periodo_desde ?? '';
				  $persona->relaciones->socios_directores[$key]->hasta           = $value->c04_periodo_hasta ?? '';
				  $persona->relaciones->socios_directores[$key]->tipo_documento  = $value->tipo_doc1 ?? '';
				  $persona->relaciones->socios_directores[$key]->nro_documento   = $value->nrodoc_1 ?? '';
				  $persona->relaciones->socios_directores[$key]->fecha_nacimiento= $value->fecha_nac ?? '';
				  $persona->relaciones->socios_directores[$key]->profesion       = str_replace("\r", '', $value->profesion) ?? '';
				} 
  			}

			foreach($accionista_de as $key => $value){
				  $persona->relaciones->accionista_de[$key] = new stdClass();
				  $persona->relaciones->accionista_de[$key]->identificador   = $value->identificador ?? 'C.U.I.T';
				  $persona->relaciones->accionista_de[$key]->identificacion  = $value->cuit ?? '';
				  $persona->relaciones->accionista_de[$key]->razon_social    = $value->nombre_persona ?? '';
				  $persona->relaciones->accionista_de[$key]->cant_acciones   = $value->cant_acciones ?? '';
				  $persona->relaciones->accionista_de[$key]->monto           = $value->monto ?? '';
				  $persona->relaciones->accionista_de[$key]->porcentaje      = $value->porcentaje ?? '';
				  $persona->relaciones->accionista_de[$key]->desde           = $value->fecha_actilizacion ?? '';
				} 
		
			foreach($accionistas as $key => $value){
				  $persona->relaciones->accionistas[$key] = new stdClass();
				  $persona->relaciones->accionistas[$key]->identificador   = $value->identificador ?? 'C.U.I.T';
				  $persona->relaciones->accionistas[$key]->identificacion  = $value->cuit_acc ?? '';
				  $persona->relaciones->accionistas[$key]->nombre          = $value->nombre_persona ?? '';
  				  $persona->relaciones->accionistas[$key]->cant_acciones   = $value->cant_acciones ?? '';
				  $persona->relaciones->accionistas[$key]->monto           = $value->monto ?? '';
				  $persona->relaciones->accionistas[$key]->porcentaje      = $value->porcentaje ?? '';
				  $persona->relaciones->accionistas[$key]->desde           = $value->fecha_actilizacion ?? '';
				  $persona->relaciones->accionistas[$key]->tipo_documento  = $value->tipo_doc1 ?? '';
				  $persona->relaciones->accionistas[$key]->nro_documento   = $value->nrodoc_1 ?? '';
				  $persona->relaciones->accionistas[$key]->fecha_nacimiento= $value->fecha_nac ?? '';
				  $persona->relaciones->accionistas[$key]->profesion       = str_replace("\r", '', $value->profesion) ?? '';
				} 
		
			foreach($vinculaciones as $key => $value){
			  $persona->relaciones->vinculaciones[$key] = new stdClass();
			  $persona->relaciones->vinculaciones[$key]->cuit            = $value->cuit_vinculada ?? '';
			  $persona->relaciones->vinculaciones[$key]->nombre_persona  = $value->nombre_persona ?? '';
			  $persona->relaciones->vinculaciones[$key]->desde            = $value->desde ?? '';
			  $persona->relaciones->vinculaciones[$key]->hasta            = $value->hasta ?? '';
			  $persona->relaciones->vinculaciones[$key]->detalle         = $value->detalle ?? '';
			}

			foreach($vinculaciones_indirectas as $key => $value){
			  $persona->relaciones->vinculaciones_indirectas[$key] = new stdClass();
			  $persona->relaciones->vinculaciones_indirectas[$key]->cuit            = $value->cuit_vinculada ?? '';
			  $persona->relaciones->vinculaciones_indirectas[$key]->nombre_persona  = $value->nombre_persona ?? '';
			  /*$persona->relaciones->vinculaciones_indirectas[$key]->tipo            = $value->nombre ?? '';
			  $persona->relaciones->vinculaciones_indirectas[$key]->detalle         = $value->detalle ?? '';*/
			}

			$persona->relaciones->nombres_anteriores = $nombres_anteriores_1;

		} elseif( $idioma == 'ENG' ){

			foreach($participaciones as $key => $value){
			  $persona->corporate_realationships->shareholding_activity[$key] = new stdClass();
			  $persona->corporate_realationships->shareholding_activity[$key]->legal_name = $value->nombre_sociedad ?? '';
			  $persona->corporate_realationships->shareholding_activity[$key]->taxid = $value->cuit_sociedad ?? '';
			  $persona->corporate_realationships->shareholding_activity[$key]->taxid_sharheolder = $value->cuit_socio ?? '';
			  $persona->corporate_realationships->shareholding_activity[$key]->legal_name_shareholder = $value->nombre_socio ?? '';
			  $persona->corporate_realationships->shareholding_activity[$key]->role = $value->cargo ?? '';
			}
  			if ($fisica_juridica == 'F')
  			{
				foreach($socios_directores as $key => $value){
				  $persona->corporate_realationships->partner_of[$key] = new stdClass();
				  $persona->corporate_realationships->partner_of[$key]->identifier    = $value->identificador ?? 'C.U.I.T';
				  $persona->corporate_realationships->partner_of[$key]->taxid         = $value->cuit ?? '';
				  $persona->corporate_realationships->partner_of[$key]->legal_name    = $value->nombre_persona ?? '';
				  $persona->corporate_realationships->partner_of[$key]->position      = $value->car_nombre ?? '';
				  $persona->corporate_realationships->partner_of[$key]->from_date     = $value->c04_periodo_desde ?? '';
				  $persona->corporate_realationships->partner_of[$key]->to_date       = $value->c04_periodo_hasta ?? '';
				  $persona->corporate_realationships->partner_of[$key]->start_date    = $value->fecha_cons ?? '';
				  $persona->corporate_realationships->partner_of[$key]->ins_rpc_date  = $value->fecha_ins_rpc ?? '';
				  $persona->corporate_realationships->partner_of[$key]->activity      = $value->actividad ?? '';
				} 
  			}
  			else
  			{
				foreach($socios_directores as $key => $value){
				  $persona->corporate_realationships->partners[$key]              = new stdClass();
				  $persona->corporate_realationships->partners[$key]->identifier  = $value->identificador ?? 'C.U.I.T';
				  $persona->corporate_realationships->partners[$key]->taxid       = $value->cuit ?? '';
				  $persona->corporate_realationships->partners[$key]->name        = $value->nombre_persona ?? '';
				  $persona->corporate_realationships->partners[$key]->position    = $value->car_nombre ?? '';
				  $persona->corporate_realationships->partners[$key]->from_date   = $value->c04_periodo_desde ?? '';
				  $persona->corporate_realationships->partners[$key]->to_date     = $value->c04_periodo_hasta ?? '';
				  $persona->corporate_realationships->partners[$key]->id_type     = $value->tipo_doc1 ?? '';
				  $persona->corporate_realationships->partners[$key]->id_number   = $value->nrodoc_1 ?? '';
				  $persona->corporate_realationships->partners[$key]->DOB         = $value->fecha_nac ?? '';
				  $persona->corporate_realationships->partners[$key]->profession  = $value->profesion ?? '';
				} 
			} 


			foreach($accionista_de as $key => $value){
				  $persona->corporate_realationships->shareholder_of[$key] = new stdClass();
				  $persona->corporate_realationships->shareholder_of[$key]->identifier       = $value->identificador ?? 'C.U.I.T';
				  $persona->corporate_realationships->shareholder_of[$key]->taxid            = $value->cuit ?? '';
				  $persona->corporate_realationships->shareholder_of[$key]->legal_name       = $value->nombre_persona ?? '';
				  $persona->corporate_realationships->shareholder_of[$key]->number_of_shares = $value->cant_acciones ?? '';
				  $persona->corporate_realationships->shareholder_of[$key]->amount           = $value->monto ?? '';
				  $persona->corporate_realationships->shareholder_of[$key]->percentage       = $value->porcentaje ?? '';
				  $persona->corporate_realationships->shareholder_of[$key]->from_date  	     = $value->fecha_actilizacion ?? '';

				} 
		
			foreach($accionistas as $key => $value){
				  $persona->corporate_realationships->shareholders[$key] = new stdClass();
				  $persona->corporate_realationships->shareholders[$key]->identifier       = $value->identificador ?? 'C.U.I.T';
				  $persona->corporate_realationships->shareholders[$key]->taxid            = $value->cuit_acc ?? '';
				  $persona->corporate_realationships->shareholders[$key]->name             = $value->nombre_persona ?? '';
  				  $persona->corporate_realationships->shareholders[$key]->number_of_shares = $value->cant_acciones ?? '';
				  $persona->corporate_realationships->shareholders[$key]->amount           = $value->monto ?? '';
				  $persona->corporate_realationships->shareholders[$key]->percentage       = $value->porcentaje ?? '';
				  $persona->corporate_realationships->shareholders[$key]->from_date  	   = $value->fecha_actilizacion ?? '';
				  $persona->corporate_realationships->shareholders[$key]->id_type          = $value->tipo_doc1 ?? '';
				  $persona->corporate_realationships->shareholders[$key]->id_number        = $value->nrodoc_1 ?? '';
				  $persona->corporate_realationships->shareholders[$key]->DOB              = $value->fecha_nac ?? '';
				  $persona->corporate_realationships->shareholders[$key]->profession       = str_replace("\r", '', $value->profesion) ?? '';
				} 


		
			foreach($vinculaciones as $key => $value){
			  $persona->corporate_realationships->linkages[$key]              = new stdClass();
			  $persona->corporate_realationships->linkages[$key]->tax_id      = $value->cuit_vinculada ?? '';
			  $persona->corporate_realationships->linkages[$key]->legal_name  = $value->nombre_persona ?? '';
			  $persona->corporate_realationships->linkages[$key]->from_date   = $value->desde ?? '';
			  $persona->corporate_realationships->linkages[$key]->to_date     = $value->hasta ?? '';
			  $persona->corporate_realationships->linkages[$key]->detail      = $value->detalle ?? '';
			}

			foreach($vinculaciones_indirectas as $key => $value){
			  $persona->corporate_realationships->indirect_linkages[$key]              = new stdClass();
			  $persona->corporate_realationships->indirect_linkages[$key]->tax_id      = $value->cuit_vinculada ?? '';
			  $persona->corporate_realationships->indirect_linkages[$key]->legal_name  = $value->nombre_persona ?? '';
			  /*$persona->corporate_realationships->indirect_linkages[$key]->type        = $value->nombre ?? '';
			  $persona->corporate_realationships->indirect_linkages[$key]->detail      = $value->detalle ?? '';*/
			}
			$persona->corporate_realationships->previous_names = $nombres_anteriores_1;

		}

		return json_encode($persona);

	}


	/* Seccion Edictos */
	public static function ICEdictos($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
		if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
			$persona->edictos = [];
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
			$persona->edicts = [];
		}

		$edictos  = [];
		$edictos  = SQLConnection::obtenerEdictos($cuit);

		foreach($edictos as $key => $value){
			if( $idioma == 'SPA' ){
				$persona->edictos[$key] = new stdClass();
				$persona->edictos[$key]->provincia_boletin = $value->provincia_boletin ?? '';
				$persona->edictos[$key]->fecha_boletin = $value->fechab ?? '';
				$persona->edictos[$key]->texto = $value->texto ?? '';
			} elseif( $idioma == 'ENG' ){
				$persona->edicts[$key]= new stdClass();
				$persona->edicts[$key]->province = $value->provincia_boletin ?? '';
				$persona->edicts[$key]->date = $value->fechab ?? '';
				$persona->edicts[$key]->text = $value->texto ?? '';
			}
		}
		return json_encode($persona);

	}

/* Seccion Edictos Homonimos */
	public static function ICEdictosHomonimos($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
			if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
		if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
			$persona->edictos_homonimos = [];
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
			$persona->homonyms_edicts = [];
		}

		$fisica_juridica = Misc::tipoPersona($cuit);

		$edictos_homonimos         = [];
		$sinonimos                 = '';
		$razon_social_completa     = '';
		$razon_social_f            = $razon_social;
		$razon_social_f            = str_replace('#', 'ñ', $razon_social_f);
		$razon_social_f            = preg_replace('/\(|\)/','',$razon_social_f);
		$razon_social_explode      = explode(" ", $razon_social_f);


		//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;
		  }
		}
		$razon_social_explode = $explode_aux;

		//P. FISICA
		if($fisica_juridica == '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]."\"";
		  }
		}

		// P. JURIDICA
		if($fisica_juridica == 'J'){
			$resultado_nombres_ant     = []; 
			$nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
			$resultado_nombres_ant[] = $razon_social;
			if ($nombres_anteriores) {
				foreach ($nombres_anteriores as $nombre_ant) {
					$resultado_nombres_ant[] = $nombre_ant->nombre; 
				}
			}
			$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."\"";}
			$edictos_homonimos = SQLConnection::obtenerEdictosHomonimos($razon_social_completa);
		}else{
		  //Edictos para PF
		  $edictos_homonimos  = SQLConnection::obtenerEdictosHomonimos($razon_social_completa);
		  $sinonimos = $razon_social_completa; 
		}

		foreach($edictos_homonimos as $key => $value){

			if( $idioma == 'SPA' ){
				$persona->edictos_homonimos[$key] = new stdClass();
				$persona->edictos_homonimos[$key]->provincia_boletin = $value->provincia_boletin ?? '';
				$persona->edictos_homonimos[$key]->fecha_boletin = $value->fechab ?? '';
				$persona->edictos_homonimos[$key]->texto = $value->contenido_archivo ?? '';
			} elseif( $idioma == 'ENG' ){
				$persona->homonyms_edicts[$key]= new stdClass();
				$persona->homonyms_edicts[$key]->province = $value->provincia_boletin ?? '';
				$persona->homonyms_edicts[$key]->date = $value->fechab ?? '';
				$persona->homonyms_edicts[$key]->text = $value->contenido_archivo ?? '';
			}

		}
		
		return json_encode($persona);
	}

  /* Seccion Consultas por ramo */
	public static function ICConsultaspPorRamo($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
		 
		 if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}

	  $consultas_ramos  = SQLConnection::backendStoreProcedure('obtener_consulta_por_ramos', array($cuit,12));
	  $consultas = [];
	  if($consultas_ramos){
			if( $idioma == 'SPA' ){
				foreach($consultas_ramos as $key_ramo => $consulta){
					$consultas[$key_ramo]['nombre']    = $consulta->descripcion;
					$consultas[$key_ramo][$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]);
				}
			}
			if( $idioma == 'ENG' ){
				foreach($consultas_ramos as $key_ramo => $consulta){
					$consultas[$key_ramo]['name']    = $consulta->descripcion;
					$consultas[$key_ramo][$consulta->antiguedad]  = $consulta->cantidad;
				}
				
				foreach($consultas as $key => $consulta){
					if(!isset($consultas[$key]['between_0_1'])){
						$consultas[$key]['between_0_1'] = 0;
					}
					if(!isset($consultas[$key]['between_1_2'])){
						$consultas[$key]['between_1_2'] = 0;
					}
					if(!isset($consultas[$key]['between_2_5'])){
						$consultas[$key]['between_2_5'] = 0;
					}
					ksort($consultas[$key]);
				}
			}
		}

		if( $idioma == 'SPA' ){
			$persona->consultas  = $consultas;
		} elseif( $idioma == 'ENG' ){
			$persona->qtyqueries = $consultas;
		}

		return json_encode($persona);

	}

  /* Seccion Comerciales - Seguros */

	public static function ICSeguros($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
	  	if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}

		$seguros2 = [];
		$seguros  = [];

		$seguros2 = SQLConnection::backendSeguros($cuit);
		if(!empty($seguros2)){
			if($idioma == 'SPA'){
				foreach ($seguros2 as $key => $value) {
					$seguros[$key] = new StdClass();
					$seguros[$key]->aseguradora = $seguros2[$key]->seg_nombre; 
					$seguros[$key]->riesgo = $seguros2[$key]->rie_nombre; 
				}
		
			} elseif($idioma == 'ENG'){
				foreach ($seguros2 as $key => $value) {
					$seguros[$key] = new StdClass();
					$seguros[$key]->company = $seguros2[$key]->seg_nombre; 
					$seguros[$key]->risk = $seguros2[$key]->rie_nombre; 
				}		
			}
		}

		if( $idioma == 'SPA' ){
			$persona->seguros    = $seguros;

		} elseif( $idioma == 'ENG' ){
			$persona->insurances = $seguros;
		}

		return json_encode($persona);

	}

  /* Seccion Comerciales - Marcas */
  /* 
NOMBRE: INQUIROVITAE
TIPO: MIXTA
CLASE: 9, 42
ACTA: 3498610
BOLETÍN: 4225
PUBLICACIÓN: 13/07/2016
URL

*/

	public static function ICMarcas($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
		if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}

	  if( $idioma == 'SPA' ){
			$persona->marcas = new stdClass(); 
		} elseif( $idioma == 'ENG' ){
			$persona->brands = new stdClass(); 
		}

	  $marcas = [];
	  $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);

	  $resultado = [];
	  if($idioma == 'SPA'){
		foreach ($marcas as $key => $value) {
			$resultado[$key] = new StdClass();
			$resultado[$key]->marca = $value->marca ?? '';
			$resultado[$key]->tipo = $value->tipo ?? '';
			$resultado[$key]->acta = $value->num_acta ?? '';
			$resultado[$key]->clase = $value->clase ?? '';
			$resultado[$key]->boletin = $value->num_boletin ?? '';
			$resultado[$key]->publicacion = $value->fecha_publicacion ?? ''; 
			
		}

	  } elseif($idioma == 'ENG'){
		foreach ($marcas as $key => $value) {
			$resultado[$key] = new StdClass();
			$resultado[$key]->brand = $value->marca ?? '';
			$resultado[$key]->type = $value->tipo ?? '';
			$resultado[$key]->act_number = $value->num_acta ?? '';
			$resultado[$key]->class = $value->clase ?? '';
			$resultado[$key]->bulletin = $value->num_boletin ?? '';
			$resultado[$key]->publication_date = $value->fecha_publicacion ?? '';
		}
	  }
	}
	if( $idioma == 'SPA' ){
		$persona->marcas = $resultado; 

	} elseif( $idioma == 'ENG' ){
		$persona->brands = $resultado;
	}

	return json_encode($persona); 

	}


	/* Seccion  Fiscal */
	public static function ICFiscales($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
	  	if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}

		$texto_pdf = new StdClass(); 
	  $exec = SQLConnection::backendStoreProcedure('afip_texto_sin_constancia', array($id_padron), true);
	  $texto_pdf = ($exec->texto_constancia) ?? '';

	
	  if( $idioma == 'SPA' ){
			$persona->fiscales = new stdClass();
	    $persona->fiscales->observaciones = $texto_pdf;
			$persona->fiscales->domicilio_fiscal = new StdClass(); 
		} elseif( $idioma == 'ENG' ){
			$persona->fiscal_data = new stdClass();
	    $persona->fiscal_data->observations = $texto_pdf;
			$persona->fiscal_data->fiscal_address = new StdClass(); 
		}

	$idp            = SQLConnection::obtenerIdPadron($cuit);
	$id_padron      = $idp->id_padron;

	$inscripciones                = SQLConnection::obtenerInscripciones($cuit);
	$claes                        = SQLConnection::obtenerClae($cuit);
	
	$fuentes_procesadas           = SQLConnection::obtenerUltimoPeriodoProcesado("sircreb");
	$impuestos                    = SQLConnection::obtenerPadronImpuestos($id_padron);
	$padron_caracterizaciones     = SQLConnection::obtenerPadronCaracterizaciones($id_padron);
	
	$obtener_domicilios           = SQLConnection::obtenerDomicilios($cuit);
	$domicilio_fiscal = new StdClass(); 
	foreach($obtener_domicilios as  $formal){
	  	if(strpos($formal->tipo_domicilio, 'F') !== false){
			if( $idioma == 'SPA' ){
				$domicilio_fiscal->domicilio  = $formal->domicilio ?? '';
				$domicilio_fiscal->codPos    	= $formal->codpos ?? '';
				$domicilio_fiscal->localidad  = $formal->loc_nombre ?? '';
				$domicilio_fiscal->provincia  = $formal->prv_nombre ?? '';
				$domicilio_fiscal->pais       = $formal->pai_nombre ?? '';
				$persona->fiscales->domicilio_fiscal = $domicilio_fiscal; 
			} 
			elseif( $idioma == 'ENG' ){		
				$domicilio_fiscal->address  = $formal->domicilio ?? '';
				$domicilio_fiscal->zip_code = $formal->codpos ?? '';
				$domicilio_fiscal->city     = $formal->loc_nombre ?? '';
				$domicilio_fiscal->state    = $formal->prv_nombre ?? '';
				$domicilio_fiscal->country  = $formal->pai_nombre ?? '';
				$persona->fiscal_data->fiscal_address = $domicilio_fiscal; 
			}
			break; 
	  	}
	}

	if( $idioma == 'SPA' ){

		    $inscripcion = new StdClass();
		    $inscripcion->agencia = isset($inscripciones->codigo_dependencia) ?  ($inscripciones->codigo_dependencia) . ' - ' .
	            $inscripciones->nombre_dependencia . ' - ' . 
	            $inscripciones->direccion . ' - ' . 
	            $inscripciones->codigo_postal  . ' - ' . 
	            $inscripciones->provincia : '';
			$inscripcion->fecha_contrato_social = $inscripciones->fecha_contrato_social ?? '';
			$inscripcion->numero_inscripcion = $inscripciones->numero_inscripcion ?? '';
			if ($inscripciones->fecha_inscripcion == '01/01/1901') { $inscripciones->fecha_inscripcion = null; }
			$inscripcion->fecha_inscripcion = $inscripciones->fecha_inscripcion ?? '';
			$inscripcion->monotributo = $inscripciones->monotributo ?? '';
			$inscripcion->inicio_actividad = $inscripciones->inicio_actividad ?? '';
			$inscripcion->integrante_soc = $inscripciones->integrante_soc ?? '';
			$inscripcion->empleador = $inscripciones->empleador ?? '';
			
			$persona->fiscales->inscripciones = $inscripcion;

			$clae = [];
			foreach ($claes as $key => $value) {
				  $clae[] = new StdClass();
					$clae[$key]->ciuu = $value->cod_clae ?? '';
					$clae[$key]->actividad = $value->descripcion ?? '';
					$clae[$key]->fecha_inicio_actividad = $value->fecha_inicio_actividad ?? '';
					$clae[$key]->principal = $value->principal == 1 ? 'SI' : 'NO';
			}
			$persona->fiscales->clae  = $clae;
			
			$reg = [];
		    foreach ($padron_caracterizaciones as $key => $value) {
				    $reg[] = new StdClass();
					$reg[$key]->codigo = $value->codigo_caracterizacion ?? '';
					$reg[$key]->nombre = $value->nombre_caracterizacion ?? '';
					
			}
			$persona->fiscales->regimen_informacion  = $reg;

			$impuesto = [];
			foreach ($impuestos as $key => $value) {
				  $impuesto[] = new StdClass();
					$impuesto[$key]->codigo_impuesto = $value->codigo_impuesto ?? '';
					$impuesto[$key]->nombre_impuesto = $value->nombre_impuesto ?? '';
					$impuesto[$key]->estado = $value->estado ?? '';
					$impuesto[$key]->fecha_inscripcion = $value->fecha_inscripcion ?? '';
			}
			$persona->fiscales->impuestos = $impuesto;

/* No tenemos datos en Sircreb desde 2017 */
/*
		  	$sircreb           = SQLConnection::backendStoreProcedure('obtener_sircreb', array($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 = '--';
					}
				}
			}

			$persona->fiscales->riesgo_fiscal = new StdClass(); 
			$persona->fiscales->riesgo_fiscal = $riesgo_fiscal; // No tenemos mas desde el 2017
*/


	} elseif( $idioma == 'ENG' ){

			$inscripcion = new StdClass();
		    $inscripcion->agency = isset($inscripciones->codigo_dependencia) ?  ($inscripciones->codigo_dependencia) . ' - ' .
	            $inscripciones->nombre_dependencia . ' - ' . 
	            $inscripciones->direccion . ' - ' . 
	            $inscripciones->codigo_postal  . ' - ' . 
	            $inscripciones->provincia : '';
			$inscripcion->date_of_social_contract = $inscripciones->fecha_contrato_social ?? '';
			$inscripcion->registration_number = $inscripciones->numero_inscripcion ?? '';
			if ($inscripciones->fecha_inscripcion == '01/01/1901') { $inscripciones->fecha_inscripcion = null; }
			$inscripcion->registration_date = $inscripciones->fecha_inscripcion ?? '';
			$inscripcion->monotax = $inscripciones->monotributo ?? '';
			$inscripcion->start_activity = $inscripciones->inicio_actividad ?? '';
			$inscripcion->company_member = $inscripciones->integrante_soc ?? '';
			$inscripcion->employer = $inscripciones->empleador ?? '';
			
			$persona->fiscal_data->registrations = $inscripcion;

			$clae = [];
			foreach ($claes as $key => $value) {
				  $clae[] = new StdClass();
					$clae[$key]->ciuu = $value->cod_clae ?? '';
					$clae[$key]->description = $value->descripcion ?? '';
					$clae[$key]->start_activity = $value->fecha_inicio_actividad ?? '';
					$clae[$key]->principal = $value->principal == 1 ? 'SI' : 'NO';
			}
			$persona->fiscal_data->economic_activity_code  = $clae;
			
			$reg = [];
		    foreach ($padron_caracterizaciones as $key => $value) {
				    $reg[] = new StdClass();
					$reg[$key]->code = $value->codigo_caracterizacion ?? '';
					$reg[$key]->full_name = $value->nombre_caracterizacion ?? '';
					
			}
			$persona->fiscal_data->information_regimes  = $reg;

			$impuesto = [];
			foreach ($impuestos as $key => $value) {
				  $impuesto[] = new StdClass();
					$impuesto[$key]->code = $value->codigo_impuesto ?? '';
					$impuesto[$key]->full_name = $value->nombre_impuesto ?? '';
					$impuesto[$key]->status = $value->estado ?? '';
					$impuesto[$key]->registration_date = $value->fecha_inscripcion ?? '';
			}
			$persona->fiscal_data->taxes = $impuesto;

		

/* No tenemos datos en Sircreb desde 2017 */
/*
			$riesgo_fiscal = 'NO';
	  		$sircreb           = SQLConnection::backendStoreProcedure('obtener_sircreb', array($cuit));
			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 = '--';
					}
				}
			}

			$persona->fiscal_data->riesgo_fiscal = new StdClass(); 
			$persona->fiscal_data->riesgo_fiscal = $riesgo_fiscal; // No tenemos mas desde el 2017
*/



	}
		  
	return json_encode($persona);
	}


/* Seccion Mis Aportes */
	public static function ICMisAportes($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
	  	if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}


	  	if( $idioma == 'SPA' ){
			$persona->aportes = new stdClass();
		} elseif( $idioma == 'ENG' ){
			$persona->contributions = new stdClass();
		}

		$fisica_juridica   = Misc::tipoPersona($cuit);
		if ($fisica_juridica == 'F') 
		{
			$aportes = SQLConnection::backendStoreProcedure('backend_mis_aportes', array($cuit, NULL, 12, 1), false);
		}
		else
	 	{
			$aportes = SQLConnection::backendStoreProcedure('mis_aportes_empresa', array($cuit), false);	 
		}

		$aporte = [];
		$i = 0;
		if( $idioma == 'SPA' ){
		foreach ($aportes as $key => $value) {
	 			if ( !(strpos($value->ddjj, 'NO PRES') === 0 && strpos($value->aportes_ss, 'NO PRES') === 0 && strpos($value->aportes_os, 'NO PRES') === 0 && strpos($value->contr_patronal, 'NO PRES') === 0) )
				{
					$aporte[$i] = new StdClass();
					$aporte[$i]->periodo = $value->periodo_str ?? '';
					$aporte[$i]->pres_ddjj = $value->ddjj ?? '';
					$aporte[$i]->aporte_seg_social = $value->aportes_ss ?? '';
					$aporte[$i]->aporte_obra_soc = $value->aportes_os ?? '';
					$aporte[$i]->contr_patronal = $value->contr_patronal ?? '';
					$i += 1; 
				}
			}
			$persona->aportes = $aporte;

		} elseif( $idioma == 'ENG' ){
		foreach ($aportes as $key => $value) {
				if ( !(strpos($value->ddjj, 'NO PRES') === 0 && strpos($value->aportes_ss, 'NO PRES') === 0 && strpos($value->aportes_os, 'NO PRES') === 0 && strpos($value->contr_patronal, 'NO PRES') === 0) )
				{
					$aporte[$i] = new StdClass();
					$aporte[$i]->period = $value->periodo_str ?? '';
					$aporte[$i]->pres_affidavit = $value->ddjj ?? '';
					$aporte[$i]->social_security_contribution = $value->aportes_ss ?? '';
					$aporte[$i]->social_work_contribution = $value->aportes_os ?? '';
					$aporte[$i]->employers_contract = $value->contr_patronal ?? '';
					$i += 1; 
				}
			}
			$persona->contributions = $aporte;
		}
		return json_encode($persona);
	}





/* Seccion Facturas Apocrifas */
	public static function ICApocrifas($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
	  	if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}


	  	if( $idioma == 'SPA' ){
			$persona->apocrifas = new stdClass();
		} elseif( $idioma == 'ENG' ){
			$persona->apocryphal = new stdClass();
		}

	  	$apocrifas = SQLConnection::backendStoreProcedure('obtener_apocrifas', array($cuit));

		$apocrifa = [];
		if( $idioma == 'SPA' ){
			foreach ($apocrifas as $key => $value) {
				    $apocrifa[] = new StdClass();
					$apocrifa[$key]->aprocrifas = 'SI';
					$apocrifa[$key]->detectado     = $value->detectado ?? '';
					$apocrifa[$key]->publicado     = $value->publicado ?? '';
					$apocrifa[$key]->observaciones = $value->observaciones ?? '';
			}
			$persona->apocrifas = $apocrifa;

		} elseif( $idioma == 'ENG' ){

			foreach ($apocrifas as $key => $value) {
				    $apocrifa[] = new StdClass();
					$apocrifa[$key]->apocryphal = 'YES';
					$apocrifa[$key]->detected_date    = $value->detectado ?? '';
					$apocrifa[$key]->publication_date = $value->publicado ?? '';
					$apocrifa[$key]->observations     = $value->observaciones ?? '';
			}
			$persona->apocryphal = $apocrifa;

		}


		return json_encode($persona);
	}



/* Seccion ARBA */
// FALTA TRADUCIR 
	public static function ICArba($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
	  	if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}


	  if( $idioma == 'SPA' ){
			$persona->expedientes_arba = new stdClass();
		} elseif( $idioma == 'ENG' ){
			$persona->arba_records = new stdClass();
		}

	  $arbas = SQLConnection::backendStoreProcedure('obtener_arba', array($cuit));
		$arba = [];
		if( $idioma == 'SPA' ){
			foreach ($arbas as $key => $value) {
					$arba[] = new StdClass();
					$arba[$key]->impuesto = $value->impuesto ?? '';
					$arba[$key]->objeto = $value->objeto ?? '';
					$arba[$key]->numero_interno = $value->numero_interno_de_juicio ?? '';
					$arba[$key]->fecha_de_inicio_de_juicio = $value->fecha_de_inicio_de_juicio ?? '';
					$arba[$key]->importe_original = $value->importe_deuda_del_juicio ?? '';
					$arba[$key]->departamento_judicial = $value->departamento_judicial ?? '';
					$arba[$key]->juzgado = $value->numero_de_juzgado ?? '';
					$arba[$key]->secretaria = $value->secretaria ?? '';
					$arba[$key]->fecha_cancelacion = $value->fecha_de_cancelacion ?? '';
					$arba[$key]->domicilio_calle = $value->domicilio_calle ?? '';
					$arba[$key]->domicilio_localidad = $value->domicilio_localidad ?? '';
					$arba[$key]->domicilio_numero = $value->domicilio_numero ?? '';
					$arba[$key]->fecha_de_plan_de_pagos = $value->fecha_de_plan_de_pagos ?? '';
					$arba[$key]->cancelacion_del_juicio = $value->cancelacion_del_juicio ?? '';
					$arba[$key]->estado_medida_cautelar = $value->estado_de_medida_cautelar ?? '';
					$arba[$key]->estado_plan_de_pagos = $value->estado_de_plan_de_pagos ?? '';
			}
		  $persona->expedientes_arba = $arba;

		} elseif( $idioma == 'ENG' ){

			foreach ($arbas as $key => $value) {
					$arba[] = new StdClass();
					$arba[$key]->tax = $value->impuesto ?? '';
					$arba[$key]->objeto = $value->objeto ?? '';
					$arba[$key]->internal_number = $value->numero_interno_de_juicio ?? '';
					$arba[$key]->start_date = $value->fecha_de_inicio_de_juicio ?? '';
					$arba[$key]->original_amount = $value->importe_deuda_del_juicio ?? '';
					$arba[$key]->judicial_department = $value->departamento_judicial ?? '';
					$arba[$key]->court = $value->numero_de_juzgado ?? '';
					$arba[$key]->secretary = $value->secretaria ?? '';
					$arba[$key]->cancellation_date = $value->fecha_de_cancelacion ?? '';
					$arba[$key]->address = $value->domicilio_calle ?? '';
					$arba[$key]->number = $value->domicilio_numero ?? '';
					$arba[$key]->city = $value->domicilio_localidad ?? '';
					$arba[$key]->payment_plan_date = $value->fecha_de_plan_de_pagos ?? '';
					$arba[$key]->cancellation_of_trial = $value->cancelacion_del_juicio ?? '';
					$arba[$key]->state_of_precautionary_measure = $value->estado_de_medida_cautelar ?? '';
					$arba[$key]->payment_plan_status = $value->estado_de_plan_de_pagos ?? '';
			}
		  $persona->arba_records = $arba;

		}


		return json_encode($persona);
	}


	/* Seccion  Bancos */
	public static function ICBancos($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
	    if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}
	
	  //$bancos = SQLConnection::backendStoreProcedure('backend_central_deudores', array($cuit,24,1));
	  $bancos = SQLConnection::obtenerBancos($cuit);
	  $periodo =  SQLConnection::backendStoreProcedure('obtener_periodo_maximo', array($cuit),'selectOne');
	  $totales = []; 

	  $j = 0;
	  for ($i = 23; $i >= 0; $i--) {
			$totales[$j] = new StdClass;
			$totales[$j]->mes = date("Ym", strtotime( $periodo->periodo_maximo." -$i months"));
			$totales[$j]->total = 0;
			$j += 1; 
	  }

	  foreach($bancos as $key => $banco){
	  	foreach ($totales as $i => $value) {
	  		if ($value->mes == $banco->fec_inf)
	  		{
				$totales[$i]->total += ($banco->total) ?? 0;
	  		}
	  	}
	  }

	  if( $idioma == 'SPA' ){
			//$persona->periodos = new stdClass(); 
			//$persona->periodos->bancos = Misc::convertirFormatoFecha($periodo->periodo_maximo,'Y-m-d','Ym');
			$persona->central_deudores  = [];
			foreach ($bancos as $key => $value) {
			  
		      $persona->central_deudores[$key]  = new stdClass();
			  $persona->central_deudores[$key]->nombre_entidad  = str_replace("\r\n","",$value->nombre);
			  $persona->central_deudores[$key]->periodo         = //$value->fec_inf;
			 											Misc::convertirFormatoFecha($value->fec_inf,'Ym','m/Y');
			  $persona->central_deudores[$key]->situacion       = $value->situacion;
			  $persona->central_deudores[$key]->monto_en_miles  = round($value->total);
			  //$persona->bancos[$key]->dias_atraso     = $value->dia_atraso;
			}

			foreach ($totales as $key => $value) {
		      $persona->totales[$key]  = new stdClass();
			  $persona->totales[$key]->periodo = //$key;
			 									 Misc::convertirFormatoFecha($value->mes,'Ym','m/Y');
			  $persona->totales[$key]->monto_en_miles  = round($value->total);
			}

		} elseif( $idioma == 'ENG' ){
			//$persona->max_bank_information = new stdClass(); 
			//$persona->max_bank_information->period = Misc::convertirFormatoFecha($periodo->periodo_maximo,'Y-m-d','Ym');
			$persona->debtors_center  = [];
			foreach ($bancos as $key => $value) {
			  $persona->debtors_center[$key]  = new stdClass();
			  $persona->debtors_center[$key]->bank_name = str_replace("\r\n","",$value->nombre);
			  $persona->debtors_center[$key]->period = //$value->fec_inf;
			                                  Misc::convertirFormatoFecha($value->fec_inf,'Ym','m/Y');
			  $persona->debtors_center[$key]->status = $value->situacion;
			  $persona->debtors_center[$key]->amount_thousands = round($value->total);
			  //$persona->debtors_center[$key]->days_late = $value->dia_atraso;
			}
			foreach ($totales as $key => $value) {
		      $persona->total[$key]  = new stdClass();
			  $persona->total[$key]->period = //$key;
			 								Misc::convertirFormatoFecha($value->mes,'Ym','m/Y');
			  $persona->total[$key]->amount_thousands  = round($value->total);
			}

		}

		return json_encode($persona);

	}

/* Seccion Bancos Card */
	public static function ICBancosCard($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
	    if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}

		$card_status_bancario       = SQLConnection::obtenerStatusBancario($cuit);

		if(isset($card_status_bancario->cheques_rechazados)) 
		{
			if($card_status_bancario->cheques_rechazados  > 0) 
			{
				$cheques = 'SI'; 
			}
			else 
			{
				$cheques = 'NO'; 
			}
		}
		else 
		{
			$cheques = 'No informa';
		}
		$persona->cheques_rechazados = $cheques; 

		if(isset($card_status_bancario->situaciones)) 
		{
			if($card_status_bancario->situaciones  > 0) 
			{
				$situaciones = 'SI'; 
			}
			else 
			{
				$situaciones = 'NO'; 
			}
		}
		else 
		{
			$situaciones = 'No informa';
		}
		$persona->situacion_diferente_a_normal = $situaciones; 

		$ultima_formateada = ''; 
		$maxima_formateada = ''; 
      	if(isset($card_status_bancario->ultima_posicion)) 
      	{
			if($card_status_bancario->ultima_posicion  > 0) 
			{
				$ultima_formateada = '$ ' . number_format($card_status_bancario->ultima_posicion,0,',',' ');
				$ultima = $card_status_bancario->ultima_posicion;
			}
			else 
			{
				$ultima = 'No informa';
			}
      	}
      	else 
      	{
      		$ultima = 'No informa';
      	}
		$persona->ultima_posicion = $ultima; 
		$persona->ultima_posicion_format = $ultima_formateada; 


      	if(isset($card_status_bancario->maxima_posicion)) 
      	{
      		if($card_status_bancario->maxima_posicion  > 0) 
      		{
      			$maxima_formateada = '$ ' . number_format($card_status_bancario->maxima_posicion,0,',',' ');
      			$maxima = $card_status_bancario->maxima_posicion;
      		}
      		else 
      		{ 
      			$maxima = 'No Informa';
      		}
      	} 
      	else 
      	{ 
      		$maxima = 'No informa'; 
      	}
		$persona->maxima_posicion = $maxima; 
		$persona->maxima_posicion_format = $maxima_formateada; 

      
		return json_encode($persona);

	}


	//Gráfico de garantías
	public static function ICBancosGarantias($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
	    if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}

		$periodo_maximo = SQLConnection::obtenerPeriodoMaximo($cuit);
		for ($i = 0; $i <= 23; $i++) {
			$periodos_graficos[$i] = date("Ym", strtotime( $periodo_maximo." -$i months"));
		}
		
		$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);
					}
				}
			}
		}

		if( $idioma == 'SPA' ){
			$persona->garantias = [];
			$persona->garantias = $garantias;
		} elseif( $idioma == 'ENG' ){
			$persona->warranties  = [];
			$persona->warranties  = $garantias;
		}

		return json_encode($persona);

	}


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);
  }



	/* Seccion Cheques */
	public static function ICCheques($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma='',$con_resumen = ''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
		if(!$con_resumen){
		  	$con_resumen = Request::input('con_resumen') ?? 'N';
		}
		if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}

/*
		
		$cheques = SQLConnection::backendStoreProcedure('obtener_cheques', array($cuit));

		$i = 0;
		foreach ($cheques as $key => $value) {
		  if($value->tipo == 'vinculaciones'){
			if( $idioma == 'SPA' ){
				$persona->vinculados_segun_bcra[$i] = new stdClass();
				$persona->vinculados_segun_bcra[$i]->nombre_persona_firmante     = $value->nombre_persona_firmante;
				$persona->vinculados_segun_bcra[$i]->cuit_firmante               = $value->cuit_firmante;
				$persona->vinculados_segun_bcra[$i]->nombre_persona_relacionado  = $value->nombre_persona_relacionado;
				$persona->vinculados_segun_bcra[$i]->Cuit_relacionado            = $value->Cuit_relacionado;
				$persona->vinculados_segun_bcra[$i]->cantidad_cheques_firmados   = $value->cantidad;
				$persona->vinculados_segun_bcra[$i]->cantidad_cheques_totales    = $value->total_cheques;
				unset($cheques[$key]);
				$i+=1;
			} elseif( $idioma == 'ENG' ){
				// FALTA TRADUCIR 
				$persona->representatives_with_banking_system[$i] = new stdClass();
				$persona->representatives_with_banking_system[$i]->nombre_persona_firmante     = $value->nombre_persona_firmante;
				$persona->representatives_with_banking_system[$i]->cuit_firmante               = $value->cuit_firmante;
				$persona->representatives_with_banking_system[$i]->nombre_persona_relacionado  = $value->nombre_persona_relacionado;
				$persona->representatives_with_banking_system[$i]->Cuit_relacionado            = $value->Cuit_relacionado;
				$persona->representatives_with_banking_system[$i]->cantidad_cheques_firmados   = $value->cantidad;
				$persona->representatives_with_banking_system[$i]->cantidad_cheques_totales    = $value->total_cheques;
				unset($cheques[$key]);
				$i+=1;
			}
		  }else{
			unset($cheques[$key]->idp);
			unset($cheques[$key]->idppr);
			unset($cheques[$key]->cantidad);
			unset($cheques[$key]->total_cheques);
		  }
		}
	   
		if( $idioma == 'SPA' ){
			$persona->cheques = $cheques;
		} elseif( $idioma == 'ENG' ){
			$persona->bounced_checks = $cheques;
		}
*/

		$cheques_ordenados      = [];
		$cheques                = SQLConnection::backendStoreProcedure('obtener_cheques', array($cuit));
	/*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;
		}

		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;
		}

		// -------------

		if(!isset($cuadro_cheques_totales['2empresa']['LEVANTADOS']['SIN FONDOS'])){
			$cuadro_cheques_totales['2empresa']['LEVANTADOS']['SIN FONDOS'] = new \stdClass();
			$cuadro_cheques_totales['2empresa']['LEVANTADOS']['SIN FONDOS']->cantidad  = 0;
			$cuadro_cheques_totales['2empresa']['LEVANTADOS']['SIN FONDOS']->monto     = 0;
	  	}
		if(!isset($cuadro_cheques_totales['2empresa']['LEVANTADOS']['DEFECTOS FORMALES'])){
			$cuadro_cheques_totales['2empresa']['LEVANTADOS']['DEFECTOS FORMALES'] = new \stdClass();
			$cuadro_cheques_totales['2empresa']['LEVANTADOS']['DEFECTOS FORMALES']->cantidad = 0;
			$cuadro_cheques_totales['2empresa']['LEVANTADOS']['DEFECTOS FORMALES']->monto    = 0;
		}
	
		if(!isset($cuadro_cheques_totales['2empresa']['SIN LEVANTAR']['SIN FONDOS'])){
			$cuadro_cheques_totales['2empresa']['SIN LEVANTAR']['SIN FONDOS'] = new \stdClass();
			$cuadro_cheques_totales['2empresa']['SIN LEVANTAR']['SIN FONDOS']->cantidad = 0;
			$cuadro_cheques_totales['2empresa']['SIN LEVANTAR']['SIN FONDOS']->monto    = 0;
		}
	
		if(!isset($cuadro_cheques_totales['2empresa']['SIN LEVANTAR']['DEFECTOS FORMALES'])){
			$cuadro_cheques_totales['2empresa']['SIN LEVANTAR']['DEFECTOS FORMALES'] = new \stdClass();
			$cuadro_cheques_totales['2empresa']['SIN LEVANTAR']['DEFECTOS FORMALES']->cantidad = 0;
			$cuadro_cheques_totales['2empresa']['SIN LEVANTAR']['DEFECTOS FORMALES']->monto    = 0;
		}
	
		if(!isset($cuadro_cheques_totales['2empresa']['CHEQUES']['SIN FONDOS'])){
			$cuadro_cheques_totales['2empresa']['CHEQUES']['SIN FONDOS'] = new \stdClass();
			$cuadro_cheques_totales['2empresa']['CHEQUES']['SIN FONDOS']->cantidad = 0;
			$cuadro_cheques_totales['2empresa']['CHEQUES']['SIN FONDOS']->monto    = 0;
		}
		
		if(!isset($cuadro_cheques_totales['2empresa']['CHEQUES']['DEFECTOS FORMALES'])){
			$cuadro_cheques_totales['2empresa']['CHEQUES']['DEFECTOS FORMALES'] = new \stdClass();
			$cuadro_cheques_totales['2empresa']['CHEQUES']['DEFECTOS FORMALES']->cantidad = 0;
			$cuadro_cheques_totales['2empresa']['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']);
		}

		$cheques_vinculaciones_todas = SQLConnection::backendStoreProcedure('obtener_cheques_vinculaciones_todas', array($cuit));

		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;
				  }
				}
		  	}
		}

    	$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;

		$cheques  = $cheques_ordenados;
		
		$grafico_cheques  = SQLConnection::graficoCardChequesRechazados($cuit);
		$grafico_cheques  = self::generarGraficoCheques($grafico_cheques,24);


		$fisica_juridica = Misc::tipoPersona($cuit); 
		$persona_fisica = ($fisica_juridica == 'F') ? true : false;


		$cantidad_cheques = new StdClass; 
		if(!($persona_fisica) && empty($cheques))
		{
			//$cantidad_cheques = 'No se registran Cheques Rechazados'; 
			$cantidad_cheques = 0;
		}
		$cantidad_cheques_empresa = new StdClass; 
		$cheques_a_nombre_empresa = []; 
		
		if(isset($cheques['a_nombre_de_empresa']))
		{
			$cantidad_cheques_empresa = $cheques['cantidad_propios']; 
            foreach ($cheques['a_nombre_de_empresa']  as $key => $cheque)
            {
            	$cheques_a_nombre_empresa[$key] = new StdClass(); 
            	$cheques_a_nombre_empresa[$key]->nro_cheque = $cheque->nro_cheque; 
            	$cheques_a_nombre_empresa[$key]->importe = $cheque->importe; 
            	$cheques_a_nombre_empresa[$key]->importe_format =  '$ ' . number_format($cheque->importe,2,'.',' '); 
            	$cheques_a_nombre_empresa[$key]->fecha_rechazo =  $cheque->fecha_rechazo; 
            	$cheques_a_nombre_empresa[$key]->fecha_levantamiento =  $cheque->fecha_levantamiento; 
            	$cheques_a_nombre_empresa[$key]->fecha_pago_multa =  $cheque->fecha_pago; 
            	$cheques_a_nombre_empresa[$key]->causal =  $cheque->causa; 
            }
        }
        else 
        {
        	//$cantidad_cheques_empresa = 'No se registran Cheques Rechazados'; 
        	$cantidad_cheques_empresa = 0; 
        }
		
		$cantidad_cheques_propios = new StdClass; 
		$cheques_propios = []; 

		
  			if(!isset($cheques['a_nombre_de_empresa']) && !isset($cheques['propio']) && !isset($cheques['empresa']))
  			{
  				//$cantidad_cheques_propios = 'No se registran Cheques Rechazados'; 
  				$cantidad_cheques_propios = 0; 
  			}
			else
			{
    			if(isset($cheques['propio']))
    			{
					$cantidad_cheques_propios = $cheques['cantidad_propios']; 
   		            foreach ($cheques['propio']  as $key => $cheque)
		            {
		            	$cheques_propios[$key] = new StdClass(); 
		            	$cheques_propios[$key]->nro_cheque = $cheque->nro_cheque; 
		            	$cheques_propios[$key]->firmante   = $cheque->nombre_persona_firmante ?? 'No Informa';
		            	$cheques_propios[$key]->importe    = $cheque->importe; 
		            	$cheques_propios[$key]->importe_format = '$ ' . number_format($cheque->importe,2,'.',' '); 
		            	$cheques_propios[$key]->fecha_rechazo  = $cheque->fecha_rechazo; 
		            	$cheques_propios[$key]->fecha_levantamiento =  $cheque->fecha_levantamiento; 
		            	$cheques_propios[$key]->fecha_pago_multa =  $cheque->fecha_pago; 
		            	$cheques_propios[$key]->causal =  $cheque->causa; 
		            }
           
    			}
    			else
    			{
    				//$cantidad_cheques_propios = 'No se registran cheques rechazados en cuentas Personales'; 
    				$cantidad_cheques_propios = 0;
    			}
    		}
    	
			$cuentas_personales = new StdClass();
			$cuentas_personales->sin_fondos                = new StdClass();
			$cuentas_personales->sin_fondos->sin_abonar    = new StdClass();
			$cuentas_personales->sin_fondos->levantados    = new StdClass();
			$cuentas_personales->sin_fondos->totales       = new StdClass();

			$cuentas_personales->defectos_formales                = new StdClass();
			$cuentas_personales->defectos_formales->sin_abonar    = new StdClass();
			$cuentas_personales->defectos_formales->levantados    = new StdClass();
			$cuentas_personales->defectos_formales->totales       = new StdClass();

			$cuentas_personales->sin_fondos->sin_abonar->cantidad            = new StdClass();
			$cuentas_personales->sin_fondos->sin_abonar->porcentaje_cantidad = new StdClass();
			$cuentas_personales->sin_fondos->sin_abonar->monto               = new StdClass();
			$cuentas_personales->sin_fondos->sin_abonar->porcentaje_monto    = new StdClass();
			
			$cuentas_personales->sin_fondos->levantados->cantidad            = new StdClass();
			$cuentas_personales->sin_fondos->levantados->porcentaje_cantidad = new StdClass();
			$cuentas_personales->sin_fondos->levantados->monto               = new StdClass();
			$cuentas_personales->sin_fondos->levantados->porcentaje_monto    = new StdClass();

			$cuentas_personales->sin_fondos->totales->cantidad            = new StdClass();
			$cuentas_personales->sin_fondos->totales->porcentaje_cantidad = new StdClass();
			$cuentas_personales->sin_fondos->totales->monto               = new StdClass();
			$cuentas_personales->sin_fondos->totales->porcentaje_monto    = new StdClass();
			
			$cuentas_personales->defectos_formales->sin_abonar->cantidad            = new StdClass();
			$cuentas_personales->defectos_formales->sin_abonar->porcentaje_cantidad = new StdClass();
			$cuentas_personales->defectos_formales->sin_abonar->monto               = new StdClass();
			$cuentas_personales->defectos_formales->sin_abonar->porcentaje_monto    = new StdClass();
			
			$cuentas_personales->defectos_formales->levantados->cantidad            = new StdClass();
			$cuentas_personales->defectos_formales->levantados->porcentaje_cantidad = new StdClass();
			$cuentas_personales->defectos_formales->levantados->monto               = new StdClass();
			$cuentas_personales->defectos_formales->levantados->porcentaje_monto    = new StdClass();

			$cuentas_personales->defectos_formales->totales->cantidad            = new StdClass();
			$cuentas_personales->defectos_formales->totales->porcentaje_cantidad = new StdClass();
			$cuentas_personales->defectos_formales->totales->monto               = new StdClass();
			$cuentas_personales->defectos_formales->totales->porcentaje_monto    = new StdClass();
		

		  if (isset($cuadro_cheques_totales['1propio']['SIN LEVANTAR']))
		  {
          	foreach($cuadro_cheques_totales['1propio']['SIN LEVANTAR'] as $key => $value)
          	{
              if ($key == 'SIN FONDOS')
              {
              	$cuentas_personales->sin_fondos->sin_abonar->cantidad            = $value->cantidad ?? 0;
				$cuentas_personales->sin_fondos->sin_abonar->porcentaje_cantidad = ($total_cheques['1propio']['cantidad'] == 0 || $value->cantidad == 0) ? 0 
				                                                                   : round(100/ $total_cheques['1propio']['cantidad'] * $value->cantidad);
				$cuentas_personales->sin_fondos->sin_abonar->monto               = $value->monto ?? 0;
				$cuentas_personales->sin_fondos->sin_abonar->porcentaje_monto    = ($total_cheques['1propio']['monto'] == 0 || $value->monto == 0) ? 0 
				                                                                   : round(100/ $total_cheques['1propio']['monto'] * $value->monto);
              }
          	}
          
          	foreach($cuadro_cheques_totales['1propio']['SIN LEVANTAR'] as $key => $value)
          	{
              if ($key == 'DEFECTOS FORMALES')
              {
              	$cuentas_personales->defectos_formales->sin_abonar->cantidad            = $value->cantidad ?? 0;
				$cuentas_personales->defectos_formales->sin_abonar->porcentaje_cantidad = ($total_cheques['1propio']['cantidad'] == 0 || $value->cantidad == 0 ) ? 0 
																						  : round(100/ $total_cheques['1propio']['cantidad'] * $value->cantidad);
				$cuentas_personales->defectos_formales->sin_abonar->monto               = $value->monto ?? 0;
				$cuentas_personales->defectos_formales->sin_abonar->porcentaje_monto    = ($total_cheques['1propio']['monto'] == 0 || $value->monto == 0) ? 0 
																						  : round(100/ $total_cheques['1propio']['monto'] * $value->monto);
              }
          	}
		  }
		  if (isset($cuadro_cheques_totales['1propio']['LEVANTADOS']))
		  {
          	foreach($cuadro_cheques_totales['1propio']['LEVANTADOS'] as $key => $value)
          	{
              if ($key == 'SIN FONDOS')
              {
              	$cuentas_personales->sin_fondos->levantados->cantidad            = $value->cantidad ?? 0;
				$cuentas_personales->sin_fondos->levantados->porcentaje_cantidad = ($total_cheques['1propio']['cantidad'] == 0 || $value->cantidad == 0) ? 0
				                                                                   : round(100/ $total_cheques['1propio']['cantidad'] * $value->cantidad);
				$cuentas_personales->sin_fondos->levantados->monto               = $value->monto ?? 0;
				$cuentas_personales->sin_fondos->levantados->porcentaje_monto    = ($total_cheques['1propio']['monto'] == 0 || $value->monto == 0) ? 0 
																				   : round(100/ $total_cheques['1propio']['monto'] * $value->monto);
              }
          	}

          	foreach($cuadro_cheques_totales['1propio']['LEVANTADOS'] as $key => $value)
          	{
              if ($key == 'DEFECTOS FORMALES')
              {
              	$cuentas_personales->defectos_formales->levantados->cantidad            = $value->cantidad ?? 0;
				$cuentas_personales->defectos_formales->levantados->porcentaje_cantidad = ($total_cheques['1propio']['cantidad'] == 0 || $value->cantidad == 0) ? 0 
																				          : round(100/ $total_cheques['1propio']['cantidad'] * $value->cantidad);
				$cuentas_personales->defectos_formales->levantados->monto               = $value->monto ?? 0;
				$cuentas_personales->defectos_formales->levantados->porcentaje_monto    = ($total_cheques['1propio']['monto'] == 0 || $value->monto == 0) ? 0 
																						  : round(100/ $total_cheques['1propio']['monto'] * $value->monto);
              }
          	}
		  }
		  if (isset($cuadro_cheques_totales['1propio']['CHEQUES']))
		  {
		  	foreach($cuadro_cheques_totales['1propio']['CHEQUES'] as $key => $value)
		  	{
             if ($key == 'SIN FONDOS')
              {
              	$cuentas_personales->sin_fondos->totales->cantidad            = $value->cantidad ?? 0;
				$cuentas_personales->sin_fondos->totales->porcentaje_cantidad = ($total_cheques['1propio']['cantidad'] == 0 || $value->cantidad == 0) ? 0
				                                                                : round(100/ $total_cheques['1propio']['cantidad'] * $value->cantidad);
				$cuentas_personales->sin_fondos->totales->monto               = $value->monto ?? 0;
				$cuentas_personales->sin_fondos->totales->porcentaje_monto    = ($total_cheques['1propio']['monto'] == 0 || $value->monto == 0) ? 0 
				                                                                : round(100/ $total_cheques['1propio']['monto'] * $value->monto);
              }
		  	}
          	foreach($cuadro_cheques_totales['1propio']['CHEQUES'] as $key => $value)
          	{
              if ($key == 'DEFECTOS FORMALES')
              {
              	$cuentas_personales->defectos_formales->totales->cantidad            = $value->cantidad ?? 0;
				$cuentas_personales->defectos_formales->totales->porcentaje_cantidad = ($total_cheques['1propio']['cantidad'] == 0 || $value->cantidad == 0) ? 0 
				                                                                       : round(100/ $total_cheques['1propio']['cantidad'] * $value->cantidad);
				$cuentas_personales->defectos_formales->totales->monto               = $value->monto ?? 0;
				$cuentas_personales->defectos_formales->totales->porcentaje_monto    = ($total_cheques['1propio']['monto'] == 0 || $value->monto == 0) ? 0 
				                                                                       : round(100/ $total_cheques['1propio']['monto'] * $value->monto);
              }
          	}
          }
          

  		$cantidad_cheques_persona_juridica = new StdClass; 
  		$cantidad_cheques_persona_juridica = $cheques_ordenados['cantidad_empresas'];
		$cheques_persona_juridica = [];  
  	
  	if ($persona_fisica && isset($cheques['empresa']))
  	{
        foreach ($cheques['empresa'] as $key => $cheque) 
        {
         	$cheques_persona_juridica[$key] = new StdClass(); 
         	$cheques_persona_juridica[$key]->nro_cheque = $cheque->nro_cheque;
         	$cheques_persona_juridica[$key]->empresa_cuit = $cheque->Cuit_relacionado;
         	$cheques_persona_juridica[$key]->empresa = $cheque->nombre_persona_relacionado;
         	$cheques_persona_juridica[$key]->fecha_rechazo = $cheque->fecha_rechazo;
         	$cheques_persona_juridica[$key]->fecha_levantamiento = $cheque->fecha_levantamiento;
         	$cheques_persona_juridica[$key]->fecha_pago_multa = $cheque->fecha_pago;
         	$cheques_persona_juridica[$key]->causal = $cheque->causa;
        }
        
  	}

        	$cuentas_personas_juridicas = new StdClass();
			$cuentas_personas_juridicas->sin_fondos                = new StdClass();
			$cuentas_personas_juridicas->sin_fondos->sin_abonar    = new StdClass();
			$cuentas_personas_juridicas->sin_fondos->levantados    = new StdClass();
			$cuentas_personas_juridicas->sin_fondos->totales       = new StdClass();

			$cuentas_personas_juridicas->defectos_formales                = new StdClass();
			$cuentas_personas_juridicas->defectos_formales->sin_abonar    = new StdClass();
			$cuentas_personas_juridicas->defectos_formales->levantados    = new StdClass();
			$cuentas_personas_juridicas->defectos_formales->totales       = new StdClass();

			$cuentas_personas_juridicas->sin_fondos->sin_abonar->cantidad            = new StdClass();
			$cuentas_personas_juridicas->sin_fondos->sin_abonar->porcentaje_cantidad = new StdClass();
			$cuentas_personas_juridicas->sin_fondos->sin_abonar->monto               = new StdClass();
			$cuentas_personas_juridicas->sin_fondos->sin_abonar->porcentaje_monto    = new StdClass();
			
			$cuentas_personas_juridicas->sin_fondos->levantados->cantidad            = new StdClass();
			$cuentas_personas_juridicas->sin_fondos->levantados->porcentaje_cantidad = new StdClass();
			$cuentas_personas_juridicas->sin_fondos->levantados->monto               = new StdClass();
			$cuentas_personas_juridicas->sin_fondos->levantados->porcentaje_monto    = new StdClass();

			$cuentas_personas_juridicas->sin_fondos->totales->cantidad            = new StdClass();
			$cuentas_personas_juridicas->sin_fondos->totales->porcentaje_cantidad = new StdClass();
			$cuentas_personas_juridicas->sin_fondos->totales->monto               = new StdClass();
			$cuentas_personas_juridicas->sin_fondos->totales->porcentaje_monto    = new StdClass();
			
			$cuentas_personas_juridicas->defectos_formales->sin_abonar->cantidad            = new StdClass();
			$cuentas_personas_juridicas->defectos_formales->sin_abonar->porcentaje_cantidad = new StdClass();
			$cuentas_personas_juridicas->defectos_formales->sin_abonar->monto               = new StdClass();
			$cuentas_personas_juridicas->defectos_formales->sin_abonar->porcentaje_monto    = new StdClass();
			
			$cuentas_personas_juridicas->defectos_formales->levantados->cantidad            = new StdClass();
			$cuentas_personas_juridicas->defectos_formales->levantados->porcentaje_cantidad = new StdClass();
			$cuentas_personas_juridicas->defectos_formales->levantados->monto               = new StdClass();
			$cuentas_personas_juridicas->defectos_formales->levantados->porcentaje_monto    = new StdClass();

			$cuentas_personas_juridicas->defectos_formales->totales->cantidad            = new StdClass();
			$cuentas_personas_juridicas->defectos_formales->totales->porcentaje_cantidad = new StdClass();
			$cuentas_personas_juridicas->defectos_formales->totales->monto               = new StdClass();
			$cuentas_personas_juridicas->defectos_formales->totales->porcentaje_monto    = new StdClass();
		

if ($persona_fisica)
{
		  if (isset($cuadro_cheques_totales['2empresa']['SIN LEVANTAR']))
		  {
          	foreach($cuadro_cheques_totales['2empresa']['SIN LEVANTAR'] as $key => $value)
          	{
              if ($key == 'SIN FONDOS')
              {
              	$cuentas_personas_juridicas->sin_fondos->sin_abonar->cantidad            = $value->cantidad ?? 0;
				$cuentas_personas_juridicas->sin_fondos->sin_abonar->porcentaje_cantidad = ($total_cheques['2empresa']['cantidad'] == 0 || $value->cantidad == 0) ? 0
				                                                                           : round(100/ $total_cheques['2empresa']['cantidad'] * $value->cantidad);
				$cuentas_personas_juridicas->sin_fondos->sin_abonar->monto               = $value->monto ?? 0;
				$cuentas_personas_juridicas->sin_fondos->sin_abonar->porcentaje_monto    = ($total_cheques['2empresa']['monto'] == 0 || $value->monto == 0) ? 0 
				                                                                           : round(100/ $total_cheques['2empresa']['monto'] * $value->monto);
              }
          	}
          	foreach($cuadro_cheques_totales['2empresa']['SIN LEVANTAR'] as $key => $value)
          	{
              if ($key == 'DEFECTOS FORMALES')
              {
              	$cuentas_personas_juridicas->defectos_formales->sin_abonar->cantidad            = $value->cantidad ?? 0;
				$cuentas_personas_juridicas->defectos_formales->sin_abonar->porcentaje_cantidad = ($total_cheques['2empresa']['cantidad']==0 || $value->cantidad==0) ? 0
				                                                                                  : round(100/ $total_cheques['2empresa']['cantidad'] * $value->cantidad);
				$cuentas_personas_juridicas->defectos_formales->sin_abonar->monto               = $value->monto ?? 0;
				$cuentas_personas_juridicas->defectos_formales->sin_abonar->porcentaje_monto    = ($total_cheques['2empresa']['monto'] == 0 || $value->monto == 0) ? 0
				                                                                                  : round(100/ $total_cheques['2empresa']['monto'] * $value->monto);
              }
          	}
		  }
		  if (isset($cuadro_cheques_totales['2empresa']['LEVANTADOS']))
		  {
          	foreach($cuadro_cheques_totales['2empresa']['LEVANTADOS'] as $key => $value)
          	{
              if ($key == 'SIN FONDOS')
              {
              	$cuentas_personas_juridicas->sin_fondos->levantados->cantidad            = $value->cantidad ?? 0;
				$cuentas_personas_juridicas->sin_fondos->levantados->porcentaje_cantidad = ($total_cheques['2empresa']['cantidad'] == 0 || $value->cantidad == 0) ? 0 
                                                                                           : round(100/ $total_cheques['2empresa']['cantidad'] * $value->cantidad);
				$cuentas_personas_juridicas->sin_fondos->levantados->monto               = $value->monto ?? 0;
				$cuentas_personas_juridicas->sin_fondos->levantados->porcentaje_monto    = ($total_cheques['2empresa']['monto'] == 0 || $value->monto == 0) ? 0 
				                                                                           : round(100/ $total_cheques['2empresa']['monto'] * $value->monto);
              }
	        }
          	foreach($cuadro_cheques_totales['2empresa']['LEVANTADOS'] as $key => $value)
          	{
              if ($key == 'DEFECTOS FORMALES')
              {
              	$cuentas_personas_juridicas->defectos_formales->levantados->cantidad            = $value->cantidad ?? 0;
				$cuentas_personas_juridicas->defectos_formales->levantados->porcentaje_cantidad = ($total_cheques['2empresa']['cantidad']==0 || $value->cantidad==0) ? 0
				                                                                                  : round(100/ $total_cheques['2empresa']['cantidad'] * $value->cantidad);
				$cuentas_personas_juridicas->defectos_formales->levantados->monto               = $value->monto ?? 0;
				$cuentas_personas_juridicas->defectos_formales->levantados->porcentaje_monto    = ($total_cheques['2empresa']['monto']==0 || $value->monto==0) ? 0
				                                                                                  : round(100/ $total_cheques['2empresa']['monto'] * $value->monto);
              }
          	}
          }
		  if (isset($cuadro_cheques_totales['2empresa']['CHEQUES']))
		  {
		  	foreach($cuadro_cheques_totales['2empresa']['CHEQUES'] as $key => $value)
		  	{
             if ($key == 'SIN FONDOS')
              {
              	$cuentas_personas_juridicas->sin_fondos->totales->cantidad            = $value->cantidad;
				$cuentas_personas_juridicas->sin_fondos->totales->porcentaje_cantidad = ($total_cheques['2empresa']['cantidad']==0 || $value->cantidad==0) ? 0 
				 	                                                                    : round(100/ $total_cheques['2empresa']['cantidad'] * $value->cantidad);
				$cuentas_personas_juridicas->sin_fondos->totales->monto               = $value->monto;
				$cuentas_personas_juridicas->sin_fondos->totales->porcentaje_monto    = ($total_cheques['2empresa']['monto']==0 || $value->monto==0) ? 0
				                                                                        : round(100/ $total_cheques['2empresa']['monto'] * $value->monto);
              }
		  	}
          	foreach($cuadro_cheques_totales['2empresa']['CHEQUES'] as $key => $value)
          	{
              if ($key == 'DEFECTOS FORMALES')
              {
              	$cuentas_personas_juridicas->defectos_formales->totales->cantidad            = $value->cantidad;
				$cuentas_personas_juridicas->defectos_formales->totales->porcentaje_cantidad = ($total_cheques['2empresa']['cantidad']==0 || $value->cantidad==0) ? 0
				                                                                               : round(100/ $total_cheques['2empresa']['cantidad'] * $value->cantidad);
				$cuentas_personas_juridicas->defectos_formales->totales->monto               = $value->monto;
				$cuentas_personas_juridicas->defectos_formales->totales->porcentaje_monto    = ($total_cheques['2empresa']['monto']==0 || $value->monto==0) ? 0 
																						       : round(100/ $total_cheques['2empresa']['monto'] * $value->monto);
              }
          	}
          }
	}
		//$persona->cantidad_cheques = $cantidad_cheques; 

// Persona Juridica
		$persona->persona_juridica = new StdClass(); 
		$persona->persona_fisica = new StdClass(); 
		if (!$persona_fisica)
		{
			$persona->persona_juridica->cantidad_cheques = $cantidad_cheques_empresa; 
			$persona->persona_juridica->detalle_cheques  = $cheques_a_nombre_empresa;
		}
		else 
		{
// Persona Fisica
		$persona->persona_fisica->cantidad_cheques_cuentas_propias = $cantidad_cheques_propios;
		$persona->persona_fisica->detalle_cheques_cuentas_propias = $cheques_propios; 
		$persona->persona_fisica->cantidad_cheques_cuentas_persona_juridica = $cantidad_cheques_persona_juridica; 
		$persona->persona_fisica->cheques_cuentas_persona_juridica = $cheques_persona_juridica; 
		}


		// Cuadros resumen
		if ($con_resumen == 'S')
		{
			if (!$persona_fisica)
			{
				$persona->persona_juridica->resumen_cheques = [];
				if ($cantidad_cheques_empresa > 0)
				{
					$persona->persona_juridica->resumen_cheques = $cuentas_personales;
				}
			}
			else 
			{
				$persona->persona_fisica->resumen_cheques_cuentas_propias  = [];
				$persona->persona_fisica->resumen_cheques_cuentas_persona_juridica  = [];
				if ($cantidad_cheques_propios > 0)
				{
					$persona->persona_fisica->resumen_cheques_cuentas_propias      = $cuentas_personales;
				}
				if ($cantidad_cheques_persona_juridica > 0)
				{
					$persona->persona_fisica->resumen_cheques_cuentas_persona_juridica  = $cuentas_personas_juridicas;
				}
			}
		}


		$vinculados_segun_bcra = SQLConnection::backendStoreProcedure('obtener_vinculados_segun_BCRA', array($cuit));
		$persona->vinculados_segun_bcra = [];
        foreach ($vinculados_segun_bcra as $key => $value) 
        {
	        if( $idioma == 'SPA' ){
				$persona->vinculados_segun_bcra[$key] = new stdClass();
				$persona->vinculados_segun_bcra[$key]->nombre_persona_firmante     = $value->nombre_persona_firmante;
				$persona->vinculados_segun_bcra[$key]->cuit_firmante               = $value->cuit_firmante;
				$persona->vinculados_segun_bcra[$key]->fecha_relacion  			   = $value->fecha_relacion;
			} elseif( $idioma == 'ENG' ){
				// FALTA TRADUCIR 
				$persona->representatives_with_banking_system[$key] = new stdClass();
				$persona->representatives_with_banking_system[$key]->nombre_persona_firmante     = $value->nombre_persona_firmante;
				$persona->representatives_with_banking_system[$key]->cuit_firmante               = $value->cuit_firmante;
				$persona->representatives_with_banking_system[$key]->date                        = $value->fecha_relacion;
			}
		}

	

		return json_encode($persona);


	}

	public static 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;
    }




	/* Seccion ScoreIC */
	/*
	public static function ICScoreIC($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
		
		if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}


		$score = $respuesta->score;
		if( $idioma == 'SPA' ){
			if($configuracion->score_ic  == true){
				$persona->score = new stdClass();
				$persona->score->valor = $score;
			}
		} elseif( $idioma == 'ENG' ){
			if($configuracion->score_ic  == true){
				$persona->score = new stdClass();
				$persona->score->value = $score;
			}
		}
	}*/

	/* Seccion Comex */
	// FALTA TRADUCCION 

	public static function ICComex($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
		
		if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
	  	} elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
		}

		/*
		if( $idioma == 'SPA' ){
			$persona->comex = new stdClass();
		} elseif( $idioma == 'ENG' ){
			$persona->comex = new stdClass();
		}

		$impo     =  SQLConnection::backendStoreProcedure('obtener_comex', array($cuit),'select');
		$pais     =  SQLConnection::backendStoreProcedure('obtener_comex_pais', array($cuit),'select');
		$rubros   =  SQLConnection::backendStoreProcedure('obtener_comex_rubros', array($cuit),'select');
		$totales  =  SQLConnection::backendStoreProcedure('obtener_comex_totales', array($cuit),'selectOne');
		if( $idioma == 'SPA' ){
			$persona->comex->importaciones = [];
			if(!empty($impo)){
			foreach ($impo as $key => $value) {
				$persona->comex->importaciones[$key] = new StdClass();
				$persona->comex->importaciones[$key]->fecha = $value->date;
				$persona->comex->importaciones[$key]->consumo = $value->consumo;
				$persona->comex->importaciones[$key]->deposito = $value->deposito;
				$persona->comex->importaciones[$key]->zonafranca = $value->zonafranca;
				$persona->comex->importaciones[$key]->temporal = $value->temporal;
				$persona->comex->importaciones[$key]->total = $value->total;
			}
			}
		} elseif( $idioma == 'ENG' ){
			// FALTA TRADUCIR 
			$persona->comex->imports = [];
			if(!empty($impo)){
			foreach ($impo as $key => $value) {
				$persona->comex->imports[$key] = new StdClass();
				$persona->comex->imports[$key]->fecha = $value->date;
				$persona->comex->imports[$key]->consumo = $value->consumo;
				$persona->comex->imports[$key]->deposito = $value->deposito;
				$persona->comex->imports[$key]->zonafranca = $value->zonafranca;
				$persona->comex->imports[$key]->temporal = $value->temporal;
				$persona->comex->imports[$key]->total = $value->total;
			}
			}
		}
		if(!empty($pais)){
		  foreach ($pais as $key => $value) {
		   $persona->comex->pais[$key] = new StdClass();
		   $persona->comex->pais[$key]->tipo_operacion  = $value->tipo_operacion;
		   $persona->comex->pais[$key]->fob             = $value->fob;
		   // $persona->comex->pais[$key]->nombre             = $value->nombre; // estaba en www2
		  }
		}
		if(!empty($rubros)){

		  foreach ($rubros as $key => $value) {
		   $persona->comex->rubros[$key] = new StdClass();
		   $persona->comex->rubros[$key]->tipo_operacion  = $value->tipo_operacion;
		   $persona->comex->rubros[$key]->descripcion     = $value->descripcion;
		   $persona->comex->rubros[$key]->fob             = $value->fob;
		   $persona->comex->rubros[$key]->posicion        = $value->posicion;
		  }
		}
		if(!empty($totales) && ($totales->total_impo !== NULL || $totales->total_expo !== NULL)){
			if( $idioma == 'SPA' ){
				$persona->comex->total = new StdClass();
				$persona->comex->total->total_impo  = $totales->total_impo;
				$persona->comex->total->total_expo  = $totales->total_expo;
			}elseif( $idioma == 'ENG' ){
				$persona->comex->total = new StdClass();
				$persona->comex->total->total_imports  = $totales->total_impo;
				$persona->comex->total->total_exports  = $totales->total_expo;
			}
		}
		*/
		$meses = 24;
		$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);
		$fisica_juridica    = Misc::tipoPersona($cuit); 
		$tipo_persona       = $fisica_juridica;

		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     = array();
			$total_temporal    = array();  
			$total_deposito    = array();  
			$total_zonafranca = array();  
			$total_totales     = array(); 
			foreach($comex_impo as $key=>$impo){
				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);
				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($graf->total != 0){
							$number++;
							$comex_grafico_impo[$number] = $impo;

						}else{
							$comex_grafico_impo[$number] = $impo;
							$number++;
						}
					}
				}
			}

			$total_consumo    = array_sum($total_consumo);
			$total_temporal   = array_sum($total_temporal);
			$total_deposito   = array_sum($total_deposito);
			$total_zonafranca = array_sum($total_zonafranca);
			$total_totales    = array_sum($total_totales);
		}
		$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;
		}

 		$persona->periodo = 'ultimos ' . $meses . ' meses'; 
 		$persona->card_importaciones = new stdClass(); 
 		$persona->card_exportaciones = new stdClass(); 
 		if((isset($comex_totales->total_expo) && ($comex_totales->total_expo > 0)) or ((isset($comex_totales->total_impo) && ($comex_totales->total_impo > 0))))
 		{
            $persona->card_importaciones->total_usd   = round($comex_totales->total_impo);
            $persona->card_importaciones->total_format  = 'USD ' . number_format($comex_totales->total_impo,0,'.',' '); 

            $persona->card_exportaciones->total_usd   = round($comex_totales->total_expo);
            $persona->card_exportaciones->total_format   = 'USD ' . number_format($comex_totales->total_expo,0,'.',' '); 
 		}

// IMPORTACIONES 
    	$persona->importaciones = []; 
        foreach($comex_impo as $key => $info)
        {
	        $persona->importaciones[$key] = new StdClass();
	        $persona->importaciones[$key]->periodo = $info->mes . '/' . $info->anio;
	        $persona->importaciones[$key]->consumo = round($info->consumo);
	        $persona->importaciones[$key]->temporal = round($info->temporal);
	        $persona->importaciones[$key]->deposito = round($info->deposito);
	        $persona->importaciones[$key]->zonafranca = round($info->zonafranca);
	        $persona->importaciones[$key]->total = round($info->total);
        }
       

  // Importaciones por pais

        $persona->importaciones_por_pais = [];
        foreach($comex_pais_impo as $key => $expo)
        {
          	$persona->importaciones_por_pais[$key] = new StdClass();
          	$persona->importaciones_por_pais[$key]->pais = $expo->nombre ?? '';
          	$persona->importaciones_por_pais[$key]->porcentaje = '';
          	if($expo->nombre != 'Totales' && $expo->fob > 0)
          	{
          		$persona->importaciones_por_pais[$key]->porcentaje = ($total_pais_impo==0) ? 0 : number_format(($expo->fob * 100) / $total_pais_impo,2);
          	}
          	$persona->importaciones_por_pais[$key]->fob_total = round($expo->fob);
        }
         
            
  // Rubros importaciones 
        $persona->importaciones_por_rubro = [];

        foreach($comex_rubro_impo as $key => $expo)
        {
          	$persona->importaciones_por_rubro[$key] = new StdClass();
          	$persona->importaciones_por_rubro[$key]->nombre = $expo->descripcion ?? '';
          	$persona->importaciones_por_rubro[$key]->posicion = $expo->posicion ?? '';
          	$persona->importaciones_por_rubro[$key]->porcentaje = '';
          	if($expo->descripcion != 'Totales' && $expo->fob > 0)
          	{
          		$persona->importaciones_por_rubro[$key]->porcentaje = ($total_rubro_impo == 0) ? 0 : number_format(($expo->fob * 100) / $total_rubro_impo,2);
          	}
          	$persona->importaciones_por_rubro[$key]->fob_total = round($expo->fob);

        }


  // EXPORTACIONES 
  // Exportaciones por pais
         $persona->exportaciones_por_pais = [];
        foreach($comex_pais_expo as $key => $expo)
        {
          	$persona->exportaciones_por_pais[$key] = new StdClass();
          	$persona->exportaciones_por_pais[$key]->pais = $expo->nombre ?? '';
          	$persona->exportaciones_por_pais[$key]->porcentaje = '';
          	if($expo->nombre != 'Totales' && $expo->fob > 0)
          	{
          		$persona->exportaciones_por_pais[$key]->porcentaje = ($total_pais_expo==0) ? 0 : number_format(($expo->fob * 100) / $total_pais_expo,2);
          	}
          	$persona->exportaciones_por_pais[$key]->fob_total = round($expo->fob);

        }

  // Rubros exportaciones 
        $persona->exportaciones_por_rubro = [];

        foreach($comex_rubro_expo as $key => $expo)
        {
          	$persona->exportaciones_por_rubro[$key] = new StdClass();
          	$persona->exportaciones_por_rubro[$key]->nombre = $expo->descripcion ?? '';
          	$persona->exportaciones_por_rubro[$key]->posicion = $expo->posicion ?? '';
          	$persona->exportaciones_por_rubro[$key]->porcentaje = '';
          	if($expo->descripcion != 'Totales' && $expo->fob > 0)
          	{
          		$persona->exportaciones_por_rubro[$key]->porcentaje = ($total_rubro_expo == 0) ? 0 : number_format(($expo->fob * 100) / $total_rubro_expo,2);
          	}
          	$persona->exportaciones_por_rubro[$key]->fob_total = round($expo->fob);

        }

	return json_encode($persona);

	}

/* Secciones Legales */
	public static function ICLegales($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma='',$cantidad=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
		if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		if(!$cantidad){
		  	$cantidad = Request::input('cantidad') ?? 500;
		  	if (!is_numeric($cantidad)) { $cantidad = 500; }
		}
		// Por defualt se van a mostrar un maximo de 500 juicios por demandado y 500 por actor. 
		// Si se manda como parametro mostrar_todos_los_juicios = true, entonces mostrara todo.
		$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;
		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' ){
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
			$persona->comentario = '';
			if (!$mostrar_todos_los_juicios) {
		  		$persona->comentario = ' Se muestra un máximo de ' . $cantidad . ' registros.';
		  }
	  } elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
			$persona->comment = '';
			if (!$mostrar_todos_los_juicios) {
		  		$persona->comment = 'A maximum of ' . $cantidad . ' records are displayed.';
		  }
		}

		$actor      = []; 
		$demandados = [];
		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));
		}

		$otros_juicios_comerciales  = [];
		$concursos_quiebras         = [];
		$pedidos_quiebra            = [];

		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;
			}
		  }
		}
	  	$remates = [];
	  	$cuit_enmascarado = $cuit; 
	  	$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);
		$dni = '';
		$fisica_juridica = Misc::tipoPersona($cuit); 
		$persona_fisica = ($fisica_juridica == 'F') ? true : false;
		if($persona_fisica){
		  $dni = (int)substr($cuit, 2,-1);
		}
	  	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( $idioma == 'SPA' ){
			$persona->como_demandado = new StdClass();
			$persona->como_demandado->concursos_quiebras  = [];
			foreach ($concursos_quiebras as $key => $value) {
				$persona->como_demandado->concursos_quiebras[$key] = new StdClass();
				$persona->como_demandado->concursos_quiebras[$key]->tipo          = $value->nombre_causa ?? ''; 
				$persona->como_demandado->concursos_quiebras[$key]->fecha         = $value->fecha_causa_dmy ?? '';
				$persona->como_demandado->concursos_quiebras[$key]->radicacion    = $value->radicacion ?? '';
				$persona->como_demandado->concursos_quiebras[$key]->juzgado       = $value->juzgado ?? '';
				$persona->como_demandado->concursos_quiebras[$key]->secretaria    = $value->secretaria ?? '';
				$persona->como_demandado->concursos_quiebras[$key]->localidad     = $value->localidad ?? '';
				$persona->como_demandado->concursos_quiebras[$key]->cuit_otra_parte   = $value->cuit_otra_parte ?? '';
				$persona->como_demandado->concursos_quiebras[$key]->nombre_otra_parte = $value->nombre_otra_parte ?? ''; 
				$persona->como_demandado->concursos_quiebras[$key]->observaciones = $value->observaciones ?? ''; 
			}

			$persona->como_demandado->remates  = [];
			foreach($remates as $remate)
			{
				$persona->como_demandado->remates[$key] = new StdClass();
				$persona->como_demandado->remates[$key]->caratula   = $remate->tipo ?? '';
				$persona->como_demandado->remates[$key]->fecha      = $remate->fecha ?? '';
				$persona->como_demandado->remates[$key]->juzgado    = $remate->tipo_juzgado ?? '' + $remate->numero_juzgado ?? '';
				$persona->como_demandado->remates[$key]->secretaria = $remate->numero_secretaria ?? '';
				$persona->como_demandado->remates[$key]->localidad  = $remate->localidad ?? '';
				$persona->como_demandado->remates[$key]->expediente = $remate->numero_expediente ?? '';
				$persona->como_demandado->remates[$key]->actor      = $remate->actor ?? '';

			}

			$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos  = [];
			foreach($pedidos_quiebra as $key => $juicio)
				{
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key] = new StdClass(); 
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->tipo       = $juicio->nombre_causa ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->fecha      = $juicio->fecha_causa_dmy ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->radicacion = $juicio->radicacion ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->juzgado    = $juicio->juzgado ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->secretaria = $juicio->secretaria ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->localidad  = $juicio->localidad ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->cuit_otra_parte   = $juicio->cuit_otra_parte ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->nombre_otra_parte = $juicio->nombre_otra_parte ?? ''; 
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->observaciones = $juicio->observaciones ?? '' .  $juicio->obs ?? '' ;
				}

			$persona->como_demandado->otros_juicios  = [];
			foreach($otros_juicios_comerciales as $key => $juicio)
				{
				$persona->como_demandado->otros_juicios[$key] = new StdClass();
				$persona->como_demandado->otros_juicios[$key]->tipo       = $juicio->nombre_causa ?? '';
				$persona->como_demandado->otros_juicios[$key]->fecha      = $juicio->fecha_causa_dmy ?? '';
				$persona->como_demandado->otros_juicios[$key]->radicacion = $juicio->radicacion ?? '';
				$persona->como_demandado->otros_juicios[$key]->juzgado    = $juicio->juzgado ?? '';
				$persona->como_demandado->otros_juicios[$key]->secretaria = $juicio->secretaria ?? '';
				$persona->como_demandado->otros_juicios[$key]->localidad = $juicio->localidad ?? '';
				$persona->como_demandado->otros_juicios[$key]->cuit_otra_parte   = $juicio->cuit_otra_parte ?? '';
				$persona->como_demandado->otros_juicios[$key]->nombre_otra_parte = $juicio->nombre_otra_parte ?? ''; 
				$persona->como_demandado->otros_juicios[$key]->observaciones = $juicio->observaciones ?? '' .  $juicio->obs ?? '' ;
				}

			$persona->como_actor = []; 
			foreach ($actor as $key => $juicio) {
				$persona->como_actor[$key] = new StdClass(); 
				$persona->como_actor[$key]->tipo       = $juicio->nombre_causa ?? '';
				$persona->como_actor[$key]->fecha      = $juicio->fecha_causa_dmy ?? '';
				$persona->como_actor[$key]->radicacion = $juicio->radicacion ?? '';
				$persona->como_actor[$key]->juzgado    = $juicio->juzgado ?? '';
				$persona->como_actor[$key]->secretaria = $juicio->secretaria ?? '';
				$persona->como_actor[$key]->localidad    = $juicio->localidad ?? '';
				$persona->como_actor[$key]->cuit_otra_parte   = $juicio->cuit_otra_parte ?? '';
				$persona->como_actor[$key]->nombre_otra_parte = $juicio->nombre_otra_parte ?? ''; 
				$persona->como_actor[$key]->observaciones = $juicio->observaciones ?? '' .  $juicio->obs ?? '' ;
			}

		} elseif( $idioma == 'ENG' ){
			$persona->como_demandado = new StdClass();
			
			$persona->como_demandado->concursos_quiebras  = [];
			foreach ($concursos_quiebras as $key => $value) {
				$persona->como_demandado->concursos_quiebras[$key] = new StdClass();
				$persona->como_demandado->concursos_quiebras[$key]->tipo          = $value->nombre_causa ?? ''; 
				$persona->como_demandado->concursos_quiebras[$key]->fecha         = $value->fecha_causa_dmy ?? '';
				$persona->como_demandado->concursos_quiebras[$key]->radicacion    = $value->radicacion ?? '';
				$persona->como_demandado->concursos_quiebras[$key]->juzgado       = $value->juzgado ?? '';
				$persona->como_demandado->concursos_quiebras[$key]->secretaria    = $value->secretaria ?? '';
				$persona->como_demandado->concursos_quiebras[$key]->localidad     = $value->localidad ?? '';
				$persona->como_demandado->concursos_quiebras[$key]->cuit_otra_parte   = $value->cuit_otra_parte ?? '';
				$persona->como_demandado->concursos_quiebras[$key]->nombre_otra_parte = $value->nombre_otra_parte ?? ''; 
				$persona->como_demandado->concursos_quiebras[$key]->observaciones = $value->observaciones ?? ''; 
			}

			$persona->como_demandado->remates  = [];
			foreach($remates as $key => $remate)
			{
				$persona->como_demandado->remates[$key] = new StdClass(); 
				$persona->como_demandado->remates[$key]->caratula   = $remate->tipo ?? '';
				$persona->como_demandado->remates[$key]->fecha      = $remate->fecha ?? '';
				$persona->como_demandado->remates[$key]->juzgado    = $remate->tipo_juzgado ?? '' + $remate->numero_juzgado ?? '';
				$persona->como_demandado->remates[$key]->secretaria = $remate->numero_secretaria ?? '';
				$persona->como_demandado->remates[$key]->localidad  = $remate->localidad ?? '';
				$persona->como_demandado->remates[$key]->expediente = $remate->numero_expediente ?? '';
				$persona->como_demandado->remates[$key]->actor      = $remate->actor ?? '';

			}

			$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos  = [];
			foreach($pedidos_quiebra as $key => $juicio)
				{
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key] = new StdClass(); 
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->tipo       = $juicio->nombre_causa ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->fecha      = $juicio->fecha_causa_dmy ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->radicacion = $juicio->radicacion ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->juzgado    = $juicio->juzgado ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->secretaria = $juicio->secretaria ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->localidad  = $juicio->localidad ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->cuit_otra_parte   = $juicio->cuit_otra_parte ?? '';
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->nombre_otra_parte = $juicio->nombre_otra_parte ?? ''; 
				$persona->como_demandado->pedidos_quiebra_y_juicios_ejecutivos[$key]->observaciones = $juicio->observaciones ?? '' .  $juicio->obs ?? '' ;
				}

			$persona->como_demandado->otros_juicios  = [];
			foreach($otros_juicios_comerciales as $key => $juicio)
				{
				$persona->como_demandado->otros_juicios[$key] = new StdClass(); 
				$persona->como_demandado->otros_juicios[$key]->tipo       = $juicio->nombre_causa ?? '';
				$persona->como_demandado->otros_juicios[$key]->fecha      = $juicio->fecha_causa_dmy ?? '';
				$persona->como_demandado->otros_juicios[$key]->radicacion = $juicio->radicacion ?? '';
				$persona->como_demandado->otros_juicios[$key]->juzgado    = $juicio->juzgado ?? '';
				$persona->como_demandado->otros_juicios[$key]->secretaria = $juicio->secretaria ?? '';
				$persona->como_demandado->otros_juicios[$key]->localidad = $juicio->localidad ?? '';
				$persona->como_demandado->otros_juicios[$key]->cuit_otra_parte   = $juicio->cuit_otra_parte ?? '';
				$persona->como_demandado->otros_juicios[$key]->nombre_otra_parte = $juicio->nombre_otra_parte ?? ''; 
				$persona->como_demandado->otros_juicios[$key]->observaciones = $juicio->observaciones ?? '' .   $juicio->obs ?? '' ;
				}

			$persona->como_actor = []; 
			foreach ($actor as $key => $juicio) {
				$persona->como_actor[$key] = new StdClass(); 
				$persona->como_actor[$key]->tipo       = $juicio->nombre_causa ?? '';
				$persona->como_actor[$key]->fecha      = $juicio->fecha_causa_dmy ?? '';
				$persona->como_actor[$key]->radicacion = $juicio->radicacion ?? '';
				$persona->como_actor[$key]->juzgado    = $juicio->juzgado ?? '';
				$persona->como_actor[$key]->secretaria = $juicio->secretaria ?? '';
				$persona->como_actor[$key]->localidad    = $juicio->localidad ?? '';
				$persona->como_actor[$key]->cuit_otra_parte   = $juicio->cuit_otra_parte ?? '';
				$persona->como_actor[$key]->nombre_otra_parte = $juicio->nombre_otra_parte ?? ''; 
				$persona->como_actor[$key]->observaciones = $juicio->observaciones ?? '' .  $juicio->obs ?? '' ;
			}


			
		}
		return json_encode($persona);
  }



/* Secciones Legales Homonimos */
	public static function ICLegalesHomonimos($cuit='', $id_padron='', $razon_social='', $apikey='', $idioma='',$cantidad=''){
		if(!$cuit){
		    $cuit = Request::input('cuit');
		}
		if(!$idioma){
			$idioma = strtoupper(Request::input('idioma')) ?? 'SPA';
		}
		if(!$apikey){
		  	$apikey = Request::input('apikey');
		}
		if(!$id_padron && !Request::input('id_padron')){
			$idp       = SQLConnection::obtenerIdPadron($cuit);
			$id_padron = $idp->id_padron;
		}
		if(!$razon_social && !Request::input('razon_social')){
			$razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona ?? '';
		}

		if(!$cantidad){
		  	$cantidad = Request::input('cantidad') ?? 500;
		  	if (!is_numeric($cantidad)) { $cantidad = 500; }
		}
		// Por defualt se van a mostrar un maximo de 500 juicios por demandado y 500 por actor. 
		// Si se manda como parametro mostrar_todos_los_juicios = true, entonces mostrara todo.
		$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;

		}

		$persona   = new stdClass();
		if( $idioma == 'SPA' )
		{
			$persona->identificacion    = $cuit;
			$persona->razon_social      = $razon_social;
			$persona->observacion = 'Información no vinculada a CUIT, DNI u otro identificador único de personas físicas o jurídicas. FIDELITAS exhibe estos datos sólo a efectos ilustrativos e informativos, ya que puede estar siendo referida a HOMÓNIMOS, y su interpretación queda bajo la exclusiva responsabilidad de cada USUARIO.';
			$persona->comentario = '';
			if (!$mostrar_todos_los_juicios) {
		  		$persona->comentario = ' Se muestra un máximo de ' . $cantidad . ' registros.';
		  }
	  } elseif( $idioma == 'ENG' ){
			$persona->taxid      = $cuit;
			$persona->legal_name = $razon_social;
			$persona->observation = 'Información no vinculada a CUIT, DNI u otro identificador único de personas físicas o jurídicas. FIDELITAS exhibe estos datos sólo a efectos ilustrativos e informativos, ya que puede estar siendo referida a HOMÓNIMOS, y su interpretación queda bajo la exclusiva responsabilidad de cada USUARIO.';
			$persona->comment = '';
			if (!$mostrar_todos_los_juicios) {
		  		$persona->comment = 'A maximum of ' . $cantidad . ' records are displayed.';
		  }
		}

		$sinonimos                  = [];
		$demandado_homonimo         = [];
		$actores_homonimos          = [];
		$fisica_juridica = Misc::tipoPersona($cuit); 
		$persona_fisica = ($fisica_juridica == 'F') ? true : false;

		$resultado_nombres_ant = []; 
		$nombres_anteriores    = []; 

		$razon_social_completa = '';

		if(!$persona_fisica) 
		{
			//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;
			  }
			}
		  
		  $razon_social_legales = Misc::diccionarioSinonimos2020($razon_social);

		  if(!$razon_social_completa) { 
		  	$razon_social_completa = $razon_social_legales; 
			}
		} 
		else {//caso PF
			$razon_social_completa = "\"".$razon_social."\"";
		}


		if (strlen($razon_social_completa) >= 3){
			$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 {

		 	  //$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));

			}
		}

		if( $idioma == 'SPA' ){
			$persona->homonimo_como_demandado  = [];
			foreach ($demandado_homonimo as $key => $juicio) 
			{
				$persona->homonimo_como_demandado[$key] = new StdClass();
				$persona->homonimo_como_demandado[$key]->encontrado_como   = $juicio->demandado ?? '';
				$persona->homonimo_como_demandado[$key]->tipo              = $juicio->nombre_causa ?? $juicio->tipo_de_novedad;
				$persona->homonimo_como_demandado[$key]->fecha             = $juicio->fecha_causa_dmy ?? $juicio->anio;
				$persona->homonimo_como_demandado[$key]->radicacion        = $juicio->radicacion ?? '';
				$persona->homonimo_como_demandado[$key]->juzgado           = $juicio->juzgado ?? '';
				$persona->homonimo_como_demandado[$key]->secretaria        = $juicio->secretaria ?? '';
				$persona->homonimo_como_demandado[$key]->localidad         = $juicio->localidad ?? '';
				$persona->homonimo_como_demandado[$key]->expediente        = $juicio->expediente ?? '';
				$persona->homonimo_como_demandado[$key]->cuit_otra_parte   = $juicio->cuit_otra_parte ?? '';
				$persona->homonimo_como_demandado[$key]->nombre_otra_parte = $juicio->nombre_otra_parte ?? ''; 
				$persona->homonimo_como_demandado[$key]->observaciones     = $juicio->observaciones ?? '';
			}
			$persona->homonimo_como_actor  = [];
			foreach ($actores_homonimos as $key => $juicio) 
			{
				$persona->homonimo_como_actor[$key] = new StdClass();
				$persona->homonimo_como_actor[$key]->encontrado_como   = $juicio->demandado ?? '';
				$persona->homonimo_como_actor[$key]->tipo              = $juicio->nombre_causa ?? $juicio->tipo_de_novedad;
				$persona->homonimo_como_actor[$key]->fecha             = $juicio->fecha_causa_dmy ?? $juicio->anio;
				$persona->homonimo_como_actor[$key]->radicacion        = $juicio->radicacion ?? '';
				$persona->homonimo_como_actor[$key]->juzgado           = $juicio->juzgado ?? '';
				$persona->homonimo_como_actor[$key]->secretaria        = $juicio->secretaria ?? '';
				$persona->homonimo_como_actor[$key]->localidad         = $juicio->localidad ?? '';
				$persona->homonimo_como_actor[$key]->expediente        = $juicio->expediente ?? '';
				$persona->homonimo_como_actor[$key]->cuit_otra_parte   = $juicio->cuit_otra_parte ?? '';
				$persona->homonimo_como_actor[$key]->nombre_otra_parte = $juicio->nombre_otra_parte ?? ''; 
				$persona->homonimo_como_actor[$key]->observaciones     = $juicio->observaciones ?? '';
			}

		} elseif( $idioma == 'ENG' ){
			$persona->homonimo_como_demandado  = [];
			foreach ($demandado_homonimo as $key => $juicio) 
			{
				$persona->homonimo_como_demandado[$key] = new StdClass();
				$persona->homonimo_como_demandado[$key]->encontrado_como   = $juicio->demandado ?? '';
				$persona->homonimo_como_demandado[$key]->tipo              = $juicio->nombre_causa ?? $juicio->tipo_de_novedad;
				$persona->homonimo_como_demandado[$key]->fecha             = $juicio->fecha_causa_dmy ?? $juicio->anio;
				$persona->homonimo_como_demandado[$key]->radicacion        = $juicio->radicacion ?? '';
				$persona->homonimo_como_demandado[$key]->juzgado           = $juicio->juzgado ?? '';
				$persona->homonimo_como_demandado[$key]->secretaria        = $juicio->secretaria ?? '';
				$persona->homonimo_como_demandado[$key]->localidad         = $juicio->localidad ?? '';
				$persona->homonimo_como_demandado[$key]->expediente        = $juicio->expediente ?? '';
				$persona->homonimo_como_demandado[$key]->cuit_otra_parte   = $juicio->cuit_otra_parte ?? '';
				$persona->homonimo_como_demandado[$key]->nombre_otra_parte = $juicio->nombre_otra_parte ?? ''; 
				$persona->homonimo_como_demandado[$key]->observaciones     = $juicio->observaciones ?? '' .  $juicio->obs ?? '' ;
			}
			$persona->homonimo_como_actor  = [];
			foreach ($actores_homonimos as $key => $juicio) 
			{
				$persona->homonimo_como_actor[$key] = new StdClass();
				$persona->homonimo_como_actor[$key]->encontrado_como   = $juicio->demandado ?? '';
				$persona->homonimo_como_actor[$key]->tipo              = $juicio->nombre_causa ?? $juicio->tipo_de_novedad;
				$persona->homonimo_como_actor[$key]->fecha             = $juicio->fecha_causa_dmy ?? $juicio->anio;
				$persona->homonimo_como_actor[$key]->radicacion        = $juicio->radicacion ?? '';
				$persona->homonimo_como_actor[$key]->juzgado           = $juicio->juzgado ?? '';
				$persona->homonimo_como_actor[$key]->secretaria        = $juicio->secretaria ?? '';
				$persona->homonimo_como_actor[$key]->localidad         = $juicio->localidad ?? '';
				$persona->homonimo_como_actor[$key]->expediente        = $juicio->expediente ?? '';
				$persona->homonimo_como_actor[$key]->cuit_otra_parte   = $juicio->cuit_otra_parte ?? '';
				$persona->homonimo_como_actor[$key]->nombre_otra_parte = $juicio->nombre_otra_parte ?? ''; 
				$persona->homonimo_como_actor[$key]->observaciones     = $juicio->observaciones ?? '' .  $juicio->obs ?? '' ;
			}
		}
		return json_encode($persona);
  }



}
 