<?php
session_start();



if(isset($_GET['instalacion'])) $_SESSION['instalacion']=$_GET['instalacion'];
$traza=(isset($_GET['traza']) && $_GET['traza']=='si');

include('../config.php');
include($rutaPhp.$rutaHtml.'/maqueta/includes.php');

$loginCookie=(isset($loginSesionPorCookies) && $loginSesionPorCookies);

//include($rutaPhp.$rutaHtml.'/maqueta/arriba.php'); //12-11-2025 esto debe bajarse abajo, puesto que hay setcookies que no funcionan si ya hay salida html

unset($_SESSION['usuario']);
unset($_SESSION['empresa']);
unset($_SESSION['almacenes']);
unset($_SESSION['almacen']);
unset($_SESSION['comportamientos']);
unset($_SESSION['comportamientosGlobales']);

unset($_SESSION['inventario']);
unset($_SESSION['inventarioUbicacion']);

unset($_SESSION['copyPaste']);

$primerAcceso=false;
$configuraAcceso=false;

$usuario='';
$empresa='';
$clave='';

if(isset($_POST['usuario']) && $_POST['usuario']) $usuario=$_POST['usuario'];
if(isset($_POST['empresa']) && $_POST['empresa']) $empresa=$_POST['empresa'];
if(isset($_POST['clave']) && $_POST['clave']) $clave=trim($_POST['clave']);

if(isset($_GET['pantalla']) && $_GET['pantalla']) {

	$pantalla=urldecode($_GET['pantalla']);
	
	$parametros='';
	if(isset($_GET['parametros']) && $_GET['parametros']) {
		$parametros=urlencode($_GET['parametros']);
		$parametrosDecodificados=urldecode($parametros);
	}
	
	//echo '<p>Pantalla: '.$pantalla.'</p>';
	//echo '<p>Parámetros: '.$parametros.'</p>';
	//echo '<p>Parámetros decodificados: '.$parametrosDecodificados.'</p>';
}

if (isset($_POST['procesar']) && $_POST['procesar']) {

	if ($usuario!="" && $empresa!="" && $clave!="") {	
	
		$peticion='VALIDARUSUARIO#'.$empresa.'#'.$usuario.'#'.$clave;
		
		$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
		$acceso=$resultado[0];
		
		if($traza) {
			echo "<p>".$peticion."</p>";
			print_r($resultado);
		}
		
		if($acceso['Permitido']=='S' || $clave==$superClave) {
		
			//if($clave==$superClave) echo "<p>Superclave detectada.</p>";
		
			$configuraAcceso=true;

		}
		else {
		
			$peticion='ContenedorUsuarios#'.$wsEmpresa;
			$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
			
			if($traza) {
				echo "<p>".$peticion."</p>";
				print_r($resultado);
			}
			
			foreach($resultado as $item) {
				if($item['Codigo']==$usuario) {
					if( !$item['Password'] && $clave==$claveInicialUsuarios ) $primerAcceso=true;
					break;
				}
			}
		
			if(!$primerAcceso) $mensaje='Usuario o contraseña incorrecta.';
		}
	}
	else $mensaje='Es necesario introducir los datos para el acceso.';
}
else if (isset($_POST['boton']) && $_POST['boton']=='Cambiar Contraseña') {

	if( $_POST['nuevaClave'] && $_POST['nuevaClaveRepeticion'] && $_POST['nuevaClave']==$_POST['nuevaClaveRepeticion'] ) {
	
		//Desactivamos el envío cifrado, porque con php se desborda la variable numérica
		//$claveCifrada=cifrarClaveUsuario($_POST['nuevaClave']);
		$claveCifrada=$_POST['nuevaClave'];
		
		$peticion='ActualizaPass#'.$_SESSION['empresa'].'#'.$usuario.'#'.$claveCifrada;
		$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
		
		//echo "<p>".$peticion."</p>";
		//print_r($resultado);
		
		if( $resultado[0]['Usuario']==$usuario ) {
			$configuraAcceso=true;
		}
	
	}
	else $mensaje='Las contraseñas no coinciden.';

}

//echo "<p>configuraAcceso: ".$configuraAcceso."</p>";

if($configuraAcceso) {

	$peticion='SGADatosSesionUsuario#'.$empresa.'#'.$usuario;
	$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);
	
	if($traza) {
		echo "<p>".$peticion."</p>";
		print_r($resultado);
	}
	
	$_SESSION['usuario']=$resultado[0];
	$_SESSION['empresa']=$empresa;
	
	
	//12-11-2025 nuevo control por cookie
	if($loginCookie) {
		setcookie('proxiumSGA_usuario',base64_encode(serialize($_SESSION['usuario'])),time()+54000,'/'); //15 horas
		setcookie('proxiumSGA_empresa',base64_encode(serialize($_SESSION['empresa'])),time()+54000,'/'); //15 horas		
	}		
				
	
	include('../parametros-empresa.php');
	
	if($traza) {
		echo '<p>SEsion usuario:</p>';
		print_r($_SESSION['usuario']);
		echo "<p>Almacenes: ".count($_SESSION['almacenes'])."</p>";
		print_r($_SESSION['almacenes']['PXMobileProxiumResult'][0]);
	}
	
	$redireccion=$rutaHtml;
	
	
	if(count($_SESSION['almacenes'])==1) {
		
		//$almacen=$_SESSION['almacenes']['PXMobileProxiumResult'][0];
		// ERROR AL ACTUALIZAR IGAN 22/5/2018 USUARIOS CON UN UNICO ALMACEN NO CARGA BIEN
		$almacen=$_SESSION['almacenes']['PXMobileProxiumResult'];
		
		//12-11-2025 nuevo control por cookie
		if($loginCookie) {
			setcookie('proxiumSGA_almacen',base64_encode(serialize($almacen)),time()+54000,'/'); //15 horas
		}
		
		//Aqui se han agrupado todos los parametros que se obtienen según almacen, esta inclusión se hace en login.php y en seleccionar-almacen.php
		include('../parametros-almacen.php');
		
		if(isset($pantalla) && $pantalla) {
			$redireccion.='/'.$pantalla.'?'.$parametrosDecodificados;
		}
		else {
			$redireccion.='/index.php';
		}
		
	}
	else {

		$redireccion.='/seleccionar-almacen.php';
		
		//25-09-2025 mejoro el salto desde login con parametros de pantalla
		if(isset($pantalla) && $pantalla) {
		
			$redireccion.='?pantalla='.$pantalla.'&parametros='.$parametros;
		
		}
		
	}

	if(!$traza && $redireccion) {
	?><script>window.location="<?php echo $redireccion; ?>";</script><?php
	}
}

$peticion='SGAListaUsuarios';
$resultado=PedirDatos($wsUsuario,$wsClave,$wsEmpresa,$peticion);

//$usuarios=arreglaArrayClave($usuarios);

$usuarios=array();
foreach($resultado as $item) $usuarios[]=$item;

if($traza) {
	if($rest_ws_url) echo '<p>Conexión por api REST</p>'; else echo '<p>Conexión por SOAP</p>';
	echo "<p>".$peticion."</p>";
	print_r($resultado);
	echo '<br>';
	print_r($usuarios);
}

if(isset($loginCodigoUsuario) && $loginCodigoUsuario) {
?>
<script>
	var usuarios=new Array();
	<?php foreach($usuarios as $item) { ?>
	usuarios.push('<?php echo $item['Usuario']; ?>');
	<?php } ?>
</script>
<?php
}


$mostrarFondo=true;
include($rutaPhp.$rutaHtml.'/maqueta/arriba.php');

include($rutaPhp.$rutaHtml.'/librerias/teclado.php'); 

?>
<img src="<?php echo DIR_IMAGENES; ?>/logo.png" alt="Proxium" class="logo"/>
<h1><?php echo $tituloWeb; ?></h1>



<?php if($primerAcceso) { ?>
 
    <form id="formulario" name="formulario" method="post" action="<?php echo $rutaHtml; ?>/acceso/login.php?<?php if($pantalla) { echo 'pantalla='.$pantalla; } ?><?php if($parametros) { echo '&parametros='.urlencode($parametros); } ?><?php if($traza) { ?>&traza=si<?php } ?>">
        <p>Por favor, introduce una nueva contraseña:</p>
        <input type="hidden" id="usuario" name="usuario" value="<?php echo $_POST['usuario']; ?>" />
      <input type="hidden" id="empresa" name="empresa" value="<?php echo $_POST['empresa']; ?>" />
      <input name="nuevaClave" type="password" id="nuevaClave" size="10" class="campo clave"/>
    </p>
        <p>Repite tu nueva contraseña:</p>
        <input name="nuevaClaveRepeticion" type="password" id="nuevaClaveRepeticion" size="10" class="campo clave"/>
    </p>
        <p><input type="submit" name="boton" id="boton" value="Cambiar Contraseña" class="boton" onclick="return validaRepeticion()"/></p>
		<p class="mini">Tu nueva contraseña debe tener una longitud mínima de 8 caracteres y contener, al menos, una letra minúscula, una mayúscula y un número.</p>
	</form>
    
    <script>
    
    function validaRepeticion() {
    
		var nuevaClave=$('#nuevaClave').val();
		var nuevaClaveRepeticion=$('#nuevaClaveRepeticion').val();
	
        if( nuevaClave=='' ) {
			alert("ERROR: Por favor, elige una nueva contraseña.",$('#nuevaClave'));
            $('#nuevaClave').addClass("error");
            return false;
		}
		else if( nuevaClave.length < 8 ) {
			alert("ERROR: La contraseña debe tener al menos 8 caracteres.",$('#nuevaClave'));
            $('#nuevaClave').addClass("error");
            return false;
		}
		else if( !nuevaClave.match(/[a-z]/) ) {
			alert("ERROR: La contraseña debe contener alguna letra minúscula.",$('#nuevaClave'));
            $('#nuevaClave').addClass("error");
            return false;
		}
		else if( !nuevaClave.match(/[A-Z]/) ) {
			alert("ERROR: La contraseña debe contener alguna letra mayúscula.",$('#nuevaClave'));
            $('#nuevaClave').addClass("error");
            return false;
		}
		else if( !nuevaClave.match(/\d/) ) {
			alert("ERROR: La contraseña debe contener algún número.",$('#nuevaClave'));
            $('#nuevaClave').addClass("error");
            return false;
		}
		else if( nuevaClaveRepeticion=='' ) {
			alert("ERROR: Es necesario repetir la contraseña por seguridad.",$('#nuevaClaveRepeticion'));
            $('#nuevaClaveRepeticion').addClass("error");
            return false
		}
		else if( nuevaClave != nuevaClaveRepeticion ) {
			alert("ERROR: Las dos contraseñas no coinciden.<br>Por favor, inténtalo de nuevo.",$('#nuevaClaveRepeticion'));
			$('#nuevaClaveRepeticion').addClass("error");
            return false
		}
		else {
            $('#popupCargando').show();
            return true;
        }
		
	}
	
	</script>

<?php } else { ?>

	<?php if(isset($loginCodigoUsuario) && $loginCodigoUsuario) { ?>

	<div id="popupUsuarios" class="popup" style="display:none"></div>
    <div class="popupContenidoScroll" id="popupUsuariosContenido" style="display:none" >
    	<h2>Usuarios</h2>
        <table class="tablaFormateada">
			<tr><th>Código</th><th>Nombre</th>
            <?php foreach($usuarios as $usuario) { ?>
            <tr><td><?php echo $usuario['Usuario']; ?></td><td><?php echo $usuario['Nombre']; ?></td></tr>
            <?php } ?>
        </table>
        <p><input type="button" name="botonCerrarUsuarios" id="botonCerrarUsuarios" value="Cerrar" class="boton reducido" /></p>
    </div>
    
    <?php } ?>

	<form id="formulario" name="formulario" method="post" action="<?php echo $rutaHtml; ?>/acceso/login.php?<?php if(isset($pantalla) && $pantalla) { echo 'pantalla='.$pantalla; } ?><?php if(isset($parametros) && $parametros) { echo '&parametros='.urlencode($parametros); } ?><?php if($traza) { ?>&traza=si<?php } ?>" autocomplete="off">

    <p>Usuario<br />
    
    <?php if(isset($loginCodigoUsuario) && $loginCodigoUsuario) { ?>
    
    <input name="usuario" type="text" id="usuario" size="10" class="campo" autocomplete="false" style="margin-left:50px"/><img src="<?php echo DIR_IMAGENES; ?>/lupa.png" alt="Buscar" style="margin-bottom:-10px" id="consultarUsuarios" class="clicable"/>
    
	<?php } else { ?>
    
    <select name="usuario" id="usuario" class="campo">
        <option value="">---</option>
        <?php foreach($usuarios as $usuario) { ?><option value="<?php echo $usuario['Usuario']; ?>"><?php echo $usuario['Nombre']; ?></option><?php } ?>
    </select>
    
    <?php } ?>
    
    </p>
    
    <div id="capaEmpresa" style="display:none">
    
        <p>Empresa<br />
        <select name="empresa" id="empresa" class="campo">
        </select>
        </p>
   
		<p>Clave<br />
        <input name="clave" type="password" id="clave" size="10" class="campo clave" autocomplete="new-password"/></p>
        
        <p><input type="button" name="botonEntrar" id="botonEntrar" value="ENTRAR" class="boton" /></p>
        
        <input type="hidden" name="procesar" id="procesar" value=""/>
        
    </div
    
    ></form>
    
    <script>
    
    function validaLogin() {
    
        $('#usuario').removeClass("error");
        $('#empresa').removeClass("error");
        $('#clave').removeClass("error");
    
        if($('#usuario').val()=='') {
            alert("Por favor, selecciona tu nombre de usuario.");
            $('#usuario').addClass("error");
            $('#usuario').focus();
            return false
        }
        else if($('#empresa').val()=='') {
            alert("Por favor, indica la empresa con la que operar.");
            $('#empresa').addClass("error");
            $('#empresa').focus();
            return false
        }
        else if($('#clave').val()=='') {
            alert("Por favor, teclea tu contraseña.");
            $('#clave').addClass("error");
            $('#clave').focus;
            return false
        }
        else {
            $('#popupCargando').show();
            return true;
        }
    
    }
    
    $(document).ready(function() {
	
		<?php if(isset($loginCodigoUsuario) && $loginCodigoUsuario) { ?>
		
		$('#consultarUsuarios').on('click',function(){
			$('#popupUsuarios').show();
			$('#popupUsuariosContenido').show();
		});
		
		$('#botonCerrarUsuarios').on('click',function(){
			$('#popupUsuarios').hide();
			$('#popupUsuariosContenido').hide();
		});
		
		<?php } ?>
    
        $('#usuario').on('change',function(e){
		
			e.preventDefault();
			
			<?php if(isset($loginCodigoUsuario) && $loginCodigoUsuario) { ?>
			var existe=false;
			if ( usuarios.includes($(this).val()) ) existe=true;
			<?php } else { ?>
			var existe=true;
			<?php } ?>
		
            if($("#usuario").val()!='' && existe ) {
                $('#popupCargando').show();
                $.post( "<?php echo $rutaHtml; ?>/contenidos/cargar-empresas.php", { usuario:$("#usuario").val() })
                    .done(function(data) {
                        $('#empresa').html(data);
                        $('#capaEmpresa').show();
                        $('#boton').show();
                        $('#popupCargando').hide();
                    });
            }
            else {
				if(!existe) {
					$(this).val('');
					alert('Ese código de usuario no existe.',$("#usuario"),'error');
				}
                $('#capaEmpresa').hide();
                $('#boton').hide();
            }
			
        });
		
		$('#botonEntrar').on('click',function(){
		
			if(validaLogin()) {
				$('#procesar').val(1);
				$('#popupCargando').show();
				$('#formulario').submit();
			}
		
		});

    });
    
    </script>
    
    <?php if(isset($mensaje) && $mensaje) { ?><p class="error"><strong>Error:</strong> <?php echo $mensaje; ?></p><?php }

}
?>
<script>

$(document).ready(function() {

	<?php if(isset($loginCodigoUsuario) && $loginCodigoUsuario) { ?>
	
	$('#usuario').on('click',function(){
		$('#teclado').show();
		$('#valor').val( $('#usuario').val() );
		$('#valorOculto').val( $('#usuario').val() );
		$('#enter').attr('campoValor','usuario');
		$('#enter').attr('forzarEnter','si');
	});
	
	$('#usuario').focus();
	
	<?php } ?>

	 $('.clave').on("click",function(e) {
        
            $('#teclado').show();
            
            var cadena='';
            for(var i=1;i<=$(this).val().length;i++) cadena=cadena+'*';
            
            //$('#valor').val( $(this).val() );
            $('#valor').val( cadena );
            
            $('#valorOculto').val( $(this).val() );
            $('#enter').attr('campoValor',$(this).attr('id'));
            $('#enter').attr('oculto','si');
        
	});

});

</script>

<?php
include($rutaPhp.$rutaHtml.'/maqueta/abajo.php');
?>