<?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;

class UserController extends Controller
{
	//Obtiene la vista del perfil del usuario
	public function obtenerPerfil(){
		$user_id = Session::get('usuario')->user_id;
		$user = SQLConnection::obtenerPerfil($user_id);
				
		$idiomas = SQLConnection::backendStoreProcedure('obtener_idiomas', []);
		$zones_array = \DateTimeZone::listIdentifiers();
			
		//dd($user);	
		return view('usuario/profile')->with(compact('user','idiomas','zones_array'));
	}

    //Vista de Cambio de Clave del usuario
	public function obtenerCambiarClave(){
		$u = Misc::encrypt(Session::get('usuario')->username);
		// return view('/usuario/cambiar_clave')->with('u',Misc::encrypt($u));
		//return view('/usuario/cambiar_clave');
		return view('/usuario/cambiar_password')->with(compact('u'));

	}

	public function editarPerfilUsuario(){
		$user_id 					= Session::get('usuario')->user_id;
		$username 					= Session::get('usuario')->username;
		$nombre 					= Request::input('nombre');	
		$apellido 					= Request::input('apellido');	
		$email 						= Request::input('email');
		$cargo						= Request::input('cargo');
		$telefono					= Request::input('telefono');
		$codigo_idioma				= Request::input('idioma');
		$fecha_de_nacimiento		= Request::input('fecha_de_nacimiento');
		$incluir_homonimos			= Request::input('incluir_homonimos');
		$cantidad_cheques			= Request::input('cantidad_cheques');
		$cantidad_juicios			= Request::input('cantidad_juicios');
		$fecha_de_nacimiento		= Misc::convertirFormatoFecha($fecha_de_nacimiento,'d/m/Y','Y-m-d');
		$custom_score_contable  	= NULL;
		$custom_score_cendeu 		= NULL;
		$custom_score_cheques 		= NULL;
		$custom_score_fiscales 		= NULL;
		$custom_score_formales 		= NULL;
		$custom_score_judiciales 	= NULL;
		$idioma_seleccionado 		= explode('--||--',$codigo_idioma);
		$gtm_zone 					= Request::input('gtm_zone');
		$aliasname					= Request::input('aliasname');
		//
		if(count($idioma_seleccionado) > 0){
		  $idioma 				= $idioma_seleccionado[1];
		  $codigo_idioma 	= $idioma_seleccionado[0];
		}
		//
		$params = [
		  'user_id' => $user_id,
		  'username' => $username,
		  'nombre' => $nombre,
		  'apellido' => $apellido,
		  'email' => $email,
		  'fecha_de_nacimiento' => $fecha_de_nacimiento,
		  'cargo' => $cargo,
		  'telefono' => $telefono,
		  'codigo_idioma' => $codigo_idioma,
		  'incluir_homonimos' => $incluir_homonimos ?? 0,
		  'cantidad_cheques' => $cantidad_cheques ?? 500,
		  'cantidad_juicios' => $cantidad_juicios ?? 500,
		  'custom_score_contable'   => $custom_score_contable,
		  'custom_score_cendeu'		 => $custom_score_cendeu,
		  'custom_score_cheques'		=> $custom_score_cheques,
		  'custom_score_fiscales'   => $custom_score_fiscales,
		  'custom_score_formales'   => $custom_score_formales,
		  'custom_score_judiciales' => $custom_score_judiciales,
		  'user_time_zone' => $gtm_zone,
		  'aliasname' => $aliasname
		];
		//
		$params = Misc::convertirStringsVaciosEnNull($params);
		//
		$user = SQLConnection::backendStoreProcedure('editar_perfil_usuario', array_values($params), true);
		$usuario = Session::get('usuario');
		$usuario->idioma = $idioma;
		$usuario->codigo_idioma = $codigo_idioma;
		$usuario->aliasname = $aliasname;
		// CONFIGURACION DE IDIOMA PARA EL SERVICIO
		Session::put('usuario',$usuario);
		/* -------------------------- */ 
		\Artisan::call('view:clear');
		//
		return response()->json([
		  'info' => $user,
		]);
	}

}
