<?php 

namespace App\Http\Controllers;

use App\Custom\SQLConnection;
use App\Custom\Misc;

use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Request;

use DB;

class DossierController extends Controller  {

    public static function obtenerFormDossier(){
        $productos_dossier = SQLConnection::obtenerProductosDossier();
        $secciones         = self::obtenerTodasSecciones();
        foreach ($secciones as $key_secciones => $value) {
            $array[$value->nombre_seccion][$value->nombre_sub_seccion][] = $value->nombre_sub_s_seccion;
        }
        $secciones = $array;
        return view("dossier/form_dossier")->with(compact('productos_dossier','secciones'));
      }

      //devuelve todas las secc, sub y subS
      public static function obtenerTodasSecciones(){
        return SQLConnection::backendStoreProcedure('dossier_obtener_secciones', array(), 'select');
      }

      //guarda en tabla 'sub_productos_dossier' el documento con las secciones,sub y sub s que contiene
      public static function procesaFormularioSecciones(){
          $request_form     = Request::except(['id_producto_dossier','nombre_producto','numero_orden-1','numero_orden-2','numero_orden-3','numero_orden-4','numero_orden-5','numero_orden-6','numero_orden-7','numero_orden-8','numero_orden-9','numero_orden-10','numero_orden-11','numero_orden-12','numero_orden-13','numero_orden-14']);
          $nombre_producto  = Request::input('nombre_producto');
          $id_producto      = Request::input('id_producto_dossier');
          $secciones        = self::obtenerTodasSecciones();
          $num_documento    = 0002;
          $id_seccion       = '';
          $id_sub_seccion   = '';
          $id_sub_s_seccion = '';
          $request_orden    = Request::only(['numero_orden-1','numero_orden-2','numero_orden-3','numero_orden-4','numero_orden-5','numero_orden-6','numero_orden-7','numero_orden-8','numero_orden-9','numero_orden-10','numero_orden-11','numero_orden-12','numero_orden-13','numero_orden-14']);
          // dd($request_orden);  
          foreach($request_form as $key => $value){
                /*
                //nombre producto
                if ($key == 'nombre_producto' ) {
                    $nombre_producto = $value;
                }
                */
                //comparacion de secciones
                foreach ($secciones as $k => $v) {
                    //obtiene id_seccion
                    if (substr($key,0,7) =='seccion' && $value=='on') {
                        $exp_seccion = explode("_", $key);
                        $id_seccion  = $exp_seccion[1];
                    }
                    //obtiene id_sub_seccion
                    if (substr($key,0,10) =='subseccion' && $value=='on') {
                        $exp_sub_seccion           = explode("-", $key);
                        $nombre_sub_seccion        = $exp_sub_seccion[1];
                        $nombre_sub_seccion_limpio = rtrim(str_replace("_"," ",$nombre_sub_seccion));
                        
                        if($nombre_sub_seccion_limpio == $v->nombre_sub_seccion){
                            $id_sub_seccion = $v->id_sub_seccion;
                        }
                        
                    }else{
                        $id_sub_seccion = null;
                    }
                    //obtiene id_sub_s_seccion
                    if (substr($key,0,13) == 'sub_s_seccion' && $value=='on') {
                        $exp_sub_s_seccion           = explode("-", $key);
                        $nombre_sub_s_seccion        = $exp_sub_s_seccion[1];
                        $nombre_sub_s_seccion_limpio = rtrim(str_replace("_"," ",$nombre_sub_s_seccion));
                        
                        if($nombre_sub_seccion_limpio == $v->nombre_sub_seccion){
                            $id_sub_s_seccion = $v->id_s_sub_seccion;
                        }

                    }else{
                        $id_sub_s_seccion = null;
                    }


                    //obtiene orden de visualizacion de las secciones para el armado del documento (o subproducto)
                    if( is_numeric($id_seccion) && $id_sub_seccion==null && $id_sub_s_seccion==null ){
                        //$numero_orden     =''; 
                        foreach ($request_orden as $k_orden => $v_orden) {
                            if (is_numeric($v_orden)) {
                                $numero_orden = $v_orden;
                            }
                        }                            
                    }else{
                        $numero_orden=0;
                    }
                    
                }//fin foreach secciones a comparar
                //dd('out');

                
                
                if (isset($id_seccion) && isset($id_producto)) {
                    $res_stored = SQLConnection::backendStoreProcedure('dossier_insertar_sub_producto', array($id_producto,$id_seccion,$id_sub_seccion,$id_sub_s_seccion,$num_documento,$numero_orden), true);
                }else{
                    //HACER retornar la respuesta del stored !
                    return 'error';
                }
            }//fin foreach all request form
            //return algo 
            
      
      
    }

    public static function obtenerVistaDocumentos(){
        $productos   = SQLConnection::backendStoreProcedure('dossier_obtener_productos', array(), 'select');
        $id_producto = Request::input('select_productos');
        
        return view("dossier/lista_documentos")->with(compact('productos'));
    }

    //retorna las tablas de documentos segun el ID_PRODUCTO asociado
    public static function obtenerDocumentos (){
        $id_producto = Request::input('select_productos');
        $documentos  = SQLConnection::backendStoreProcedure('dossier_obtener_documentos', array($id_producto), 'select');
        return view("dossier/tabla_documentos")->with(compact('documentos'));

    }

    //retorna el template para el armado del dossier FINAL
    public static function obtenerTemplateSubProducto(){
        $id_documento        = Request::input('id_documento');
        $lista_sub_productos = SQLConnection::backendStoreProcedure('dossier_obtener_sub_productos', array($id_documento), 'select');
        
        //print_r($lista_sub_productos);die();
        /*
            envio la data de sec,sub,subS al controller correspondiente sugun su id_producto
        */
        foreach ($lista_sub_productos as $key => $value) {
            // id_producto = 1 inquiro
            if ($value->id_producto == 1) {

            //id_producto = 2  permanent
            }elseif ($value->id_producto == 2) {
                
            //id_producto =3 fidelitas    
            }else{
                $test = FidelitasDossierController::obtenerTemplate($lista_sub_productos);
                return $test;
            }
            
            
        }
        /*
        if id_producto
        llamo a controlador correspondiente
                ese controller llama a template de acuerdo al producto
                */
                
                
            }
    //version DOSSIER INICIAL
    public static function obtenerFormDossierInicial(){
        $menu     = Misc::obtenerPermisosNavigatorNoCuit();
        $desde    = 'Dossier version INICIAL'; 
        return view('dossier/form_dossier_inicial')->with(compact(['menu','desde']));
    }
    //        
    //public static function datos(){
    //public static function modalentabla(){
     
    public static function dossierCuit() {
      $menu     = Misc::obtenerPermisosNavigatorNoCuit();
      $desde    = 'Servicios para Dossier'; 
      return view('/buscador_padron')->with(compact(['menu','desde']));
    }


    public static function resuladoFormDossierInicialCuit(){
      $menu              = Misc::obtenerPermisosNavigatorNoCuit();
      $cuit              = Request::Input('cuit');
      $nombre_persona    = Request::Input('nombre_persona');
      //-- SE OBTIENE EL CODIGO PAIS A TRAVES DEL PADRON PARA FIDECHECK
      $id_padron         = Request::Input('id_padron');
      $padron  = DB::selectOne('EXEC dbo.backend_obtener_id_padron '.$id_padron);
      $identificador = $padron->identificador;
      $codigo_pais = $padron->country_code;
      //--
      $visible           = 1;
      $tipo_persona      = SQLConnection::backendStoreProcedure('obtener_tipo_persona', array($cuit), 'selectOne')->tipo_persona;
      $tipo_persona      = ($tipo_persona == 'J') ? 'j' : 'f';
      $socios_directores = SQLConnection::backendStoreProcedure('backend_obtener_socios', array(null, $cuit, $visible, $tipo_persona));
      $cargos            = SQLConnection::backendStoreProcedure("obtener_Cargos", array());
      $accionistas       = SQLConnection::backendStoreProcedure("backend_obtener_accionistas", array($cuit, $visible));
      $accionistas_de    = SQLConnection::backendStoreProcedure("backend_obtener_accionistas_de", array($cuit, $visible));
      $cuits             = []; 
      $i=0;

      foreach ($socios_directores as $socio)
      {
            if ($socio->ultimo == 'S')
            {
               $cuits[$i]['tipo']   = 'SOCIOS/DIRECTORES'; 
               $cuits[$i]['cuit']   = $socio->cuit_persona; 
               //$cuits[$i]['tipo_persona'] = SQLConnection::backendStoreProcedure('obtener_tipo_persona', array($socio->cuit_persona), 'selectOne')->tipo_persona;
               try {
                    $cuits[$i]['tipo_persona'] = SQLConnection::backendStoreProcedure('obtener_tipo_persona', array($socio->cuit_persona), 'selectOne')->tipo_persona;    
                } catch (\Throwable $th) {
                    $cuits[$i]['tipo_persona'] = (substr($socio->cuit_persona, 0, 1) != '2') ? 'J' : 'F';
                }
               $cuits[$i]['nombre'] = $socio->nombre_persona; 
               $cuits[$i]['porcentaje'] = "N/A"; 
               $cuits[$i]['cargo']  = $socio->cargo_nombre; 
               $cuits[$i]['fecha_modificacion']  = $socio->fecha_modificacion; 
               $cuits[$i]['country_code']  = $socio->country_code; 

               $i += 1; 
            }
      }
      foreach ($accionistas as $socio)
      {
               $cuits[$i]['tipo']   = 'ACCIONISTA'; 
               $cuits[$i]['cuit']   = $socio->cuit_persona; 
               try {
                    $cuits[$i]['tipo_persona'] = SQLConnection::backendStoreProcedure('obtener_tipo_persona', array($socio->cuit_persona), 'selectOne')->tipo_persona;    
               } catch (\Throwable $th) {
                    $cuits[$i]['tipo_persona'] = (substr($socio->cuit_persona, 0, 1) != '2') ? 'J' : 'F';
               }
               $cuits[$i]['nombre'] = $socio->nombre_persona; 
               $cuits[$i]['porcentaje'] = $socio->porcentaje ?? "N/A"; 
               $cuits[$i]['cargo']  = 'ACCIONISTA'; 
               $cuits[$i]['fecha_modificacion']  = $socio->fecha_modificacion; 
               $cuits[$i]['country_code']  = $socio->country_code; 

               $i += 1; 
      }
      
      foreach ($accionistas_de as $socio)
      {
               $cuits[$i]['tipo']   = 'ACCIONISTA DE'; 
               $cuits[$i]['cuit']   = $socio->cuit_persona; 
               //$cuits[$i]['tipo_persona'] = SQLConnection::backendStoreProcedure('obtener_tipo_persona', array($socio->cuit_persona), 'selectOne')->tipo_persona;
               try {
                    $cuits[$i]['tipo_persona'] = SQLConnection::backendStoreProcedure('obtener_tipo_persona', array($socio->cuit_persona), 'selectOne')->tipo_persona;    
                } catch (\Throwable $th) {
                    $cuits[$i]['tipo_persona'] = (substr($socio->cuit_persona, 0, 1) != '2') ? 'J' : 'F';
                }
               $cuits[$i]['nombre'] = $socio->nombre_persona; 
               $cuits[$i]['porcentaje'] = "N/A"; 
               $cuits[$i]['cargo']  = 'ACCIONISTA DE'; 
               $cuits[$i]['fecha_modificacion']  = $socio->fecha_modificacion; 
               $cuits[$i]['country_code']  = $socio->country_code; 
               
               $i += 1; 
      }

      return view('/dossier/resultado_form_dossier_inicial_cuit')->with(compact(['menu','cuit','nombre_persona','cuits','tipo_persona','codigo_pais','identificador']));
    }
  
    
    public static function resuladoFormDossierInicial(){

      /*
        toma los inputs desde 'led_informes_activo.blade' (boton +info)
        producto '2002' = 'dossierdemo'
      */ 

      $nombre_pais        = Request::Input('nombrePaisDossier');
      $id_contraparte     = Request::Input('contraparte');
      $num_informe        = Request::input('informeDossier');
      $gestion            = Request::input('gestionDossier');
      $info_t_contraparte = SQLConnection::backendStoreProcedure('LN_contrapartes_', array('select', $id_contraparte, null, null, null, null, null, null, null, null, null, null, null, null, Session::get('usuario')->user_id), 'selectOne');

      //$cuit_contraparte   = Request::input('cuitDossier');
      $cuit_contraparte   = $info_t_contraparte->numero; 
      $nombre_contraparte = $info_t_contraparte->nombre_persona;
      $nombre_cliente     = $info_t_contraparte->nombre_cliente;
      $dossier            = SQLConnection::backendStoreProcedure('LN_demo_', array('select_prod_dossier', $id_contraparte,null,'2002'), 'selectOne');

      $analisis           = NULL;
      $cantidad_empleados = NULL;
      $visible            = NULL;
      $inicio_actividades = NULL;
      $resenia            = NULL;  

    //   $dossier = SQLConnection::backendStoreProcedure('LN_demo_', array('select_prod_dossier', $id_contraparte,null,'2002'), 'selectOne');
      
    //AGB AGREGA ESTO HORRIBLE. VER COMO CAMBIAR YA QUE PARA ESTOS CASOS EL BOTÓN DE CARGAR DOSSIER NO DEBERÍA APARECER
    if (empty($dossier)){
        echo("LA FAMILIA DEL CLIENTE NO TIENE CONFIGURADO EL PRODUCTO DOSSIER");die;
        }
        
      if (!empty($dossier))
      {
        $analisis           = $dossier->analisis;
        $cantidad_empleados = $dossier->empleados;
        $visible            = $dossier->visible;
        $inicio_actividades = $dossier->inicio_actividades_dmy;
        //$inicio_actividades = $dossier->inicio_actividades;
        $resenia            = $dossier->resenia;  
      }

      $logo_name          = null;
      $dossier_file       = '';
      $dossier_url        = '';
      //$info_t_demo        = SQLConnection::backendStoreProcedure('LN_demo_', array('select', $id_contraparte, NULL, '2002'), 'selectOne');
      //$inicio_actividades = $info_t_contraparte->inicio_actividades;
      //$resenia            = $info_t_contraparte->resenia;  
      //$analisis           = $info_t_demo->analisis;
      //$cantidad_empleados = $info_t_contraparte->empleados;
      //$visible            = $info_t_demo->visible; 
      
      if (!empty($dossier)) {
            $logo_name = null;
            $file_exists = false;
            if (file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.png')) {
                $logo_name = $id_contraparte . '.png';
            }
            if (null == $logo_name) {
                if (file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.jpg')) {
                    $logo_name = $id_contraparte . '.jpg';
                }
            }
            if (null == $logo_name) {
                if (file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.gif')) {
                    $logo_name = $id_contraparte . '.gif';
                }
            }

            $once = true;
            foreach ($dossier as $key => $value) {
                if ($once == true) {
                    $dossier->resenia = nl2br($dossier->resenia);
                    $dossier->analisis = nl2br($dossier->analisis);
                    $once = false;
                }
            }
        } 
      
      //unificar estas 3 consultas
      $score   = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULl, NULL, NULL, $id_contraparte, 'SCORE_DOSSIER'), 'selectOne');
    $nivelr  = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULl, NULL, NULL, $id_contraparte, 'NIVEL_RIESGO'), 'selectOne');
    $depecon = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('indicadores_contraparte', NULl, NULL, NULL, $id_contraparte, 'DEP_ECON'), 'selectOne');
      //comprobacion LOGOS para mostrar en vista en caso que exista
      if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.png') )  {
        $logo_name = $id_contraparte . '.png';
      }
      
      if(null == $logo_name) {
        if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.jpg') )  {
            $logo_name = $id_contraparte . '.jpg';
        }     
      }
      
      if(null == $logo_name) {
        if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.gif') )  {
            $logo_name = $id_contraparte . '.gif';
        }     
      }
      if( file_exists(env('PATH_DOCUMENTOS') . '/dossier/' . $id_contraparte . '.pdf') )  {
        $dossier_file = $id_contraparte . '.pdf';
        $dossier_url = env('RUTA_DOCUMENTOS') . '/dossier/' . $id_contraparte . '.pdf';
      }
      return view('/dossier/resultado_form_dossier_inicial')->with(compact(['cuit_contraparte','nombre_cliente','logo_name','nombre_contraparte','nombre_pais','id_contraparte','info_t_contraparte','dossier_file','dossier_url','num_informe','gestion','inicio_actividades','resenia','cantidad_empleados','visible','score','nivelr','depecon','analisis','dossier']));
        
    }

    public static function procesaFormularioContraparte(){
        $inicio_actividades = ('' != Request::Input('inicio_actividades')) ? Request::input('inicio_actividades') : NULL;
        $inicio_actividades = (NULL != $inicio_actividades) ? "" . date_format(date_create_from_format('!d/m/Y', $inicio_actividades), "Y-m-d") . "" : "NULL";

        $cantidad_empleados = Request::Input('cantidad_empleados');
        $gestion            = Request::Input('gestion');
        $resenia            = Request::Input('resenia');
        $accion             = Request::input('accion');
        $id_contraparte     = Request::input('id_contraparte');
        $id_cliente         = Request::input('cliente');
        $num_informe        = Request::input('num_informe');
        $status_formales    = Request::input('status_formales');
        $status_relaciones  = Request::input('status_relaciones');
        $status_comerciales = Request::input('status_comerciales');
        $status_fiscales    = Request::input('status_fiscales');
        $status_legales     = Request::input('status_legales');
        $status_bancos      = Request::input('status_bancos');
        $status_comex       = Request::input('status_comex');
        $status_contables   = Request::input('status_contables');
        $status_prensa      = Request::input('status_prensa');
        $status_peps        = Request::input('status_peps');
        //$analisis           = Request::input('editor-analisis');
        $analisis           = Request::input('analisis');
        $visible            = Request::input('frmVisible');
        $nivel_riesgo       = Request::input('nivel_riesgo');
        $score_dossier      = Request::input('score_dossier'); 
        $dep_econ           = Request::input('dep_econ'); 


        $file_exists        = false;
        $producto           = '2002';
        $visible = ($visible != null) ? 1: 0;


        $cerrar_informe = Request::input('cerrar_informe');
        
        if ($accion =='editar_contraparte') {
            /*
            Stored test
            -LN_demo_DEV
            -LN_dashboard_cliente_DEV
            */

            //tabla: LN_contrapartes
            $res_stored = SQLConnection::backendStoreProcedure('dossier_insertar_form_contraparte', array($inicio_actividades,$cantidad_empleados,$resenia,$id_contraparte,$gestion), true);        
            //tabla: LN_demo
            $temp = SQLConnection::backendStoreProcedure('LN_demo_', array('UPDATE', $id_contraparte, NULL,$producto, $inicio_actividades,$cantidad_empleados, $resenia, $status_formales,$status_relaciones, $status_comerciales, $status_fiscales,$status_legales, $status_bancos, $status_comex,$status_contables, $status_prensa, $status_peps,$analisis, NULL, $num_informe,$gestion,$visible), 'selectOne');
            
            //score dossier - tabla: LN_contraparte_indicadores
            if(NULL !=$score_dossier) {
                $temp = SQLConnection::backendStoreProcedure('LN_dashboard_cliente_DEV', array('score_dossier', null, null, null, $id_contraparte, 'score_dossier', $score_dossier,null,null,null,null,null,$gestion), 'selectOne');
            }
            else{
                $temp = SQLConnection::backendStoreProcedure('LN_demo_', array('BORRAR_SCORE_DOSSIER', $id_contraparte,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,$gestion), 'selectOne');
            }
    
            //nivel riesgo - tabla: LN_contraparte_indicadores
            if(NULL !=$nivel_riesgo) {
                $temp = SQLConnection::backendStoreProcedure('LN_dashboard_cliente', array('nivel_riesgo', null, null, null, $id_contraparte, 'nivel_riesgo', null, null, $nivel_riesgo), 'selectOne');
            }
            else{
                $temp = SQLConnection::backendStoreProcedure('LN_demo_', array('BORRAR_NIVEL_RIESGO',$id_contraparte,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,$gestion), 'selectOne');
            }

            //dependencia economica - tabla: LN_contraparte_indicadores
            if(NULL !=$dep_econ) {
                $temp = SQLConnection::backendStoreProcedure('LN_dashboard_cliente_DEV', array('dependencia_economica', null, null, null, $id_contraparte, 'dep_econ', null, $dep_econ,null,null,null,null,$gestion), 'selectOne');
            }
            else {
                $temp = SQLConnection::backendStoreProcedure('LN_demo_', array('BORRAR_DEP_ECON', $id_contraparte,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,$gestion), 'selectOne');
            } 

            //inicio LOGOS
            if (!empty($_FILES['archivo']) && $_FILES['archivo']['name'] !== '') {
                $userfile_name = $_FILES['archivo']['name'];
                $userfile_extn = substr($userfile_name, strrpos($userfile_name, '.')+1);
                $ftype = strtolower($userfile_extn); 
                if($ftype == 'png' OR $ftype == 'jpg' OR $ftype == 'gif') {

                    if( basename($_FILES['archivo']['name']) !='' ) {
                        $path = env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.' . $ftype;
                        $ftype = strtolower(pathinfo($path,PATHINFO_EXTENSION));
                        if($ftype == 'png' OR $ftype == 'jpg' OR $ftype == 'gif') { 
                            move_uploaded_file($_FILES['archivo']['tmp_name'], $path);
                            if($ftype == 'png') {
                                if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.jpg') )  {
                                    unlink( env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.jpg' );
                                }     
                                if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.gif') )  {
                                    unlink( env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.gif' );
                                }             
                            }

                            if($ftype == 'jpg') {
                                if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . 'png') )  {
                                    unlink( env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.png' );
                                }     
                                if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.gif') )  {
                                    unlink( env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.gif' );
                                }             
                            }

                            if($ftype == 'gif') {
                                if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.png') )  {
                                    unlink( env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.png' );
                                }     
                                if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.jpg') )  {
                                    unlink( env('PATH_DOCUMENTOS') . '/logos/' . $id_contraparte . '.jpg' );
                                }             
                            }

                        }
                    }

                }
            }//fin IF FILES


            // Envio de e-mail a la contraparte
            if ($visible == 1 and $id_contraparte > 0 and $num_informe > 0) {

                $enviar = !empty(Request::input('enviar_mail')) ? true : false;
                if ($enviar) {

                    $dossier_data = SQLConnection::backendStoreProcedure('LN_informes', array('panel_control_reports', $id_contraparte, $num_informe), 'selectOne');

                    $attach = !empty(Request::input('incluir_archivo')) ? true : false;

                    // Verificar que exista archivo para adjuntar ($dossier_name tiene un nombre de archivo armado)
                    $dossier_file = null;
                    $dossier_name = '';
                    if ($attach) {
                        if( file_exists(env('PATH_DOCUMENTOS') . '/dossier/' . $id_contraparte . '.pdf') ) {
                            $dossier_file = env('PATH_DOCUMENTOS') . '/dossier/' . $id_contraparte . '.pdf';
                            $dossier_name = str_replace(' ', '_', $dossier_data->nombre_persona . ' - ' . $dossier_data->abreviatura . ' ' . $dossier_data->identificacion . '.pdf');
                        }
                    }
                    $attach = ($dossier_file != null) ? true : false;


                    if ($dossier_data->texto_email != null and $dossier_data->texto_email != '' and $dossier_data->ingresado_por > 0 and $dossier_data->email != null and $dossier_data->email != '') {

                        $content = str_replace(Chr(13).Chr(10), '<br />', $dossier_data->texto_email);

                        $content = str_replace('%nombre_tipo_informe%', $dossier_data->nombre_tipo_informe  , $content);
                        $content = str_replace('%nombre_persona%', $dossier_data->nombre_persona, $content);
                        $content = str_replace('%tipo_informe%', $dossier_data->tipo_informe, $content);
                        $content = str_replace('%identificador%', $dossier_data->abreviatura, $content);
                        $content = str_replace('%version%', $dossier_data->version, $content);
                        $content = str_replace('%numero%', $dossier_data->identificacion, $content);
                        $content = str_replace('%nombre_cliente%', $dossier_data->nombre_cliente, $content);
                        $content = str_replace('%nombre_solicitante%', $dossier_data->first_name . ' ' . $dossier_data->last_name, $content);
                        $content = str_replace('%email_solicitante%', $dossier_data->email, $content);
                        $content = str_replace('%pais%', $dossier_data->country_name, $content);
                        $content = str_replace('%fecha_ingresado%', $dossier_data->fecha_ingreso, $content);
                        $content = str_replace('%fecha_aprobado%', $dossier_data->fecha_aprobacion, $content);


                        $from = 'servicio@fidelitas.com.ar';
                        $to = (env('LED_TEST_MODE') == true) ? env('LED_TEST_EMAIL_ADDR') : trim($dossier_data->email);
                        $bcc = (env('LED_TEST_MODE') == true) ? NULL : 'soporteled@fidelitas.com.ar';
                        $cc = (env('LED_TEST_MODE') == true) ? NULL : 'ventas@fidelitas.com.ar';

                        /*$to = 'luis.prenafeta@vdo3.com';
                        $bcc = NULL;*/

                        $asunto = $dossier_data->nombre_persona . ' (' . $dossier_data->abreviatura . ' ' . $dossier_data->identificacion . ' - ' . $dossier_data->country_name . ') : Informe finalizado';
                        $replyto = 'soporteled@fidelitas.com.ar';
                        if (filter_var($to, FILTER_VALIDATE_EMAIL)) {                   
                            Misc::enviarMailLED('/led/led_email_custom' , $from, $to, $bcc, $replyto, $content, $asunto, $dossier_file, $dossier_name, $cc);
                        }

                    }
                }
            }

            if ($cerrar_informe == true AND $num_informe > 0) {
              $temp = SQLConnection::backendStoreProcedure('LN_informes', array('cerrar_informe', NULL, $num_informe, Session::get('usuario')->user_id), 'selectOne');
            }


           
        }//fin IF EDITAR
        return 'ok';
    }
    
    public static function verificarPublicacionProducto() {
      $contraparte = Request::input('id_contraparte');
      $producto    = '2002';
      $check       = SQLConnection::backendStoreProcedure('LN_demo_', array('verificar_publicacion_producto', $contraparte, NULL, $producto), 'selectOne');
      return json_encode($check);
    }

    public static function procesaFormularioPrensa(){
        $all = Request::input();
        //dd($all);
        $id_contraparte = Request::input('id_contraparte');
        $gestion        = Request::input('gestion');
        $contenido      = Request::input('resenia-prensa');
        $creado_por     = Session::get('usuario')->user_id;    
        $modificado_por = Session::get('usuario')->user_id;    
        $res_stored     = SQLConnection::backendStoreProcedure('dossier_edita_form_prensa', array($id_contraparte,$contenido,$creado_por,$modificado_por,$gestion), true);
        return $res_stored;
    }

    /* Elimina el logo de la contraparte del Dossier */
    public static function contraparteDeleteLogo() {
        $id        = ( is_null(Request::input('id_contraparte')) ) ? Request::input('contraparte') : Request::input('id_contraparte') ;
        $producto    = Request::input('producto');
        $archivo     = Request::input('nombreArchivo');
        //
        $resp        = '';
        $archivo_exp = explode(".", $archivo);
        $formato     = $archivo_exp[1];
        //
        if ($formato =='png') {
            if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id . '.png') )  {
                unlink( env('PATH_DOCUMENTOS') . '/logos/' . $id . '.png' );
                $resp = 'ok';
            }else{
                $resp = 'error';
            }
        }elseif ($formato =='jpg') {
            if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id . '.jpg') )  {
                unlink( env('PATH_DOCUMENTOS') . '/logos/' . $id . '.jpg' );
                $resp = 'ok';
            }else{
                $resp = 'error';
            }
        }else{
            if( file_exists(env('PATH_DOCUMENTOS') . '/logos/' . $id . '.gif') )  {
                unlink( env('PATH_DOCUMENTOS') . '/logos/' . $id . '.gif' );
                $resp = 'ok';
            }else{
                $resp = 'error';
            }
        }    
        //return self::ledContraparteDossierData($id, $producto, false, false);
        return $resp;
    }


    public static function cargaArchivoDossier(){
        $id_contraparte = Request::input('id_contraparte');
        $resp = '';
        //inicio ARCHIVOS
        if (!empty($_FILES['archivo_dossier']) && $_FILES['archivo_dossier']['name'] !== '') {
            $userfile_name = $_FILES['archivo_dossier']['name'];
            $userfile_extn = substr($userfile_name, strrpos($userfile_name, '.')+1);
            $ftype = strtolower($userfile_extn); 
            if($ftype == 'pdf') {
                if( basename($_FILES['archivo_dossier']['name']) !='' ) {
                    $path = env('PATH_DOCUMENTOS') . '/dossier/' . $id_contraparte . '.' . $ftype;
                    $ftype = strtolower(pathinfo($path,PATHINFO_EXTENSION));
                    if($ftype == 'pdf') { 
                        $res_mov = move_uploaded_file($_FILES['archivo_dossier']['tmp_name'], $path);
                        if ($res_mov ==true) {
                            $resp = 'ok_update';
                        }else{
                            $resp = 'Error';
                        }
                    }
                }
            }
            
        }

        return $resp;
    }

    public static function eliminaArchivoDossier() {
    $id_contraparte = Request::input('id_contraparte');
        if( env('PATH_DOCUMENTOS') . '/dossier/' . $id_contraparte . '.pdf' )  {
            //dd('existe');
      unlink( env('PATH_DOCUMENTOS') . '/dossier/' . $id_contraparte . '.pdf' );
        }
        return 'ok';    
    }
    /*
    public static function muestraModalDossier(){
      $id_contraparte     = Request::Input('contraparte');
      $nombre_pais        = Request::Input('nombrePaisDossier');
      $num_informe        = Request::input('informeDossier');
      $gestion            = Request::input('gestionDossier');
    }
    */

    //----
    public static function dossierCuit2(){
        $menu = Misc::obtenerPermisosNavigatorNoCuit();
        $desde = 'Servicios para Dossier 2022'; 
        return view('/buscador_padron')->with(compact(['menu','desde']));
    }
    //---- FUNCION ENCARGADA DE HACER LA LLAMADA PARA OBTENER LA SECCION DEL INFORME COMERCIAL Y DEVOLVERLO
    public static function llamadaInformeComercialDossier(){
        $expReg = '/^\d{11}$/';
        //-----
        if ( preg_match($expReg,$_POST['cuit']) ){
            //---
            $cuit = $_POST['cuit'];
            $nombre = $_POST['nombre'];
            $id = $_POST['id'];
            $token = $_POST['_token'];
            $url_interna = env('URL_IP_FIDELITAS');
            //---
            switch ($id) {
                case 'formales':
                    $ruta = $url_interna.'/led/led-formales';
                    break;
                case 'comerciales':
                    $ruta = $url_interna.'/led/led-comercial';
                    break;
                case 'fiscales':
                    $ruta = $url_interna.'/led/led-fiscales';
                    break;
                case 'contables':
                    $ruta = $url_interna.'/contables';
                    break;
                case 'relaciones':
                    $ruta = $url_interna.'/sociedades';
                    break;
                case 'legales':
                    $ruta = $url_interna.'/led/led-legales';
                    break;
                case 'bancos':
                    $ruta = $url_interna.'/bancos';
                    break;
                case 'comex':
                    $ruta = $url_interna.'/led/led-comex';
                    break;
                case 'marcas':
                    $ruta = $url_interna.'/led/led-marcas';
                    break;
                default:
                    return 'error';
                    break;
            }
            //---
            $params = array('_token' => $token , 'cuit' => $cuit , 'nombre' => $nombre , 'sessionkey' => env('SESSION_BACKEND_FIDELITAS_KEY') );
            $llamada = Misc::CURLCall($ruta,http_build_query($params),'POST');
            //----
            if ( $id == 'marcas'){
                $llamada = $llamada;
            }
            else{
                $llamada = json_decode($llamada);
                $llamada->view = $llamada->view;
                $llamada = json_encode($llamada);
            }
            return $llamada;
            //-----
        }
        //--- SI LOS DATOS RECIBIDOS SON INVALIDOS
        else{

        }
    }

}