Ver Mensaje Individual
  #9  
Antiguo 09-06-2016
Avatar de darkerbyte
darkerbyte darkerbyte is offline
Miembro
 
Registrado: feb 2005
Posts: 196
Reputación: 20
darkerbyte Va por buen camino
Cita:
Empezado por bitbow Ver Mensaje
Solo por molestar un poco, de casualidad tu cliente maneja multiples puntos de venta (varios equipos con su soft atacando la misma base de datos), como gestionas esto?

Veo que en tus inserts no manejas un identificador para el punto de venta o terminal.

Saludos.
Si maneja multiples terminales, incluso manejamos sucursales vía internet.

No puse todos los campos de la tabla en la consulta que escribí arriba a fin simplificar mi ejemplo. La tabla de Ventas tiene como llave primaria (idSucursal, idVenta) ambas de tipo entero con la que identifico en que sucursal se realizó la venta. Claro, esta misma llave esta en la tabla ventas_det la cual tiene como llave primaria (idSucursal, idVenta, idProducto) siendo el ultimo de tipo string que es una llave foranea a la tabla de productos. La tabla de Ventas también tiene una columna llamada "idVendedor" con la que identifico que vendedor hizo la venta. No llevo un control por máquina ya que los vendedores pueden abrir multiples instancias del programa en diferentes computadoras usando su mismo id de usuario y estas ventas al hacerse el corte se filtran en base al vendedor que las realizó.

Para registrar la venta lo que hago es obtener el primero el siguiente folio y después genero la consulta (como la que puse arriba, mas menos productos).
Si ocurre un error (que se intentaran registrar dos ventas en el mismo instante y por ende el folio de la venta que llegó posterior está repetido) el sistema manda un rollback de la transaccion que fue rechazada, actualizamos el folio e intentamos registrarla nuevamente.

Estoy haciendo algo mal? quiza me pueden sugerir una mejor manera de hacer las cosas.

De verdad muchas gracias por sus comentarios
Responder Con Cita