App-Tpv: General
La nueva aplicación de TPV de Quartup sustituirá a una aplicación desarrollada en cobol hace muchos años, en modo texto, y que funciona solo con teclado. Esta aplicación está operativa en las 200 tiendas que tiene la empresa Mister Minit por España y Portugal, y que ofrece servicios de duplicado de llaves y reparaciones de calzado.
La aplicación nueva de TPV conectará con Quartup a través de la API2, y seguirá los procedimientos explicados en este documento.
LocalStorage.
En el ordenador del TPV necesitamos que se pueda registrar el ID de la tienda en la que trabajará ese TPV, para que todos los procesos de la aplicación queden siempre ligados con esa tienda y ninguna otra, y esa información sea alterable solamente por los administradores del sistema. Una manera fácil de conseguir esto sería que el navegador tuviera en el localStorage una variable con el ID del TPV configurado. Pero esta opción carece de la seguridad necesaria para este tipo de configuraciones, ya que los usuarios “normales” podría toquetear la configuración del navegador, sabiendo o no sabiendo, y alterarla fácilmente. Por tanto, lo recomendable es que se pueda registrar (sea en el ordenador, o sea en el navegador) ese ID de forma segura, e inaccesible para usuarios que no sean administradores del sistema. En lo que sigue, asumimos que disponemos de este ID en el programa, y lo llamaremos $TPV_postie_id.
A. Login
El arranque de la aplicación de TPV seguirá los siguientes pasos:
- Pedir login y passsword
- Validar en Quartup el login y password que, si es correcto, abrirá una sesión en Quartup
- Obtener de Quartup el identificador de usuario de la sesión abierta, y lo guardamos en una variable de interna:
- $TPV_num_usuario = Qconfig::get(‘quupusua’,‘num_usuario’)
- (como veremos más adelante, es posible cambiar de usuario en varios puntos de la aplicación una vez abierta la sesión, en cuyo caso hemos de guardar el nuevo usuario en curso en la variable anterior para tenerla siempre actualizada)
- Leer la tabla “posusu” (usuarios accesibles para TPV) con las condiciones:
- num_usuario = $TPV_num_usuario
- posusu_sw_active = 1
- Si no existe registro, se retornará “usuario no autorizado para TPV”
- Si existe registro, guardaremos en una variable interna el idioma del usuario:
- $TPV_cod_idioma = posusu.cod_idioma
- Si el usuario no tiene activado el indicador “posusu_sw_multitienda” a 1, entonces hemos de leer la tabla “posusutie” (usuarios/tiendas accesibles) con las condiciones:
- num_usuario = $TPV_num_usuario
- postie_id = $TPV_postie_id (ID de la tienda del LocalStorage)
- posusutie_sw_active = 1
- Si no hay registros, retornar “usuario no autorizado en la tienda”
- Si el usuario sí tiene activado el indicador “posusu_sw_multitienda” a 1, entonces no necesitamos leer el "posusutie” por tener acceso a todas las tiendas posibles
- A continuación hemos de leer el registro maestro de la tienda de la tabla “postie” con la condición
- postie_id = $TPV_postie_id
- postie_sw_active = 1
- Si no hay registro, retornaremos “tienda no autorizada”
- Si hay registro, guardaremos el registro entero para usos posteriores:
- $TPV_aPostie = $aPostie
- Registramos en la tabla “posusumov” el movimiento de entrada del usuario en la tienda en curso
- Se abrirá el desktop de la aplicación
B. Desktop.
Mostramos una copia de la pantalla que tiene actualmente el cliente:

En la nueva aplicación hay que montar un entorno de trabajo lo más parecido posible a la aplicación actual, porque tenemos unos 200 usuarios actualmente, y queremos que la formación y la transición sea lo menos “traumática” posible. Lógicamente, no necesitamos montar unas pantallas “calcadas” a las actuales, pero sí que hay que mantener los textos y ubicaciones actuales (en la medida de lo posible), para facilitar la transición entre aplicaciones. También se debería conservar, en la medida de lo posible, las teclas de función claves habituales de ciertas operaciones, principalmente las que se usan en las entradas de datos, ya que los usuarios actuales están muy habituados a ellas. Los literales de toda la aplicación se deben almacenar de manera que sean traducibles por algún sistema lo más automático posible. A pesar de que Quartup podría gestionar las traducciones de todos los literales, vemos más eficiente ignorar esta parte de Quartup, y usar un sistema nativo del entorno de desarrollo de la nueva aplicación. Actualmente esta aplicación se usa en España y en Portugal, por lo que tenemos usuarios de los idiomas ES y PT.
C. Entradas de Usuarios.
Actualmente lo primero que hace el operario al arrancar (aunque no es obligatorio) es identificar que ha “entrado” en el TPV. Esto lo efectúan a través de la opción de “Entradas de usuarios”:


En esta pantalla hay que pedir el identificador de usuario y el password. Siempre se pedirán las dos credenciales, aunque el usuario ya se hubiera identificado en otra parte del programa. Una vez validado, se debe registrar en la tabla “posusumov” el movimiento de entrada del usuario en la tienda en curso. Esta grabación dará error en caso de que ya exista una entrada del mismo usuario y no existiera una salida posterior.
Resoluciones de Pantallas de TPVs
Las pantallas actuales de los TPVs de las tiendas, son de dos tipos:
- pantallas 4/3
- 1280 x 1024
- pantallas 16/9
- 1600 x 900