<?php namespace App\Http\Controllers;

use App\Custom\SQLConnection;
use App\Http\Controllers\MainController;
use App\Custom\Misc;
use Request;
use Session;
use View;
use stdClass;

class UserController extends Controller {

	public function obtenerPerfil(){
		$user_id 				= Session::get('usuario')->user_id;
		$user 	 				= SQLConnection::backendStoreProcedure('obtener_perfil', array($user_id), true);

		$id_cliente 		= Session::get('usuario')->cliente["client_id"];
		$falta_data			= MainController::obtenerDatosPerfil($user_id);
		$productos_ids 	= MainController::obtenerIdProductosCliente($id_cliente,'S','S');
		$idiomas				= SQLConnection::backendStoreProcedure('obtener_idiomas', array());

		$usuario				= Session::get('usuario');
		$monitoreo = 0;
		foreach ($productos_ids as $key => $value) {
			if ($value == '16') {
				$monitoreo = 1;
			}
		}
		//$default_time_gtm = Session::get('default_gtm_diff');
		$servicio_actual  = Session::get('servicio_actual');
		$preurl = $_SERVER['HTTP_REFERER'];
		// 
		//$zones_array = array();
		$zones_array = \DateTimeZone::listIdentifiers();
		/* $timestamp = time();         
		# to maintain the original timezone, store before
		$default_timezone = date_default_timezone_get();
		foreach (timezone_identifiers_list() as $key => $zone) {
			date_default_timezone_set($zone);
			$zones_array[$key]['zone'] = $zone;
			$zones_array[$key]['diff_from_GMT'] = date('P', $timestamp);
		}
		# to maintain the original timezone, re-set after
		date_default_timezone_set($default_timezone); */
		//return view('usuario/perfil')->with(compact('user','monitoreo', 'idiomas', 'usuario','servicio_actual','preurl'));
		return view('usuario/profile')->with(compact('user','monitoreo', 'idiomas', 'usuario','servicio_actual','preurl','zones_array'));
	}

	//Obtiene la vista de la cuenta del usuario -------------------------------------------
	public function obtenerCuenta(){
		return view('usuario/cuenta');
	}

	//Vista de Cambio de Clave del usuario ------------------------------------------------
	public function obtenerCambiarClave(){
		$u 							= Session::get('usuario')->username;
		$user_id 				= Session::get('usuario')->user_id;
		$id_cliente 		= Session::get('usuario')->cliente["client_id"];
		$falta_data			= MainController::obtenerDatosPerfil($user_id);
		$productos_ids 	= MainController::obtenerIdProductosCliente($id_cliente,'S','S');

		foreach ($productos_ids as $key => $value) {
			if ($value == 16) {
				$monitoreo = 1;
			}else{
				$monitoreo = 0;
			}
		}
		$u = Misc::encrypt($u);
		//return view('usuario/cambiar_clave')->with('u',Misc::encrypt($u));
		//return view('usuario/cambiar_clave')->with(compact('u','monitoreo'));
		return view('usuario/cambiar_password')->with(compact('u','monitoreo'));
	}

  	// EDITAR PERFIL DE USUARIO ------------------------------------------------------------
	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');
		$gtm_zone = Request::input('gtm_zone');
		$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 = Request::input('slider_scoring_contable');
		$custom_score_cendeu = Request::input('slider_scoring_cendeu');
		$custom_score_cheques = Request::input('slider_scoring_cheques');
		$custom_score_fiscales = Request::input('slider_scoring_fiscales');
		$custom_score_formales = Request::input('slider_scoring_formales');
		$custom_score_judiciales = Request::input('slider_scoring_judiciales');
		$idioma_seleccionado = explode('--||--',$codigo_idioma);
		//
		if(count($idioma_seleccionado) > 0){
		  $idioma 				= $idioma_seleccionado[1];
		  $codigo_idioma 	= $idioma_seleccionado[0];
		}
		//Desactiva el usuario ,si falta info de su perfil (Modificar "editar_perfil_usuario_test" para que reciba este parametro)
			/*
			$falta_info_perfil				= MainController::obtenerDatosPerfil($user_id);
			if ($falta_info_perfil == 1) {
			$falta_info_perfil = 'N'; 
			}else{
			$falta_info_perfil = 'Y';
			} 
			*/

			/*
		$data = Request::all();
		$score_custom_contable 				 	 = $data['slider_scoring_contable'];
		$score_custom_scoring_cendeu   	 = $data['slider_scoring_cendeu'];
		$score_custom_scoring_cheques  	 = $data['slider_scoring_cheques'];
		$score_custom_scoring_fiscales 	 = $data['slider_scoring_fiscales'];
		$score_custom_scoring_formales 	 = $data['slider_scoring_formales'];
		$score_custom_scoring_judiciales = $data['slider_scoring_judiciales'];
		$scores = SQLConnection::cargaScoreCustom($score_custom_contable,$score_custom_scoring_cendeu,$score_custom_scoring_cheques,$score_custom_scoring_fiscales,$score_custom_scoring_formales,$score_custom_scoring_judiciales);
		*/
		//dd($scores);

		/*
			'val_scoring_contable' => $val_scoring_contable,
		  'val_scoring_judiciales' => $val_scoring_judiciales,
		  'val_scoring_cendeu' => $val_scoring_cendeu,
		  'val_scoring_cheques' => $val_scoring_cheques,
		  'val_scoring_fiscales' => $val_scoring_fiscales,
		  'val_scoring_formales' => $val_scoring_formales,
		*/
		$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
		];
		//
		$params = Misc::convertirStringsVaciosEnNull($params);
		//
		$user = SQLConnection::backendStoreProcedure('editar_perfil_usuario', array_values($params), true);

		$usuario		 						 = Session::get('usuario');
		//	$preferencias 					= SQLConnection::backendStoreProcedure('obtener_preferencias_usuario', array($usuario->user_id), true);
		$usuario->idioma 				= $idioma;
		$usuario->codigo_idioma = $codigo_idioma;
		// CONFIGURACION DE IDIOMA PARA EL SERVICIO
		if ( isset($usuario->servicios)  ){
			foreach ( $usuario->servicios as $servicio => $config ){
				$config->userLanguage = $codigo_idioma;
				continue;
			}
		}
		// CONFIGURACION DE IDIOMA PARA EL SERVICIO
		$usuario->timezone = $gtm_zone;
		Session::put('usuario',$usuario);
		// Session::put('default_gtm',$gtm_zone); // hay que guardarlo en perfil de usuario (28/08/2023 - no se está guardando)
		
        // date_default_timezone_set($time_zone);
		/* -------------------------- */ 
		/* 14/09/2020*/
		Self::obtenerTraduccionesBotones();
		/* -------------------------- */ 

		//\Artisan::call('view:clear');
		
		return response()->json([
		  'info' => $user,
		]);
	}


	public static function obtenerTraduccionesBotones() {
		
		/* -------------------------- */ 
		/* 14/09/2020*/
		/* AGREGADO PARA TRADUCCIONES DE LOS BOTONES DEL PANEL DE CONTROL y Titulo Dashboard */
		Traducciones::$blade = 'led_panel_control';
		$trad = SQLConnection::obtenerTraduccionesPHP(Traducciones::$blade);
		$panel_control_trad = []; 
		$panel_control_trad[0] = 'Exportar a Excel'; 
		$panel_control_trad[1] = 'Mostrar Columnas'; 
		$panel_control_trad[2] = 'Desactivar Filtros'; 
		$panel_control_trad[3] = 'de'; 
		$panel_control_trad[4] = 'Página'; 
		$panel_control_trad[5] = 'Registros'; 
		foreach ($panel_control_trad as $key => $value) {
			if(isset($trad[$value])){
				$panel_control_trad[$key] =$trad[$value];
			}
			else
			{
				// Si no esta traducido, lo guarda en la tabla traducciones
				Traducciones::set($value,Traducciones::$blade);
			}
		}

		Session::put('boton_excel' 		, $panel_control_trad[0]);
		Session::put('boton_mostrar'	, $panel_control_trad[1]);
		Session::put('boton_desactivar' , $panel_control_trad[2]);
		Session::put('de_' 				, $panel_control_trad[3]);
		Session::put('pagina_'			, $panel_control_trad[4]);
		Session::put('registros_' 		, $panel_control_trad[5]);

		$novedades = 'Novedades'; 
		Traducciones::$blade = 'led_dashboard';
		$trad = SQLConnection::obtenerTraduccionesPHP(Traducciones::$blade);
		if(isset($trad[$novedades])) {
				$novedades =$trad[$novedades];
			}
			else
			{
				Traducciones::set($novedades,Traducciones::$blade);
			}
		Session::put('novedades_' , $novedades);
		Session::save();
		/* -------------------------- */ 
	}


}


