<?php namespace App\Http\Controllers;

use Session;
use Request;  
use App\Custom\SQLConnection;
use App\Custom\Misc;
use stdClass;


class FidelitasInformesController extends Controller  {
    public static $ent_bancaria;
    public static $fuentes;
    public static $eventos;
    public static $eventos_morosidad;
    public static $tipos_causas;
    public static $tipo_procesos;

    // FUNCIONES PARA RELACIONES
    public static function obtenerDomicilioNuevo(){		
		Session::forget('cuit');
		Session::forget('nombre');
		Session::save();

		$desde = "Domicilios";
		
		return view("/buscar_padron_informes")->with(compact("desde"));
	}

    // FUNCIONES PARA DOMICILIOS
    public function obtenerDomicilios(){
        $cuit = Request::input("cuit");
        $nombre_persona = Request::input("nombre_persona");
        $ident = Request::input("ident");
        
		$domicilios_visibles     = SQLConnection::backendStoreProcedure('backend_obtener_domicilios', array($cuit,1));
		$domicilios_no_visibles  = SQLConnection::backendStoreProcedure('backend_obtener_domicilios', array($cuit,0));
		$paises     =  SQLConnection::backendStoreProcedure('backend_obtener_paises',array());
		$provincias =  SQLConnection::backendStoreProcedure('obtener_provincias',array());
		$domicilios_todos    = array_merge($domicilios_visibles,$domicilios_no_visibles);        
    
        $id_ant      = -1;
        $visible_ant = -1; 
        $domicilios = []; 

        foreach ($domicilios_todos as $value) {
    		if ($visible_ant != $value->visible || $id_ant != $value->id) {
    			$i = 0; 
    		}
    		
            $visible_ant = $value->visible; 
    		$id_ant      = $value->id; 

            if ($i==0){

                $domicilios[$value->visible][$value->id] = new stdClass();
                $domicilios[$value->visible][$value->id]->codpos       	= $value->codpos;
                $domicilios[$value->visible][$value->id]->domicilio    	= $value->domicilio;
                $domicilios[$value->visible][$value->id]->loc_codigo    = $value->loc_codigo; 
                $domicilios[$value->visible][$value->id]->loc_nombre    = $value->loc_nombre; 
                $domicilios[$value->visible][$value->id]->prv_codigo 		= $value->prv_codigo; 
                $domicilios[$value->visible][$value->id]->prv_nombre 		= $value->prv_nombre; 
                $domicilios[$value->visible][$value->id]->pai_codigo 		= $value->pai_codigo; 
                $domicilios[$value->visible][$value->id]->pai_nombre 		= $value->pai_nombre; 
                $domicilios[$value->visible][$value->id]->tipo_domicilio = $value->tipo_domicilio; 
                $domicilios[$value->visible][$value->id]->ids_domicilios	 = $value->id_domicilio; 
                $domicilios[$value->visible][$value->id]->tipo_domicilio_id = $value->tipo_domicilio . '|' . $value->id_domicilio;  

    		}else{
                $domicilios[$value->visible][$value->id]->ids_domicilios 	 .= ',' . $value->id_domicilio; 
                $domicilios[$value->visible][$value->id]->tipo_domicilio .= ',' . $value->tipo_domicilio; 
                $domicilios[$value->visible][$value->id]->tipo_domicilio_id .= ',' . $value->tipo_domicilio . '|' . $value->id_domicilio;  
    		}

            $i += 1; 
        }                        
        return view('/informe-fidelita-secciones/domicilios')->with(compact('domicilios', 'cuit', 'paises', 'provincias', 'nombre_persona', 'ident'));
    }

    // FUNCIONES PARA RELACIONES
    public static function obtenerRelaciones(){		
		Session::forget('cuit');
		Session::forget('nombre');
		Session::save();

		$desde = "Relaciones";
		
		return view("/buscar_padron_informes")->with(compact("desde"));
	}

    // FUNCIONES PARA NOMBRES ANTERIORES
    public static function nombresAnteriores(){		
		Session::forget('cuit');
		Session::forget('nombre');
		Session::save();

		$desde = "Nombres Anteriores";
		
		return view("/buscar_padron_informes")->with(compact("desde"));
	}

    public function nombresAnterioresvista(){
        $cuit = Request::Input('cuit');
        $nombre_persona = Request::input("nombre_persona");
        $ident = Request::input("ident");
		$cambios_nombres  = SQLConnection::backendStoreProcedure('backend_cambios_nombres',array(NULL,$cuit,NULL),'select');
        
		return view('/produccion/cambios_nombres_nuevo')->with(compact('cambios_nombres','cuit','nombre_persona','ident'));
    }

    public function tablaNombresAnteriores(){         
		$id_cambios = Request::input('id_cambios');
		$mensaje_cambios = SQLConnection::backendVisible($id_cambios,'backend_visible_cambios_nombres');
		$cuit = Request::Input('cuit');
		$cambios_nombres  = SQLConnection::backendStoreProcedure('backend_cambios_nombres',array(NULL,$cuit,NULL),'select');
		
        return json_encode(array('error' => $mensaje_cambios->error,'mensaje' => $mensaje_cambios->mensaje,
	 	'tabla' => view('/produccion/tabla_cambio_nombre_nuevo')->with(compact('cambios_nombres','cuit'))->render()));
	}

    //TODO No sube el registro a la base de datos
    public function altaCambiosNombres(){
            
        $cuit = Request::Input('cuit');
        $id_padron 	= null;
        $user_id 		= Session::get("usuario")->user_id;

        $valores = [];
        $valores['cuit']			=  $cuit; 
        $valores['id_padron']	= $id_padron; 
        $valores['user_id']		= $user_id; 

        foreach (request()->except('_token') as $key => $valor) {
            if (empty($valor)) {
    
                $valor = '';
            }
            $valores[$key]=$valor;
        }
        
        $valores=array_values($valores);
        $store_procedure = 'backend_abm_cambios_nombres';
        
        $mensaje_cambios = SQLConnection::backendStoreProcedure($store_procedure,$valores,"selectOne");
        $cambios_nombres  = SQLConnection::backendStoreProcedure('backend_cambios_nombres',array(NULL,$cuit,NULL),'select');

        return json_encode(array('error' => $mensaje_cambios->error,'mensaje' => $mensaje_cambios->mensaje,
            'tabla' => view('produccion/tabla_cambio_nombre_nuevo')->with(compact('cambios_nombres','cuit'))->render()
            ));
    }

    // FUNCIONES PARA CENTRAL DE DEUDORES
    public function centralDeudores(){
        Session::forget('cuit');
		Session::forget('nombre');
		Session::save();

		$desde = "Central de Deudores";
		
		return view("/buscar_padron_informes")->with(compact("desde"));
    }

    public function vistaCentralDeudores(){      	
		$cuit = Request::Input('cuit'); 
        $nombre_persona = Request::input("nombre_persona");
        $ident = Request::input("ident");
		$meses = 60;
		$visible = 1;
		$central_deudores = SQLConnection::backendCentralDeudores($cuit,$meses,$visible);                        
		
		self::$ent_bancaria = SQLConnection::obtenerCodigos("obtener_EntidadesBancarias");
		$ent_bancaria = self::$ent_bancaria;
		
		self::$fuentes = SQLConnection::obtenerCodigos("obtener_Fuentes");
		$fuentes = self::$fuentes;
		
		self::$eventos = SQLConnection::obtenerCodigos("obtener_Eventos_deudas");
		$eventos = self::$eventos;	  

		$params = array($cuit);
		$bloqueo_cendeu = SQLConnection::backendStoreProcedure("backend_cendeu_bloqueo",$params,'select');
		$cancela_cendeu = SQLConnection::backendStoreProcedure("backend_cendeu_cancela",$params,'select');
				
		return view('legales/central_deudores_nuevo')->with(compact('central_deudores','meses','visible','ent_bancaria','eventos','fuentes','bloqueo_cendeu','cancela_cendeu','cuit','nombre_persona','ident'));
    }

    // FUNCIONES PARA EDICTOS
    public function edictosBusqueda(){
        Session::forget('cuit');
		Session::forget('nombre');
		Session::save();

		$desde = "Edictos";
		
		return view("/buscar_padron_informes")->with(compact("desde"));
    }

    //FUNCIONES PARA NOMINA DE EMPEADOS
    public function empleadosBusqueda(){
        Session::forget('cuit');
		Session::forget('nombre');
		Session::save();

		$desde = "Nómina de empleados / empleadores";
		
		return view("/buscar_padron_informes")->with(compact("desde"));
    }

    //FUNCIONES PARA NOMINA DE EMPEADOS
    public function causasJudicialesBusqueda(){
        Session::forget('cuit');
		Session::forget('nombre');
		Session::save();

		$desde = "Causas Judiciales (como Demandando y como Actor)";
		
		return view("/buscar_padron_informes")->with(compact("desde"));
    }

    public function obtenerinformePDF(){
        Session::forget('cuit');
		Session::forget('nombre');
		Session::save();

		$desde = "Descargar Informe Completo";
		
		return view("/informe-fidelita-secciones/obtener_pdf")->with(compact("desde"));               
    }
}
