• Lunes 18 de Noviembre de 2024, 03:31

Autor Tema:  Sistema Caja (ejemplo Automercados)  (Leído 1444 veces)

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Sistema Caja (ejemplo Automercados)
« en: Miércoles 18 de Enero de 2006, 17:30 »
0
Hi all

Tengo una curiosidad sobre los sistemas de Caja que se ven en cualquier tienda, automercados etc..

Por ejemplo en un Automercado cuando se realizan compras, el cajero(a) va apuntando todo con la pistalo lazer de codigo de barras y cada producto se va agregando a la vista en una Grilla en el Form.

Metiendonos a niveles de BDs, ¿qué proceso suecede ahi? es decir, acaso el sistema toma cada producto de la Tabla "Productos" de la Bd lo elimina de la tabla y lo agrega en otra tabla llamada por ejemplo "Ventas"??

Pienso que lo que aparece en la regilla, al momento de que el cliente va cancelando sus productos, podria ser una especie de Tabla Virtual temporal en Memoria, y que luego eso el sistema lo guarda en la Tabla "Ventas" o "Salida" al cancelarse todo.

Lo indico asi porque si la rejilla mostrase informacion de la tabla "Ventas" entonces al cargar el Form "Caja" apareceria en la Rejilla las ventas ya procesadas de otros clientes, si se entiende lo que digo no? porque nunca he hecho algo asi y no sé bien como se realiza un sistema de Caja con respecto a la BD.

No veo bien como visualizar esto, tal vez en la Rejilla de la ventana "Caja" podria aparecer lo seleccionado de la Tabla "Productos" y que al cancelar se guarde en una tabla "Ventas"... obviamente de la Tabla "Productos" se restan (eliminan) los registros seleccionados que ahora seran guardados o apareceran en la tabla "Ventas".

Pero con los controles de Rejilla sea DBGrid o otros, solo sé conectarlos a Tablas ya existentes con archivos, no sabria como mostrar en ella los productos seleccionados, ya que si la conecto a la tabla "Productos" apareceria todos los productos de la BD y no solo los seleccionadospor el cliente, y si la conecto a la tabla "Ventas" saldria en ella todas las ventas del dia o de la semana o el mes, por eso decia lo de la Tabla temporal que seria la que se veria en la Rejilla, lo seleccionado por el Cliente pasaria de la Tabla "Productos" a la tabla temporal para visualizarse en la Rejilla, y al cancelar pasaria a la tabla "Ventas", la tabla temporal se borraria y quedaria vacia para pasarle otros registros de la tabla Productos, con respecto a las compras de otro cliente, como una tabla puente entre "Productos" y "Ventas", no sé si esta bien eso asi.

Bueno espero no haberlos enrredado con esto, trate de explicar estas insertidumbres que tengo sobre estos tipos de sistemas, perdon por lo largo del post.

Saludos a todos los Developer de la comunidad  :hola:
Si esto es Leído por accidente, induzca al vomito

Jose Arriagada

  • Miembro MUY activo
  • ***
  • Mensajes: 373
    • Ver Perfil
Re: Sistema Caja (ejemplo Automercados)
« Respuesta #1 en: Miércoles 18 de Enero de 2006, 22:09 »
0
Estimada UserCode

Antes de entrar de lleno en el tema, te felicito por tu avatar. Mas sugerente imposible.

Bueno, a lo nuestro.

Vamos a partir de cero.

Debe existir una tabla de productos, de la forma:
* Codigo Producto
* Descripcion
* Valor
* Stock Actual
* Stock Minimo

Por otra parte, debe existir una tabla de ventas, de la forma:
* Numero Caja
* Numero Boleta
* Fecha Boleta
* Total Boleta

Y asociada a esta tabla, la tabla de detalle de la venta, de la forma:
* Numero Caja
* Numero Boleta
* Codigo Producto
* Cantidad Producto
* Valor Producto

Entonces, ahora el proceso de venta:

Al iniciar una venta, en la pantalla la grilla de productos se encuentra en cero. Es decir, no existe nada.

A medida que se va pasando la pistola laser, que lee el codigo, se busca en la tabla de productos, y si se encuentra, muestra el codigo en la grilla, la descripcion y el valor del producto.
El cursor se posiciona en la celda, donde se debe ingresar la cantidad del producto, lo que automaticamente genera que en la columna de sub-total, aparezca el valor de multiplicar el precio por la cantidad, y el cursor se queda esperando en la fila siguiente, por otro producto.

Cuando se termina de pasar todos los producto, se presiona el boton grabar, y es en ese momento que se graban los datos en la tabla de ventas y en la de detalle de ventas, y se imprime la boleta.

Este es el procedimiento mas facil.

Si deseas agregarle funcionalidades, puedes hacer que:
- Elimine un producto, que el cliente no desea llevar.
- Digitar el codigo del producto
- Grabar los productos mientras se registran, para protegerse en caso de caida del sistema o apagon de energia. Con lo que seria posible, recuperar lo ya pasado por caja, y no tener que pasar todos los productos de nuevo.

Espero haberte dado una luz un poco mas clara referente a la forma de operar de una caja.

Ahora, si vemos la parte de construccion de la aplicacion, obviamente no puedes hacer referencias directas a tablas, dado que te traera todos los registros de esta.

Es aqui, donde entra a jugar las famosas sentencias SQL.

Dependiendo de la base de datos sobre la cual tengas tus datos, sera posibles realizar llamadas SQL a tus tablas, para traer un registro en particular o un set de registros dada una condicion determinada.

Ahora bien, la gracia esta, en usar el "ingenio" para resolver estos problemas, y conocer todas las propiedades, eventos y funciones que existen en Visual, sus controles y trucos posibles para resolver tu problema.

Por otra parte, antes de ponerte a diseñar tu aplicacion, debes realizar un "modelo" de lo que deseas hacer, lo que derivara en tu esquema de tablas necesarias para registrar tus eventos.

La programacion, dependera de tu nivel de conocimientos y la facilidad de los datos, dependera de tu gestor de base de datos.

Espero que tengas suerte, y animo, que no hay nada que no se pueda resolver con un poco de ingenio...

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Sistema Caja (ejemplo Automercados)
« Respuesta #2 en: Miércoles 18 de Enero de 2006, 22:41 »
0
compadre lo saludo

Definitivamente bien detallado, explicado mejor imposible, tienes mucha experiencia en sistemas de caja, algo en lo que apenas me estoy metiendo a pesar de cada vez que voy al supermercado siempre me quedo mirando la pantalla sobre los procesos que todo esos sistemas implican y tan bien que se pueden vender, porque quien no tiene un negocio (bueno yo no hehehe).

Sinceramente voy a poner eso en un documentico Word y releer toda esta info que me has dado, no esperaba lo de los campos de algunas tablas, las primordiales, pero en verdad que si me faltaban unos campos por lo que veo, y veo tambien que debo trabajarle a la rejilla para que muestre la ifnormacion como debe ser.

El sistema a donde siempre voy, esta hecho en VFoxPro lo sé porque casualidad que estuve cuando el desarrollador estaba ahi con su laptop haciendole unos ajustes, bueno en mi caso seria en VB, y en verdad que si, me interesa mucho conocer de fondo este tipo de sistemas de caja, porque lo que he hecho ha sido sobre manejo de empleados, paquetes y cosas de empresas de proteccion de valores, al menos hasta ahora, y ya es hora de incursionarme en otro tipo de sistemitas de distintos procesos.

Lo de eliminar si lo sé bien ya que en ocasiones he visto como algunos clientes no se llevan algo o por error pasaron el laser mas de una vez a un producto y deben llamar al supervisor para que ingrese una clave y tener acceso a la modificacion si cierto.

Jose te agradezco mucho toda la informacion que me haz dado porque ahorita estoy solo en esto, conozco a alguien pero esta full, en lo que se refiere a buscar la opinion de alguien, y al menos ya puedo arrancar con esto.

PD: perdon por alargarme siempre tanto, y gracias por lo del avatar, las rellenitas son mi pasion, no crean que soy ella ¬¬ mosca hehe.

 :comp:
Si esto es Leído por accidente, induzca al vomito