<?php 

namespace App\Http\Controllers;

use Request;
use Session;
use App\Custom\SQLConnection;
use App\Custom\Misc;
use DB;
class ServDossierController extends Controller  {

  public static function dossierCuitLed() {
    $menu     = Misc::obtenerPermisosNavigatorNoCuit();
    $desde    = 'Nuevo Servicios para Dossier Led'; 
    //return view('/servicios-dossier-led/buscador_padron')->with(compact(['menu','desde']));
    //return view('/busqueda_padron_generico_led/busqueda-padron')->with(compact(['menu','desde']));
    try {
      $paises = SQLConnection::backendStoreProcedure('backend_obtener_paises', array());
      $provincias = SQLConnection::backendStoreProcedure('abm_provincias', array("BUSQUEDA-POR-PAISES", NULL, NULL, 'AR', 1));
  

          // Ordenar los paises alfabeticamente por el nombre (country_name)
          usort($paises, function($a, $b) {
              return strcmp($a->country_name, $b->country_name);
          });
          // Ordenar las provincias alfabéticamente por el nombre (prv_nombre)
          usort($provincias, function($a, $b) {
              return strcmp($a->prv_nombre, $b->prv_nombre);
          });
      } catch (\Exception $e) {
          // Manejar el error (loguear o mostrar un mensaje)
          Log::error('Error al obtener provincias: ' . $e->getMessage());
          $provincias = []; // Asignar un array vacío en caso de error
      }
     return view("/buscador_padron_general")->with(compact("menu","desde","provincias","paises"));               
  } 

    public static function dossierCuitLedOrg() {
        $menu     = Misc::obtenerPermisosNavigatorNoCuit();
        $desde    = 'Nuevo Servicios para Dossier Led'; 
        //return view('/servicios-dossier-led/buscador_padron')->with(compact(['menu','desde']));
        return view('/busqueda_padron_generico_led/busqueda-padron')->with(compact(['menu','desde']));
    }

    public static function resuladoFormDossierInicialCuitLed(){
      $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');
      
      return view('/servicios-dossier-led/resultado_form_dossier')->with(compact(['id_padron','cuit','nombre_persona']));
    }

    public static function resuladoFormDossierInicialCuitNuevo(){
      $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('/servicios-dossier-led/resultado_form_dossier_inicial_cuit')->with(compact(['menu','cuit','nombre_persona','cuits','tipo_persona','codigo_pais','identificador']));
    }

    public static function vinculacionesCuitNuevo() {
      $menu     = Misc::obtenerPermisosNavigatorNoCuit();
      $desde    = Request::Input('desde');
      if ($desde == 'elegir')
      {
        $desde    = 'Relaciones CUIT'; 
      } 
      else 
      {
        $desde =  'Nuevo Relaciones CUIT - Todos los Brief y Fidecheck Led'; 
      }
      return view('/servicios-dossier-led/buscador_padron')->with(compact(['menu','desde']));
    }

    public static function obtenerVinculacionCuitVistaNuevo(){
      $menu     				 = Misc::obtenerPermisosNavigatorNoCuit();
      $cuitb              = Request::Input('cuitb');
      $nombre_personab    = Request::Input('nombre_personab');
      return view('/servicios-dossier-led/resultado_vinculaciones')->with(compact('cuitb','nombre_personab'));
    }

    public static function obtenerResultadoVinculacionCuitVistaNuevo(){
      $menu     				 = Misc::obtenerPermisosNavigatorNoCuit();
      $cuitb              = Request::Input('cuitb');
      $nombre_personab    = Request::Input('nombre_personab');
      $visible = 1;
      $tipo_persona1     = SQLConnection::backendStoreProcedure('obtener_tipo_persona', array($cuitb), 'selectOne');
	  	$codigo_pais = $tipo_persona1->country_code;
	  	$tipo_persona = $tipo_persona1->tipo_persona;

	    $tipo_persona      = ($tipo_persona == 'J') ? 'j' : 'f';
			$socios_directores = SQLConnection::backendStoreProcedure('backend_obtener_socios', array(null, $cuitb, $visible, $tipo_persona));
	    $cargos            = SQLConnection::backendStoreProcedure("obtener_Cargos", array());
	    $accionistas       = SQLConnection::backendStoreProcedure("backend_obtener_accionistas", array($cuitb, $visible));
	    $accionistas_de    = SQLConnection::backendStoreProcedure("backend_obtener_accionistas_de", array($cuitb, $visible));
		  $cuits = []; 
	  	$i=0; 
	  	/*
 			$cuits[$i]['tipo']   = 'CUIT CONSULTADO'; 
    	$cuits[$i]['cuit']   = $cuitb; 
 			$cuits[$i]['nombre'] = $nombre_personab; 
 			$cuits[$i]['cargo']  = ''; 
    	$i=1;
    	*/ 
    	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;
 			         $cuits[$i]['nombre'] = $socio->nombre_persona; 
 			         $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; 
 			         $cuits[$i]['tipo_persona'] = SQLConnection::backendStoreProcedure('obtener_tipo_persona', array($socio->cuit_persona), 'selectOne')->tipo_persona;
 			         $cuits[$i]['nombre'] = $socio->nombre_persona; 
 			         $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;
 			         $cuits[$i]['nombre'] = $socio->nombre_persona; 
 			         $cuits[$i]['cargo']  = 'ACCIONISTA DE'; 
 			         $cuits[$i]['fecha_modificacion']  = $socio->fecha_modificacion; 
 			         $cuits[$i]['country_code']  = $socio->country_code; 
 			         
 			         $i += 1; 
			}
		  return view('/servicios-dossier-led/resultado_vinculaciones_cuit_todos')->with(compact('cuitb','nombre_personab','menu','codigo_pais','cuits','tipo_persona'));  
    }

    public static function obtenerEntidadesBancariasLed(){
      $menu = Misc::obtenerPermisosNavigatorNoCuit();
      //valido si el usuario tiene el permiso correspondiente para acceder a la sección solicitada.
      $valido =  Misc::restriccionPermiso('ENTIDAD');
      if(!$valido){ return redirect('/menu'); }
      $ent_bancaria = SQLConnection::obtenerCodigos("obtener_EntidadesBancarias");
      return view('servicios-dossier-led/entidades_bancarias')->with(compact('ent_bancaria','menu'));
    }

    public function abmEntidadesBancariasNuevo(){
      $accion 		  = Request::input('accion'); 
      $codigo_ent   = Request::input('id_banco');
      $nombre 		  = Request::input('nombre');
      $nombre_corto = Request::input('nombre_corto');
      $grupo 				= Request::input('grupo');
      if($grupo == ''){
        $grupo = null; 
      }	
      $params = array($accion,$codigo_ent,$nombre,$nombre_corto,$grupo); 
      //print_r($params); die(); 
      $mensaje_bancos = SQLConnection::backendStoreProcedure("backend_abm_entidades_bancarias",$params,'selectOne');
        
      $ent_bancaria = SQLConnection::obtenerCodigos("obtener_EntidadesBancarias");
      //print_r($ent_bancaria); die(); 
  
      return json_encode(array('error' => $mensaje_bancos->error,'mensaje' => $mensaje_bancos->mensaje, 
       'tabla' => view('/servicios-dossier-led/tabla_entidades_bancarias')->with(compact('ent_bancaria'))->render()
       ));
  
    }
}

