Cuando se están cargando los datos de una venta el usuario (quizás cajero) va registrando ítem tras ítem los productos vendidos y la cantidad vendida.

¿Pero qué sucede si el cliente después de haberse hecho el registro decide que no va a llevar ese producto, quizás porque no tiene suficiente dinero?

Supongamos el caso de un supermercado: mientras se van registrando los productos vendidos y las cantidades vendidas, el cliente decide que no llevará uno de los productos. Normalmente en esos casos se llama al “Supervisor de cajas” o “Jefe del salón de ventas” quien introduce su clave de acceso con la cual se le permite borrar los productos no deseados por el cliente.

¿Pero cómo registramos esa acción en nuestras tablas de ventas?

Una posibilidad es guardar solamente los productos efectivamente vendidos. El problema con esto es que no quedarán registrados los productos que se borraron ¿Y es importante tenerlos registrados? Pues sí, porque eso le permitirá al Gerente o al propietario del supermercado detectar fácilmente y rápidamente todas las ventas donde se borraron productos. Si no tuvieran esa información entonces no podrían saber con cuanta frecuencia se borran productos, cuales son los productos que más se borran, quienes son los cajeros que más problemas tienen, etc.

Operativamente nuestra aplicación de ventas debería funcionar así:

  • Cuando se registra el primer producto vendido se imprime la cabecera de la Factura y los datos de ese primer producto
  • Cada vez que se registra un producto, se imprimen sus datos
  • Cuando se borra un producto, se imprimen sus datos
  • Cuando se cierra la venta, se imprimen los totales, los impuestos, y toda la demás información relevante

Alternativamente, se puede dejar la impresión de la Factura para el final, después de haberse cerrado la venta, pero siempre en ella deberían imprimirse los datos de los productos borrados.

Si una venta se cancela totalmente (quizás porque cuando iba a pagar el cliente se dio cuenta que no tenía dinero consigo), debe quedar registrada esa cancelación.

De esta manera TODO lo que se hizo en la computadora del cajero quedará registrado en nuestras tablas y podremos reconstruir lo que sucedió en ella, segundo a segundo.

Para poder conseguir esto último es requisito que una de las columnas de nuestra tabla de detalles de movimientos de ventas corresponda a la fecha y a la hora en la cual se registró la venta de ese producto.

Artículo relacionado:

El índice del blog Firebird21