<?php

namespace App\Http\Controllers;

use App\Custom\SQLConnection; 
use App\Custom\Misc;
use App\Custom\Mailer;
use Request;
use Session;
use DateTime;
use Illuminate\Support\Facades\Input;
use DB;
use stdClass;

class ICNewController extends Controller {

    // ESTA FUNCION DEVUELVE BRIEF INFORME COMERCIAL
    public function obtenerBrief($json=true,$graf_pdf_financiero='',$graf_pdf_empleados='',$graf_pdf_cheques='',$graf_pdf_score='',$graf_pdf_comex ='',$incluye_balance = 1, $cliente_login = 0)
    {
        //--  ARRAY PARA GUARDAR LOS DATOS EN LOS CUALES SE GENERA ALGUN TIPO DE ERROR  --//
        $partes_del_informe = '';
        try {
            $cuit  = Request::input("cuit");
            $user_id = Session::get('usuario')->user_id;
            $razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
            // $partes_del_informe .= "datos_usuario -> Cuit: ".$cuit." - User Id: ".$user_id.'<br>';
            $partes_del_informe .= "<b>DATOS DE USUARIO<br>Cuit: ".$cuit." - User Id: ".$user_id.'</b><br><br>';
            if(isset( Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')])){
                $servicio = SQLConnection::consumirServicio($user_id,$cuit,ENV('ID_INFORME_COMERCIAL'));
            } else if(isset(Session::get('usuario')->cliente[ENV('INFORME_API')])){
                $servicio = SQLConnection::consumirServicio($user_id,$cuit,ENV('INFORME_API'));
            }else {
                $servicio = new \stdClass;
                $servicio->sumar = 0;
            }

            if($servicio->sumar == 1){
                if(isset( Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')])){
                    // SQLConnection::insertarRegistroActividad("INFORME COMERCIAL",$cuit);
                    Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->usuario_consumido++;
                    Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->cliente_consumido++;
                }
            }
            /* Fin 08/10/2020 */ 
            /* 1 es lo que se toma por default, si está en 1, vemos si tenemos algo distinto en la sesion */
            if ($incluye_balance == 1) { 
            $incluye_balance = session::get('incluye_balance') ?? 1; 
            }
            /* vemos si tenemos algo distinto en la sesion */
            if ($cliente_login == 0) { 
            $cliente_login = Session::get('cliente_login') ?? Session::get('usuario')->cliente['client_id']; 
            }

            $idp               = Request::input('idp');
            $cuit              = Request::input("cuit");
            $imagen_fidelitas  = Misc::obtenerImagenFidelitas();
            $afip_respuesta = [];
                
            if(ENV('SERVICIOS_AFIP') == true){
            $afip_respuesta = AFIPController::obtenerPadron_test($cuit); //--> LINEA CON MEJORAS, PARA VOLVER AL ESTADO ANTERIOR DESCOMENTAR LA DE ABAJO Y COMENTAR ESTA.
            //$afip_respuesta = AFIPController::obtenerPadron($cuit); //--> LINEA ORIGINAL
            // $partes_del_informe .= 'obtenerPadron_test: si <br>';
            $partes_del_informe .= '<ul><li>Consulta AFIP --> Si </li>';
            } else {
            // $partes_del_informe .= 'obtenerPadron_test: no <br>';
            $partes_del_informe .= '<ul><li>Consulta AFIP --> No </li>';
            }

            // Agregado 10/07/2018: Si es persona fisica, ve si puede completar datos con Padron Electoral (ultimo domicilio, año de nacimiento)
            $fisica_juridica = Misc::tipoPersona($cuit);
            $p_fisica = ($fisica_juridica == 'F') ? true : false;
            if ($p_fisica){
            $actualiza = SQLConnection::actualizarDatosConPadron($cuit,'0');
            // $partes_del_informe .= 'actualizarDatosConPadron: si <br>';
            $partes_del_informe .= '<li>Persona física --> Si </li>';
            } else {
            // $partes_del_informe .= 'actualizarDatosConPadron: no <br>';
            $partes_del_informe .= '<li>Persona física --> No </li>';
            }
            // Obtener Bancos para calcular si amerita por situación uno y sumar al score
            // Se almacenan en variable de clase para ser reutilizadas en la pestaña de bancos
            $obtener_bancos = SQLConnection::obtenerBancos($cuit);
            // $partes_del_informe .= 'obtenerBancos: si <br>';
            if($obtener_bancos != []){
            $partes_del_informe .= '<li>Cálculo Bancos --> Si, registra '.strval(count($obtener_bancos)).' resultados de la consulta</li>';
            } else {
            $partes_del_informe .= '<li>Cálculo Bancos --> No, registra '.strval(count($obtener_bancos)).' resultados de la consulta</li>';
            }			

            $situacion_1 = Misc::ameritaPorSituacionUno($obtener_bancos);
            // $partes_del_informe .= 'ameritaPorSituacionUno: si <br>';
            if($obtener_bancos != []){
            $partes_del_informe .= '<li>Amerita Score --> Si</li>';
            } else {
            $partes_del_informe .= '<li>Amerita Score --> No</li>';
            }	
                
            $amerita_situacion_1 = $situacion_1['amerita'];
            $cantidad_situacion_1 = $situacion_1['cantidad'];
                
            $link_pdf = env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.pdf';
            $tiene_pdf = file_exists($link_pdf);
            // $partes_del_informe .= 'tiene_pdf: si <br>';
            if(file_exists($link_pdf)){
            $partes_del_informe .= '<li>Pdf AFIP --> Existe </li>';
            } else {
            $partes_del_informe .= '<li>Pdf AFIP --> No existe </li>';
            }

            $card_score                   = [];
            $card_bancos                  = [];
            $card_cheques                 = [];
            $card_domicilios              = [];
            $card_empleados               = [];
            $card_comex                   = [];
            $card_personas_relacionadas   = [];
            $card_sociedades_relacionadas = [];
            $partes_del_informe .= '<li>cards_varios --> si </li>';

            //$p_fisica                     = (substr($cuit,0,1) == 3) ? false : true;
            $fisica_juridica = Misc::tipoPersona($cuit); 
            $p_fisica = ($fisica_juridica == 'F') ? true : false;
            $periodo                      = [];
            $grafico_cheques_ordenados    = [];
            $cheques[]                    =  new \stdClass;
            $env                          = Misc::obtenerColoresEnv();
            $score_ordenado               = [];
            $defuncion                    = [];
            /*CALCULO SCORE inicio*/
            $debug_score                  = '';
            $sesion_externa               = (Session::get('externo')) ? true : false;
            $partes_del_informe .= '<li>config_panel --> si </li>';

            $comex_impo                   = SQLConnection::obtenerComex($cuit);
            // $partes_del_informe .= 'obtenerComex: si <br>';
            if($comex_impo != []){
            $partes_del_informe .= '<li>Servicio de ComEx --> Si tiene</li>';
            } else {
            $partes_del_informe .= '<li>Servicio de ComEx --> No tiene</li>';
            }

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

            /* card 6 empleados inicio*/
            
            if(!$p_fisica){
            $card_fiscales = SQLConnection::obtenerCardFiscales($cuit);
            //$card_fiscales); //error con AKAPOL SA CUIT 30504065207 (12/09/2017) 
            if (is_null($card_fiscales)) {
                $card_fiscales = '';
            } else {
                $card_fiscales->inicio_actividad = Misc::convertirFormatoFecha($card_fiscales->inicio_actividad,'Y-m-d','d/m/Y');
            } 
            } else {
            $card_fiscales = SQLConnection::obtenerCardFiscalesPF($cuit);
            $edad = Misc::obtenerEdadPersonaFisica($cuit);	
            }
            
            $sircreb = SQLConnection::obtenerSircreb($cuit);
            $riesgo_fiscal = 'NO';
            if($sircreb){
            foreach($sircreb as $info){
                $hoy = date('Y-m-d h:i:s');
                if (($hoy > $info->vigencia_desde) && ($hoy < $info->vigencia_hasta)) {
                $riesgo_fiscal='SI';
                }else if($hoy > $info->vigencia_desde){
                $riesgo_fiscal = '--';
                }
            }
            }
            $partes_del_informe .= '<li>card_6_empleados --> si </li>';
            /* card 6 empleados fin*/
            if (!$tiene_pdf && empty($card_fiscales)){
            $observado = true;
            }
            $respuesta_score = '';
            if(strlen($cuit) == 11){
            $respuesta_score  = json_decode(ApiControllerV1::obtenerServicioScore($cuit,$incluye_balance),true);
            // $partes_del_informe .= 'obtenerServicioScore: si <br>';
            $partes_del_informe .= '<li>obtenerServicioScore --> si </li>';

            } else {
            $partes_del_informe .= '<li>obtenerServicioScore --> no </li>';
            }
                
            $resp_constancia  = $respuesta_score['resp_constancia'] ?? '';

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

            } else {
                foreach ($afip_respuesta as $key => $value) {
                if(!is_array($value)) {
                    $afip_ordenado  .= "<strong><br>". $key .":</strong> ". $value ;
                } else {
                    $afip_ordenado .= "<strong><br>" . $key . ":" . "</strong>";
                    foreach ($value as $key2 => $value2) {
                    if(!is_array($value2)) {
                        $afip_ordenado  .= "<strong><br>   ". $key2 .":</strong> ". $value2 ;
                    } else {
                        $afip_ordenado .= "<strong><br>   " . $key2 . ":" . "</strong>";

                        foreach ($value2 as $key3 => $value3) {
                        if(!is_array($value3)) {
                            $afip_ordenado  .= "<strong><br>      ". $key3 .":</strong> ". $value3 ;
                        } else {
                            foreach ($value3 as $key4 => $value4) {
                            if(!is_array($value4)) {
                                $afip_ordenado  .= "<strong><br>      ". $key4 .":</strong> ". $value4 ;
                            } else {
                
                            }
                            }
                        }
                        }
                    }
                    }
                }
                }
            }
            
            if ($afip_ordenado != '') {
                $debug_score .= "<br>---------------<br><strong>RESPUESTA AFIP</strong><br>---------------" .$afip_ordenado;
            }

            }
            $debug_score  .= "<br>---------------<br><strong>RESPUESTA CONSTANCIA CUIT</strong><br>---------------<br><br>" ;
            if(!empty($resp_constancia)){
            $debug_score  .= "RESPUESTA : ".$resp_constancia['response']."<br>ERROR:".$resp_constancia['constancia_error'];
            }
            $partes_del_informe .= '<li>debug_score --> si </li>';
        
            if(!$p_fisica){
            $datos_card_score   = SQLConnection::obtenerCardScore($cuit);
            }else{
            $datos_card_score   = SQLConnection::obtenerCardScorePF($cuit);
            }
            $partes_del_informe .= '<li>obtenerCardScorePF --> si </li>';
            /*CALCULO SCORE fin*/
            /*card 1 inicio */
            $vitalidad = 1;
            $motivo_vitalidad = 1;
            // CALCULO DE EDAD
            $menor_de_edad = 0;
            if ($p_fisica){
            $edad = Misc::obtenerEdadPersonaFisica($cuit);
            //--
            if ( $edad < 18 ){
                $menor_de_edad = 1;
            }
            }
            //
            $cheque_ultimo_rechazo_desde = '';
            if(!$p_fisica && strlen($cuit) == 11){
            $sintomas = SQLConnection::backendStoreProcedure('obtener_sintomas_de_vitalidad', array($cuit), true);
            $cheque_ultimo_rechazo_desde   = SQLConnection::backendStoreProcedure('obtener_no_cheqrech_desde', array($cuit), true);
            $vitalidad = 1;
            if ((!$p_fisica) && isset($sintomas->vitalidad) && $sintomas->vitalidad == 0) {
                $score = 0;
                $vitalidad = 0;
                $motivo_vitalidad = $sintomas->motivo; 
            }
            }
            $card_score['score']= $score;
            $card_score['datos']= $datos_card_score;

            // $partes_del_informe .= 'card_1: si <br>';
            $partes_del_informe .= '<li>Card Score --> Si </li>';
            /*card 1 fin */
        
            /*card 2 inicio */
            $garantias          = SQLConnection::obtenerGarantiasBrief($cuit);
            $financiero         = SQLConnection::obtenerFinancieroBrief($cuit);
            $card_bancos        = SQLConnection::obtenerCardBancos($cuit);
                
            // $partes_del_informe .= 'card_2: si <br>';
            $partes_del_informe .= '<li>Card Financiero --> Si </li>';
            /*card 2 fin */

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

            // $partes_del_informe .= 'card_3: si <br>';
            $partes_del_informe .= '<li>Card Cheques --> Si </li>';
            /* card 3 cheques rechazados fin*/
        
            /* card 4 domicilios inicio*/
            $domicilios = new \stdClass;
            $formales       = SQLConnection::obtenerDomicilios($cuit);
            $domicilios->otros_domicilios = '';
            $domicilios->domicilio_legal  = '';
            $domicilios->domicilio        = '';
            $domicilios->domicilio_fiscal = '';

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

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

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

            $card_domicilios['domicilios'] = $domicilios;
            
            // $partes_del_informe .= 'card_4: si <br>';
            $partes_del_informe .= '<li>Card Domicilio --> Si </li>';
            /* card 4 domicilios fin*/
        
            /* card 5 empleados inicio*/
            $card_empleados = SQLConnection::obtenerEmpleados($cuit);
            // $partes_del_informe .= 'card_5: si <br>';
            $partes_del_informe .= '<li>Card Empleados --> Si </li>';
            /* card 5 empleados fin*/

            /* card 7 empleados inicio*/
            $primero =date('Y');
            $segundo =date('Y')-1;
            $tercero =date('Y')-2;
            $mostrar_grafico_card_comex = false;
            $card_comex[$primero] = SQLConnection::obtenerCardComex($cuit,$primero);
            $card_comex[$segundo] = SQLConnection::obtenerCardComex($cuit,$segundo);
            $card_comex[$tercero] = SQLConnection::obtenerCardComex($cuit,$tercero);
            foreach($card_comex as $comex){
            foreach($comex as $info){
                if(!empty($info) && $info->total_anual != null){
                $mostrar_grafico_card_comex = true;
                }
            }
            }
            // $partes_del_informe .= 'card_7: si <br>';
            $partes_del_informe .= '<li>Card Comex --> Si </li>';
            /* card 7 empleados fin*/
            /* card 8 empleados inicio*/
            $card_personas_relacionadas = SQLConnection::obtenerCardPersonasRelacionadas($cuit);
            // $partes_del_informe .= 'card_8: si <br>';
            $partes_del_informe .= '<li>Card Relacionadas --> Si </li>';
            /* card 8 empleados fin*/
        
            /* card 9 empleados inicio*/
            $tipo_persona = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
            $card_sociedades_relacionadas = SQLConnection::obtenerCardSociedadesRelacionadas($cuit,$tipo_persona);

            // $partes_del_informe .= 'card_9: si <br>';
            $partes_del_informe .= '<li>Card Sociedades --> Si </li>';
            /* card 9 empleados fin*/
            
            /*card 10 Juicios*/
            $razon_social_legales = Misc::diccionarioSinonimos2020($razon_social);
            $cuit_enmascarado = $cuit;

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

            $card_juicios = new \stdClass();
            $card_juicios->concursos_quiebras         = [];
            $card_juicios->pedidos_quiebra            = [];
            $card_juicios->remates                    = SQLConnection::obtenerRemates($cuit,$cuit_enmascarado,$dni);
            $card_juicios->otros_juicios_comerciales  = [];
            $card_juicios->remates = sizeof($card_juicios->remates);

            $resultado_nombres_ant     = []; 
            $razon_social_completa     = '';

            if($p_fisica == false) {
                //P Juridica
                $nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
                if ($nombres_anteriores) {
                    foreach ($nombres_anteriores as $nombre_ant) {
                        $resultado_nombres_ant[] = $nombre_ant->nombre; 
                    }		
                    $resultado_nombres_ant[] = $razon_social;
                }
                
                $sinonimos =  Misc::diccionarioSinonimosTest($resultado_nombres_ant);
                $count_sinonimo = count($sinonimos)-1;

                foreach($sinonimos as $key => $rs) {
                    if (strlen($rs) < 3) {
                        continue; 
                    }

                    if(!($key == $count_sinonimo)){
                        $razon_social_completa .= $rs.'OR';
                    }else{
                        $razon_social_completa .= $rs;
                    }
                }

                if(!$razon_social_completa) {
                    $razon_social_completa = $razon_social_legales;
                }
            } else {//caso PF
                $razon_social_completa = "\"".$razon_social."\"";
            }

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

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

            $nivel_socioeconomico = new \stdClass();
            if($tipo_persona == 'j'){
                if($score > 50){
                    $nivel_socioeconomico = SQLConnection::backendStoreProcedure('obtener_nivel_socioeconomico_2021', array($cuit,$tipo_persona),true);
                        
                } else {
                    $nivel_socioeconomico->error = 'El Nivel del rango de ventas de la compañia no puede ser calculado';
                }
            } else {
                $nivel_socioeconomico = SQLConnection::backendStoreProcedure('obtener_nivel_socioeconomico_2021', array($cuit,$tipo_persona),true);
            }
            $sujeto_obligado    = 0;
            $apocrifas          = SQLConnection::backendStoreProcedure('obtener_apocrifas', array($cuit), true);
            $client_id          = isset(Session::get('usuario')->cliente['client_id'] ) ? Session::get('usuario')->cliente['client_id'] : 0;
            if($client_id > 0 AND ($client_id == '2254875' || $client_id == '745239806')) {
                $respuestaso      =  SQLConnection::backendStoreProcedure('obtener_sujeto_obligado',array($cuit),true);
                if(!empty($respuestaso)){
                    $sujeto_obligado = $respuestaso->sujeto_obligado;
                }  
            }
            /* 06/11/2020 : Card de Limite de Crédito - Dependencia Económica */
            $solicitado = new \stdClass;
            $otorgado = new \stdClass;
            $cme = new \stdClass;
            $otorgado_cme = new \stdClass;
            $multiple = new \stdClass;
            $multiples_montos = []; 
            $depecon = new \stdClass;
            $depebal = new \stdClass;
            $fecha_bal = new \stdClass;
            $datos_dep = new \stdClass;
            $contraparte_lcs = 0; 
            $contraparte_de  = 0; 

            $contrapartes = SQLConnection::backendStoreProcedure('LN_cuit_contraparte_lcs', array($cliente_login, $cuit,'LCS'), 'select');

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

            if(!empty($contrapartes)){
                $id = $contrapartes[0]->contraparte; 
                $contraparte_de = $id; 
                $depecon = SQLConnection::backendStoreProcedure('LN_dependencia_economica', array($id), 'selectOne');
                $depebal = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', $cliente_login, null, null, $id, 'DEP_ECON_BALANCE'), 'selectOne'); 
                $fecha_bal = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', $cliente_login, null, null, $id, 'DEP_ECON_BALANCE_FECHA'), 'selectOne'); 
                $datos_dep = SQLConnection::backendStoreProcedure('LN_dependencia_economica_balance', array($id), 'selectOne');
            }
            //
            $vista= view('informe-comercial-nuevo/brief_nuevo')->with(compact('card_score','card_bancos','card_cheques','card_domicilios','card_empleados','card_fiscales', 'apocrifas', 'card_comex','card_personas_relacionadas','card_sociedades_relacionadas','json','p_fisica','debug_score','riesgo_fiscal','graf_pdf_empleados','graf_pdf_financiero','graf_pdf_cheques','graf_pdf_score','mostrar_grafico_card_comex','graf_pdf_comex','idp', 'card_juicios','nivel_socioeconomico','antiguedad_situacion_1','cheque_ultimo_rechazo_desde','sujeto_obligado', 'solicitado','otorgado','cme','otorgado_cme','multiple','multiples_montos','depecon','depebal','fecha_bal','datos_dep','contraparte_de','contraparte_lcs','partes_del_informe'))->render();
            //
            if(!$json){
                return $vista;
            }
            return \Response::json(
                    array(
                        'view' =>$vista,
                        'info'=>compact('score','cheques','financiero','env','card_empleados','grafico_cheques','secciones','p_fisica','card_comex','mostrar_grafico_card_comex','defuncion','card_fiscales', 'vitalidad', 'motivo_vitalidad','menor_de_edad', 'card_bancos','idp','imagen_fidelitas','cuit','partes_del_informe')
                    ), 200, [], JSON_NUMERIC_CHECK);

        } catch (\Throwable $th) {
            echo($th->getMessage().' '.$th->getLine()); die();
            SQLConnection::control_erores('MainController', 'obtenerBrief', $th->getMessage()." L: ".$th->getLine()." - DESARROLLO");
            Misc::enviarMail_errores('rami.aleid@fidelitas.com.ar','alejandro.burgol@fidelitas.com.ar',$partes_del_informe.$th->getMessage()." L: ".$th->getLine()." - DESARROLLO",$subject="Fidelitas");
            http_response_code( 500 );
            die();	
        }
    
        
    }

    // ESTA FUNCION DEVUELVE BRIEF INFORME COMERCIAL
    public function obtenerBriefOrg($json=true,$graf_pdf_financiero='',$graf_pdf_empleados='',$graf_pdf_cheques='',$graf_pdf_score='',$graf_pdf_comex ='',$incluye_balance = 1, $cliente_login = 0){
        //--  ARRAY PARA GUARDAR LOS DATOS EN LOS CUALES SE GENERA ALGUN TIPO DE ERROR  --//
        $partes_del_informe = '';
        try {
            $cuit  = Request::input("cuit");
            $user_id = Session::get('usuario')->user_id;
            $razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
            // $partes_del_informe .= "datos_usuario -> Cuit: ".$cuit." - User Id: ".$user_id.'<br>';
            $partes_del_informe .= "<b>DATOS DE USUARIO<br>Cuit: ".$cuit." - User Id: ".$user_id.'</b><br><br>';
            if(isset( Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')])){
                $servicio = SQLConnection::consumirServicio($user_id,$cuit,ENV('ID_INFORME_COMERCIAL'));
            } else if(isset(Session::get('usuario')->cliente[ENV('INFORME_API')])){
                $servicio = SQLConnection::consumirServicio($user_id,$cuit,ENV('INFORME_API'));
            }else {
                $servicio = new \stdClass;
                $servicio->sumar = 0;
            }

            if($servicio->sumar == 1){
                if(isset( Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')])){
                    // SQLConnection::insertarRegistroActividad("INFORME COMERCIAL",$cuit);
                    Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->usuario_consumido++;
                    Session::get('usuario')->cliente[ENV('ID_INFORME_COMERCIAL')]->cliente_consumido++;
                }
            }
            /* Fin 08/10/2020 */ 
            /* 1 es lo que se toma por default, si está en 1, vemos si tenemos algo distinto en la sesion */
            if ($incluye_balance == 1) { 
            $incluye_balance = session::get('incluye_balance') ?? 1; 
            }
            /* vemos si tenemos algo distinto en la sesion */
            if ($cliente_login == 0) { 
            $cliente_login = Session::get('cliente_login') ?? Session::get('usuario')->cliente['client_id']; 
            }

            $idp               = Request::input('idp');
            $cuit              = Request::input("cuit");
            $imagen_fidelitas  = Misc::obtenerImagenFidelitas();
            $afip_respuesta = [];
                
            if(ENV('SERVICIOS_AFIP') == true){
            $afip_respuesta = AFIPController::obtenerPadron_test($cuit); //--> LINEA CON MEJORAS, PARA VOLVER AL ESTADO ANTERIOR DESCOMENTAR LA DE ABAJO Y COMENTAR ESTA.
            //$afip_respuesta = AFIPController::obtenerPadron($cuit); //--> LINEA ORIGINAL
            // $partes_del_informe .= 'obtenerPadron_test: si <br>';
            $partes_del_informe .= '<ul><li>Consulta AFIP --> Si </li>';
            } else {
            // $partes_del_informe .= 'obtenerPadron_test: no <br>';
            $partes_del_informe .= '<ul><li>Consulta AFIP --> No </li>';
            }

            // Agregado 10/07/2018: Si es persona fisica, ve si puede completar datos con Padron Electoral (ultimo domicilio, año de nacimiento)
            $fisica_juridica = Misc::tipoPersona($cuit);
            $p_fisica = ($fisica_juridica == 'F') ? true : false;
            if ($p_fisica){
            $actualiza = SQLConnection::actualizarDatosConPadron($cuit,'0');
            // $partes_del_informe .= 'actualizarDatosConPadron: si <br>';
            $partes_del_informe .= '<li>Persona física --> Si </li>';
            } else {
            // $partes_del_informe .= 'actualizarDatosConPadron: no <br>';
            $partes_del_informe .= '<li>Persona física --> No </li>';
            }
            // Obtener Bancos para calcular si amerita por situación uno y sumar al score
            // Se almacenan en variable de clase para ser reutilizadas en la pestaña de bancos
            $obtener_bancos = SQLConnection::obtenerBancos($cuit);
            // $partes_del_informe .= 'obtenerBancos: si <br>';
            if($obtener_bancos != []){
            $partes_del_informe .= '<li>Cálculo Bancos --> Si, registra '.strval(count($obtener_bancos)).' resultados de la consulta</li>';
            } else {
            $partes_del_informe .= '<li>Cálculo Bancos --> No, registra '.strval(count($obtener_bancos)).' resultados de la consulta</li>';
            }			

            $situacion_1 = Misc::ameritaPorSituacionUno($obtener_bancos);
            // $partes_del_informe .= 'ameritaPorSituacionUno: si <br>';
            if($obtener_bancos != []){
            $partes_del_informe .= '<li>Amerita Score --> Si</li>';
            } else {
            $partes_del_informe .= '<li>Amerita Score --> No</li>';
            }	
                
            $amerita_situacion_1 = $situacion_1['amerita'];
            $cantidad_situacion_1 = $situacion_1['cantidad'];
                
            $link_pdf = env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.pdf';
            $tiene_pdf = file_exists($link_pdf);
            // $partes_del_informe .= 'tiene_pdf: si <br>';
            if(file_exists($link_pdf)){
            $partes_del_informe .= '<li>Pdf AFIP --> Existe </li>';
            } else {
            $partes_del_informe .= '<li>Pdf AFIP --> No existe </li>';
            }

            $card_score                   = [];
            $card_bancos                  = [];
            $card_cheques                 = [];
            $card_domicilios              = [];
            $card_empleados               = [];
            $card_comex                   = [];
            $card_personas_relacionadas   = [];
            $card_sociedades_relacionadas = [];
            $partes_del_informe .= '<li>cards_varios --> si </li>';

            //$p_fisica                     = (substr($cuit,0,1) == 3) ? false : true;
            $fisica_juridica = Misc::tipoPersona($cuit); 
            $p_fisica = ($fisica_juridica == 'F') ? true : false;
            $periodo                      = [];
            $grafico_cheques_ordenados    = [];
            $cheques[]                    =  new \stdClass;
            $env                          = Misc::obtenerColoresEnv();
            $score_ordenado               = [];
            $defuncion                    = [];
            /*CALCULO SCORE inicio*/
            $debug_score                  = '';
            $sesion_externa               = (Session::get('externo')) ? true : false;
            $partes_del_informe .= '<li>config_panel --> si </li>';

            $comex_impo                   = SQLConnection::obtenerComex($cuit);
            // $partes_del_informe .= 'obtenerComex: si <br>';
            if($comex_impo != []){
            $partes_del_informe .= '<li>Servicio de ComEx --> Si tiene</li>';
            } else {
            $partes_del_informe .= '<li>Servicio de ComEx --> No tiene</li>';
            }

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

            /* card 6 empleados inicio*/
            
            if(!$p_fisica){
            $card_fiscales = SQLConnection::obtenerCardFiscales($cuit);
            //$card_fiscales); //error con AKAPOL SA CUIT 30504065207 (12/09/2017) 
            if (is_null($card_fiscales)) {
                $card_fiscales = '';
            } else {
                $card_fiscales->inicio_actividad = Misc::convertirFormatoFecha($card_fiscales->inicio_actividad,'Y-m-d','d/m/Y');
            } 
            } else {
            $card_fiscales = SQLConnection::obtenerCardFiscalesPF($cuit);
            $edad = Misc::obtenerEdadPersonaFisica($cuit);	
            }
            
            $sircreb = SQLConnection::obtenerSircreb($cuit);
            $riesgo_fiscal = 'NO';
            if($sircreb){
            foreach($sircreb as $info){
                $hoy = date('Y-m-d h:i:s');
                if (($hoy > $info->vigencia_desde) && ($hoy < $info->vigencia_hasta)) {
                $riesgo_fiscal='SI';
                }else if($hoy > $info->vigencia_desde){
                $riesgo_fiscal = '--';
                }
            }
            }
            $partes_del_informe .= '<li>card_6_empleados --> si </li>';
            /* card 6 empleados fin*/
            if (!$tiene_pdf && empty($card_fiscales)){
            $observado = true;
            }
            $respuesta_score = '';
            if(strlen($cuit) == 11){
            $respuesta_score  = json_decode(ApiControllerV1::obtenerServicioScore($cuit,$incluye_balance),true);
            // $partes_del_informe .= 'obtenerServicioScore: si <br>';
            $partes_del_informe .= '<li>obtenerServicioScore --> si </li>';

            } else {
            $partes_del_informe .= '<li>obtenerServicioScore --> no </li>';
            }
                
            $resp_constancia  = $respuesta_score['resp_constancia'] ?? '';

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

            } else {
                foreach ($afip_respuesta as $key => $value) {
                if(!is_array($value)) {
                    $afip_ordenado  .= "<strong><br>". $key .":</strong> ". $value ;
                } else {
                    $afip_ordenado .= "<strong><br>" . $key . ":" . "</strong>";
                    foreach ($value as $key2 => $value2) {
                    if(!is_array($value2)) {
                        $afip_ordenado  .= "<strong><br>   ". $key2 .":</strong> ". $value2 ;
                    } else {
                        $afip_ordenado .= "<strong><br>   " . $key2 . ":" . "</strong>";

                        foreach ($value2 as $key3 => $value3) {
                        if(!is_array($value3)) {
                            $afip_ordenado  .= "<strong><br>      ". $key3 .":</strong> ". $value3 ;
                        } else {
                            foreach ($value3 as $key4 => $value4) {
                            if(!is_array($value4)) {
                                $afip_ordenado  .= "<strong><br>      ". $key4 .":</strong> ". $value4 ;
                            } else {
                
                            }
                            }
                        }
                        }
                    }
                    }
                }
                }
            }
            
            if ($afip_ordenado != '') {
                $debug_score .= "<br>---------------<br><strong>RESPUESTA AFIP</strong><br>---------------" .$afip_ordenado;
            }

            }
            $debug_score  .= "<br>---------------<br><strong>RESPUESTA CONSTANCIA CUIT</strong><br>---------------<br><br>" ;
            if(!empty($resp_constancia)){
            $debug_score  .= "RESPUESTA : ".$resp_constancia['response']."<br>ERROR:".$resp_constancia['constancia_error'];
            }
            $partes_del_informe .= '<li>debug_score --> si </li>';
        
            if(!$p_fisica){
            $datos_card_score   = SQLConnection::obtenerCardScore($cuit);
            }else{
            $datos_card_score   = SQLConnection::obtenerCardScorePF($cuit);
            }
            $partes_del_informe .= '<li>obtenerCardScorePF --> si </li>';
            /*CALCULO SCORE fin*/
            /*card 1 inicio */
            $vitalidad = 1;
            $motivo_vitalidad = 1;
            // CALCULO DE EDAD
            $menor_de_edad = 0;
            if ($p_fisica){
            $edad = Misc::obtenerEdadPersonaFisica($cuit);
            //--
            if ( $edad < 18 ){
                $menor_de_edad = 1;
            }
            }
            //
            $cheque_ultimo_rechazo_desde = '';
            if(!$p_fisica && strlen($cuit) == 11){
            $sintomas = SQLConnection::backendStoreProcedure('obtener_sintomas_de_vitalidad', array($cuit), true);
            $cheque_ultimo_rechazo_desde   = SQLConnection::backendStoreProcedure('obtener_no_cheqrech_desde', array($cuit), true);
            $vitalidad = 1;
            if ((!$p_fisica) && isset($sintomas->vitalidad) && $sintomas->vitalidad == 0) {
                $score = 0;
                $vitalidad = 0;
                $motivo_vitalidad = $sintomas->motivo; 
            }
            }
            $card_score['score']= $score;
            $card_score['datos']= $datos_card_score;

            // $partes_del_informe .= 'card_1: si <br>';
            $partes_del_informe .= '<li>Card Score --> Si </li>';
            /*card 1 fin */
        
            /*card 2 inicio */
            $garantias          = SQLConnection::obtenerGarantiasBrief($cuit);
            $financiero         = SQLConnection::obtenerFinancieroBrief($cuit);
            $card_bancos        = SQLConnection::obtenerCardBancos($cuit);
                
            // $partes_del_informe .= 'card_2: si <br>';
            $partes_del_informe .= '<li>Card Financiero --> Si </li>';
            /*card 2 fin */

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

            // $partes_del_informe .= 'card_3: si <br>';
            $partes_del_informe .= '<li>Card Cheques --> Si </li>';
            /* card 3 cheques rechazados fin*/
        
            /* card 4 domicilios inicio*/
            $domicilios = new \stdClass;
            $formales       = SQLConnection::obtenerDomicilios($cuit);
            $domicilios->otros_domicilios = '';
            $domicilios->domicilio_legal  = '';
            $domicilios->domicilio        = '';
            $domicilios->domicilio_fiscal = '';

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

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

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

            $card_domicilios['domicilios'] = $domicilios;
            
            // $partes_del_informe .= 'card_4: si <br>';
            $partes_del_informe .= '<li>Card Domicilio --> Si </li>';
            /* card 4 domicilios fin*/
        
            /* card 5 empleados inicio*/
            $card_empleados = SQLConnection::obtenerEmpleados($cuit);
            // $partes_del_informe .= 'card_5: si <br>';
            $partes_del_informe .= '<li>Card Empleados --> Si </li>';
            /* card 5 empleados fin*/

            /* card 7 empleados inicio*/
            $primero =date('Y');
            $segundo =date('Y')-1;
            $tercero =date('Y')-2;
            $mostrar_grafico_card_comex = false;
            $card_comex[$primero] = SQLConnection::obtenerCardComex($cuit,$primero);
            $card_comex[$segundo] = SQLConnection::obtenerCardComex($cuit,$segundo);
            $card_comex[$tercero] = SQLConnection::obtenerCardComex($cuit,$tercero);
            foreach($card_comex as $comex){
            foreach($comex as $info){
                if(!empty($info) && $info->total_anual != null){
                $mostrar_grafico_card_comex = true;
                }
            }
            }
            // $partes_del_informe .= 'card_7: si <br>';
            $partes_del_informe .= '<li>Card Comex --> Si </li>';
            /* card 7 empleados fin*/
            /* card 8 empleados inicio*/
            $card_personas_relacionadas = SQLConnection::obtenerCardPersonasRelacionadas($cuit);
            // $partes_del_informe .= 'card_8: si <br>';
            $partes_del_informe .= '<li>Card Relacionadas --> Si </li>';
            /* card 8 empleados fin*/
        
            /* card 9 empleados inicio*/
            $tipo_persona = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
            $card_sociedades_relacionadas = SQLConnection::obtenerCardSociedadesRelacionadas($cuit,$tipo_persona);

            // $partes_del_informe .= 'card_9: si <br>';
            $partes_del_informe .= '<li>Card Sociedades --> Si </li>';
            /* card 9 empleados fin*/
            
            /*card 10 Juicios*/
            $razon_social_legales = Misc::diccionarioSinonimos2020($razon_social);
            $cuit_enmascarado = $cuit;

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

            $card_juicios = new \stdClass();
            $card_juicios->concursos_quiebras         = [];
            $card_juicios->pedidos_quiebra            = [];
            $card_juicios->remates                    = SQLConnection::obtenerRemates($cuit,$cuit_enmascarado,$dni);
            $card_juicios->otros_juicios_comerciales  = [];
            $card_juicios->remates = sizeof($card_juicios->remates);

            $resultado_nombres_ant     = []; 
            $razon_social_completa     = '';

            if($p_fisica == false) {
                //P Juridica
                $nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
                if ($nombres_anteriores) {
                    foreach ($nombres_anteriores as $nombre_ant) {
                        $resultado_nombres_ant[] = $nombre_ant->nombre; 
                    }		
                    $resultado_nombres_ant[] = $razon_social;
                }
                
                $sinonimos =  Misc::diccionarioSinonimosTest($resultado_nombres_ant);
                $count_sinonimo = count($sinonimos)-1;

                foreach($sinonimos as $key => $rs) {
                    if (strlen($rs) < 3) {
                        continue; 
                    }

                    if(!($key == $count_sinonimo)){
                        $razon_social_completa .= $rs.'OR';
                    }else{
                        $razon_social_completa .= $rs;
                    }
                }

                if(!$razon_social_completa) {
                    $razon_social_completa = $razon_social_legales;
                }
            } else {//caso PF
                $razon_social_completa = "\"".$razon_social."\"";
            }

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

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

            $nivel_socioeconomico = new \stdClass();
            if($tipo_persona == 'j'){
                if($score > 50){
                    $nivel_socioeconomico = SQLConnection::backendStoreProcedure('obtener_nivel_socioeconomico_2021', array($cuit,$tipo_persona),true);
                        
                } else {
                    $nivel_socioeconomico->error = 'El Nivel del rango de ventas de la compañia no puede ser calculado';
                }
            } else {
                $nivel_socioeconomico = SQLConnection::backendStoreProcedure('obtener_nivel_socioeconomico_2021', array($cuit,$tipo_persona),true);
            }
            $sujeto_obligado    = 0;
            $apocrifas          = SQLConnection::backendStoreProcedure('obtener_apocrifas', array($cuit), true);
            $client_id          = isset(Session::get('usuario')->cliente['client_id'] ) ? Session::get('usuario')->cliente['client_id'] : 0;
            if($client_id > 0 AND ($client_id == '2254875' || $client_id == '745239806')) {
                $respuestaso      =  SQLConnection::backendStoreProcedure('obtener_sujeto_obligado',array($cuit),true);
                if(!empty($respuestaso)){
                    $sujeto_obligado = $respuestaso->sujeto_obligado;
                }  
            }
            /* 06/11/2020 : Card de Limite de Crédito - Dependencia Económica */
            $solicitado = new \stdClass;
            $otorgado = new \stdClass;
            $cme = new \stdClass;
            $otorgado_cme = new \stdClass;
            $multiple = new \stdClass;
            $multiples_montos = []; 
            $depecon = new \stdClass;
            $depebal = new \stdClass;
            $fecha_bal = new \stdClass;
            $datos_dep = new \stdClass;
            $contraparte_lcs = 0; 
            $contraparte_de  = 0; 

            $contrapartes = SQLConnection::backendStoreProcedure('LN_cuit_contraparte_lcs', array($cliente_login, $cuit,'LCS'), 'select');

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

            if(!empty($contrapartes)){
                $id = $contrapartes[0]->contraparte; 
                $contraparte_de = $id; 
                $depecon = SQLConnection::backendStoreProcedure('LN_dependencia_economica', array($id), 'selectOne');
                $depebal = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', $cliente_login, null, null, $id, 'DEP_ECON_BALANCE'), 'selectOne'); 
                $fecha_bal = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', $cliente_login, null, null, $id, 'DEP_ECON_BALANCE_FECHA'), 'selectOne'); 
                $datos_dep = SQLConnection::backendStoreProcedure('LN_dependencia_economica_balance', array($id), 'selectOne');
            }
            //
            $vista= view('informe-comercial-nuevo/brief_nuevo')->with(compact('card_score','card_bancos','card_cheques','card_domicilios','card_empleados','card_fiscales', 'apocrifas', 'card_comex','card_personas_relacionadas','card_sociedades_relacionadas','json','p_fisica','debug_score','riesgo_fiscal','graf_pdf_empleados','graf_pdf_financiero','graf_pdf_cheques','graf_pdf_score','mostrar_grafico_card_comex','graf_pdf_comex','idp', 'card_juicios','nivel_socioeconomico','antiguedad_situacion_1','cheque_ultimo_rechazo_desde','sujeto_obligado', 'solicitado','otorgado','cme','otorgado_cme','multiple','multiples_montos','depecon','depebal','fecha_bal','datos_dep','contraparte_de','contraparte_lcs','partes_del_informe'))->render();
            //
            if(!$json){
                return $vista;
            }
            return \Response::json(
                    array(
                        'view' =>$vista,
                        'info'=>compact('score','cheques','financiero','env','card_empleados','grafico_cheques','secciones','p_fisica','card_comex','mostrar_grafico_card_comex','defuncion','card_fiscales', 'vitalidad', 'motivo_vitalidad','menor_de_edad', 'card_bancos','idp','imagen_fidelitas','cuit','partes_del_informe')
                    ), 200, [], JSON_NUMERIC_CHECK);

        } catch (\Throwable $th) {
            echo($th->getMessage().' '.$th->getLine()); die();
            SQLConnection::control_erores('MainController', 'obtenerBrief', $th->getMessage()." L: ".$th->getLine()." - DESARROLLO");
            Misc::enviarMail_errores('rami.aleid@fidelitas.com.ar','alejandro.burgol@fidelitas.com.ar',$partes_del_informe.$th->getMessage()." L: ".$th->getLine()." - DESARROLLO",$subject="Fidelitas");
            http_response_code( 500 );
            die();	
        }
    
        
    }

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

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

    // FUNCION QUE DEVUELVE SECCION FORMALES PARA IC
    public static function obtenerFormalesOrg($json=true){
        $imagen_fidelitas   = Misc::obtenerImagenFidelitas(); 
        $cuit               = Request::input('cuit') ?? null;
        $id_padron          = Request::input('idp') ?? null;
        
        /* 07/10/2021: para poder llamarlo desde led */
        $es_led = false; 
        $id = Request::input('contraparte') ?? null;
        if (!$cuit) {
            $qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
            $cuit = $qcontrap->identificacion ?? null;
            $json = false; 
            $es_led = true; 
        }    
        
        if (!$id_padron) {
            $idp       = SQLConnection::obtenerIdPadron($cuit);
            $id_padron = $idp->id_padron;
        }
    
        $fisica_juridica = Misc::tipoPersona($cuit); 
        $persona_fisica = ($fisica_juridica == 'F') ? true : false;
        $persona            = [];
        $sociedades         = [];
        $empleado_de        = [];
        $empleados          = [];
        $defuncion          = [];
        $razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
        $usuario            = Session::get('usuario');
        $cliente            = $usuario->cliente['client_id'];     
        $comentarios        = SQLConnection::obtenerComentario($cuit,$cliente);
        $inscripciones      = SQLConnection::obtenerInscripciones($cuit);
        $padron_actividades = SQLConnection::obtenerPadronActividades($cuit);

        if (!$persona_fisica) {
            $nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
            $empleados      = SQLConnection::obtenerEmpleados($cuit);
            $sociedades     = SQLConnection::obtenerSociedades($cuit);
        } else {
            $dni            = (int)substr($cuit, 2,-1);
            $defuncion      = SQLConnection::obtenerDefuncion($cuit);
            $persona        = SQLConnection::obtenerPersona($cuit); 
            $empleado_de    = SQLConnection::obtenerEmpleadoDe($cuit);
            $persona->edad  = '';
            if (!empty($persona->fecha_nacimiento)) {
                $edad = Misc::calcularEdad($persona->fecha_nacimiento);
                if ($edad) {
                    $persona->edad = $edad;
                }
            }
        }
    
        $domicilios     = new \stdClass;
        $formales       = SQLConnection::obtenerDomicilios($cuit);
        $telefonos      = SQLConnection::backendStoreProcedure('obtener_telefono', array($id_padron));
        $generales = [];
        //        
        $domicilios->telefonos          = '';
        $domicilios->domicilio_fiscal   = '';
        $domicilios->domicilio_legal    = '';
        $domicilios->otros_domicilios   = '';
        $domicilios->domicilio          = '';
        foreach ($formales as $formal) {
                /* Telefonos */
            if (isset($formal->telefono) && $formal->telefono != "") {
                $domicilios->telefonos .= $formal->telefono.' <br> ';
            }
            /* Domicilio Legal */            
            if (strpos($formal->tipo_domicilio, 'L') !== false) {
                if (isset($domicilios->domicilio_legal) && $domicilios->domicilio_legal != '') {
                    if (strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'F') === false) {
                        $domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
                    }
                } else {
                    $domicilios->domicilio_legal = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
                }
            }
            /* Domicilio Fiscal */
            if (strpos($formal->tipo_domicilio, 'F') !== false) {
                if (isset($domicilios->domicilio_fiscal) && $domicilios->domicilio_fiscal != '') {
                    if (strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'L') === false) {
                        $domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
                    }
                } else {
                    $domicilios->domicilio_fiscal = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
                }
            }
    
            /* Domicilio Principal */          
            if (strpos($formal->tipo_domicilio, 'D') !== false || strpos($formal->tipo_domicilio, 'E') !== false) {
                if (isset($domicilios->domicilio) && $domicilios->domicilio != '') {
                    if (strpos($formal->tipo_domicilio, 'F') === false && strpos($formal->tipo_domicilio, 'L') === false) {
                        $domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
                    }
                } else {
                    $domicilios->domicilio = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
                }
            }
            /* Otros Domicilios */
            
            if (strpos($formal->tipo_domicilio, 'O') !== false && strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'L') === false && strpos($formal->tipo_domicilio, 'F') === false) {
                $domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
            }
    
        }    
    
        if ($domicilios->domicilio == '' && $domicilios->domicilio_fiscal != '') {
            $domicilios->domicilio  .= $domicilios->domicilio_fiscal;
        }
    
        if (isset($domicilios->domicilio_legal) && $domicilios->domicilio_legal != '') {
            $domicilios->otros_domicilios .= $domicilios->domicilio_legal . '<br>'; 
        }
    
        //$inscripciones  = SQLConnection::obtenerInscripciones($cuit,$id_padron);
        $claes          = SQLConnection::obtenerClae($cuit);
        if ($claes) {
            foreach ($claes as $clae) {
                if ($clae->fecha_inicio_actividad) {
                    $fecha_inicio_actividad =  $clae->fecha_inicio_actividad;
                }
            }
        }
        /*
            if ($es_led)
            {
                return view('/informes/formales')->with(compact(['sociedades','inscripciones','formales','domicilios','generales','claes','persona_fisica','persona','empleado_de','fecha_inicio_actividad','defuncion','empleados','razon_social','cuit','comentarios','padron_actividades', 'json','nombres_anteriores','id_padron','telefonos']));
            }
        */
        if (!isset($fecha_inicio_actividad)) {
            $fecha_inicio_actividad = NULL;
        }
        //--
        if (!isset($nombres_anteriores)) {
            $nombres_anteriores = NULL;
        }
    
        $vista = \View::make('informe-comercial-nuevo/formales_nuevo')->with(compact('sociedades','inscripciones','formales','domicilios','generales','claes','persona_fisica','persona','empleado_de','fecha_inicio_actividad','defuncion','empleados','razon_social','cuit','comentarios','padron_actividades', 'json','nombres_anteriores','id_padron','telefonos'))->render();
    
        if(!$json){
            return $vista;
        }
        return \Response::json(
            array(
            'view' => $vista,
            'info'=>compact('sociedades','persona','persona_fisica','imagen_fidelitas')
    
            )
        , 200, [], JSON_NUMERIC_CHECK);
    }

    // FUNCION QUE DEVUELVE SECCION FORMALES PARA IC
    public static function obtenerFormales($json=true){
        $imagen_fidelitas   = Misc::obtenerImagenFidelitas(); 
        $cuit               = Request::input('cuit') ?? null;
        $id_padron          = Request::input('idp') ?? null;
        
        /* 07/10/2021: para poder llamarlo desde led */
        $es_led = false; 
        $id = Request::input('contraparte') ?? null;
        if (!$cuit) {
            $qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
            $cuit = $qcontrap->identificacion ?? null;
            $json = false; 
            $es_led = true; 
        }    
        
        if (!$id_padron) {
            $idp       = SQLConnection::obtenerIdPadron($cuit);
            $id_padron = $idp->id_padron;
        }
    
        $fisica_juridica = Misc::tipoPersona($cuit); 
        $persona_fisica = ($fisica_juridica == 'F') ? true : false;
        $persona            = [];
        $sociedades         = [];
        $empleado_de        = [];
        $empleados          = [];
        $defuncion          = [];
        $razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
        $usuario            = Session::get('usuario');
        $cliente            = $usuario->cliente['client_id'];     
        $comentarios        = SQLConnection::obtenerComentario($cuit,$cliente);
        $inscripciones      = SQLConnection::obtenerInscripciones($cuit);
        $padron_actividades = SQLConnection::obtenerPadronActividades($cuit);

        if (!$persona_fisica) {
            $nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
            $empleados      = SQLConnection::obtenerEmpleados($cuit);
            $sociedades     = SQLConnection::obtenerSociedades($cuit);
        } else {
            $dni            = (int)substr($cuit, 2,-1);
            $defuncion      = SQLConnection::obtenerDefuncion($cuit);
            $persona        = SQLConnection::obtenerPersona($cuit); 
            $empleado_de    = SQLConnection::obtenerEmpleadoDe($cuit);
            $persona->edad  = '';
            if (!empty($persona->fecha_nacimiento)) {
                $edad = Misc::calcularEdad($persona->fecha_nacimiento);
                if ($edad) {
                    $persona->edad = $edad;
                }
            }
        }
    
        $domicilios     = new \stdClass;
        $formales       = SQLConnection::obtenerDomicilios($cuit);
        $telefonos      = SQLConnection::backendStoreProcedure('obtener_telefono', array($id_padron));
        $generales = [];
        //        
        $domicilios->telefonos          = '';
        $domicilios->domicilio_fiscal   = '';
        $domicilios->domicilio_legal    = '';
        $domicilios->otros_domicilios   = '';
        $domicilios->domicilio          = '';
        foreach ($formales as $formal) {
                /* Telefonos */
            if (isset($formal->telefono) && $formal->telefono != "") {
                $domicilios->telefonos .= $formal->telefono.' <br> ';
            }
            /* Domicilio Legal */            
            if (strpos($formal->tipo_domicilio, 'L') !== false) {
                if (isset($domicilios->domicilio_legal) && $domicilios->domicilio_legal != '') {
                    if (strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'F') === false) {
                        $domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
                    }
                } else {
                    $domicilios->domicilio_legal = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
                }
            }
            /* Domicilio Fiscal */
            if (strpos($formal->tipo_domicilio, 'F') !== false) {
                if (isset($domicilios->domicilio_fiscal) && $domicilios->domicilio_fiscal != '') {
                    if (strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'L') === false) {
                        $domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
                    }
                } else {
                    $domicilios->domicilio_fiscal = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
                }
            }
    
            /* Domicilio Principal */          
            if (strpos($formal->tipo_domicilio, 'D') !== false || strpos($formal->tipo_domicilio, 'E') !== false) {
                if (isset($domicilios->domicilio) && $domicilios->domicilio != '') {
                    if (strpos($formal->tipo_domicilio, 'F') === false && strpos($formal->tipo_domicilio, 'L') === false) {
                        $domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
                    }
                } else {
                    $domicilios->domicilio = Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre);
                }
            }
            /* Otros Domicilios */
            
            if (strpos($formal->tipo_domicilio, 'O') !== false && strpos($formal->tipo_domicilio, 'D') === false && strpos($formal->tipo_domicilio, 'E') === false && strpos($formal->tipo_domicilio, 'L') === false && strpos($formal->tipo_domicilio, 'F') === false) {
                $domicilios->otros_domicilios .= Misc::armarDomicilio($formal->domicilio,$formal->codpos,$formal->loc_nombre,$formal->prv_nombre,$formal->pai_nombre).'<br>';
            }
    
        }    
    
        if ($domicilios->domicilio == '' && $domicilios->domicilio_fiscal != '') {
            $domicilios->domicilio  .= $domicilios->domicilio_fiscal;
        }
    
        if (isset($domicilios->domicilio_legal) && $domicilios->domicilio_legal != '') {
            $domicilios->otros_domicilios .= $domicilios->domicilio_legal . '<br>'; 
        }
    
        //$inscripciones  = SQLConnection::obtenerInscripciones($cuit,$id_padron);
        $claes          = SQLConnection::obtenerClae($cuit);
        if ($claes) {
            foreach ($claes as $clae) {
                if ($clae->fecha_inicio_actividad) {
                    $fecha_inicio_actividad =  $clae->fecha_inicio_actividad;
                }
            }
        }
        /*
            if ($es_led)
            {
                return view('/informes/formales')->with(compact(['sociedades','inscripciones','formales','domicilios','generales','claes','persona_fisica','persona','empleado_de','fecha_inicio_actividad','defuncion','empleados','razon_social','cuit','comentarios','padron_actividades', 'json','nombres_anteriores','id_padron','telefonos']));
            }
        */
        if (!isset($fecha_inicio_actividad)) {
            $fecha_inicio_actividad = NULL;
        }
        //--
        if (!isset($nombres_anteriores)) {
            $nombres_anteriores = NULL;
        }

		$logo_name = null;
		$logo_url = null;
		$file_exists = false;
		if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id . '.png') )  {
			$logo_name = $id . '.png';
            $logo_url = env('RUTA_DOCUMENTOS') . '/logos/' . $logo_name;
		}
		if(null == $logo_name) {
			if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id . '.jpg') )  {
				$logo_name = $id . '.jpg';
                $logo_url = env('RUTA_DOCUMENTOS') . '/logos/' . $logo_name;
			}			
		}
		if(null == $logo_name) {
			if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id . '.gif') )  {
				$logo_name = $id . '.gif';
                $logo_url = env('RUTA_DOCUMENTOS') . '/logos/' . $logo_name;
			}			
		}
    
        $vista = \View::make('informe-comercial-nuevo/formales_nuevo')->with(compact('sociedades','inscripciones','formales','domicilios','generales','claes','persona_fisica','persona','empleado_de','fecha_inicio_actividad','defuncion','empleados','razon_social','cuit','comentarios','padron_actividades', 'json','nombres_anteriores','id_padron','telefonos','logo_url'))->render();
    
        if(!$json){
            return $vista;
        }
        return \Response::json(
            array(
            'view' => $vista,
            'info'=>compact('sociedades','persona','persona_fisica','imagen_fidelitas')
    
            )
        , 200, [], JSON_NUMERIC_CHECK);
    }

    // FUNCION QUE DEVUELVE SECCION COMERCIALES PARA IC
    public function obtenerComercialesOrg($json = true){
        $imagen_fidelitas = Misc::obtenerImagenFidelitas();
        $cuit             = Request::input('cuit');
    
        /* 07/10/2021: para poder llamarlo desde led */
    
        $es_led = false; 
        $id = Request::input('contraparte') ?? null;
        if (!$cuit) {
            $qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
            $cuit = $qcontrap->identificacion ?? null;
            $json = false; 
            $es_led = true; 
        }    
    
        $consultas_ramos  = SQLConnection::obtenerConsultasPorRamos($cuit);
        $seguros          = SQLConnection::backendSeguros($cuit);
        $datos_generales  = SQLConnection::obtenerDatosGenerales($cuit);
        $misc_truncate    = '\App\Custom\Misc::truncate';
        $marcas =  $this->obtenerMarcas();
    
        foreach ($datos_generales as $datos) {
            if($datos->titulo == 'MARCAS, PATENTES Y LICENCIAS'){
                $datos->titulo = 'MPL';
            }
            $datos_generales_ordenados[$datos->titulo][] = $datos;
        }
    
        if (isset($datos_generales_ordenados)) {
            $datos_generales = $datos_generales_ordenados;
        } else {
            $datos_generales = '';
        }
    
        $consultas = [];
        $ramo = "";
        if ($consultas_ramos) {
            foreach($consultas_ramos as $consulta){
                $consultas[$consulta->descripcion][$consulta->antiguedad] = $consulta->cantidad;
            }
            foreach($consultas as $key => $consulta){
                if(!isset($consultas[$key]['entre_0_1'])){
                    $consultas[$key]['entre_0_1'] = 0;
                }
                if(!isset($consultas[$key]['entre_1_2'])){
                    $consultas[$key]['entre_1_2'] = 0;
                }
                if(!isset($consultas[$key]['entre_2_5'])){
                    $consultas[$key]['entre_2_5'] = 0;
                }
                ksort($consultas[$key]);
            }
    
        } 
        //$enviar_mail = '\App\Custom\Misc::enviarMail';
        $vista = \View::make('informe-comercial-nuevo/comerciales_nuevo')->with(compact('consultas','seguros','datos_generales','marcas','misc_truncate','json','es_led'))->render();
        //Session::put($cuit." ".date('Y-m-d').".comerciales",json_encode($vista));
        if (!$json) {
            return $vista;
        }
        /*
        if(!$json){
            return \View::make('informes/comerciales')->with(compact('consultas'))->render();
        }*/
        return \Response::json(
            array(
                'view' => $vista,
                'info' => compact('seguros','datos_generales','consultas','marcas','imagen_fidelitas')
            ), 200, [], JSON_NUMERIC_CHECK
        );
    }
    
    // FUNCION QUE DEVUELVE SECCION COMERCIALES PARA IC
    public function obtenerComerciales($json = true){
        $imagen_fidelitas = Misc::obtenerImagenFidelitas();
        $cuit             = Request::input('cuit');
    
        /* 07/10/2021: para poder llamarlo desde led */
    
        $es_led = false; 
        $id = Request::input('contraparte') ?? null;
        if (!$cuit) {
            $qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
            $cuit = $qcontrap->identificacion ?? null;
            $json = false; 
            $es_led = true; 
        }    
    
        $consultas_ramos  = SQLConnection::obtenerConsultasPorRamos($cuit);
        $seguros          = SQLConnection::backendSeguros($cuit);
        $datos_generales  = SQLConnection::obtenerDatosGenerales($cuit);
        $misc_truncate    = '\App\Custom\Misc::truncate';
        $marcas =  $this->obtenerMarcas();
    
        foreach ($datos_generales as $datos) {
            if($datos->titulo == 'MARCAS, PATENTES Y LICENCIAS'){
                $datos->titulo = 'MPL';
            }
            $datos_generales_ordenados[$datos->titulo][] = $datos;
        }
    
        if (isset($datos_generales_ordenados)) {
            $datos_generales = $datos_generales_ordenados;
        } else {
            $datos_generales = '';
        }
    
        $consultas = [];
        $ramo = "";
        if ($consultas_ramos) {
            foreach($consultas_ramos as $consulta){
                $consultas[$consulta->descripcion][$consulta->antiguedad] = $consulta->cantidad;
            }
            foreach($consultas as $key => $consulta){
                if(!isset($consultas[$key]['entre_0_1'])){
                    $consultas[$key]['entre_0_1'] = 0;
                }
                if(!isset($consultas[$key]['entre_1_2'])){
                    $consultas[$key]['entre_1_2'] = 0;
                }
                if(!isset($consultas[$key]['entre_2_5'])){
                    $consultas[$key]['entre_2_5'] = 0;
                }
                ksort($consultas[$key]);
            }
    
        } 
        //$enviar_mail = '\App\Custom\Misc::enviarMail';
        $vista = \View::make('informe-comercial-nuevo/comerciales_nuevo')->with(compact('consultas','seguros','datos_generales','marcas','misc_truncate','json','es_led'))->render();
        //Session::put($cuit." ".date('Y-m-d').".comerciales",json_encode($vista));
        if (!$json) {
            return $vista;
        }
        /*
        if(!$json){
            return \View::make('informes/comerciales')->with(compact('consultas'))->render();
        }*/
        return \Response::json(
            array(
                'view' => $vista,
                'info' => compact('seguros','datos_generales','consultas','marcas','imagen_fidelitas')
            ), 200, [], JSON_NUMERIC_CHECK
        );
    }

    // FUNCION UTILIZADA POR COMERCIALES
    public static function obtenerMarcasOrg(){
        $token            = Request::input('_token');
        $cuit             = Request::input('cuit');
        /* 07/10/2021: para poder llamarlo desde led */
    
        $es_led = false; 
        $id = Request::input('contraparte') ?? null;
        if (!$cuit) {
            $qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
            $cuit = $qcontrap->identificacion ?? null;
            $json = false; 
            $es_led = true; 
        }
    
        $marcas           = SQLConnection::obtenerMarcas($cuit);
        if ($marcas) {
            $marcas_unificadas = [];
            foreach ($marcas as $key => $value) {
                if ($key == 0) {
                    $marcas_unificadas[] =  $value;
                } else {
                    $item = false;
                    $index = false;
                    foreach ($marcas_unificadas as $key2 => $mu) {
                        if ($value->marca == $mu->marca && $value->tipo == $mu->tipo) {
                            $item = $value;
                            $index = $key2;
                            break;
                        }
                    }
    
                    if ($item) {
                        $marcas_unificadas[$index]->clase .=  ','.$value->clase;
                    } else {
                        $marcas_unificadas[] =  $value;
                    }
    
                }
            
            }
            $marcas = $marcas_unificadas;
            foreach ($marcas as $key => $value) {
                //si no encuentra nuestra imagen , va a buscarla afuera
                $marcas[$key]->encontrada = false;
                if($value->web == 'null') {
                    //obtener Imagen fuente externa
                    if (!file_exists('/var/www/html/compartido/marcas/'.$value->num_boletin.'/marcas/'.$value->num_acta.'.gif')) {
                        SQLConnection::cargarEstadoMarcasExterno($cuit,0,'web',$value->num_acta);
                        $value->web = 0;
                        $marcas[$key]->encontrada = false;
                    } else {
                        SQLConnection::cargarEstadoMarcasExterno($cuit,1,'web',$value->num_acta);
                        $value->web = 1;
                        $marcas[$key]->encontrada = true;
                    }
                }

                if ($value->directorio == null && $value->web == 0) {
                    //$imagen_marca_externa = Misc::obtenerImagenMarcasExterno($value->num_acta,$value->num_boletin);
                    $imagen_marca_externa = false;
                    if ($imagen_marca_externa) {
                        $marcas[$key]->encontrada = true;
                        SQLConnection::cargarEstadoMarcasExterno($cuit,1,'directorio',$value->num_acta);
                    } else {
                        $marcas[$key]->encontrada = false;
                        SQLConnection::cargarEstadoMarcasExterno($cuit,0,'directorio',$value->num_acta);
                    }
        
                }
    
                if ($value->web == 1 || $value->directorio == 1) {
                    $marcas[$key]->encontrada = true;
                }
                //$Web-$directorio ordenamiento en presentacion imagenes  
                $web[$key] = $value->web;
                $directorio[$key] = $value->directorio;
                $clase[$key] = $value->clase; 
            
                //Ordenamiento de las clases de menor a mayor Y eliminacion de numeros repetidos
                $stringParts = str_split($marcas[$key]->clase);
                $out = explode(',', $marcas[$key]->clase);
                sort($out);
                $out = implode(',', $out);
                $marcas[$key]->clase = $out;
                $marcas[$key]->clase = implode(', ',array_unique(explode(',', $marcas[$key]->clase)));
            
                $nombre_marcas = trim($value->marca);
                $marcas[$key]->marca = $nombre_marcas;
                $tipo_marca = $value->tipo;
                if ($tipo_marca == 'D') {
                    $marcas[$key]->tipo = 'DENOMINATIVA';
                }elseif ($tipo_marca == 'F') {
                    $marcas[$key]->tipo = 'FIGURATIVA';
                }elseif ($tipo_marca == 'M') {
                    $marcas[$key]->tipo = 'MIXTA';
                }
    
    
            }//endforeach
            //ordena array para que se muestren marcas con imagenes en los primeros resultados
            array_multisort($web, SORT_DESC, $directorio, SORT_DESC, $marcas);
        } else {
            return $marcas = '';
        }
        
        return $marcas;
    }

    // FUNCION UTILIZADA POR COMERCIALES
    public static function obtenerMarcas(){
        $token            = Request::input('_token');
        $cuit             = Request::input('cuit');
        /* 07/10/2021: para poder llamarlo desde led */
    
        $es_led = false; 
        $id = Request::input('contraparte') ?? null;
        if (!$cuit) {
            $qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
            $cuit = $qcontrap->identificacion ?? null;
            $json = false; 
            $es_led = true; 
        }
    
        $marcas           = SQLConnection::obtenerMarcas($cuit);
        if ($marcas) {
            $marcas_unificadas = [];
            foreach ($marcas as $key => $value) {
                if ($key == 0) {
                    $marcas_unificadas[] =  $value;
                } else {
                    $item = false;
                    $index = false;
                    foreach ($marcas_unificadas as $key2 => $mu) {
                        if ($value->marca == $mu->marca && $value->tipo == $mu->tipo) {
                            $item = $value;
                            $index = $key2;
                            break;
                        }
                    }
    
                    if ($item) {
                        $marcas_unificadas[$index]->clase .=  ','.$value->clase;
                    } else {
                        $marcas_unificadas[] =  $value;
                    }
    
                }
            
            }
            $marcas = $marcas_unificadas;
            foreach ($marcas as $key => $value) {
                //si no encuentra nuestra imagen , va a buscarla afuera
                $marcas[$key]->encontrada = false;
                if($value->web == 'null') {
                    //obtener Imagen fuente externa
                    if (!file_exists('/var/www/html/compartido/marcas/'.$value->num_boletin.'/marcas/'.$value->num_acta.'.gif')) {
                        SQLConnection::cargarEstadoMarcasExterno($cuit,0,'web',$value->num_acta);
                        $value->web = 0;
                        $marcas[$key]->encontrada = false;
                    } else {
                        SQLConnection::cargarEstadoMarcasExterno($cuit,1,'web',$value->num_acta);
                        $value->web = 1;
                        $marcas[$key]->encontrada = true;
                    }
                }

                if ($value->directorio == null && $value->web == 0) {
                    //$imagen_marca_externa = Misc::obtenerImagenMarcasExterno($value->num_acta,$value->num_boletin);
                    $imagen_marca_externa = false;
                    if ($imagen_marca_externa) {
                        $marcas[$key]->encontrada = true;
                        SQLConnection::cargarEstadoMarcasExterno($cuit,1,'directorio',$value->num_acta);
                    } else {
                        $marcas[$key]->encontrada = false;
                        SQLConnection::cargarEstadoMarcasExterno($cuit,0,'directorio',$value->num_acta);
                    }
        
                }
    
                if ($value->web == 1 || $value->directorio == 1) {
                    $marcas[$key]->encontrada = true;
                }
                //$Web-$directorio ordenamiento en presentacion imagenes  
                $web[$key] = $value->web;
                $directorio[$key] = $value->directorio;
                $clase[$key] = $value->clase; 
            
                //Ordenamiento de las clases de menor a mayor Y eliminacion de numeros repetidos
                $stringParts = str_split($marcas[$key]->clase);
                $out = explode(',', $marcas[$key]->clase);
                sort($out);
                $out = implode(',', $out);
                $marcas[$key]->clase = $out;
                $marcas[$key]->clase = implode(', ',array_unique(explode(',', $marcas[$key]->clase)));
            
                $nombre_marcas = trim($value->marca);
                $marcas[$key]->marca = $nombre_marcas;
                $tipo_marca = $value->tipo;
                if ($tipo_marca == 'D') {
                    $marcas[$key]->tipo = 'DENOMINATIVA';
                }elseif ($tipo_marca == 'F') {
                    $marcas[$key]->tipo = 'FIGURATIVA';
                }elseif ($tipo_marca == 'M') {
                    $marcas[$key]->tipo = 'MIXTA';
                }
    
    
            }//endforeach
            //ordena array para que se muestren marcas con imagenes en los primeros resultados
            array_multisort($web, SORT_DESC, $directorio, SORT_DESC, $marcas);
        } else {
            return $marcas = '';
        }
        
        return $marcas;
    }

    // FUNCION QUE DEVUELVE SECCION FISCALES
    public function obtenerFiscalesOrg($json = true,$pdf_inscripcion = ''){
        $imagen_fidelitas             = Misc::obtenerImagenFidelitas();
        $cuit                         = Request::input('cuit');
        $id_padron                    = Request::input('idp');
    
        /* 07/10/2021: para poder llamarlo desde led */
        $es_led = false; 
        $id = Request::input('contraparte') ?? null;
        if (!$cuit) {
            $qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
            $cuit = $qcontrap->identificacion ?? null;
            $json = false; 
            $es_led = true; 
        }
    
        if (!$id_padron) {
            $idp       = SQLConnection::obtenerIdPadron($cuit);            
            $id_padron = $idp->id_padron;
        }

        $inscripciones                = SQLConnection::obtenerInscripciones($cuit);
        $arba                         = SQLConnection::obtenerArba($cuit);
        $claes                        = SQLConnection::obtenerClae($cuit);
        $sircreb                      = SQLConnection::obtenerSircreb($cuit);
        $fuentes_procesadas           = SQLConnection::obtenerUltimoPeriodoProcesado("sircreb");
        $padron_impuestos             = SQLConnection::obtenerPadronImpuestos($id_padron);
        $padron_actividades           = SQLConnection::obtenerPadronActividades($id_padron);
        $padron_caracterizaciones     = SQLConnection::obtenerPadronCaracterizaciones($id_padron);
        $obtener_domicilios           = SQLConnection::obtenerDomicilios($cuit);
        $domicilios                   = new \stdClass;
        $domicilios->domicilio_fiscal = '';
        $tipo_persona                 = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
        $razon_social                 = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
        $defuncion                    = SQLConnection::obtenerDefuncion($cuit);
    
        foreach ($padron_impuestos as $key => $value) {
            if (isset($value->fecha_inscripcion)) {
                $value->fecha_inscripcion = Misc::convertirFormatoFecha($value->fecha_inscripcion,'Y-m-d','d/m/Y');
            } else {
                $value->fecha_inscripcion = '';
            }
        }
        
        foreach ($obtener_domicilios as  $domicilio) {
            //if($domicilio->tipo_domicilio == 'F'){
            if (strpos($domicilio->tipo_domicilio, 'F') !== false) {
                if ($domicilio->domicilio !='') {
                    $domicilios->domicilio_fiscal = Misc::armarDomicilio($domicilio->domicilio,$domicilio->codpos,$domicilio->loc_nombre,$domicilio->prv_nombre,$domicilio->pai_nombre);
                    break; 
                } else {
                    $domicilios->domicilio_fiscal = '';
                }
            }
        }
    
        $fiscal_sircreb = array();
    
        if ($sircreb) {
            // Estableciendo las fechas correctas
            foreach ($sircreb as $key => $info) {
                $sircreb[$key]->fecha_publicacion = Misc::convertDate($info->fecha_publicacion,'d/m/Y');
                $sircreb[$key]->vigencia_hasta    = Misc::convertDate($info->vigencia_hasta,'d/m/Y');
                $sircreb[$key]->vigencia_desde    = Misc::convertDate($info->vigencia_desde,'d/m/Y');
            }
            $anio_actual = date("Y");
            $mes_actual = date("n");
            $fiscal_sircreb_anios = array();
            $fiscal_trimestres = array(
                0 => array(1,2,3),
                1 => array(4,5,6),
                2 => array(7,8,9),
                3 => array(10,11,12),
            );
            // Recorriendo fechas 
            foreach ($sircreb as $key => $value) { 
                //$fiscal_mes  = substr($value->fecha_publicacion, 3,2);
                //$fiscal_anio = substr($value->fecha_publicacion, 6,4);
                $fiscal_mes  = substr($value->vigencia_desde, 3,2);
                $fiscal_mes = (int)$fiscal_mes;
                $fiscal_anio = substr($value->vigencia_desde, 6,4);
                $fiscal_anio = (int)$fiscal_anio;
                // Años fiscales desde/hasta
                if ($key == 0) {
                    $diferencia_anios = $anio_actual - $fiscal_anio;        
                    for ($x=0; $x <= $diferencia_anios; $x++) {
                        $nuevo_anio = $fiscal_anio + $x;
                        $fiscal_sircreb_anios[$nuevo_anio] = $nuevo_anio;
                    }
                }
                // Estableciendo Trimestres
                foreach ($fiscal_trimestres as $key2 => $trimestre) {
                    foreach ($trimestre as $value_trimestre) {
                        if ($fiscal_mes == $value_trimestre) {
                            $fiscal_sircreb[$fiscal_anio][$key2] = "Riesgo Fiscal";
                        } else {
                            if (!isset($fiscal_sircreb[$fiscal_anio][$key2])) {
                                $fiscal_sircreb[$fiscal_anio][$key2] = "-";
                            }
                        }
                    }
                }
            }
            if ($fuentes_procesadas) {
                $fuentes_procesadas   = Misc::convertDate($fuentes_procesadas,'d/m/Y');
                $mes_fuente_procesada = substr($fuentes_procesadas, 3,2);
            }
            // Estableciendo los años/trimestres completos
            foreach ($fiscal_sircreb_anios as $anio) {
                if (!isset($fiscal_sircreb[$anio])) {
                    foreach ($fiscal_trimestres as $key => $trimestre) {
                        foreach ($trimestre as $value_trimestre) {
                        // Evaluando si existe registro fiscal en el año que esta transcurriendo
                            if (($anio_actual == $anio) && ($value_trimestre >= $mes_actual)) {
                                if ((isset($mes_fuente_procesada)) && ($value_trimestre == $mes_fuente_procesada)) {
                                    $fiscal_sircreb[$anio][$key] = "-";
                                } else {
                                    $fiscal_sircreb[$anio][$key] = "";
                                }
                            } else {
                                $fiscal_sircreb[$anio][$key] = "-";
                            }
                        }
                    }
                }
            }
            ksort($fiscal_sircreb);
        }
        
        /*
        if($claes){
            foreach($claes as $clae){
            if($clae->fecha_inicio_actividad){
            $fecha_inicio_actividad =  $clae->fecha_inicio_actividad;
            }
            }
        }
        */
    
        $link_pdf = env('AFIP_URL_COMPARTIDO_PEGAR').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.pdf';
        $link_imagen = env('AFIP_URL_COMPARTIDO_PEGAR').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.png';
        // $link_pdf_vista = env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.pdf';
        $link_pdf_vista = env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.png';
        $pdf_disponible = false;
        $texto_pdf = '';
        
        //if (file_exists($link_pdf) && (filesize($link_pdf) > 3000)) {
        if ( (  file_exists($link_pdf) && Session::get('html') ) || ( file_exists($link_imagen) && !Session::get('html') ) ) {
            $pdf_disponible = true;
        } else {
            $exec = SQLConnection::backendStoreProcedure('afip_texto_sin_constancia', array($id_padron), true);
            $texto_pdf = ($exec->texto_constancia) ?? '';
        }
    
        $apocrifas = SQLConnection::backendStoreProcedure('obtener_apocrifas', array($cuit), false);
    
        $aportes = ($tipo_persona == 'f') ? SQLConnection::backendStoreProcedure('backend_mis_aportes', array($cuit, NULL, 12, 1), false) : SQLConnection::backendStoreProcedure('mis_aportes_empresa', array($cuit), false);
        $misaportes = [];
    
        if ($tipo_persona == 'f') {   
            foreach ($aportes as $x => $aporte) {
                $misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['ddjj'] = $aporte->ddjj;
                $misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['aportes_os'] = $aporte->aportes_os;
                $misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['aportes_ss'] = $aporte->aportes_ss;
                $misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['contr_patronal'] = $aporte->contr_patronal;
            }
        } else {
            foreach ($aportes as $x => $aporte) {
                /*
                $misaportes[$aporte->periodo_str]['ddjj'] = $aporte->ddjj;
                $misaportes[$aporte->periodo_str]['aportes_os'] = $aporte->aportes_os;
                $misaportes[$aporte->periodo_str]['aportes_ss'] = $aporte->aportes_ss;
                $misaportes[$aporte->periodo_str]['contr_patronal'] = $aporte->contr_patronal;
                */
                /*
                Si hay distintos en el mismo periodo gana el mayor 
                tomando este orden
                IMPAGO
                PAGO PARCIAL 
                PAGO (lo pasamos como PAGO TOTAL para que la comparacion de < haga el ordenamiento que queremos (pago total > pago parcial), despues lo volvemos a poner como PAGO)
                */ 
                if ($aporte->ddjj == 'PAGO') { 
                    $aporte->ddjj = 'PAGO TOTAL'; 
                } 
                if (!isset($misaportes[$aporte->periodo_str]['ddjj']) || $misaportes[$aporte->periodo_str]['ddjj'] < $aporte->ddjj) {
                    $misaportes[$aporte->periodo_str]['ddjj'] = $aporte->ddjj;
                }
        
                if ($aporte->aportes_os == 'PAGO') { 
                    $aporte->aportes_os = 'PAGO TOTAL'; 
                } 
                if (!isset($misaportes[$aporte->periodo_str]['aportes_os']) || $misaportes[$aporte->periodo_str]['aportes_os'] < $aporte->aportes_os) {
                    $misaportes[$aporte->periodo_str]['aportes_os'] = $aporte->aportes_os;
                }
        
                if ($aporte->aportes_ss == 'PAGO') { 
                    $aporte->aportes_ss = 'PAGO TOTAL'; 
                } 
                if (!isset($misaportes[$aporte->periodo_str]['aportes_ss']) || $misaportes[$aporte->periodo_str]['aportes_ss'] < $aporte->aportes_ss) {
                    $misaportes[$aporte->periodo_str]['aportes_ss'] = $aporte->aportes_ss;
                }
        
                if ($aporte->contr_patronal == 'PAGO') { 
                    $aporte->contr_patronal = 'PAGO TOTAL'; 
                } 
                if (!isset($misaportes[$aporte->periodo_str]['contr_patronal']) || $misaportes[$aporte->periodo_str]['contr_patronal'] < $aporte->contr_patronal) {
                    $misaportes[$aporte->periodo_str]['contr_patronal'] = $aporte->contr_patronal;
                }
            }
    
            foreach ($misaportes as $x => $aporte) {
                foreach ($aporte as $z => $ap) {
                    if ($ap == 'PAGO TOTAL') { 
                        $misaportes[$x][$z] = 'PAGO';
                    }
                }
            }  
    
    
        }
    
        /*$aporteshtml = (sizeof($misaportes) > 0) ? utf8_decode(Misc::decrypt($misaportes[0]->source_html)) : NULL;*/
        // Se agrego esta ruta para que en backend7 pueda verse la imagen cuando se genera el pdf.
        $link_pdf_vista = env('URL_COMPARTIDO_VISTAPDF').env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.png';
        //$link_pdf_vista = asset(env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.png');
        
        //$vista = \View::make('informes/fiscales')->with(compact('inscripciones','arba','claes','fecha_inicio_actividad','datos_generales','sircreb','domicilios', 'fiscal_sircreb','pdf_disponible','padron_impuestos','padron_actividades','padron_caracterizaciones','tipo_persona','razon_social','defuncion', 'texto_pdf','pdf_inscripcion','link_pdf_vista', 'apocrifas', 'misaportes'))->render();
        $vista = \View::make('informe-comercial-nuevo/fiscales_nuevo')->with(compact('inscripciones','arba','claes','sircreb','domicilios', 'fiscal_sircreb','pdf_disponible','padron_impuestos','padron_actividades','padron_caracterizaciones','tipo_persona','razon_social','defuncion', 'texto_pdf','pdf_inscripcion','link_pdf_vista', 'apocrifas', 'misaportes'))->render();
        //Session::put($cuit." ".date('Y-m-d').".fiscales",json_encode($vista));
        
        if (!$json) {
            return $vista;
        }
        return \Response::json(
            array(
                'view' => $vista,
                'info'=>['pdf_disponible' => $pdf_disponible],
                'info_varios'=>compact('domicilios','inscripciones','padron_impuestos','padron_actividades','padron_caracterizaciones','fiscal_sircreb','arba','pdf_disponible','defuncion','imagen_fidelitas','link_pdf_vista', 'apocrifas', 'misaportes')
            ) , 200, [], JSON_NUMERIC_CHECK
        );
    }

    // FUNCION QUE DEVUELVE SECCION FISCALES
    public function obtenerFiscales($json = true,$pdf_inscripcion = ''){
        $imagen_fidelitas             = Misc::obtenerImagenFidelitas();
        $cuit                         = Request::input('cuit');
        $id_padron                    = Request::input('idp');
    
        /* 07/10/2021: para poder llamarlo desde led */
        $es_led = false; 
        $id = Request::input('contraparte') ?? null;
        if (!$cuit) {
            $qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
            $cuit = $qcontrap->identificacion ?? null;
            $json = false; 
            $es_led = true; 
        }
    
        if (!$id_padron) {
            $idp       = SQLConnection::obtenerIdPadron($cuit);            
            $id_padron = $idp->id_padron;
        }

        $inscripciones                = SQLConnection::obtenerInscripciones($cuit);
        $arba                         = SQLConnection::obtenerArba($cuit);
        $claes                        = SQLConnection::obtenerClae($cuit);
        $sircreb                      = SQLConnection::obtenerSircreb($cuit);
        $fuentes_procesadas           = SQLConnection::obtenerUltimoPeriodoProcesado("sircreb");
        $padron_impuestos             = SQLConnection::obtenerPadronImpuestos($id_padron);
        $padron_actividades           = SQLConnection::obtenerPadronActividades($id_padron);
        $padron_caracterizaciones     = SQLConnection::obtenerPadronCaracterizaciones($id_padron);
        $obtener_domicilios           = SQLConnection::obtenerDomicilios($cuit);
        $domicilios                   = new \stdClass;
        $domicilios->domicilio_fiscal = '';
        $tipo_persona                 = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
        $razon_social                 = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
        $defuncion                    = SQLConnection::obtenerDefuncion($cuit);
    
        foreach ($padron_impuestos as $key => $value) {
            if (isset($value->fecha_inscripcion)) {
                $value->fecha_inscripcion = Misc::convertirFormatoFecha($value->fecha_inscripcion,'Y-m-d','d/m/Y');
            } else {
                $value->fecha_inscripcion = '';
            }
        }
        
        foreach ($obtener_domicilios as  $domicilio) {
            //if($domicilio->tipo_domicilio == 'F'){
            if (strpos($domicilio->tipo_domicilio, 'F') !== false) {
                if ($domicilio->domicilio !='') {
                    $domicilios->domicilio_fiscal = Misc::armarDomicilio($domicilio->domicilio,$domicilio->codpos,$domicilio->loc_nombre,$domicilio->prv_nombre,$domicilio->pai_nombre);
                    break; 
                } else {
                    $domicilios->domicilio_fiscal = '';
                }
            }
        }
    
        $fiscal_sircreb = array();
    
        if ($sircreb) {
            // Estableciendo las fechas correctas
            foreach ($sircreb as $key => $info) {
                $sircreb[$key]->fecha_publicacion = Misc::convertDate($info->fecha_publicacion,'d/m/Y');
                $sircreb[$key]->vigencia_hasta    = Misc::convertDate($info->vigencia_hasta,'d/m/Y');
                $sircreb[$key]->vigencia_desde    = Misc::convertDate($info->vigencia_desde,'d/m/Y');
            }
            $anio_actual = date("Y");
            $mes_actual = date("n");
            $fiscal_sircreb_anios = array();
            $fiscal_trimestres = array(
                0 => array(1,2,3),
                1 => array(4,5,6),
                2 => array(7,8,9),
                3 => array(10,11,12),
            );
            // Recorriendo fechas 
            foreach ($sircreb as $key => $value) { 
                //$fiscal_mes  = substr($value->fecha_publicacion, 3,2);
                //$fiscal_anio = substr($value->fecha_publicacion, 6,4);
                $fiscal_mes  = substr($value->vigencia_desde, 3,2);
                $fiscal_mes = (int)$fiscal_mes;
                $fiscal_anio = substr($value->vigencia_desde, 6,4);
                $fiscal_anio = (int)$fiscal_anio;
                // Años fiscales desde/hasta
                if ($key == 0) {
                    $diferencia_anios = $anio_actual - $fiscal_anio;        
                    for ($x=0; $x <= $diferencia_anios; $x++) {
                        $nuevo_anio = $fiscal_anio + $x;
                        $fiscal_sircreb_anios[$nuevo_anio] = $nuevo_anio;
                    }
                }
                // Estableciendo Trimestres
                foreach ($fiscal_trimestres as $key2 => $trimestre) {
                    foreach ($trimestre as $value_trimestre) {
                        if ($fiscal_mes == $value_trimestre) {
                            $fiscal_sircreb[$fiscal_anio][$key2] = "Riesgo Fiscal";
                        } else {
                            if (!isset($fiscal_sircreb[$fiscal_anio][$key2])) {
                                $fiscal_sircreb[$fiscal_anio][$key2] = "-";
                            }
                        }
                    }
                }
            }
            if ($fuentes_procesadas) {
                $fuentes_procesadas   = Misc::convertDate($fuentes_procesadas,'d/m/Y');
                $mes_fuente_procesada = substr($fuentes_procesadas, 3,2);
            }
            // Estableciendo los años/trimestres completos
            foreach ($fiscal_sircreb_anios as $anio) {
                if (!isset($fiscal_sircreb[$anio])) {
                    foreach ($fiscal_trimestres as $key => $trimestre) {
                        foreach ($trimestre as $value_trimestre) {
                        // Evaluando si existe registro fiscal en el año que esta transcurriendo
                            if (($anio_actual == $anio) && ($value_trimestre >= $mes_actual)) {
                                if ((isset($mes_fuente_procesada)) && ($value_trimestre == $mes_fuente_procesada)) {
                                    $fiscal_sircreb[$anio][$key] = "-";
                                } else {
                                    $fiscal_sircreb[$anio][$key] = "";
                                }
                            } else {
                                $fiscal_sircreb[$anio][$key] = "-";
                            }
                        }
                    }
                }
            }
            ksort($fiscal_sircreb);
        }
        
        /*
        if($claes){
            foreach($claes as $clae){
            if($clae->fecha_inicio_actividad){
            $fecha_inicio_actividad =  $clae->fecha_inicio_actividad;
            }
            }
        }
        */
    
        $link_pdf = env('AFIP_URL_COMPARTIDO_PEGAR').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.pdf';
        $link_imagen = env('AFIP_URL_COMPARTIDO_PEGAR').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.png';
        // $link_pdf_vista = env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.pdf';
        $link_pdf_vista = env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.png';
        $pdf_disponible = false;
        $texto_pdf = '';
        
        //if (file_exists($link_pdf) && (filesize($link_pdf) > 3000)) {
        if ( (  file_exists($link_pdf) && Session::get('html') ) || ( file_exists($link_imagen) && !Session::get('html') ) ) {
            $pdf_disponible = true;
        } else {
            $exec = SQLConnection::backendStoreProcedure('afip_texto_sin_constancia', array($id_padron), true);
            $texto_pdf = ($exec->texto_constancia) ?? '';
        }

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

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

	$misaportes = [];
        if ($tipo_persona == 'f' && $tipo_aportes == 'f') {   
            foreach ($aportes as $x => $aporte) {
                $misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['ddjj'] = $aporte->ddjj;
                $misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['aportes_os'] = $aporte->aportes_os;
                $misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['aportes_ss'] = $aporte->aportes_ss;
                $misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['contr_patronal'] = $aporte->contr_patronal;
            }
        } else {
            foreach ($aportes as $x => $aporte) {
                /*
                $misaportes[$aporte->periodo_str]['ddjj'] = $aporte->ddjj;
                $misaportes[$aporte->periodo_str]['aportes_os'] = $aporte->aportes_os;
                $misaportes[$aporte->periodo_str]['aportes_ss'] = $aporte->aportes_ss;
                $misaportes[$aporte->periodo_str]['contr_patronal'] = $aporte->contr_patronal;
                */
                /*
                Si hay distintos en el mismo periodo gana el mayor 
                tomando este orden
                IMPAGO
                PAGO PARCIAL 
                PAGO (lo pasamos como PAGO TOTAL para que la comparacion de < haga el ordenamiento que queremos (pago total > pago parcial), despues lo volvemos a poner como PAGO)
                */ 
                if ($aporte->ddjj == 'PAGO') { 
                    $aporte->ddjj = 'PAGO TOTAL'; 
                } 
                if (!isset($misaportes[$aporte->periodo_str]['ddjj']) || $misaportes[$aporte->periodo_str]['ddjj'] < $aporte->ddjj) {
                    $misaportes[$aporte->periodo_str]['ddjj'] = $aporte->ddjj;
                }
        
                if ($aporte->aportes_os == 'PAGO') { 
                    $aporte->aportes_os = 'PAGO TOTAL'; 
                } 
                if (!isset($misaportes[$aporte->periodo_str]['aportes_os']) || $misaportes[$aporte->periodo_str]['aportes_os'] < $aporte->aportes_os) {
                    $misaportes[$aporte->periodo_str]['aportes_os'] = $aporte->aportes_os;
                }
        
                if ($aporte->aportes_ss == 'PAGO') { 
                    $aporte->aportes_ss = 'PAGO TOTAL'; 
                } 
                if (!isset($misaportes[$aporte->periodo_str]['aportes_ss']) || $misaportes[$aporte->periodo_str]['aportes_ss'] < $aporte->aportes_ss) {
                    $misaportes[$aporte->periodo_str]['aportes_ss'] = $aporte->aportes_ss;
                }
        
                if ($aporte->contr_patronal == 'PAGO') { 
                    $aporte->contr_patronal = 'PAGO TOTAL'; 
                } 
                if (!isset($misaportes[$aporte->periodo_str]['contr_patronal']) || $misaportes[$aporte->periodo_str]['contr_patronal'] < $aporte->contr_patronal) {
                    $misaportes[$aporte->periodo_str]['contr_patronal'] = $aporte->contr_patronal;
                }
            }
    
            foreach ($misaportes as $x => $aporte) {
                foreach ($aporte as $z => $ap) {
                    if ($ap == 'PAGO TOTAL') { 
                        $misaportes[$x][$z] = 'PAGO';
                    }
                }
            }  
    
    
        }
       
        /* $aportes = ($tipo_persona == 'f') ? SQLConnection::backendStoreProcedure('backend_mis_aportes', array($cuit, NULL, 12, 1), false) : SQLConnection::backendStoreProcedure('mis_aportes_empresa', array($cuit), false);
        $misaportes = [];
    
        if ($tipo_persona == 'f') {   
            foreach ($aportes as $x => $aporte) {
                $misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['ddjj'] = $aporte->ddjj;
                $misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['aportes_os'] = $aporte->aportes_os;
                $misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['aportes_ss'] = $aporte->aportes_ss;
                $misaportes[$aporte->nombre_empleador . ' - ' . $aporte->identificador_empleador . ' ' . $aporte->cuit_empleador][$aporte->periodo_str]['contr_patronal'] = $aporte->contr_patronal;
            }
        } else {
            foreach ($aportes as $x => $aporte) {
                
                //$misaportes[$aporte->periodo_str]['ddjj'] = $aporte->ddjj;
                //$misaportes[$aporte->periodo_str]['aportes_os'] = $aporte->aportes_os;
                //$misaportes[$aporte->periodo_str]['aportes_ss'] = $aporte->aportes_ss;
                //$misaportes[$aporte->periodo_str]['contr_patronal'] = $aporte->contr_patronal;
                
                
                //Si hay distintos en el mismo periodo gana el mayor 
                //tomando este orden
                //IMPAGO
                //PAGO PARCIAL 
                //PAGO (lo pasamos como PAGO TOTAL para que la comparacion de < haga el ordenamiento que queremos (pago total > pago parcial), despues lo volvemos a poner como PAGO)
                 
                if ($aporte->ddjj == 'PAGO') { 
                    $aporte->ddjj = 'PAGO TOTAL'; 
                } 
                if (!isset($misaportes[$aporte->periodo_str]['ddjj']) || $misaportes[$aporte->periodo_str]['ddjj'] < $aporte->ddjj) {
                    $misaportes[$aporte->periodo_str]['ddjj'] = $aporte->ddjj;
                }
        
                if ($aporte->aportes_os == 'PAGO') { 
                    $aporte->aportes_os = 'PAGO TOTAL'; 
                } 
                if (!isset($misaportes[$aporte->periodo_str]['aportes_os']) || $misaportes[$aporte->periodo_str]['aportes_os'] < $aporte->aportes_os) {
                    $misaportes[$aporte->periodo_str]['aportes_os'] = $aporte->aportes_os;
                }
        
                if ($aporte->aportes_ss == 'PAGO') { 
                    $aporte->aportes_ss = 'PAGO TOTAL'; 
                } 
                if (!isset($misaportes[$aporte->periodo_str]['aportes_ss']) || $misaportes[$aporte->periodo_str]['aportes_ss'] < $aporte->aportes_ss) {
                    $misaportes[$aporte->periodo_str]['aportes_ss'] = $aporte->aportes_ss;
                }
        
                if ($aporte->contr_patronal == 'PAGO') { 
                    $aporte->contr_patronal = 'PAGO TOTAL'; 
                } 
                if (!isset($misaportes[$aporte->periodo_str]['contr_patronal']) || $misaportes[$aporte->periodo_str]['contr_patronal'] < $aporte->contr_patronal) {
                    $misaportes[$aporte->periodo_str]['contr_patronal'] = $aporte->contr_patronal;
                }
            }
    
            foreach ($misaportes as $x => $aporte) {
                foreach ($aporte as $z => $ap) {
                    if ($ap == 'PAGO TOTAL') { 
                        $misaportes[$x][$z] = 'PAGO';
                    }
                }
            }  
    
    
        } */
    
        /*$aporteshtml = (sizeof($misaportes) > 0) ? utf8_decode(Misc::decrypt($misaportes[0]->source_html)) : NULL;*/
        // Se agrego esta ruta para que en backend7 pueda verse la imagen cuando se genera el pdf.
        $link_pdf_vista = env('URL_COMPARTIDO_VISTAPDF').env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.png';
        //$link_pdf_vista = asset(env('AFIP_URL_COMPARTIDO_LEER').'/'.substr($cuit, 0, 2).'/'.substr($cuit, 2, 3).'/'.substr($cuit, 5, 3).'/'.$cuit.'.png');
        
        //$vista = \View::make('informes/fiscales')->with(compact('inscripciones','arba','claes','fecha_inicio_actividad','datos_generales','sircreb','domicilios', 'fiscal_sircreb','pdf_disponible','padron_impuestos','padron_actividades','padron_caracterizaciones','tipo_persona','razon_social','defuncion', 'texto_pdf','pdf_inscripcion','link_pdf_vista', 'apocrifas', 'misaportes'))->render();
        $vista = \View::make('informe-comercial-nuevo/fiscales_nuevo')->with(compact('inscripciones','arba','claes','sircreb','domicilios', 'fiscal_sircreb','pdf_disponible','padron_impuestos','padron_actividades','padron_caracterizaciones','tipo_persona','razon_social','defuncion', 'texto_pdf','pdf_inscripcion','link_pdf_vista', 'apocrifas', 'misaportes','tipo_aportes'))->render();
        //Session::put($cuit." ".date('Y-m-d').".fiscales",json_encode($vista));
        
        if (!$json) {
            return $vista;
        }
        return \Response::json(
            array(
                'view' => $vista,
                'info'=>['pdf_disponible' => $pdf_disponible],
                'info_varios'=>compact('domicilios','inscripciones','padron_impuestos','padron_actividades','padron_caracterizaciones','fiscal_sircreb','arba','pdf_disponible','defuncion','imagen_fidelitas','link_pdf_vista', 'apocrifas', 'misaportes')
            ) , 200, [], JSON_NUMERIC_CHECK
        );
    }

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

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

    // FUNCION UTILIZADA POR CONTABLES
    private function obtenerRegistrosContables($respuesta_activo,$respuesta_estado,$indices_de_gestion,$respuesta_activo_extendido,$respuesta_pasivo_extendido,$respuesta_estado_extendido,$indices_de_gestion_extendido){
        $registro_act         = [];
        $registro_estado      = [];
        $registro_ind_gestion = [];
        $registro_act_ext     = [];
        $registro_pas_ext     = [];
        $registro_estado_ext  = [];
        $registro_gestion_ext = [];
        //ACTIVO-PASIVO-PN resumido
        foreach ($respuesta_activo as $key_array => $objeto) {
            
            $registro_act['periodo'][] = $objeto->fecha_balance;
            $registro_act['estado'][] = $objeto->estado;
            $registro_act['ac_total'][] = $objeto->ac_total;
            $registro_act['anc_total'][] = $objeto->anc_total;
            $registro_act['act_total'][] = $objeto->act_total;
            $registro_act['pc_total'][] = $objeto->pc_total;
            $registro_act['pnc_total'][] = $objeto->pnc_total;
            $registro_act['pas_total'][] = $objeto->pas_total;
            $registro_act['patrimonio'][] = $objeto->patrimonio;
            $registro_act['nombre_moneda'] = $objeto->nombre_moneda;
            $registro_act['ruta_archivo'][] = $objeto->ruta_archivo;
            $registro_act['fecha_amd'][] = $objeto->fecha_order;
            $registro_act['cuit'][] = $objeto->cuit;
        }
        //ESTADO DE RESULTADO resumido
        foreach ($respuesta_estado as $key_array => $objeto) {
            $registro_estado['periodo'][] = $objeto->fecha_balance;
            $registro_estado['estado'][] = $objeto->estado;
            $registro_estado['res_vtanet'][] = $objeto->res_vtanet;
            $registro_estado['ganancia'][] = $objeto->ganancia;
            $registro_estado['nombre_moneda'] = $objeto->nombre_moneda;
        }
        //INDICE DE GESTION resumido
        foreach ($indices_de_gestion as $key_array => $objeto) {
            $registro_ind_gestion['periodo'][] = $objeto->fecha_balance;
            $registro_ind_gestion['estado'][] = $objeto->estado;
            $registro_ind_gestion['ind_liqcorr'][] = $objeto->ind_liqcorr;
            $registro_ind_gestion['ind_endeu'][] = $objeto->ind_endeu;
            //se cambio "ind_solvencia_pat" x "ind_solvencia"
            //se cambio "ind_solvencia" x "ind_solvencia_pat" 28-12-2017 a pedido de edu
            $registro_ind_gestion['ind_solvencia_pat'][] = $objeto->ind_solvencia_pat;
            $registro_ind_gestion['ind_captra'][] = $objeto->ind_captra;
            $registro_ind_gestion['ind_rentabilidad'][] = $objeto->ind_rentabilidad;
            $registro_ind_gestion['ind_rotact'][] = $objeto->ind_rotact;
            $registro_ind_gestion['ind_rotinv'][] = $objeto->ind_rotinv;
            $registro_ind_gestion['ind_marbru'][] = $objeto->ind_marbru;
            $registro_ind_gestion['nombre_moneda'] = $objeto->nombre_moneda;
        }
    
        // ACTIVO extendido
        foreach ($respuesta_activo_extendido as $key_array => $objeto) {
            $registro_act_ext['periodo'][] = $objeto->fecha_balance;
            $registro_act_ext['estado'][] = $objeto->estado;
            $registro_act_ext['ac_cajban'][] = $objeto->ac_cajban;
            $registro_act_ext['ac_inver'][] = $objeto->ac_inver;
            $registro_act_ext['ac_crevta'][] = $objeto->ac_crevta;
            $registro_act_ext['ac_otrcre'][] = $objeto->ac_otrcre;
            $registro_act_ext['ac_biecam'][] = $objeto->ac_biecam;
            $registro_act_ext['ac_bietan'][] = $objeto->ac_bietan;
            $registro_act_ext['ac_otract'][] = $objeto->ac_otract;
            $registro_act_ext['ac_total'][] = $objeto->ac_total;
            $registro_act_ext['anc_crevta'][] = $objeto->anc_crevta;
            $registro_act_ext['anc_otrcre'][] = $objeto->anc_otrcre;
            $registro_act_ext['anc_inver'][] = $objeto->anc_inver;
            $registro_act_ext['anc_actint'][] = $objeto->anc_actint;
            $registro_act_ext['anc_otract'][] = $objeto->anc_otract;
            $registro_act_ext['anc_bieuso'][] = $objeto->anc_bieuso;
            $registro_act_ext['anc_bieusovo'][] = $objeto->anc_bieusovo;
            $registro_act_ext['anc_depacu'][] = $objeto->anc_depacu;
            $registro_act_ext['anc_total'][] = $objeto->anc_total;
            $registro_act_ext['act_total'][] = $objeto->act_total;
            $registro_act_ext['nombre_moneda'] = $objeto->nombre_moneda;
        }
        //PASIVOS extendidos
        foreach ($respuesta_pasivo_extendido as $key_array => $objeto) {
            $registro_pas_ext['periodo'][] = $objeto->fecha_balance;
            $registro_pas_ext['estado'][] = $objeto->estado;
            $registro_pas_ext['pc_ctapag'][] = $objeto->pc_ctapag;
            $registro_pas_ext['pc_presta'][] = $objeto->pc_presta;
            $registro_pas_ext['pc_remune'][] = $objeto->pc_remune;
            $registro_pas_ext['pc_carfis'][] = $objeto->pc_carfis;
            $registro_pas_ext['pc_antcli'][] = $objeto->pc_antcli;
            $registro_pas_ext['pc_otrpas'][] = $objeto->pc_otrpas;
            $registro_pas_ext['pc_total'][] = $objeto->pc_total;
            $registro_pas_ext['pnc_cuepag'][] = $objeto->pnc_cuepag;
            $registro_pas_ext['pnc_previ'][] = $objeto->pnc_previ;
            $registro_pas_ext['pnc_presta'][] = $objeto->pnc_presta;
            $registro_pas_ext['pnc_otrpas'][] = $objeto->pnc_otrpas;
            $registro_pas_ext['pnc_deufis'][] = $objeto->pnc_deufis;
            $registro_pas_ext['pnc_total'][] = $objeto->pnc_total;
            $registro_pas_ext['pas_total'][] = $objeto->pas_total;
            $registro_pas_ext['capsoc'][] = $objeto->capsoc;
            $registro_pas_ext['res_noasig'][] = $objeto->res_noasig;
            $registro_pas_ext['patrimonio'][] = $objeto->patrimonio;
            $registro_pas_ext['nombre_moneda'] = $objeto->nombre_moneda;
    
        }
        //ESTADO DE RESULTADO extendido
        foreach ($respuesta_estado_extendido as $key_array => $objeto) {
            $v1 = $objeto->res_vtanet;
            $v2 = $objeto->res_cosmer;
            $resultado_bruto =  $v1 - $v2;
            $registro_estado_ext['periodo'][]         = $objeto->fecha_balance;
            $registro_estado_ext['estado'][] = $objeto->estado;
            $registro_estado_ext['res_vtanet'][]      = $objeto->res_vtanet;
            $registro_estado_ext['res_compras'][]     = $objeto->res_compras;
            $registro_estado_ext['res_cosmer'][]      = $objeto->res_cosmer; 
            $registro_estado_ext['amortiza'][]        = $objeto->amortiza;
            $registro_estado_ext['res_gascom'][]      = $objeto->res_gascom;
            $registro_estado_ext['res_gasadm'][]      = $objeto->res_gasadm;
            $registro_estado_ext['res_gasfin'][]      = $objeto->res_gasfin;
            $registro_estado_ext['res_otrosegr'][]    = $objeto->res_otrosegr;
            $registro_estado_ext['res_otrosing'][]    = $objeto->res_otrosing;
            $registro_estado_ext['res_resfin'][]      = $objeto->res_resfin;
            $registro_estado_ext['res_iva'][]         = $objeto->res_iva;
            $registro_estado_ext['ganancia'][]        = $objeto->ganancia;
            $registro_estado_ext['resultado_bruto'][] = $resultado_bruto;
            $registro_estado_ext['nombre_moneda']     = $objeto->nombre_moneda;
        }
        //INDICE DE GESTION extendido
        foreach ($indices_de_gestion_extendido as $key_array => $objeto) {
            $registro_gestion_ext['periodo'][] = $objeto->fecha_balance;
            $registro_gestion_ext['estado'][] = $objeto->estado;
            $registro_gestion_ext['ind_liqcorr'][] = $objeto->ind_liqcorr;
            $registro_gestion_ext['ind_liqseca'][] = $objeto->ind_liqseca;
            $registro_gestion_ext['ind_endeu'][] = $objeto->ind_endeu;
            $registro_gestion_ext['ind_endeuact'][] = $objeto->ind_endeuact;
            //$registro_gestion_ext['ind_solvencia'][] = $objeto->ind_solvencia; se remplazo el 28/12/2017 a pedido de Edu x "ind_solvencia_pat"
            $registro_gestion_ext['ind_solvencia_pat'][] = $objeto->ind_solvencia_pat;
            $registro_gestion_ext['ind_captra'][] = $objeto->ind_captra;
            //$registro_gestion_ext['ind_cappro'][] = $objeto->ind_cappro;
            $registro_gestion_ext['ind_invbu'][] = $objeto->ind_invbu;
            //$registro_gestion_ext['ind_inmact'][] = $objeto->ind_inmact;
            //$registro_gestion_ext['ind_inmpat'][] = $objeto->ind_inmpat;
            $registro_gestion_ext['ind_retpat'][] = $objeto->ind_retpat;
            $registro_gestion_ext['ind_rotvta'][] = $objeto->ind_rotvta;
            $registro_gestion_ext['ind_marbru'][] = $objeto->ind_marbru;
            $registro_gestion_ext['ind_utilfin'][] = $objeto->ind_utilfin;
            $registro_gestion_ext['ind_rentabilidad'][] = $objeto->ind_rentabilidad;
            $registro_gestion_ext['ind_ebipas'][] = $objeto->ind_ebipas;
            $registro_gestion_ext['ind_indrot'][] = $objeto->ind_indrot;
            $registro_gestion_ext['ind_rotinv'][] = $objeto->ind_rotinv;
            $registro_gestion_ext['ind_prest_pn'][] = $objeto->ind_prest_pn;
            $registro_gestion_ext['ind_prest_vtas'][] = $objeto->ind_prest_vtas;
            $registro_gestion_ext['ind_rotact'][] = $objeto->ind_rotact;
            $registro_gestion_ext['nombre_moneda'] = $objeto->nombre_moneda;
    
        }
        $resp['registro_act']               = $registro_act;
        $resp['registro_estado']            = $registro_estado;
        $resp['registro_ind_gestion']       = $registro_ind_gestion;
        $resp['registro_gestion_ext']       = $registro_gestion_ext;
        $resp['registro_act_ext']           = $registro_act_ext;
        $resp['registro_pas_ext']           = $registro_pas_ext;
        $resp['registro_estado_ext']        = $registro_estado_ext;
        return $resp;   
    }

    // FUNCION UTILIZADA POR CONTABLES
    private function calcularContables($respuesta_activo,$respuesta_pasivo,$respuesta_estado,$indices_de_gestion){
        $activo               = [];
        $pasivo               = [];
        $estado_de_resultados = [];
        $indices              = [];
        $grafico_contable     = [];
        ksort($respuesta_activo);
        ksort($respuesta_pasivo);
        ksort($respuesta_estado);
        ksort($indices_de_gestion);
    
        foreach ($indices_de_gestion as $key_indice => $indice) { 
            //Cuenta 'Efecto Palanca' 
            $ganancia     = $indice->ganancia;
            $activo_total = $indice->act_total;
            if($activo_total > 0){
            $resultado_efecto_palanca = $ganancia / $activo_total;
            }else{
            $resultado_efecto_palanca = 0;
            }
            $grafico_contable['periodo'][] = $indice->fecha_balance;
            $grafico_contable['solvencia'][$key_indice][] = $indice->ind_solvencia_pat ;
            $grafico_contable['liquidez_corriente'][$key_indice][] =  $indice->ind_liqcorr ;
            $grafico_contable['endeudamiento_corriente'][$key_indice][] =  $indice->ind_endeu;
            $grafico_contable['utilidad_neta'][$key_indice][] =  $indice->ind_utilfin ;
            $grafico_contable['efecto_palanca'][$key_indice][] = $resultado_efecto_palanca ;
            $indices = true;
        }
        
        foreach($respuesta_activo as $key_respuesta => $balances){
            $grafico_contable['periodo'][] = $balances->fecha_balance;
            $grafico_contable['total_activo_corriente'][$key_respuesta][] = $balances->ac_total ;
            $grafico_contable['activo'][$key_respuesta][] = $balances->act_total ;
            $activo = true;
        }
    
        foreach($respuesta_pasivo as $key_respuesta => $balances){
            $grafico_contable['periodo'][] = $balances->fecha_balance;
            $grafico_contable['total_pasivo_corriente'][$key_respuesta][] = $balances->pc_total ;
            $grafico_contable['pasivo'][$key_respuesta][] = $balances->pas_total ;
            $grafico_contable['patrimonio_neto'][$key_respuesta][] = $balances->patrimonio ;
            $respuesta_pasivo = true;
        }
    
        foreach($respuesta_estado as $key_respuesta => $balances){
            //Cuenta GASTOS TOTALES SOBRE VENTAS
            $gasto_adm    =  $balances->res_gasadm;
            $gasto_fin    =  $balances->res_gasfin;
            $gasto_comer  = $balances->res_gascom;
            $venta        = ($grafico_contable['res_vtanet'][$key_respuesta][] = $balances->res_vtanet);
            $gastos_totales_sobre_ventas = ($venta > 0)  ? ((($gasto_adm+$gasto_fin+$gasto_comer) * 100) / $venta) : 0 ;
            $grafico_contable['gastos_totales_sobre_ventas'][$key_respuesta][] =  $gastos_totales_sobre_ventas ;
            $grafico_contable['periodo'][] = $balances->fecha_balance;
            //$grafico_contable['efecto_palanca'][$key_respuesta][] = number_format( ($balances / $grafico_contable['activo'][$key_respuesta][1]),2);
            $grafico_contable['ventas'][$key_respuesta][] = $balances->res_vtanet;
            $respuesta_estado = true;
        }
    
        if(!$grafico_contable){$grafico_contable = [];}
        $return['graficos']             = $grafico_contable;
        $return['activo']               = $activo;
        $return['pasivo']               = $pasivo;
        $return['estado_de_resultados'] = $estado_de_resultados;
        $return['indices_de_gestion']   = $indices;
        return $return;
    }

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

    // FUNCION QUE DEVUELVE SECCION SOCIEDADES
    public function obtenerSociedadesOrg($json=true,$relaciones_en_color='false'){

        $apikey = Request::input('apikey');
        $imagen_fidelitas  = Misc::obtenerImagenFidelitas();
        $mostrar_homonimos = true;
        $incluir_homonimos_impresion = Request::input('incluir_homonimos_impresion');
        if($json==false){
            if($incluir_homonimos_impresion== 'on') {
                $mostrar_homonimos = true;
            } else {
                $mostrar_homonimos = false; 
            }
        } else {
            if (isset(Session::get('usuario')->preferencias->incluir_homonimos) && (!(Session::get('usuario')->preferencias->incluir_homonimos))) {
                $mostrar_homonimos = false;
            }
        }
        $cuit                      = Request::input('cuit');
        $razon_social_todos        = [];  
        $razon_social              = Request::input('razon_social');
        if(!$razon_social){
            $razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
        }
        //
        $razon_social              = str_replace('#', 'ñ', $razon_social);
        //
        $razon_social_todos[5]     = $razon_social;
        $razon_social_f            = Request::input('razon_social');
        $razon_social_f            = str_replace('#', 'ñ', $razon_social_f);
        $razon_social_f            = preg_replace('/\(|\)/','',$razon_social);
        $malla_razon_social        = $razon_social;
        $participaciones_ordenados = [];
        $resultado_razon_social    = [];
        $sociedades                = SQLConnection::obtenerSociedades($cuit);
        $accionista_de             = SQLConnection::obtenerAccionistasDe($cuit);
        $tipo_persona              = ( Misc::tipoPersona($cuit) == 'F') ? 'f' : 'j' ;
        $resultado_nombres_ant     = []; 
        //busca nombres anteriores de la empresa relacionados con el CUIT
        $nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
        $resultado_nombres_ant[] = $razon_social;
        if ($tipo_persona =='j') {
            $accionistas = SQLConnection::obtenerAccionistasNew($cuit);
            if ($nombres_anteriores) {
                foreach ($nombres_anteriores as $nombre_ant) {
                    $resultado_nombres_ant[] = $nombre_ant->nombre; 
                }
            }
        } else {
            $accionistas = '';
        }
        //
        $participaciones           = SQLConnection::obtenerParticipacionSociosDirectores($cuit);
        //formateo de fechas - participaciones
        foreach ($participaciones as $key => $value) {
            $participaciones[$key]->desde = Misc::convertirFormatoFecha($value->desde,'Y-m','m-Y'); 
            $participaciones[$key]->hasta = Misc::convertirFormatoFecha($value->hasta,'Y-m','m-Y'); 
        }
        //
        $edictos_homonimos         = [];
        $edictos                   = SQLConnection::obtenerEdictos($cuit);
        $socios_directores         = SQLConnection::obtenerSociosDirectores($cuit,$tipo_persona);
        $sinonimos                 = '';
        $razon_social_completa     = '';
        $razon_social_explode      = explode(" ", $razon_social_f);
        //formateo de fechas - socios_directores
        foreach ($socios_directores as $key => $value) {
            $socios_directores[$key]->c04_periodo_desde = Misc::convertirFormatoFecha($value->c04_periodo_desde,'Y-m','m-Y');
            $socios_directores[$key]->c04_periodo_hasta = Misc::convertirFormatoFecha($value->c04_periodo_hasta,'Y-m','m-Y');
            $socios_directores[$key]->fecha_cons        = Misc::convertirFormatoFecha($value->fecha_cons,'Y-m-d','d-m-Y');
        }
        //formateo de fechas - accionistas_de
        foreach ($accionista_de as $key => $value) {
            $accionista_de[$key]->fecha_ins_rpc = Misc::convertirFormatoFecha($value->fecha_ins_rpc,'Y-m-d','d-m-Y');
            $accionista_de[$key]->fecha_cons = Misc::convertirFormatoFecha($value->fecha_cons,'Y-m-d','d-m-Y');
        }
        //Elimina de las combinaciones los valores que contienen una letra 
        $explode_aux = [];
        foreach ($razon_social_explode as $key => $value) {
            if(isset($value) && (strlen($value) > 1)) {
            $explode_aux[] = $value;
            }
        }
        $razon_social_explode = $explode_aux;
        //P. FISICA
        if($tipo_persona == 'f'){
            $razon_social_explode = array_values($razon_social_explode);
            $resultado_razon_social    = Misc::resultadoCombinaciones($razon_social_explode);
            //Limita a 10 resultados las combinaciones en PF
            $resultado_razon_social = array_slice($resultado_razon_social, -10);
            $cant_resultado_razon_social = count($resultado_razon_social);
            //
            if($cant_resultado_razon_social < 10){
                foreach($resultado_razon_social as $key => $rs){
                    if(!(end($resultado_razon_social) == $rs)){
                        $razon_social_completa .='NEAR(('.str_replace(" ",",",$rs).'),0,true) OR ';
                    } else {
                        $razon_social_completa .= 'NEAR(('.str_replace(" ",",",$rs).'),0,true)';
                    }
                }
            } else {
                $razon_social_completa = "\"".$razon_social_f."\"";
            }
        }
        // P. JURIDICA
        //INCLUIR HOMONIMOS EN LA BUSQUEDA POR PERFIL DE USUARIO
        if ($mostrar_homonimos) {
            if($tipo_persona == 'j'){
                $sinonimos = Misc::diccionarioSinonimosTEST($resultado_nombres_ant);
                $count_sinonimo = count($sinonimos)-1;
                foreach($sinonimos as $key => $rs){
                    if(!($key == $count_sinonimo)){
                        $razon_social_completa .= $rs.'OR';
                    } else {
                        $razon_social_completa .= $rs;
                    }
                }
                if(!$razon_social_completa){$razon_social_completa = "\"".$razon_social."\"";}
                $edictos_homonimos         = SQLConnection::obtenerEdictosHomonimos($razon_social_completa);
            }else{
                //Edictos para PF
                $edictos_homonimos       = SQLConnection::obtenerEdictosHomonimos($razon_social_completa);
                $sinonimos = $razon_social_completa; 
            }
            //
            if($edictos_homonimos){
                if($json == true && !$apikey){
                    if($tipo_persona == 'f') {
                        $edictos_homonimos = Misc::ResaltarResultadosEdictosHomonimosPF($edictos_homonimos,$resultado_razon_social);
                    }else{
                        $edictos_homonimos   = Misc::ResaltarResultadosEdictosHomonimosNombresAnt($edictos_homonimos, $sinonimos);
                    }
                }
            }
        } 
        //fin de incluir homonimos por perfil de usuario    
        if($edictos) {
            $palabras_agregar = []; 
            $sinonimos        = [];
            $razon_social_segmentada = [];
            $razon_social     = Misc::diccionarioSinonimos2020($razon_social_todos[5]);
            $razon_social     = str_replace('"','',$razon_social);
            //inicio - Obtener Sinonimos
            $palabras = explode(' ',$razon_social);
            //sinonimos PF usa combinacion de nombres que obtiene de $resultado_razon_social
            if ($tipo_persona == 'f') {
                $sinonimos = $resultado_razon_social;
                if($json == true  && !$apikey){
                    $edictos = Misc::ResaltarResultadosEdictos($edictos,'',$sinonimos);
                }
            }else{
                if($json == true  && !$apikey){
                    $edictos = Misc::ResaltarResultadosEdictos($edictos,$razon_social,'');
                }
            }
            //
            foreach($palabras as $key => $palabra){
                if(strlen($palabra) > 1){
                    $razon_social_segmentada[] = $palabra;
                }
            }
            //
            foreach($razon_social_segmentada as $sinonimo){
                $resp = SQLConnection::obtenerSinonimos($sinonimo);
                if(empty($resp)){
                    if($json == true  && !$apikey){
                        $edictos = Misc::ResaltarResultadosEdictos($edictos,$razon_social,'');
                    }
                } else {
                    $palabras_agregar[] = $resp;
                }
            }
            foreach ($palabras_agregar as $key => $value) {
                foreach ($value as $sinonimo) {
                    if (!empty($sinonimo)) {
                        $sinonimos[] =  $palabras[0]." ".$sinonimo;
                    }
                }
            }
    
            if ($sinonimos) {
                if($json == true  && !$apikey){
                    $edictos = Misc::ResaltarResultadosEdictos($edictos,'',$sinonimos);
                }
            }
            
        }
        //
        foreach($participaciones as $participacion){
            $participaciones_ordenados[$participacion->nombre_socio][] =  $participacion;
        }
        //
        $malla_societaria     = SQLConnection::grafoSociedades($cuit,$tipo_persona);
        //
        if(Misc::tieneRepetidos($malla_societaria)) {
            $malla_societaria = Misc::quitarRepetidos($malla_societaria);
        }
        //
        if(isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], 'backend') !== false)
            { $relaciones_en_color='true'; }
        else 
            { $relaciones_en_color='false'; }
    
        if ($relaciones_en_color=='true'){
            //--------------------------------------------------------------------------------------------------
            // ESTA PARTE ES PARA QUE SE MUESTRE CADA RELACIONADO, CON EL CIRCULITO DEL COLOR SEGUN SU SCORE. (Todo lo demás gris)
            //--------------------------------------------------------------------------------------------------
            foreach ($malla_societaria as $key => $malla) {
                $malla_societaria[$key]->score_color = '#cccccc';
                /* 03/03/2021: Se saco el if que solo lo hacia para socios, que lo haga para todas las vinculaciones 
                Solicitado por AGB */
                //if (($malla->seccion == "SOCIOS" || $malla->seccion == 'SOCIEDADES')) 
                //{
                $w_cuit    = $malla->cuit; 
                // Score de cada uno de los socios_directores 
                $params = 'cuit=' . $w_cuit.'&apikey=1F44A3FAA0C15C42'; 
                $html = Misc::CURLCall(env("API_SCORE_INFORME_COMERCIAL"),$params,'POST');
                $w_score = isset(json_decode($html)->score) ? json_decode($html)->score : 0;
                usleep(100000); 
                if ($w_score <= 50 ) {
                    $w_color = "#A72B2A"; }
                if ($w_score > 50 && $w_score < 65) {
                    $w_color = "#FFB81C"; }
                if ($w_score >= 65) {
                    $w_color = "#63b68c"; }
                $malla_societaria[$key]->score =  $w_score;
                $malla_societaria[$key]->score_color = $w_color;
                //}
            }
        } else {
            foreach ($malla_societaria as $key => $malla) {
                $w_color = '#cccccc';
                if ($malla->seccion == "SOCIOS" || $malla->seccion == 'SOCIEDADES'){
                    $w_color = '#5E8AB4'; 
                    }
                if ($malla->seccion == 'ACCIONISTAS'){
                    $w_color = '#309e99';
                    }
                if ($malla->seccion =='VINCULACIONES_OTRAS'){
                    $w_color = '#006064';
                    }
                if ($malla->seccion == 'CONTROLADAS'){
                    $w_color = '#977CD1';
                    }
                if ($malla->seccion == 'CONTROLANTES'){
                    $w_color = '#004D40';
                    }
                if ($malla->seccion == 'FIRMANTES'){
                    $w_color = '#793D87';
                    }  
                if ($malla->seccion == 'ACCIONISTA_DE'){
                    $w_color = '#793D87';
                    }
                if ($malla->seccion == 'EMPLEADO_DE'){
                    $w_color = '#AB47BC';
                    }
                if ($malla->seccion =='FAMILIARES'){
                    $w_color = '#793D87';
                    }
                $malla_societaria[$key]->score_color = $w_color;
            }
        }
        //
        foreach($malla_societaria as $malla){
            $malla_societaria[$malla->seccion] = true;
            if ($relaciones_en_color=='true'){
                $malla_societaria['COLORES'] = true; 
            } else { 
                $malla_societaria['COLORES'] = false; 
            }
        }
        //
        $vinculaciones              = SQLConnection::obtenerVinculaciones($cuit);
        //formateo de fechas - vinculaciones
        foreach ($vinculaciones as $key => $value) {
            $vinculaciones[$key]->desde = Misc::convertirFormatoFecha($value->desde,'Y-m','m-Y');
            $vinculaciones[$key]->hasta = Misc::convertirFormatoFecha($value->hasta,'Y-m','m-Y');
        }
        $vinculaciones_indirectas   = SQLConnection::obtenerVinculacionesIndirectas($cuit);
        $vista = \View::make('informe-comercial-nuevo/sociedades_nuevo')->with(compact('sociedades','socios_directores','accionista_de','edictos','vinculaciones','vinculaciones_indirectas','participaciones_ordenados','accionistas','edictos','json','edictos_homonimos','tipo_persona','malla_societaria','nombres_anteriores','malla_razon_social', 'mostrar_homonimos'))->render();
        if(!$json){
            return $vista;
        }
        return \Response::json(
            array(
            'view' => $vista,
            //'info'=> compact('malla_societaria','tipo_persona','socios_directores','accionistas','accionista_de','vinculaciones','participaciones_ordenados','vinculaciones_indirectas','edictos','edictos_homonimos', 'mostrar_homonimos', 'idp','nombres_anteriores','malla_razon_social','imagen_fidelitas')
            'info'=> compact('malla_societaria','tipo_persona','socios_directores','accionistas','accionista_de','vinculaciones','participaciones_ordenados','vinculaciones_indirectas','edictos','edictos_homonimos', 'mostrar_homonimos','nombres_anteriores','malla_razon_social','imagen_fidelitas')
    
            )
        , 200, [], JSON_NUMERIC_CHECK);
    }

    // FUNCION QUE DEVUELVE SECCION SOCIEDADES
    public function obtenerSociedades($json=true,$relaciones_en_color='false'){

        $apikey = Request::input('apikey');
        $imagen_fidelitas  = Misc::obtenerImagenFidelitas();
        $mostrar_homonimos = false;
        $incluir_homonimos_impresion = Request::input('incluir_homonimos_impresion');
        //
        if($json==false){
            if($incluir_homonimos_impresion== 'on') {
                $mostrar_homonimos = true;
            } else {
                $mostrar_homonimos = false; 
            }
        } else {
            /* if ( isset(Session::get('usuario')->preferencias->incluir_homonimos) && (!(Session::get('usuario')->preferencias->incluir_homonimos)) ){
                $mostrar_homonimos = false;
            } */
            if ( isset(Session::get('usuario')->preferencias->incluir_homonimos) && (Session::get('usuario')->preferencias->incluir_homonimos) ){
                $mostrar_homonimos = true;
            }
        }
        $cuit                      = Request::input('cuit');
        $razon_social_todos        = [];  
        $razon_social              = Request::input('razon_social');
        if(!$razon_social){
            $razon_social       = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
        }
        //
        $razon_social              = str_replace('#', 'ñ', $razon_social);
        //
        $razon_social_todos[5]     = $razon_social;
        $razon_social_f            = Request::input('razon_social');
        $razon_social_f            = str_replace('#', 'ñ', $razon_social_f);
        $razon_social_f            = preg_replace('/\(|\)/','',$razon_social);
        $malla_razon_social        = $razon_social;
        $participaciones_ordenados = [];
        $resultado_razon_social    = [];
        $sociedades                = SQLConnection::obtenerSociedades($cuit);
        $accionista_de             = SQLConnection::obtenerAccionistasDe($cuit);
        $tipo_persona              = ( Misc::tipoPersona($cuit) == 'F') ? 'f' : 'j' ;
        $resultado_nombres_ant     = []; 
        //busca nombres anteriores de la empresa relacionados con el CUIT
        $nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
        $resultado_nombres_ant[] = $razon_social;
        if ($tipo_persona =='j') {
            $accionistas = SQLConnection::obtenerAccionistasNew($cuit);
            if ($nombres_anteriores) {
                foreach ($nombres_anteriores as $nombre_ant) {
                    $resultado_nombres_ant[] = $nombre_ant->nombre; 
                }
            }
        } else {
            $accionistas = '';
        }
        //
        $participaciones           = SQLConnection::obtenerParticipacionSociosDirectores($cuit);
        //formateo de fechas - participaciones
        foreach ($participaciones as $key => $value) {
            $participaciones[$key]->desde = Misc::convertirFormatoFecha($value->desde,'Y-m','m-Y'); 
            $participaciones[$key]->hasta = Misc::convertirFormatoFecha($value->hasta,'Y-m','m-Y'); 
        }
        //
        $edictos_homonimos         = [];
        $edictos                   = SQLConnection::obtenerEdictos($cuit);
        $socios_directores         = SQLConnection::obtenerSociosDirectores($cuit,$tipo_persona);
        $sinonimos                 = '';
        $razon_social_completa     = '';
        $razon_social_explode      = explode(" ", $razon_social_f);
        //formateo de fechas - socios_directores
        foreach ($socios_directores as $key => $value) {
            $socios_directores[$key]->c04_periodo_desde = Misc::convertirFormatoFecha($value->c04_periodo_desde,'Y-m','m-Y');
            $socios_directores[$key]->c04_periodo_hasta = Misc::convertirFormatoFecha($value->c04_periodo_hasta,'Y-m','m-Y');
            $socios_directores[$key]->fecha_cons        = Misc::convertirFormatoFecha($value->fecha_cons,'Y-m-d','d-m-Y');
        }
        //formateo de fechas - accionistas_de
        foreach ($accionista_de as $key => $value) {
            $accionista_de[$key]->fecha_ins_rpc = Misc::convertirFormatoFecha($value->fecha_ins_rpc,'Y-m-d','d-m-Y');
            $accionista_de[$key]->fecha_cons = Misc::convertirFormatoFecha($value->fecha_cons,'Y-m-d','d-m-Y');
        }
        //Elimina de las combinaciones los valores que contienen una letra 
        $explode_aux = [];
        foreach ($razon_social_explode as $key => $value) {
            if(isset($value) && (strlen($value) > 1)) {
            $explode_aux[] = $value;
            }
        }
        $razon_social_explode = $explode_aux;
        //P. FISICA
        if($tipo_persona == 'f'){
            $razon_social_explode = array_values($razon_social_explode);
            $resultado_razon_social    = Misc::resultadoCombinaciones($razon_social_explode);
            //Limita a 10 resultados las combinaciones en PF
            $resultado_razon_social = array_slice($resultado_razon_social, -10);
            $cant_resultado_razon_social = count($resultado_razon_social);
            //
            if($cant_resultado_razon_social < 10){
                foreach($resultado_razon_social as $key => $rs){
                    if(!(end($resultado_razon_social) == $rs)){
                        $razon_social_completa .='NEAR(('.str_replace(" ",",",$rs).'),0,true) OR ';
                    } else {
                        $razon_social_completa .= 'NEAR(('.str_replace(" ",",",$rs).'),0,true)';
                    }
                }
            } else {
                $razon_social_completa = "\"".$razon_social_f."\"";
            }
        }
        // P. JURIDICA
        //INCLUIR HOMONIMOS EN LA BUSQUEDA POR PERFIL DE USUARIO
        if ($mostrar_homonimos) {
            if($tipo_persona == 'j'){
                $sinonimos = Misc::diccionarioSinonimosTEST($resultado_nombres_ant);
                $count_sinonimo = count($sinonimos)-1;
                foreach($sinonimos as $key => $rs){
                    if(!($key == $count_sinonimo)){
                        $razon_social_completa .= $rs.'OR';
                    } else {
                        $razon_social_completa .= $rs;
                    }
                }
                if(!$razon_social_completa){$razon_social_completa = "\"".$razon_social."\"";}
                $edictos_homonimos         = SQLConnection::obtenerEdictosHomonimos($razon_social_completa);
            }else{
                //Edictos para PF
                $edictos_homonimos       = SQLConnection::obtenerEdictosHomonimos($razon_social_completa);
                $sinonimos = $razon_social_completa; 
            }
            //
            if($edictos_homonimos){
                if($json == true && !$apikey){
                    if($tipo_persona == 'f') {
                        $edictos_homonimos = Misc::ResaltarResultadosEdictosHomonimosPF($edictos_homonimos,$resultado_razon_social);
                    }else{
                        $edictos_homonimos   = Misc::ResaltarResultadosEdictosHomonimosNombresAnt($edictos_homonimos, $sinonimos);
                    }
                }
            }
        } 
        //fin de incluir homonimos por perfil de usuario    
        if($edictos) {
            $palabras_agregar = []; 
            $sinonimos        = [];
            $razon_social_segmentada = [];
            $razon_social     = Misc::diccionarioSinonimos2020($razon_social_todos[5]);
            $razon_social     = str_replace('"','',$razon_social);
            //inicio - Obtener Sinonimos
            $palabras = explode(' ',$razon_social);
            //sinonimos PF usa combinacion de nombres que obtiene de $resultado_razon_social
            if ($tipo_persona == 'f') {
                $sinonimos = $resultado_razon_social;
                if($json == true  && !$apikey){
                    $edictos = Misc::ResaltarResultadosEdictos($edictos,'',$sinonimos);
                }
            }else{
                if($json == true  && !$apikey){
                    $edictos = Misc::ResaltarResultadosEdictos($edictos,$razon_social,'');
                }
            }
            //
            foreach($palabras as $key => $palabra){
                if(strlen($palabra) > 1){
                    $razon_social_segmentada[] = $palabra;
                }
            }
            //
            foreach($razon_social_segmentada as $sinonimo){
                $resp = SQLConnection::obtenerSinonimos($sinonimo);
                if(empty($resp)){
                    if($json == true  && !$apikey){
                        $edictos = Misc::ResaltarResultadosEdictos($edictos,$razon_social,'');
                    }
                } else {
                    $palabras_agregar[] = $resp;
                }
            }
            foreach ($palabras_agregar as $key => $value) {
                foreach ($value as $sinonimo) {
                    if (!empty($sinonimo)) {
                        $sinonimos[] =  $palabras[0]." ".$sinonimo;
                    }
                }
            }
    
            if ($sinonimos) {
                if($json == true  && !$apikey){
                    $edictos = Misc::ResaltarResultadosEdictos($edictos,'',$sinonimos);
                }
            }
            
        }
        //
        foreach($participaciones as $participacion){
            $participaciones_ordenados[$participacion->nombre_socio][] =  $participacion;
        }
        //
        $malla_societaria     = SQLConnection::grafoSociedades($cuit,$tipo_persona);
        //
        if(Misc::tieneRepetidos($malla_societaria)) {
            $malla_societaria = Misc::quitarRepetidos($malla_societaria);
        }
        //
        if(isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], 'backend') !== false)
            { $relaciones_en_color='true'; }
        else 
            { $relaciones_en_color='false'; }
    
        if ($relaciones_en_color=='true'){
            //--------------------------------------------------------------------------------------------------
            // ESTA PARTE ES PARA QUE SE MUESTRE CADA RELACIONADO, CON EL CIRCULITO DEL COLOR SEGUN SU SCORE. (Todo lo demás gris)
            //--------------------------------------------------------------------------------------------------
            foreach ($malla_societaria as $key => $malla) {
                $malla_societaria[$key]->score_color = '#cccccc';
                /* 03/03/2021: Se saco el if que solo lo hacia para socios, que lo haga para todas las vinculaciones 
                Solicitado por AGB */
                //if (($malla->seccion == "SOCIOS" || $malla->seccion == 'SOCIEDADES')) 
                //{
                $w_cuit    = $malla->cuit; 
                // Score de cada uno de los socios_directores 
                $params = 'cuit=' . $w_cuit.'&apikey=1F44A3FAA0C15C42'; 
                $html = Misc::CURLCall(env("API_SCORE_INFORME_COMERCIAL"),$params,'POST');
                $w_score = isset(json_decode($html)->score) ? json_decode($html)->score : 0;
                usleep(100000); 
                if ($w_score <= 50 ) {
                    $w_color = "#A72B2A"; }
                if ($w_score > 50 && $w_score < 65) {
                    $w_color = "#FFB81C"; }
                if ($w_score >= 65) {
                    $w_color = "#63b68c"; }
                $malla_societaria[$key]->score =  $w_score;
                $malla_societaria[$key]->score_color = $w_color;
                //}
            }
        } else {
            foreach ($malla_societaria as $key => $malla) {
                $w_color = '#cccccc';
                if ($malla->seccion == "SOCIOS" || $malla->seccion == 'SOCIEDADES'){
                    $w_color = '#5E8AB4'; 
                    }
                if ($malla->seccion == 'ACCIONISTAS'){
                    $w_color = '#309e99';
                    }
                if ($malla->seccion =='VINCULACIONES_OTRAS'){
                    $w_color = '#006064';
                    }
                if ($malla->seccion == 'CONTROLADAS'){
                    $w_color = '#977CD1';
                    }
                if ($malla->seccion == 'CONTROLANTES'){
                    $w_color = '#004D40';
                    }
                if ($malla->seccion == 'FIRMANTES'){
                    $w_color = '#793D87';
                    }  
                if ($malla->seccion == 'ACCIONISTA_DE'){
                    $w_color = '#793D87';
                    }
                if ($malla->seccion == 'EMPLEADO_DE'){
                    $w_color = '#AB47BC';
                    }
                if ($malla->seccion =='FAMILIARES'){
                    $w_color = '#793D87';
                    }
                $malla_societaria[$key]->score_color = $w_color;
            }
        }
        //
        foreach($malla_societaria as $malla){
            $malla_societaria[$malla->seccion] = true;
            if ($relaciones_en_color=='true'){
                $malla_societaria['COLORES'] = true; 
            } else { 
                $malla_societaria['COLORES'] = false; 
            }
        }
        //
        $vinculaciones              = SQLConnection::obtenerVinculaciones($cuit);
        //formateo de fechas - vinculaciones
        foreach ($vinculaciones as $key => $value) {
            $vinculaciones[$key]->desde = Misc::convertirFormatoFecha($value->desde,'Y-m','m-Y');
            $vinculaciones[$key]->hasta = Misc::convertirFormatoFecha($value->hasta,'Y-m','m-Y');
        }
        $vinculaciones_indirectas   = SQLConnection::obtenerVinculacionesIndirectas($cuit);
        $vista = \View::make('informe-comercial-nuevo/sociedades_nuevo')->with(compact('sociedades','socios_directores','accionista_de','edictos','vinculaciones','vinculaciones_indirectas','participaciones_ordenados','accionistas','edictos','json','edictos_homonimos','tipo_persona','malla_societaria','nombres_anteriores','malla_razon_social', 'mostrar_homonimos'))->render();
        if(!$json){
            return $vista;
        }
        return \Response::json(
            array(
            'view' => $vista,
            //'info'=> compact('malla_societaria','tipo_persona','socios_directores','accionistas','accionista_de','vinculaciones','participaciones_ordenados','vinculaciones_indirectas','edictos','edictos_homonimos', 'mostrar_homonimos', 'idp','nombres_anteriores','malla_razon_social','imagen_fidelitas')
            'info'=> compact('malla_societaria','tipo_persona','socios_directores','accionistas','accionista_de','vinculaciones','participaciones_ordenados','vinculaciones_indirectas','edictos','edictos_homonimos', 'mostrar_homonimos','nombres_anteriores','malla_razon_social','imagen_fidelitas')
    
            )
        , 200, [], JSON_NUMERIC_CHECK);
    }

    // FUNCION QUE DEVUELVE SECCION LEGALES
    public function obtenerLegalesOrg($json=true){
        $imagen_fidelitas  = Misc::obtenerImagenFidelitas();
        //$mostrar_homonimos = true;
        $mostrar_homonimos = false;
        $incluir_homonimos_impresion = Request::input('incluir_homonimos_impresion');
        if($json==false){
            if($incluir_homonimos_impresion== 'on') {
                $mostrar_homonimos = true;
            }else{
                $mostrar_homonimos = false; 
            }
        }else{
            // MODIFICACION PARA MOSTRAR HOMINIMOS EN CASO QUE ESTE SETEADO EN EL PERFIL DEL USUARIO
            /*if (isset(Session::get('usuario')->preferencias->incluir_homonimos) && (!(Session::get('usuario')->preferencias->incluir_homonimos)) ){
                $mostrar_homonimos = false;
            }*/
            if ( isset(Session::get('usuario')->preferencias->incluir_homonimos) && Session::get('usuario')->preferencias->incluir_homonimos ){
                $mostrar_homonimos = true;
            }
        }
        //
        if(isset(Session::get('usuario')->preferencias->cantidad_juicios)) {
            $cantidad = is_numeric(Session::get('usuario')->preferencias->cantidad_juicios) ? Session::get('usuario')->preferencias->cantidad_juicios : 500;
        } else {
            $cantidad = 500;
        }
        //
        $mostrar_todos_los_juicios = Request::input('mostrar_todos');
        //  
        if ($mostrar_todos_los_juicios == 'true') {
            $mostrar_todos_los_juicios = true;
        } else {
            $mostrar_todos_los_juicios = false;
        }
    
        $razon_social               = Request::input('razon_social');
        $razon_social               = str_replace('#', 'ñ', $razon_social);
        $malla_razon_social        = $razon_social;
    
        //inicio -var- nombres-anteriores
        $razon_social_todos         = [];
        $razon_social_todos[5]      = $razon_social;
        //inicio -var- nombres-anteriores
        $cuit                       = Request::input('cuit');
        $cuit_enmascarado           = $cuit;
        $otros_juicios_comerciales  = [];
        $concursos_quiebras         = [];
        $pedidos_quiebra            = [];
    
        // AGREGADO POR RAMI
        if(!$razon_social){
            $razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
        }
        /* 07/10/2021: para poder llamarlo desde led */
        $es_led = false; 
        $id = Request::input('contraparte') ?? null;
        if (!$cuit) {
            $qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
            $cuit = $qcontrap->identificacion ?? null;
            $json = false; 
            $es_led = true; 
        }
    
        if ($mostrar_todos_los_juicios) {
            $demandados                 = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null, 'D', $cuit, 60, 1));
            $actor                      = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null,'A',$cuit, 60, 1));
        } else {
            $demandados                 = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null, 'D', $cuit, 60, 1, $cantidad));
            $actor                      = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null,'A',$cuit, 60, 1, $cantidad));
        }
        $dni                        = '';
        $sinonimos                  = [];
        $demandado_homonimo         = [];
        $actores_homonimos          = [];
        //$p_fisica = (substr($cuit,0,1) == 3) ? false : true;
        $fisica_juridica = Misc::tipoPersona($cuit); 
        $p_fisica = ($fisica_juridica == 'F') ? true : false;
    
        $mask = substr( $cuit_enmascarado, 1,1 );
        $mask .= '-';
        $cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, 1,1);
        $mask = substr( $cuit_enmascarado, -1,-1 );
        $mask .= '-';
        $cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, -1,-1);
        $razon_social_completa     = '';
        $resultado_nombres_ant     = []; 
        $nombres_anteriores = []; 
        //  
        if($p_fisica){
            $dni = (int)substr($cuit, 2,-1);
        }
        
        //if($json == true){
            if($p_fisica == false) {
                //P Juridica
                $nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
                if ($nombres_anteriores) {
                    foreach ($nombres_anteriores as $nombre_ant) {
                        $resultado_nombres_ant[] = $nombre_ant->nombre; 
                    }
                    $resultado_nombres_ant[] = $razon_social;
                } 
                //$razon_social = "\"".$razon_social."\"";
                
                $sinonimos =  Misc::diccionarioSinonimosTest($resultado_nombres_ant);
                //print_r("sinonimos: "); 
                //var_dump($sinonimos); 
                $count_sinonimo = count($sinonimos)-1;
                foreach($sinonimos as $key => $rs) {
                    if (strlen($rs) < 3){
                        continue; 
                    }
                    if(!($key == $count_sinonimo)){
                        $razon_social_completa .= $rs.'OR';
                    } else {
                        $razon_social_completa .= $rs;
                    }
                }
                //$razon_social_legales = Misc::diccionarioSinonimos($razon_social);
                $razon_social_legales = Misc::diccionarioSinonimos2020($razon_social);
                //print_r('COMPLETA: ' . $razon_social_completa . '---');
                //print_r('legales: ' . $razon_social_legales  . '---');
                if(!$razon_social_completa) { 
                    $razon_social_completa = $razon_social_legales; 
                }
            } else {//caso PF
                $razon_social_completa = "\"".$razon_social."\"";
            }
            //print_r('COMPLETA: ' . $razon_social_completa  . '---');
                    
                //print_r("razon_social: "); 
                    //var_dump($razon_social);   
            //AGB
                    /*
                    print_r("razon_social_legales: "); 
                    var_dump($razon_social_legales);
                    print_r("razon_social_completa: "); 
                    var_dump($razon_social_completa);
                    
            */
            /*
                    print_r("sinonimos: "); 
                    var_dump($sinonimos); 
                    print_r("razon social: "); 
                    var_dump($razon_social); 
                    print_r("razon_social_legales: "); 
                    var_dump($razon_social_legales); 
                    print_r("razon_social_completa: "); 
                    var_dump($razon_social_completa);
            */
            if (strlen($razon_social_completa) >= 3 && $mostrar_homonimos){
                $razon_social_completa = (Misc::parche_cla($razon_social_completa));
                if ($mostrar_todos_los_juicios) {
                    //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'D'));
                    //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'A'));
                    // Abril 2019: Se empiezan a mostrar los homonimos de nombres anteriores 
                    // si se quiere que solo se muestre los homonimos de la razon social actual volver a cambiar por las dos lineas anteriores (buscar $razon_social_legales)
                    //DICIEMBRE 2020 CAMBIAMOS POR RAZON SOCIAL PORQUE NO SALEN LOS HOMÓNIMOS
                    $demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'D', $cantidad));
                    $actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'A', $cantidad));
                    //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social,'D', $cantidad));
                    //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social,'A', $cantidad));
                } else {
                    /*print_r($razon_social);
                    print_r($cantidad);*/
                    //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'D', $cantidad));
                    //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'A', $cantidad));
                    // Abril 2019: Se empiezan a mostrar los homonimos de nombres anteriores
                    // si se quiere que solo se muestre los homonimos de la razon social actual volver a cambiar por las dos lineas anteriores (buscar $razon_social_legales)
                    //DICIEMBRE 2020 CAMBIAMOS POR RAZON SOCIAL PORQUE NO SALEN LOS HOMÓNIMOS
                    $demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'D', $cantidad));
                    $actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'A', $cantidad));
                    //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social,'D', $cantidad));
                    //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social,'A', $cantidad));
                    // foreach ($actores_homonimos as $key => $value) {
                    //  if (isset($value->actor) || isset($value->id_tipo_causa) || isset($value->nombre_causa) || isset($value->tipo_de_novedad) ) {
                    //    $actores_homonimos;
                    //  }else{
                    //    $actores_homonimos = [];
                    //  }
                    // }
                }
            }
            //}
            //var_dump(array($razon_social_completa,'A', $cantidad));die();
            //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'A', $cantidad));
            //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'A'));
            //var_dump($actores_homonimos);die();
        if ($mostrar_todos_los_juicios) {
            $remates = SQLConnection::obtenerRemates($cuit,$cuit_enmascarado,$dni);
        } else {
            $remates = SQLConnection::backendStoreProcedure('obtener_remates', array($cuit,$cuit_enmascarado,$dni, $cantidad));
        }
        //
        if($remates){
            $remates = Misc::ResaltarResultadosRemates($remates,$razon_social);
        }
        //  $concursos_quiebras = SQLConnection::obtenerConcursosQuiebras($cuit);
        if($demandados){
            foreach($demandados as $demandado){
            if($demandado->grupo  == 'OJC'){
                $otros_juicios_comerciales[]  = $demandado;
            }elseif($demandado->grupo  == 'CYQ'){
                $concursos_quiebras[] = $demandado;
            }elseif($demandado->grupo  == 'PQ'){
                $pedidos_quiebra[] = $demandado;
            }
            }
        }
        /*
        if ($demandado_homonimo) {
            foreach ($demandado_homonimo as $key => $value) {
            $fecha_causa_dmy = $value->fecha_causa_dmy;
            $demandado_homonimo[$key]->fecha_causa_dmy =  str_replace('/', '-', $fecha_causa_dmy); 
            }    
        }
        */
        //$vista = \View::make('informes/legales')->with(compact('actor','pedidos_quiebra','concursos_quiebras','otros_juicios_comerciales','remates','actores_homonimos','p_fisica','json','nombre','demandado_homonimo', 'mostrar_homonimos', 'mostrar_todos_los_juicios','malla_razon_social','nombres_anteriores'))->render();
        $vista = \View::make('informe-comercial-nuevo/legales_nuevo')->with(compact('actor','pedidos_quiebra','concursos_quiebras','otros_juicios_comerciales','remates','actores_homonimos','p_fisica','json','demandado_homonimo', 'mostrar_homonimos', 'mostrar_todos_los_juicios','malla_razon_social','nombres_anteriores'))->render();
        //
        if(!$json){
            return $vista;
        }
        return \Response::json(
            array(
            'view' => $vista,
            'info_varios'=>compact('concursos_quiebras','remates','pedidos_quiebra','otros_juicios_comerciales','actor','actores_homonimos','demandado_homonimo', 'mostrar_homonimos','imagen_fidelitas','malla_razon_social','nombres_anteriores')
            )
        , 200, [], JSON_NUMERIC_CHECK);
    }

    // FUNCION QUE DEVUELVE SECCION LEGALES
    public function obtenerLegales($json=true){
        $imagen_fidelitas  = Misc::obtenerImagenFidelitas();
        //$mostrar_homonimos = true;
        $mostrar_homonimos = false;
        $incluir_homonimos_impresion = Request::input('incluir_homonimos_impresion');
        if($json==false){
            if($incluir_homonimos_impresion== 'on') {
                $mostrar_homonimos = true;
            }else{
                $mostrar_homonimos = false; 
            }
        }else{
            // MODIFICACION PARA MOSTRAR HOMINIMOS EN CASO QUE ESTE SETEADO EN EL PERFIL DEL USUARIO
            /*if (isset(Session::get('usuario')->preferencias->incluir_homonimos) && (!(Session::get('usuario')->preferencias->incluir_homonimos)) ){
                $mostrar_homonimos = false;
            }*/
            if ( isset(Session::get('usuario')->preferencias->incluir_homonimos) && Session::get('usuario')->preferencias->incluir_homonimos ){
                $mostrar_homonimos = true;
            }
        }
        //
        if(isset(Session::get('usuario')->preferencias->cantidad_juicios)) {
            $cantidad = is_numeric(Session::get('usuario')->preferencias->cantidad_juicios) ? Session::get('usuario')->preferencias->cantidad_juicios : 500;
        } else {
            $cantidad = 500;
        }
        //
        $mostrar_todos_los_juicios = Request::input('mostrar_todos');
        //  
        if ($mostrar_todos_los_juicios == 'true') {
            $mostrar_todos_los_juicios = true;
        } else {
            $mostrar_todos_los_juicios = false;
        }
    
        $razon_social               = Request::input('razon_social');
        $razon_social               = str_replace('#', 'ñ', $razon_social);
        $malla_razon_social        = $razon_social;
    
        //inicio -var- nombres-anteriores
        $razon_social_todos         = [];
        $razon_social_todos[5]      = $razon_social;
        //inicio -var- nombres-anteriores
        $cuit                       = Request::input('cuit');
        $cuit_enmascarado           = $cuit;
        $otros_juicios_comerciales  = [];
        $concursos_quiebras         = [];
        $pedidos_quiebra            = [];
    
        // AGREGADO POR RAMI
        if(!$razon_social){
            $razon_social = SQLConnection::obtenerRazonSocial($cuit)->nombre_persona;
        }
        /* 07/10/2021: para poder llamarlo desde led */
        $es_led = false; 
        $id = Request::input('contraparte') ?? null;
        if (!$cuit) {
            $qcontrap = DB::selectOne('EXEC dbo.LN_contrapartes_ ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?', array('select', $id, null, null, null, null, null, null, null, null, null, null, null, null, null));
            $cuit = $qcontrap->identificacion ?? null;
            $json = false; 
            $es_led = true; 
        }
    
        if ($mostrar_todos_los_juicios) {
            $demandados                 = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null, 'D', $cuit, 60, 1));
            $actor                      = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null,'A',$cuit, 60, 1));
        } else {
            $demandados                 = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null, 'D', $cuit, 60, 1, $cantidad));
            $actor                      = SQLConnection::backendStoreProcedure('obtener_juicios_demandado_actor', array(null,'A',$cuit, 60, 1, $cantidad));
        }
        $dni                        = '';
        $sinonimos                  = [];
        $demandado_homonimo         = [];
        $actores_homonimos          = [];
        //$p_fisica = (substr($cuit,0,1) == 3) ? false : true;
        $fisica_juridica = Misc::tipoPersona($cuit); 
        $p_fisica = ($fisica_juridica == 'F') ? true : false;
    
        $mask = substr( $cuit_enmascarado, 1,1 );
        $mask .= '-';
        $cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, 1,1);
        $mask = substr( $cuit_enmascarado, -1,-1 );
        $mask .= '-';
        $cuit_enmascarado = substr_replace ( $cuit_enmascarado, $mask, -1,-1);
        $razon_social_completa     = '';
        $resultado_nombres_ant     = []; 
        $nombres_anteriores = []; 
        //  
        if($p_fisica){
            $dni = (int)substr($cuit, 2,-1);
        }
        
        //if($json == true){
            if($p_fisica == false) {
                //P Juridica
                $nombres_anteriores = SQLConnection::backendCambiosNombres($cuit);
                if ($nombres_anteriores) {
                    foreach ($nombres_anteriores as $nombre_ant) {
                        $resultado_nombres_ant[] = $nombre_ant->nombre; 
                    }
                    $resultado_nombres_ant[] = $razon_social;
                } 
                //$razon_social = "\"".$razon_social."\"";
                
                $sinonimos =  Misc::diccionarioSinonimosTest($resultado_nombres_ant);
                //print_r("sinonimos: "); 
                //var_dump($sinonimos); 
                $count_sinonimo = count($sinonimos)-1;
                foreach($sinonimos as $key => $rs) {
                    if (strlen($rs) < 3){
                        continue; 
                    }
                    if(!($key == $count_sinonimo)){
                        $razon_social_completa .= $rs.'OR';
                    } else {
                        $razon_social_completa .= $rs;
                    }
                }
                //$razon_social_legales = Misc::diccionarioSinonimos($razon_social);
                $razon_social_legales = Misc::diccionarioSinonimos2020($razon_social);
                //print_r('COMPLETA: ' . $razon_social_completa . '---');
                //print_r('legales: ' . $razon_social_legales  . '---');
                if(!$razon_social_completa) { 
                    $razon_social_completa = $razon_social_legales; 
                }
            } else {//caso PF
                $razon_social_completa = "\"".$razon_social."\"";
            }
            //print_r('COMPLETA: ' . $razon_social_completa  . '---');
                    
                //print_r("razon_social: "); 
                    //var_dump($razon_social);   
            //AGB
                    /*
                    print_r("razon_social_legales: "); 
                    var_dump($razon_social_legales);
                    print_r("razon_social_completa: "); 
                    var_dump($razon_social_completa);
                    
            */
            /*
                    print_r("sinonimos: "); 
                    var_dump($sinonimos); 
                    print_r("razon social: "); 
                    var_dump($razon_social); 
                    print_r("razon_social_legales: "); 
                    var_dump($razon_social_legales); 
                    print_r("razon_social_completa: "); 
                    var_dump($razon_social_completa);
            */
            if (strlen($razon_social_completa) >= 3 && $mostrar_homonimos){
                $razon_social_completa = (Misc::parche_cla($razon_social_completa));
                if ($mostrar_todos_los_juicios) {
                    //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'D'));
                    //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'A'));
                    // Abril 2019: Se empiezan a mostrar los homonimos de nombres anteriores 
                    // si se quiere que solo se muestre los homonimos de la razon social actual volver a cambiar por las dos lineas anteriores (buscar $razon_social_legales)
                    //DICIEMBRE 2020 CAMBIAMOS POR RAZON SOCIAL PORQUE NO SALEN LOS HOMÓNIMOS
                    $demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'D', $cantidad));
                    $actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'A', $cantidad));
                    //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social,'D', $cantidad));
                    //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social,'A', $cantidad));
                } else {
                    /*print_r($razon_social);
                    print_r($cantidad);*/
                    //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'D', $cantidad));
                    //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_legales,'A', $cantidad));
                    // Abril 2019: Se empiezan a mostrar los homonimos de nombres anteriores
                    // si se quiere que solo se muestre los homonimos de la razon social actual volver a cambiar por las dos lineas anteriores (buscar $razon_social_legales)
                    //DICIEMBRE 2020 CAMBIAMOS POR RAZON SOCIAL PORQUE NO SALEN LOS HOMÓNIMOS
                    $demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'D', $cantidad));
                    $actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'A', $cantidad));
                    //$demandado_homonimo = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social,'D', $cantidad));
                    //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social,'A', $cantidad));
                    // foreach ($actores_homonimos as $key => $value) {
                    //  if (isset($value->actor) || isset($value->id_tipo_causa) || isset($value->nombre_causa) || isset($value->tipo_de_novedad) ) {
                    //    $actores_homonimos;
                    //  }else{
                    //    $actores_homonimos = [];
                    //  }
                    // }
                }
            }
            //}
            //var_dump(array($razon_social_completa,'A', $cantidad));die();
            //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'A', $cantidad));
            //$actores_homonimos  = SQLConnection::backendStoreProcedure('obtener_juicios_homonimos', array($razon_social_completa,'A'));
            //var_dump($actores_homonimos);die();
        if ($mostrar_todos_los_juicios) {
            $remates = SQLConnection::obtenerRemates($cuit,$cuit_enmascarado,$dni);
        } else {
            $remates = SQLConnection::backendStoreProcedure('obtener_remates', array($cuit,$cuit_enmascarado,$dni, $cantidad));
        }
        //
        if($remates){
            $remates = Misc::ResaltarResultadosRemates($remates,$razon_social);
        }
        //  $concursos_quiebras = SQLConnection::obtenerConcursosQuiebras($cuit);
        if($demandados){
            foreach($demandados as $demandado){
            if($demandado->grupo  == 'OJC'){
                $otros_juicios_comerciales[]  = $demandado;
            }elseif($demandado->grupo  == 'CYQ'){
                $concursos_quiebras[] = $demandado;
            }elseif($demandado->grupo  == 'PQ'){
                $pedidos_quiebra[] = $demandado;
            }
            }
        }
        /*
        if ($demandado_homonimo) {
            foreach ($demandado_homonimo as $key => $value) {
            $fecha_causa_dmy = $value->fecha_causa_dmy;
            $demandado_homonimo[$key]->fecha_causa_dmy =  str_replace('/', '-', $fecha_causa_dmy); 
            }    
        }
        */
        //$vista = \View::make('informes/legales')->with(compact('actor','pedidos_quiebra','concursos_quiebras','otros_juicios_comerciales','remates','actores_homonimos','p_fisica','json','nombre','demandado_homonimo', 'mostrar_homonimos', 'mostrar_todos_los_juicios','malla_razon_social','nombres_anteriores'))->render();
        $vista = \View::make('informe-comercial-nuevo/legales_nuevo')->with(compact('actor','pedidos_quiebra','concursos_quiebras','otros_juicios_comerciales','remates','actores_homonimos','p_fisica','json','demandado_homonimo', 'mostrar_homonimos', 'mostrar_todos_los_juicios','malla_razon_social','nombres_anteriores'))->render();
        //
        if(!$json){
            return $vista;
        }
        return \Response::json(
            array(
            'view' => $vista,
            'info_varios'=>compact('concursos_quiebras','remates','pedidos_quiebra','otros_juicios_comerciales','actor','actores_homonimos','demandado_homonimo', 'mostrar_homonimos','imagen_fidelitas','malla_razon_social','nombres_anteriores')
            )
        , 200, [], JSON_NUMERIC_CHECK);
    }

    ////////////////////////////////////
    ////////// SECCION BANCOS //////////
    ////////////////////////////////////

    // FUNCION QUE DEVUELVE SECCION BANCOS
    public function obtenerBancosOrg($json = true,$grafico_cheques_bancos='',$grafico_financiero='',$grafico_situaciones='',$grafico_garantias=''){
        $imagen_fidelitas           = Misc::obtenerImagenFidelitas();
        $id_persona                 = Request::input('idp');
        $cuit                       = Request::input("cuit");
        $vinculados_segun_bcra      = SQLConnection::backendStoreProcedure('obtener_vinculados_segun_BCRA', array($cuit));
        $cheques_ordenados          = [];
        //
        $periodo_maximo             = SQLConnection::obtenerPeriodoMaximo($cuit);
        $card_status_bancario       = SQLConnection::obtenerStatusBancario($cuit);
        $periodos_ordenados         = [];
        $periodos_graficos          = [];
        $bancos_ordenados           = [];
        $bancos_ordenados_separados = [];
        $tipo_persona                 = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
        $fecha = time();
        $n=0;
        //
        if(isset(Session::get('usuario')->preferencias->cantidad_cheques)) {
        $cantidad = is_numeric(Session::get('usuario')->preferencias->cantidad_cheques) ? Session::get('usuario')->preferencias->cantidad_cheques : 500;
        } else {
        $cantidad = 500;
        }
        //$cheques      = SQLConnection::obtenerCheques($cuit,$id_persona);
        $cheques      = SQLConnection::backendStoreProcedure('obtener_cheques', array($cuit,$id_persona,$cantidad));
        /*Cuadro de Cheques - Inicio */
        $cuadro_cheques         = [];
        $cuadro_cheques         = SQLConnection::backendStoreProcedure('obtener_cuadro_cheques2', array($cuit));
        $cuadro_cheques_totales = [];
        $total_cheques 					= [];
        $total_cheques['1propio']['cantidad']   = 0;
        $total_cheques['2empresa']['cantidad']  = 0;
        $total_cheques['1propio']['monto']   = 0;
        $total_cheques['2empresa']['monto']  = 0;
        //
        if(!isset($cuadro_cheques_totales['1propio']['LEVANTADOS']['SIN FONDOS'])){
            $cuadro_cheques_totales['1propio']['LEVANTADOS']['SIN FONDOS'] = new \stdClass();
            $cuadro_cheques_totales['1propio']['LEVANTADOS']['SIN FONDOS']->cantidad  = 0;
            $cuadro_cheques_totales['1propio']['LEVANTADOS']['SIN FONDOS']->monto     = 0;
        }
        //
        if(!isset($cuadro_cheques_totales['1propio']['LEVANTADOS']['DEFECTOS FORMALES'])){
            $cuadro_cheques_totales['1propio']['LEVANTADOS']['DEFECTOS FORMALES'] = new \stdClass();
            $cuadro_cheques_totales['1propio']['LEVANTADOS']['DEFECTOS FORMALES']->cantidad = 0;
            $cuadro_cheques_totales['1propio']['LEVANTADOS']['DEFECTOS FORMALES']->monto    = 0;
        }
        //
        if(!isset($cuadro_cheques_totales['1propio']['SIN LEVANTAR']['SIN FONDOS'])){
            $cuadro_cheques_totales['1propio']['SIN LEVANTAR']['SIN FONDOS'] = new \stdClass();
            $cuadro_cheques_totales['1propio']['SIN LEVANTAR']['SIN FONDOS']->cantidad = 0;
            $cuadro_cheques_totales['1propio']['SIN LEVANTAR']['SIN FONDOS']->monto    = 0;
        }
        //
        if(!isset($cuadro_cheques_totales['1propio']['SIN LEVANTAR']['DEFECTOS FORMALES'])){
            $cuadro_cheques_totales['1propio']['SIN LEVANTAR']['DEFECTOS FORMALES'] = new \stdClass();
            $cuadro_cheques_totales['1propio']['SIN LEVANTAR']['DEFECTOS FORMALES']->cantidad = 0;
            $cuadro_cheques_totales['1propio']['SIN LEVANTAR']['DEFECTOS FORMALES']->monto    = 0;
        }
        //
        if(!isset($cuadro_cheques_totales['1propio']['CHEQUES']['SIN FONDOS'])){
            $cuadro_cheques_totales['1propio']['CHEQUES']['SIN FONDOS'] = new \stdClass();
            $cuadro_cheques_totales['1propio']['CHEQUES']['SIN FONDOS']->cantidad = 0;
            $cuadro_cheques_totales['1propio']['CHEQUES']['SIN FONDOS']->monto    = 0;
        }
        //  
        if(!isset($cuadro_cheques_totales['1propio']['CHEQUES']['DEFECTOS FORMALES'])){
            $cuadro_cheques_totales['1propio']['CHEQUES']['DEFECTOS FORMALES'] = new \stdClass();
            $cuadro_cheques_totales['1propio']['CHEQUES']['DEFECTOS FORMALES']->cantidad = 0;
            $cuadro_cheques_totales['1propio']['CHEQUES']['DEFECTOS FORMALES']->monto    = 0;
        }
        //
        foreach ($cuadro_cheques as $key => $value) {
            if(!isset($cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->cantidad)){
                $cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal] = new \stdClass();
                $cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->cantidad = 0;
                $cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->monto    = 0;
            }
            //
            $cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->cantidad = $value->cantidad;
            $cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->monto = $value->monto;
            //
            if($value->cheques_o_levantados == 'CHEQUES'){
                $total_cheques[$value->tipo]['cantidad'] = $total_cheques[$value->tipo]['cantidad'] + $value->cantidad;
                $total_cheques[$value->tipo]['monto'] = $total_cheques[$value->tipo]['monto'] + $value->monto;
            }
        }
        //
        if(isset($cuadro_cheques_totales['2empresa'])){
            krsort($cuadro_cheques_totales['2empresa']['CHEQUES']);
        }
        /*Cuadro de Cheques - Fin */
        $cheques_vinculaciones_todas = SQLConnection::backendStoreProcedure('obtener_cheques_vinculaciones_todas', array($cuit,$id_persona,$cantidad));
        $financiero             = SQLConnection::obtenerFinancieroBrief($cuit);
        //Gráfico de Situaciones
        $situaciones  = SQLConnection::obtenerSituacionesBancos($cuit);
        //
        $sit_mayor_cero = false;
        if($situaciones){
            foreach ($situaciones as $situacion){
                foreach ($situacion as $key => $value) {
                    if($key == 'periodo'){
                        $situacion->$key = str_replace('-', ',', $value);
                    }
                    //
                    if ($value == null) {
                        $situacion->$key = 0;
                    } elseif ($key != 'periodo') {
                        $sit_mayor_cero = true;
                    }
                }
            }
        }
        //
        if (!$sit_mayor_cero) { $situaciones = null; }
        //
        for ($i = 0; $i <= 23; $i++) {
            $periodos_graficos[$i] = date("Ym", strtotime( $periodo_maximo." -$i months"));
        }
        //Gráfico de garantías  
        $garantias    = SQLConnection::backendStoreProcedure('obtener_garantias_bancos', array($cuit));
        $garantias    = self::procesarGraficoGarantias($garantias,$periodos_graficos);
        //
        if($garantias){
            foreach ($garantias as $key => $garantia){
                foreach ($garantia as $key2 => $value){
                    if($key2 == 'periodo'){
                        $garantias[$key][$key2] = str_replace('-', ',', $value);
                    }
                }
            }
        }
        //tabla de bancos
        for ($i = 0; $i <= 23; $i++) {
            if ($i%8==0){
                $periodo[$i] = date("Ym", strtotime( $periodo_maximo." -$i months"));
            } else {
                $periodo[$i] = date("Ym", strtotime( $periodo_maximo." -$i months")); 
            }
        }
        krsort($periodo);
        $periodo = array_values($periodo);
        $obtenerBancos = SQLConnection::obtenerBancos($cuit);
        //
        if($obtenerBancos){
            foreach($obtenerBancos as $key_banco =>$banco){
                foreach($periodo as $key_mes => $mes){
                    if($mes == $banco->fec_inf){
                        if(!isset(  $bancos_ordenados['TOTAL_PERIODO'][$mes]['TOTAL_PERIODO'] )) {
                            $bancos_ordenados['TOTAL_PERIODO'][$mes]['TOTAL_PERIODO']  = 0;
                        }
                        //
                        $bancos_ordenados[$banco->nombre][$mes]['situacion']  = ($obtenerBancos[$key_banco]->situacion) ? $obtenerBancos[$key_banco]->situacion : '';
                        //
                        if(($obtenerBancos[$key_banco]->situacion && $obtenerBancos[$key_banco]->situacion > 1)) {
                            $bancos_ordenados[$banco->nombre][$mes]['desplegar']  = 1;
                        }
                        $bancos_ordenados[$banco->nombre][$mes]['total']      = ($obtenerBancos[$key_banco]->total) ? $obtenerBancos[$key_banco]->total : '';
                        $bancos_ordenados['TOTAL_PERIODO'][$mes]['TOTAL_PERIODO']   += ($obtenerBancos[$key_banco]->total) ? $obtenerBancos[$key_banco]->total : 0;
                    }
                }
            }
            //
            foreach($bancos_ordenados as $key_bo => $bancos){
                foreach($periodo as $key_mes => $mes){
                    if (!array_key_exists($mes,$bancos)){
                        $bancos_ordenados[$key_bo][$mes]['situacion'] = '';
                        $bancos_ordenados[$key_bo][$mes]['total'] = '';
                        $bancos_ordenados[$key_bo][$mes]['TOTAL_PERIODO'] = '';
                    } 
                }
            }
            //
            foreach($bancos_ordenados as $key_bo => $bancos){
                ksort ($bancos_ordenados[$key_bo]);
            }
            //
            foreach($bancos_ordenados as $key_bo => $bancos){
                $i =0;
                $n =0;
                foreach($bancos as $key_b  => $banco){
                    if($n%8==0){
                        $i++;
                    }
                    //
                    $bancos_ordenados_separados[$key_bo][$i][$key_b] = $banco;
                    $n++;  
                }
            }
            $i =0;
            foreach($periodo as $key_mes => $mes){
                if($key_mes%8==0){
                    $i++;
                }
                $periodos_ordenados[$i][$key_mes] = $mes;      
            }
        } 
        //
        $periodo = $periodos_ordenados;
        $bancos_ordenados_separados = array_reverse($bancos_ordenados_separados);
        //
        $obtener_bancos = $bancos_ordenados_separados;
        //
        if($cheques || $cheques_vinculaciones_todas){
            foreach($cheques as $key => $cheque){
                $cheques_ordenados[$cheque->tipo][] = $cheque;
            }
            //
            if($cheques_vinculaciones_todas) {
                foreach ($cheques_vinculaciones_todas as $key => $vinculacion_anterior) {
                    $vinculacion_encontrada = false;
                    //
                    if (isset($cheques_ordenados['vinculaciones'])) {
                        foreach ($cheques_ordenados['vinculaciones'] as $key => $vinculacion) {
                            if ($vinculacion_anterior->cuit_firmante == $vinculacion->cuit_firmante ) {
                                $vinculacion_encontrada = true;
                            }
                        }
                    }
                    if ($vinculacion_encontrada === false) {
                        $vinculacion_anterior->cantidad = 0;
                        $cheques_ordenados['vinculaciones'][] = $vinculacion_anterior;
                    }
                }
            }
            $cheques_ordenados['cantidad_propios'] = 0;
            $cheques_ordenados['cantidad_propios'] += isset($cheques_ordenados['propio'][0]->total_cheques) ? $cheques_ordenados['propio'][0]->total_cheques : 0;
            $cheques_ordenados['cantidad_propios'] += isset($cheques_ordenados['a_nombre_de_empresa'][0]->total_cheques) ? $cheques_ordenados['a_nombre_de_empresa'][0]->total_cheques : 0;        
            $cheques_ordenados['cantidad_empresas'] = isset($cheques_ordenados['empresa']) ? sizeof($cheques_ordenados['empresa']) : 0;
            $cheques_ordenados['cantidad_vinculaciones'] = isset($cheques_ordenados['vinculaciones']) ? sizeof($cheques_ordenados['vinculaciones']) : 0;
        }
        //
        $grafico_cheques  = SQLConnection::graficoCardChequesRechazados($cuit);
        $cancelaciones    = SQLConnection::obtenerCancelacion($cuit);
        $grafico_cheques  = self::generarGraficoCheques($grafico_cheques,24);
        $persona_fisica   = (substr($cuit,0,1) != '3') ? true : false ;
        $cheques  = $cheques_ordenados;
        $env      = Misc::obtenerColoresEnv();
        //
        $obtener_morosos = 	SQLConnection::backendStoreProcedure('obtener_morosos', array($cuit));
        //
        $vista =  \View::make('/informe-comercial-nuevo/bancos_nuevo')->with(compact('periodo','obtener_morosos','obtener_bancos','cheques','persona_fisica','card_status_bancario','json'
        ,'grafico_cheques_bancos','grafico_financiero','grafico_situaciones','grafico_garantias','cancelaciones', 'id_persona', 'cuit','vinculados_segun_bcra','grafico_cheques','cuadro_cheques','cuadro_cheques_totales','total_cheques'))->render();
        //
        if(!$json){
        return $vista;
        }
        //
        return \Response::json(array(
        'view' => $vista,
        'info'=>compact('financiero','situaciones','garantias','env','grafico_cheques','cheques','obtener_morosos','obtener_bancos','cancelaciones','imagen_fidelitas')
        ), 200, [], JSON_NUMERIC_CHECK);
    }

    // FUNCION QUE DEVUELVE SECCION BANCOS
    public function obtenerBancos($json = true,$grafico_cheques_bancos='',$grafico_financiero='',$grafico_situaciones='',$grafico_garantias=''){
        $imagen_fidelitas           = Misc::obtenerImagenFidelitas();
        $id_persona                 = Request::input('idp');
        $cuit                       = Request::input("cuit");
        $vinculados_segun_bcra      = SQLConnection::backendStoreProcedure('obtener_vinculados_segun_BCRA', array($cuit));
        $cheques_ordenados          = [];
        //
        $periodo_maximo             = SQLConnection::obtenerPeriodoMaximo($cuit);
        $card_status_bancario       = SQLConnection::obtenerStatusBancario($cuit);
        $periodos_ordenados         = [];
        $periodos_graficos          = [];
        $bancos_ordenados           = [];
        $bancos_ordenados_separados = [];
        $tipo_persona                 = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;
        $fecha = time();
        $n=0;
        //
        if(isset(Session::get('usuario')->preferencias->cantidad_cheques)) {
        $cantidad = is_numeric(Session::get('usuario')->preferencias->cantidad_cheques) ? Session::get('usuario')->preferencias->cantidad_cheques : 500;
        } else {
        $cantidad = 500;
        }
        //$cheques      = SQLConnection::obtenerCheques($cuit,$id_persona);
        $cheques      = SQLConnection::backendStoreProcedure('obtener_cheques', array($cuit,$id_persona,$cantidad));
        /*Cuadro de Cheques - Inicio */
        $cuadro_cheques         = [];
        $cuadro_cheques         = SQLConnection::backendStoreProcedure('obtener_cuadro_cheques2', array($cuit));
        $cuadro_cheques_totales = [];
        $total_cheques 					= [];
        $total_cheques['1propio']['cantidad']   = 0;
        $total_cheques['2empresa']['cantidad']  = 0;
        $total_cheques['1propio']['monto']   = 0;
        $total_cheques['2empresa']['monto']  = 0;
        //
        if(!isset($cuadro_cheques_totales['1propio']['LEVANTADOS']['SIN FONDOS'])){
            $cuadro_cheques_totales['1propio']['LEVANTADOS']['SIN FONDOS'] = new \stdClass();
            $cuadro_cheques_totales['1propio']['LEVANTADOS']['SIN FONDOS']->cantidad  = 0;
            $cuadro_cheques_totales['1propio']['LEVANTADOS']['SIN FONDOS']->monto     = 0;
        }
        //
        if(!isset($cuadro_cheques_totales['1propio']['LEVANTADOS']['DEFECTOS FORMALES'])){
            $cuadro_cheques_totales['1propio']['LEVANTADOS']['DEFECTOS FORMALES'] = new \stdClass();
            $cuadro_cheques_totales['1propio']['LEVANTADOS']['DEFECTOS FORMALES']->cantidad = 0;
            $cuadro_cheques_totales['1propio']['LEVANTADOS']['DEFECTOS FORMALES']->monto    = 0;
        }
        //
        if(!isset($cuadro_cheques_totales['1propio']['SIN LEVANTAR']['SIN FONDOS'])){
            $cuadro_cheques_totales['1propio']['SIN LEVANTAR']['SIN FONDOS'] = new \stdClass();
            $cuadro_cheques_totales['1propio']['SIN LEVANTAR']['SIN FONDOS']->cantidad = 0;
            $cuadro_cheques_totales['1propio']['SIN LEVANTAR']['SIN FONDOS']->monto    = 0;
        }
        //
        if(!isset($cuadro_cheques_totales['1propio']['SIN LEVANTAR']['DEFECTOS FORMALES'])){
            $cuadro_cheques_totales['1propio']['SIN LEVANTAR']['DEFECTOS FORMALES'] = new \stdClass();
            $cuadro_cheques_totales['1propio']['SIN LEVANTAR']['DEFECTOS FORMALES']->cantidad = 0;
            $cuadro_cheques_totales['1propio']['SIN LEVANTAR']['DEFECTOS FORMALES']->monto    = 0;
        }
        //
        if(!isset($cuadro_cheques_totales['1propio']['CHEQUES']['SIN FONDOS'])){
            $cuadro_cheques_totales['1propio']['CHEQUES']['SIN FONDOS'] = new \stdClass();
            $cuadro_cheques_totales['1propio']['CHEQUES']['SIN FONDOS']->cantidad = 0;
            $cuadro_cheques_totales['1propio']['CHEQUES']['SIN FONDOS']->monto    = 0;
        }
        //  
        if(!isset($cuadro_cheques_totales['1propio']['CHEQUES']['DEFECTOS FORMALES'])){
            $cuadro_cheques_totales['1propio']['CHEQUES']['DEFECTOS FORMALES'] = new \stdClass();
            $cuadro_cheques_totales['1propio']['CHEQUES']['DEFECTOS FORMALES']->cantidad = 0;
            $cuadro_cheques_totales['1propio']['CHEQUES']['DEFECTOS FORMALES']->monto    = 0;
        }
        //
        foreach ($cuadro_cheques as $key => $value) {
            if(!isset($cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->cantidad)){
                $cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal] = new \stdClass();
                $cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->cantidad = 0;
                $cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->monto    = 0;
            }
            //
            $cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->cantidad = $value->cantidad;
            $cuadro_cheques_totales[$value->tipo][$value->cheques_o_levantados][$value->causal]->monto = $value->monto;
            //
            if($value->cheques_o_levantados == 'CHEQUES'){
                $total_cheques[$value->tipo]['cantidad'] = $total_cheques[$value->tipo]['cantidad'] + $value->cantidad;
                $total_cheques[$value->tipo]['monto'] = $total_cheques[$value->tipo]['monto'] + $value->monto;
            }
        }
        //
        if(isset($cuadro_cheques_totales['2empresa'])){
            krsort($cuadro_cheques_totales['2empresa']['CHEQUES']);
        }
        /*Cuadro de Cheques - Fin */
        $cheques_vinculaciones_todas = SQLConnection::backendStoreProcedure('obtener_cheques_vinculaciones_todas', array($cuit,$id_persona,$cantidad));
        $financiero             = SQLConnection::obtenerFinancieroBrief($cuit);
        //Gráfico de Situaciones
        $situaciones  = SQLConnection::obtenerSituacionesBancos($cuit);
        //
        $sit_mayor_cero = false;
        if($situaciones){
            foreach ($situaciones as $situacion){
                foreach ($situacion as $key => $value) {
                    if($key == 'periodo'){
                        $situacion->$key = str_replace('-', ',', $value);
                    }
                    //
                    if ($value == null) {
                        $situacion->$key = 0;
                    } elseif ($key != 'periodo') {
                        $sit_mayor_cero = true;
                    }
                }
            }
        }
        //
        if (!$sit_mayor_cero) { $situaciones = null; }
        //
        for ($i = 0; $i <= 23; $i++) {
            $periodos_graficos[$i] = date("Ym", strtotime( $periodo_maximo." -$i months"));
        }
        //Gráfico de garantías  
        $garantias    = SQLConnection::backendStoreProcedure('obtener_garantias_bancos', array($cuit));
        $garantias    = self::procesarGraficoGarantias($garantias,$periodos_graficos);
        //
        if($garantias){
            foreach ($garantias as $key => $garantia){
                foreach ($garantia as $key2 => $value){
                    if($key2 == 'periodo'){
                        $garantias[$key][$key2] = str_replace('-', ',', $value);
                    }
                }
            }
        }
        //tabla de bancos
        for ($i = 0; $i <= 23; $i++) {
            if ($i%8==0){
                $periodo[$i] = date("Ym", strtotime( $periodo_maximo." -$i months"));
            } else {
                $periodo[$i] = date("Ym", strtotime( $periodo_maximo." -$i months")); 
            }
        }
        krsort($periodo);
        $periodo = array_values($periodo);
        $obtenerBancos = SQLConnection::obtenerBancos($cuit);
        //
        if($obtenerBancos){
            foreach($obtenerBancos as $key_banco =>$banco){
                foreach($periodo as $key_mes => $mes){
                    if($mes == $banco->fec_inf){
                        if(!isset(  $bancos_ordenados['TOTAL_PERIODO'][$mes]['TOTAL_PERIODO'] )) {
                            $bancos_ordenados['TOTAL_PERIODO'][$mes]['TOTAL_PERIODO']  = 0;
                        }
                        //
                        $bancos_ordenados[$banco->nombre][$mes]['situacion']  = ($obtenerBancos[$key_banco]->situacion) ? $obtenerBancos[$key_banco]->situacion : '';
                        //
                        if(($obtenerBancos[$key_banco]->situacion && $obtenerBancos[$key_banco]->situacion > 1)) {
                            $bancos_ordenados[$banco->nombre][$mes]['desplegar']  = 1;
                        }
                        $bancos_ordenados[$banco->nombre][$mes]['total']      = ($obtenerBancos[$key_banco]->total) ? $obtenerBancos[$key_banco]->total : '';
                        $bancos_ordenados['TOTAL_PERIODO'][$mes]['TOTAL_PERIODO']   += ($obtenerBancos[$key_banco]->total) ? $obtenerBancos[$key_banco]->total : 0;
                    }
                }
            }
            //
            foreach($bancos_ordenados as $key_bo => $bancos){
                foreach($periodo as $key_mes => $mes){
                    if (!array_key_exists($mes,$bancos)){
                        $bancos_ordenados[$key_bo][$mes]['situacion'] = '';
                        $bancos_ordenados[$key_bo][$mes]['total'] = '';
                        $bancos_ordenados[$key_bo][$mes]['TOTAL_PERIODO'] = '';
                    } 
                }
            }
            //
            foreach($bancos_ordenados as $key_bo => $bancos){
                ksort ($bancos_ordenados[$key_bo]);
            }
            //
            foreach($bancos_ordenados as $key_bo => $bancos){
                $i =0;
                $n =0;
                foreach($bancos as $key_b  => $banco){
                    if($n%8==0){
                        $i++;
                    }
                    //
                    $bancos_ordenados_separados[$key_bo][$i][$key_b] = $banco;
                    $n++;  
                }
            }
            $i =0;
            foreach($periodo as $key_mes => $mes){
                if($key_mes%8==0){
                    $i++;
                }
                $periodos_ordenados[$i][$key_mes] = $mes;      
            }
        } 
        //
        $periodo = $periodos_ordenados;
        $bancos_ordenados_separados = array_reverse($bancos_ordenados_separados);
        //
        $obtener_bancos = $bancos_ordenados_separados;
        //
        if($cheques || $cheques_vinculaciones_todas){
            foreach($cheques as $key => $cheque){
                $cheques_ordenados[$cheque->tipo][] = $cheque;
            }
            //
            if($cheques_vinculaciones_todas) {
                foreach ($cheques_vinculaciones_todas as $key => $vinculacion_anterior) {
                    $vinculacion_encontrada = false;
                    //
                    if (isset($cheques_ordenados['vinculaciones'])) {
                        foreach ($cheques_ordenados['vinculaciones'] as $key => $vinculacion) {
                            if ($vinculacion_anterior->cuit_firmante == $vinculacion->cuit_firmante ) {
                                $vinculacion_encontrada = true;
                            }
                        }
                    }
                    if ($vinculacion_encontrada === false) {
                        $vinculacion_anterior->cantidad = 0;
                        $cheques_ordenados['vinculaciones'][] = $vinculacion_anterior;
                    }
                }
            }
            $cheques_ordenados['cantidad_propios'] = 0;
            $cheques_ordenados['cantidad_propios'] += isset($cheques_ordenados['propio'][0]->total_cheques) ? $cheques_ordenados['propio'][0]->total_cheques : 0;
            $cheques_ordenados['cantidad_propios'] += isset($cheques_ordenados['a_nombre_de_empresa'][0]->total_cheques) ? $cheques_ordenados['a_nombre_de_empresa'][0]->total_cheques : 0;        
            $cheques_ordenados['cantidad_empresas'] = isset($cheques_ordenados['empresa']) ? sizeof($cheques_ordenados['empresa']) : 0;
            $cheques_ordenados['cantidad_vinculaciones'] = isset($cheques_ordenados['vinculaciones']) ? sizeof($cheques_ordenados['vinculaciones']) : 0;
        }
        //
        $grafico_cheques  = SQLConnection::graficoCardChequesRechazados($cuit);
        $cancelaciones    = SQLConnection::obtenerCancelacion($cuit);
        $grafico_cheques  = self::generarGraficoCheques($grafico_cheques,24);
        $persona_fisica   = (substr($cuit,0,1) != '3') ? true : false ;
        $cheques  = $cheques_ordenados;
        $env      = Misc::obtenerColoresEnv();
        //
        $obtener_morosos = 	SQLConnection::backendStoreProcedure('obtener_morosos', array($cuit));
        //
        $vista =  \View::make('/informe-comercial-nuevo/bancos_nuevo')->with(compact('periodo','obtener_morosos','obtener_bancos','cheques','persona_fisica','card_status_bancario','json'
        ,'grafico_cheques_bancos','grafico_financiero','grafico_situaciones','grafico_garantias','cancelaciones', 'id_persona', 'cuit','vinculados_segun_bcra','grafico_cheques','cuadro_cheques','cuadro_cheques_totales','total_cheques'))->render();
        //
        if(!$json){
        return $vista;
        }
        //
        return \Response::json(array(
        'view' => $vista,
        'info'=>compact('financiero','situaciones','garantias','env','grafico_cheques','cheques','obtener_morosos','obtener_bancos','cancelaciones','imagen_fidelitas')
        ), 200, [], JSON_NUMERIC_CHECK);
    }

    // FUNCION QUE GENERA LOS DATOS DEL GRAFICO DE GARANTIAS USADA SOLAMENTE DENTRO DE LA FUNCION DE BANCOS
    private 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 COMEX ///////////
    ////////////////////////////////////

    // FUNCION QUE DEVUELVE SECCION COMEX
    public function obtenerComexOrg($json=true,$grafico_impo_comex='',$grafico_expo_comex='',$grafico_pais_impo_comex='',$grafico_rubro_impo_comex='',$grafico_pais_expo_comex='',$grafico_rubro_expo_comex=''){
        $meses = 24;
        $imagen_fidelitas   = Misc::obtenerImagenFidelitas();
        $cuit               = Request::input("cuit");
        $periodo            = '';
        $periodos_null      = '';
        $periodo_expo       = '';
        $consumo            = '';
        $temporal           = '';
        $deposito           = '';
        $zonafranca         = '';
        $total              = '';
        $comex_pais_impo    = [];
        $comex_pais_expo    = [];
        $comex_grafico_impo = [];
        $otros_pais_impo    = 0;
        $otros_pais_expo    = 0;
        $periodo_procesado  = SQLConnection::obtenerUltimoPeriodoProcesado('comercio_exterior');
        $comex_impo         = SQLConnection::obtenerComex($cuit);
        $tipo_persona       = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;

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

                        $number = $key;
                        //}
                        if($graf->total != 0){
                            $number++;
                            $comex_grafico_impo[$number] = $impo;

                        }else{
                            $comex_grafico_impo[$number] = $impo;
                            $number++;
                        }
                    }
                //sort($comex_grafico_impo['ordenar']);
                }
            }
            //totales que se muestran en 'tabla_comex'
            $total_consumo    = array_sum($total_consumo);
            $total_temporal   = array_sum($total_temporal);
            $total_deposito   = array_sum($total_deposito);
            $total_zonafranca = $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;
        }
        //$vista =  \View::make('informes/comex')->with(compact('total_pais_impo','total_pais_expo','periodo','consumo','temporal','deposito','zonafranca','total','comex_totales','json','grafico_impo_comex','grafico_expo_comex','grafico_pais_impo_comex','grafico_rubro_impo_comex','grafico_pais_expo_comex','grafico_rubro_expo_comex','comex_pais_impo','comex_pais_expo','comex_rubro_impo','comex_rubro_expo','total_rubro_impo','total_rubro_expo','comex_impo','comex_expo','total_consumo','total_temporal','total_deposito','total_zonafranca','total_totales','meses','esled'))->render();
        $vista =  \View::make('informe-comercial-nuevo/comex_nuevo')->with(compact('total_pais_impo','total_pais_expo','periodo','consumo','temporal','deposito','zonafranca','total','comex_totales','json','grafico_impo_comex','grafico_expo_comex','grafico_pais_impo_comex','grafico_rubro_impo_comex','grafico_pais_expo_comex','grafico_rubro_expo_comex','comex_pais_impo','comex_pais_expo','comex_rubro_impo','comex_rubro_expo','total_rubro_impo','total_rubro_expo','comex_impo','comex_expo','meses','esled'))->render();
        
        if(!$json){
            return $vista;
        }
        Session::put($cuit." ".date('Y-m-d').".comex",json_encode($vista));
        $comex_json = json_encode($comex_impo);
        return \Response::json(
            array(
                'view' =>$vista,
                //'info'=>compact('comex_impo','comex_expo','maximo','sort_pais_impo','sort_pais_expo','sort_rubros_impo','sort_rubros_expo','comex_grafico_exportaciones','comex_pais_expo','comex_pais_impo','comex_rubro_impo','comex_rubro_expo','tipo_persona','total_consumo','total_temporal','total_deposito','total_zonafranca','total_totales')
                'info'=>compact('comex_impo','comex_expo','comex_grafico_exportaciones','comex_pais_expo','comex_pais_impo','comex_rubro_impo','comex_rubro_expo','tipo_persona','total_consumo','total_temporal','total_deposito','total_zonafranca','total_totales')
            )
        );
    }

    // FUNCION QUE DEVUELVE SECCION COMEX
    public function obtenerComex($json=true,$grafico_impo_comex='',$grafico_expo_comex='',$grafico_pais_impo_comex='',$grafico_rubro_impo_comex='',$grafico_pais_expo_comex='',$grafico_rubro_expo_comex=''){
        $meses = 24;
        $imagen_fidelitas   = Misc::obtenerImagenFidelitas();
        $cuit               = Request::input("cuit");
        $periodo            = '';
        $periodos_null      = '';
        $periodo_expo       = '';
        $consumo            = '';
        $temporal           = '';
        $deposito           = '';
        $zonafranca         = '';
        $total              = '';
        $comex_pais_impo    = [];
        $comex_pais_expo    = [];
        $comex_grafico_impo = [];
        $otros_pais_impo    = 0;
        $otros_pais_expo    = 0;
        $periodo_procesado  = SQLConnection::obtenerUltimoPeriodoProcesado('comercio_exterior');
        $comex_impo         = SQLConnection::obtenerComex($cuit);
        $tipo_persona       = (substr($cuit,0,1) != '3') ? 'f' : 'j' ;

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

                        $number = $key;
                        //}
                        if($graf->total != 0){
                            $number++;
                            $comex_grafico_impo[$number] = $impo;

                        }else{
                            $comex_grafico_impo[$number] = $impo;
                            $number++;
                        }
                    }
                //sort($comex_grafico_impo['ordenar']);
                }
            }
            //totales que se muestran en 'tabla_comex'
            $total_consumo    = array_sum($total_consumo);
            $total_temporal   = array_sum($total_temporal);
            $total_deposito   = array_sum($total_deposito);
            $total_zonafranca = $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;
        }
        //$vista =  \View::make('informes/comex')->with(compact('total_pais_impo','total_pais_expo','periodo','consumo','temporal','deposito','zonafranca','total','comex_totales','json','grafico_impo_comex','grafico_expo_comex','grafico_pais_impo_comex','grafico_rubro_impo_comex','grafico_pais_expo_comex','grafico_rubro_expo_comex','comex_pais_impo','comex_pais_expo','comex_rubro_impo','comex_rubro_expo','total_rubro_impo','total_rubro_expo','comex_impo','comex_expo','total_consumo','total_temporal','total_deposito','total_zonafranca','total_totales','meses','esled'))->render();
        $vista =  \View::make('informe-comercial-nuevo/comex_nuevo')->with(compact('total_pais_impo','total_pais_expo','periodo','consumo','temporal','deposito','zonafranca','total','comex_totales','json','grafico_impo_comex','grafico_expo_comex','grafico_pais_impo_comex','grafico_rubro_impo_comex','grafico_pais_expo_comex','grafico_rubro_expo_comex','comex_pais_impo','comex_pais_expo','comex_rubro_impo','comex_rubro_expo','total_rubro_impo','total_rubro_expo','comex_impo','comex_expo','meses','esled'))->render();
        
        if(!$json){
            return $vista;
        }
        Session::put($cuit." ".date('Y-m-d').".comex",json_encode($vista));
        $comex_json = json_encode($comex_impo);
        return \Response::json(
            array(
                'view' =>$vista,
                //'info'=>compact('comex_impo','comex_expo','maximo','sort_pais_impo','sort_pais_expo','sort_rubros_impo','sort_rubros_expo','comex_grafico_exportaciones','comex_pais_expo','comex_pais_impo','comex_rubro_impo','comex_rubro_expo','tipo_persona','total_consumo','total_temporal','total_deposito','total_zonafranca','total_totales')
                'info'=>compact('comex_impo','comex_expo','comex_grafico_exportaciones','comex_pais_expo','comex_pais_impo','comex_rubro_impo','comex_rubro_expo','tipo_persona','total_consumo','total_temporal','total_deposito','total_zonafranca','total_totales')
            )
        );
    }


    // FUNCION QUE GENERA LA IMPRESION DEL PDF
    public function generarImpresion(){
        $cuit = Request::input('cuit');
        $cliente = Request::input('nombre_cliente');
        $razon_social = Request::input('razon_social');
        //
        $grafico_impo_comex                  = Request::input('grafico_impo_comex');
        $grafico_expo_comex                  = Request::input('grafico_expo_comex');
        $grafico_pais_impo_comex             = Request::input('grafico_pais_impo');
        $grafico_rubro_impo_comex            = Request::input('grafico_rubros_impo');
        $grafico_pais_expo_comex             = Request::input('grafico_pais_expo');
        $grafico_rubro_expo_comex            = Request::input('grafico_rubros_expo');
        //brief
        $grafico_financiero_brief            = Request::input('grafico_financiero_brief');
        $grafico_empleados_brief             = Request::input('grafico_empleados_brief');
        $grafico_cheques_brief               = Request::input('grafico_cheques_brief');
        $grafico_comex_brief                 = Request::input('grafico_comex_brief');
        //contables
        $imp_grafico_capital_de_trabajo      = Request::input('grafico_capital_de_trabajo_esp');
        $imp_grafico_patrimonial             = Request::input('grafico_patrimonial_esp');
        $imp_grafico_solvencia               = Request::input('grafico_solvencia_esp');
        $imp_grafico_liquidez_corriente      = Request::input('grafico_liquidez_corriente_esp');
        $imp_grafico_endeudamiento_corriente = Request::input('grafico_endeudamiento_corriente_esp');
        $imp_efecto_palanca                  = Request::input('grafico_efecto_palanca_esp');
        $imp_ventas                          = Request::input('grafico_ventas_esp');
        $imp_gastos_totales_sobre_ventas     = Request::input('grafico_gastos_totales_sobre_ventas_esp');
        $imp_grafico_performance             = Request::input('grafico_performance_esp');
        //bancos
        $grafico_cheques_bancos              = Request::input('grafico_cheques_bancos');
        $grafico_financiero                  = Request::input('grafico_financiero');
        $grafico_situaciones                 = Request::input('grafico_situaciones');
        $grafico_garantias                   = Request::input('grafico_garantias');
        //
        $grafico_sociedades                  = Request::input('grafico_relaciones');
        //
        $contenido = Request::input('contenido_informe_comercial');
        //
        // dd($grafico_sociedades);
        $logo = Session::get('webdata')['uri_logo'];
        if ( isset($_SERVER['HTTP_ORIGIN']) && $_SERVER['HTTP_ORIGIN'] == env('URL_BASEWEB') ){
            // ES PARA COMENTAR EN PRODUCCION (ESTO ES SOLAMENTE EN DESARROLLO)
            $logo = env('PATH_PUBLIC').'/'.Session::get('webdata')['uri_logo'];
        }
        $css =  Session::get('webdata')['uri_css2'];
        //
        $html = '';
        $html .= view('/informe-comercial-nuevo/plantilla_informe_comercial')->with(compact('contenido','grafico_cheques_bancos','grafico_financiero','grafico_situaciones','grafico_garantias','grafico_financiero_brief','grafico_empleados_brief','grafico_cheques_brief','grafico_comex_brief','grafico_impo_comex','grafico_expo_comex','grafico_pais_impo_comex','grafico_rubro_impo_comex','grafico_pais_expo_comex','grafico_rubro_expo_comex','imp_grafico_capital_de_trabajo','imp_grafico_patrimonial','imp_grafico_solvencia','imp_grafico_liquidez_corriente','imp_grafico_endeudamiento_corriente','imp_efecto_palanca','imp_ventas','imp_gastos_totales_sobre_ventas','imp_grafico_performance','grafico_sociedades','contenido','cuit','logo','cliente','razon_social','css'))->render();
        //-------ENTRA EN ESTA CONDICION CUANDO ES LLAMADO POR EL LINK O CUANDO SE TOCA EL BOTON GENERAR PDF INFORME COMERCIAL EN EL MODAL DE PANEL DE CONTROL, DEVUELVE EL PDF AL USUARIO
        $nombre    = $cuit."_contraparte".".html";
		$client_id = Session::get('usuario')->cliente['client_id'];
		$file           = ENV('TEMP_PDF').'/'.$client_id.'/'.$nombre;
		$file_download  = ENV('TEMP_PDF').'/'.$client_id.'/'.str_replace('.html', '.pdf', $nombre);
		//---- CUANDO GENERA EL ARHCIVO LO GUARDA EN ESPACIO TEMPORAL (OCCURE SIEMPRE)
		if(!is_dir(ENV('TEMP_PDF').'/'.$client_id)){
			mkdir(ENV('TEMP_PDF').'/'.$client_id, 0777,true);
		}
        //
		file_put_contents($file,utf8_decode($html));
		chmod($file, 0777);
		exec("wkhtmltopdf -d 300 -L 10 -R 10 -T 10 -B 10 --enable-local-file-access --header-font-size 8 --header-right ' [page] de [toPage]'  --viewport-size 500x750 --zoom 1 ".$file." ".$file_download);
		//----
        /* $qcontrap = SQLConnection::backendStoreProcedure('LN_contrapartes_', array('select', $contraparte, null, null, null, null, null, null, null, null, null, null, null, null, Session::get('usuario')->user_id), 'selectOne');
        $cuit = $qcontrap->identificacion;
        $nombre_contraparte = $qcontrap->nombre_persona;
        $nombre = $cuit."_contraparte".".html"; */
        //--- EN LUGAR DE MOVER EL ARCHIVO EN CASO DE LA PRESENCIA DEL PRODUCTO PDF HISTORICO, COPIAR EL ARCHIVO ASI SE MANTIENE LA PRESENCIA DEL MISMO EN TEMP Y LA POSIBILIDAD DE DESCARGARLO EN AMBAS CONDICIONES
        // exec("wkhtmltopdf -d 300 -L 10 -R 10 -T 10 -B 10 --enable-local-file-access --header-font-size 8 --header-right ' [page] de [toPage]'  --viewport-size 500x750 --zoom 1 ".ENV('PATH_GENERATE_IV_INFORME')."/".$nombre." ".ENV('PATH_GENERATE_IV_INFORME')."/".str_replace('.html', '.pdf', $nombre));
        //$file_content  = file_get_contents($file_download);
        // FIN DE PDF HISTORICO
        return response()->download($file_download);
        /*$response = array(
            'op'=> 'ok',
            'archivo' => 'informe_iv_'.$cuit.'.pdf',
            'file' => "data:application/pdf;base64,".base64_encode($file_content)
        );*/
        //die(json_encode($response));
    }
}
