Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Punto de Venta

Estas en el tema de Punto de Venta en el foro de Mysql en Foros del Web. Buen dia: Solicito su apoyo ya que tengo el siguiente problema: Actualmente trabajo con una base de datos en la cual en la tabla Facturacion ...
  #1 (permalink)  
Antiguo 03/04/2010, 14:11
 
Fecha de Ingreso: abril-2010
Mensajes: 1
Antigüedad: 14 años, 8 meses
Puntos: 0
Información Punto de Venta

Buen dia:

Solicito su apoyo ya que tengo el siguiente problema: Actualmente trabajo con una base de datos en la cual en la tabla Facturacion se guarda el encabezado de cada ticket generado por caja1 y en otra el detalle. Ahora necesito habilitar una caja2 que es otra maquina y tambien guardar los tickets en la misma tabla pero cada una con su propio consecutivo, eh aqui donde recide mi problema, ya que siempre habrá dos folios iguales pero de diferente caja y no me permite guardar dos registros iguales puesto que el ID es una clave primaria.

No se como hacer esto si debo agregar una clave primaria distinta al numero de ticket o que debo hacer.

Muchas gracias por ayudarme.......... lo necesito bastante!
  #2 (permalink)  
Antiguo 04/04/2010, 07:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Punto de Venta

En realidad, para poder gestionar más de un punto de venta, lo que debes hacer es replantear un poco el modelo de datos, aplicando la descripción de la entidad:
"Una factura pertenece a un cliente, se emite en un punto de venta, posee fecha, número consecutivo para cada punto de ventas, y un importe total."
Esto significa dos cosas:
1) La clave primaria está compuesta por el número de punto de venta y el número de factura.
2) El número de una factura es consecutivo e incremental pero no es autoincremental, ya que de serlo no habría valores consecutivos en los mismos puntos de venta.
Entonces, la solución viene por tres partes:
- Si ya tienes facturas emitidas, hay que hacer una migración de datos, porque los modelos son incompatibles.
- La numeración consecutiva de las facturas no puede manejarse por un campo definido como auto_increment, sino que posiblemente se deba manejar en la aplicación, o bien con una tabla accesoria, la cual conserve los números máximos de factura para cada punto de venta (Oracle, por ejemplo, posee objetos específicos -secuencias- que no dependen de las tablas para esto).
- En la tabla Factura, deberás definir ambos campos (puntoDeVenta y NumeroFactura), como PK, y por consecuencia, también deberás hacerlo en la tabla que conserve el detalle de la factura, ya que la restricción de clave foránea exige que una FK debe apuntar a toda la PK y no a una parte de ella, y como la PK de factura va a cambiar, también debe cambiar la FK. Una segunda consecuencia es que esto implica es que la migración de datos afectará todas las tablas que usen como FK la PK de Factura.

¿Se entiende bien la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: cajas, punto, ticket, ventas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:27.