| // +----------------------------------------------------------------------+ // // $Id: index.html,v 1.49 2010-07-22 16:55:10 ed Exp $ /** * Da acceso al Usaurio, y logea conexiones logradas y no logradas * Ojo con las del exterior. */ require_once ('funciones.php'); require_once ('config.php'); require_once ('libs/conexion.php'); require_once ('DB.php'); require_once ('revo/conexion.php'); require_once ('revo/Usuario.php'); require_once ('Sesion.php'); require_once ('Pass.php'); require_once 'gestor_divisa/TiposCambio.php'; // si al mero inicio encontramos esta variable, desregistramos if (isset($_SESSION['usuario'])) { Sesion::registra(0); $_SESSION = array(); } if (ATP_GRUPO == 'Consorcio') { $leyenda_agencia = "CMA's Traffic Project"; $img_logo = 'images/cma2.png'; $img_icon = 'images/cma_icon.png'; } else { $leyenda_agencia = "America's Traffic Project"; $img_logo = 'images/logo_def.png'; $img_icon = 'images/mundoaaaico.png'; } //global $ATP_SCHEMA; $db = &$GLOBALS['_ATP_db']; $ATP_SCHEMA = strtoupper($GLOBALS['ATP_SCHEMA']); if (!isset($_POST['ingresa']) or (isset($_SESSION['ingresa']) && $_SESSION['ingresa'] == 1)) { $especial = null; if (ATP_PRODUCCION != true) { if (ATP_PRUEBAS == true) { $especial = " "; } else if (ATP_DEBUG == true) { $especial = " "; } } echo " $ATP_SCHEMA $leyenda_agencia $especial
\"logo\"/
$leyenda_agencia
Usuario:
Contraseña:
"; } if (isset($_POST['ingresa']) && $_POST['ingresa'] == 1) { if (!is_numeric($_POST['usuario'])) { imprimeError('Usuario inválido'); exit; } //Aplicamos una restriccion para que los usuarios con un rango entre 9000 y 10000 (americalogisticsnl) no puedan acceder if ($_POST['usuario'] > '9000' && $_POST['usuario'] <= '10000') { imprimeError('Usuario inválido'); exit; } $usuario = new Usuario; try { $user = $_POST['usuario']; //print_r($_SESSION['usuario']);print_r('oscar');print_r($_POST['usuario']); $contra = $_POST['password']; $todo = $usuario->dame($user); $esquema_nuevo = $todo['nuevo_esquema']; $fecha_cambio = $todo['fecha_ultimo_cambio_pass']; $pas = new Pass($user); $salt = $pas->dameSaltActual(); $alert = $pas->alerta(); if ($esquema_nuevo == 't' && $salt != null) { $vali = $pas->autenticaUsuario($contra); $arr_usu = $usuario->valida($user, $vali, $contra); $contra = $vali; } else { $arr_usu = $usuario->valida($user, $contra, $contra); } } catch (Exception $e) { trigger_error('Error al validar usuario'); } if (!isset($arr_usu)) { session_destroy(); $envio_pass = "
Si no recuerda su contrasena oprima el boton enviar contrasenai
para que se envie al correo registrado



Regresar a la pagina principal
"; $espe = '3000'; $usuario->registraBitacora($user, $contra, 'N'); $estatus = $usuario->verifica_intentos(addslashes($_POST['usuario'])); if ($estatus == -3) { $msn = 'Lleva tres intentos de autenticacion fallidos al quinto fallido su usuario quedara bloqueado
Si tiene dudas comunicarse a Sistemas al siguiente correo ti@aaamerica.com.mx' . '


' . $envio_pass; $espe = '9000'; } else { if ($estatus == 0) { $msn = 'Acceso bloqueado. Excedio el numero maximo de intentos fallidos, Comuniquese a Sistemas al siguiente correo ti@aaamerica.com.mx' . '


' . $envio_pass; $espe = '9000'; } else { $msn = ''; } } echo ' ' . $leyenda_agencia . ' ' . $NOMBREADUANA . '


' . $leyenda_agencia . '
' . $msn . '
Password y/o usuario no validos.
'; exit; } $remoto = $usuario->accesoRemoto(); if (!$remoto) { $msg = 'No está configurado para acceso fuera de la intranet, '; $msg .= 'por favor solicitelo a sistemas. '; $msg .= "($_SERVER[REMOTE_ADDR], $_POST[usuario])"; trigger_error($msg, E_USER_ERROR); exit; } // Validamos si el usuario tiene asignado un ROL y le asignamos los documentos asociados if (defined(ATP_ROLES_CENTRAL) && ATP_ROLES_CENTRAL == true) { $permisos = $usuario->asignaDocumentosISO($_POST['usuario']); if (!$permisos) { $msg = 'Su usuario no cuenta con un ROL asignado
'; $msg .= 'por favor solicitelo a sistemas. '; echo $msg; exit; } } // Actualizamos su acceso $usuario->actualizaAcceso($_POST['usuario']); $_SESSION['usuario'] = $_POST['usuario']; session_destroy();//destruimos sesion iniciada session_start();//iniciamos sesion $_SESSION['usuario'] = $_POST['usuario']; session_regenerate_id(TRUE);//regeneramos el id de la variable de sesion $_SESSION['bodega'] = ($GLOBALS['TIPOADUANA'] == 'TERRESTRE' && $arr_usu['ejecutivo'] == 'B') ? true : false; // Se mantiene la session de la mobile en caso de que haya sido iniciada el dia de hoy if (!empty($arr_usu['ip_mobile']) && $arr_usu['ultimo_acceso_date'] == date('Y-m-d')) { $_SESSION['mobile'] = true; } $esquema_nuevo = ($esquema_nuevo == null || $esquema_nuevo == 'f') ? 'f' : "t"; if (($esquema_nuevo == 't' && $salt == null) || ($alert == -2)) { $condicion = true; } else { $condicion = false; } // para el esquema actual, luego del login registramos en la base Sesion::registra(); if ($condicion == true) { $nom_user = $arr_usu['nombre'] . ' ' . $arr_usu['apellidop'] . ' ' . $arr_usu['apellidom']; $html = ""; $atp = ATP_SCHEMA; $html .= ""; $html .= "
\"Logo



" . _('Bienvenido') . " $nom_user

"; $html .= "\n"; $html .= "
Cambio de Contraseña
Para ingresar es necesario cambiar su contraseña

Contraseña Nueva:








Su contraseña debe de cumplir lo siguiente :

○ Incluir caracteres en mayúscula y minuscula
○ Incluir al menos un número (0-9)
○ Incluir los siguientes caracteres especiales |#$%/()=?[]@*
○ Longitud minima 10.


Esta usando IE sí tiene problemas para cambiar el password se recomienda usar Chrome o Firefox
"; echo $html; } else { if (checa_privilegios() == 1) { //* //* Inicia Avisos Usuarios //* //$test = array(1,4899,9,5427,4660); //if(in_array($_SESSION['usuario'],$test)){ $db =& $GLOBALS['_ATP2_db']; $sqlAvisoVigente = "SELECT * FROM central.avisos WHERE estatus = 'A' AND esquema in ('2','3') AND fecha_publicacion::DATE <= CURRENT_DATE::DATE AND (fecha_vigencia::DATE >= CURRENT_DATE::DATE OR fecha_vigencia::DATE IS NULL) AND id NOT IN( SELECT id_aviso FROM avisos_usuario WHERE usuario = " . $_SESSION['usuario'] . " ) ORDER BY orden, tipo desc, fecha_alta LIMIT 1"; if (DB::isError($rowAvisoVigente = $db->getRow($sqlAvisoVigente, array(), DB_FETCHMODE_ASSOC))) { trigger_error(_('Error al consultar los Vigentes.'), E_USER_WARNING); } $sqlNombreUsuario = "SELECT nombre, apellidop, apellidom FROM usuario WHERE cveusuario = $_SESSION[usuario]"; if (DB::isError($rowNombreUsuario = $db->getRow($sqlNombreUsuario, array(), DB_FETCHMODE_ASSOC))) { trigger_error(_('Error al consultar el nombre del usuario.'), E_USER_WARNING); } if (isset($rowAvisoVigente)) { if ($rowAvisoVigente['tipo'] == 2) { $aceptar = "y aceptar "; $input = "

Acepto los términos.

"; $boton = "Salir del sistema"; } else { $aceptar = ""; $input = ""; $boton = "Estoy enterado. Continuar"; } echo "

$rowNombreUsuario[nombre] $rowNombreUsuario[apellidop] $rowNombreUsuario[apellidom]

Antes de continuar sírvase a leer $aceptar el siguiente documento.

$rowAvisoVigente[aviso]

$input
$boton
"; } //} genera_menu(0, 1, true); // Creamos una bitacora de acceso para // ver el comportamiento $usuario->registraBitacora($user, $contra, 'S'); //$datos = pg_fetch_row($query,0); $refs_sin_tracking = ''; $_SESSION['relacion_cliente'] = $arr_usu['relacion_cliente']; //$Rfcs = $db->getCol("select id from cliente where ejecutivo_trafico='$_SESSION[usuario]'"); if (ATP_SCHEMA != 'logistics') { $Rfcs = $db->getCol("SELECT id_cliente FROM clientes_ejecutivos WHERE id_ejecutivo='{$_SESSION['usuario']}'"); } //$usuarios_todas = array(0, 1); //aqui se ponen los usuarios que pueden ver todas las referencias $usuarios_todas = array(); checa_privilegios('ver_tracking_completo.php') ? array_push($usuarios_todas, $_SESSION['usuario']) : ""; /* * Se cambia el switch por el permiso ver_tracking_completo.php * switch ($GLOBALS['ADUANA']) { case 240: array_push($usuarios_todas, 302, 324, 328, 2911); break; case 430: array_push($usuarios_todas, 205); break; case 510: array_push($usuarios_todas, 2894); break; case 160: array_push($usuarios_todas, 25); break; } */ // meteré el arreglo usuarios_todas en la sesión para poder usarlo en referencias_sin_tracking $_SESSION['usuarios_todas'] = $usuarios_todas; if ($GLOBALS['VERSION_DOCS'] == 2) { if (sizeOf($Rfcs) > 0 or in_array($_SESSION['usuario'], $usuarios_todas)) { // si el usuario tiene clientes o si es de los "masters" $rfcs = ''; foreach ($Rfcs as $indice => $rfc) { $Rfcs[$indice] = "'$rfc'"; } $rfcs = implode(", ", $Rfcs); $and = (!in_array($_SESSION['usuario'], $usuarios_todas)) ? "and t.cliente in($rfcs)" : ""; $virtual = ""; if ($GLOBALS['TIPOADUANA'] == 'TERRESTRE') { $virtual = "t.virtual = 'f' and "; } if (in_array($_SESSION['usuario'], $usuarios_todas)) { // si es de los "masters", se le muestra todititita... la lista... $sql = "SELECT t.cliente, c.nombre_cliente, COUNT(DISTINCT t.referencia) "; $sql .= "FROM trafico t, cliente c "; $sql .= "WHERE t.cliente=c.id AND "; $sql .= "fecha_liberacion_mercancia IS NULL AND t.status_trafico >= 100 AND "; $sql .= "t.tipo_operacion IN ('I', 'E') AND "; $sql .= "$virtual "; $sql .= "t.referencia NOT IN (select referencia "; $sql .= "FROM documentos_2 "; $sql .= "WHERE fecha_modificacion::DATE = CURRENT_DATE) $and "; $sql .= "GROUP BY 1, 2 ORDER BY 3 DESC "; } else { // a los mortales cualesquiera se les muestra sólo los suyos $sql = "SELECT t.cliente, c.nombre_cliente, COUNT(DISTINCT t.referencia) "; $sql .= "FROM trafico t JOIN cliente c ON (t.cliente = c.id) "; $sql .= "JOIN clientes_ejecutivos ce ON (ce.id_cliente = c.id) "; $sql .= "JOIN usuario u ON (u.cveusuario = ce.id_ejecutivo) "; $sql .= "WHERE u.cveusuario = {$_SESSION['usuario']} AND "; $sql .= "fecha_liberacion_mercancia IS NULL AND t.status_trafico >= 100 AND "; $sql .= "t.tipo_operacion = ce.tipo_ejecutivo AND "; $sql .= "$virtual "; $sql .= "t.referencia NOT IN (SELECT referencia FROM documentos_2 WHERE fecha_modificacion::date = CURRENT_DATE) $and "; $sql .= "GROUP BY 1, 2 ORDER BY 3 DESC"; } $rst = $db->getAll($sql); if (DB::isError($rst)) { trigger_error("Error al consultar referencias pendientes de tracking", E_USER_WARNING); echo $db->errorNative(); return false; } if (sizeOf($rst) > 0) { $refs_sin_tracking = "
Referencias sin tracking:
"; $tabla = " "; foreach ($rst as $indice => $arreglo) { $tabla .= " "; } $tabla .= "
$arreglo[nombre_cliente] $arreglo[count]
"; $refs_sin_tracking .= $tabla . "
"; } } } $nombre = $arr_usu['nombre'] . ' ' . $arr_usu['apellidop'] . ' ' . $arr_usu['apellidom']; if ($fecha_cambio != null) { $atp = ATP_SCHEMA; $html .= ""; $notificado = $pas->fechaAvisoHoy(); $notificado = ($notificado == null) ? 'No' : "Si"; $html .= ""; $html .= ""; $html .= "
"; $html .= ""; $html .= ""; $html .= ""; $html .= ""; } echo $html; $tiposCambio = new TiposCambio(); $tipoFacturacion = $tiposCambio->buscarFacturacion(date('Y-m-d')); $tipoHoyImpuesto = $tiposCambio->buscarSolicitudImpuestos(date('Y-m-d')); $tipoCambio = "

TIPO DE CAMBIO USD

$tipoFacturacion $tipoHoyImpuesto



"; echo "







$refs_sin_tracking

Bienvenido $nombre

$tipoCambio "; } } } ?>