PDA

Ver la Versión Completa : Facturacion


Cesar Junior
17-07-2012, 17:12:23
Buenos dias amigos, despues de mucho tiempo vulevo aqui a buscar ayuda, E creado un sistema de facturación para una empresa en la qual trabajo, en lo general el sistema se porta bien solamente necesito de algunas validaciones, en especial una de ellas que los explico ahora.
En la parte de ventas tengo un DBgrid donde son insertados los productos que seran vendidos (facturados) y al realizar esse processo se descuenta el mismo producto del BD Stock (ACCESS) salvo la venta y perfectamente funciona!!. Ahora el problema es: igual si no salvo la venta al insertar el producto me descuenta del BD,si cierro el programa sin salvar me descuenta del BD, qualquie problema que venga a ocurrir con la maquina (travar-se o algo así) descuenta el producto del BD, se que es algo sencillo pero como estoy con tam poco tiempo no estoy podiendo solucionar, la idea es que no se descuente el producto del BD si la venta no esta salva. Solamente descontar la venta del Banco de Dato si la venta fue salva. Gracias amigos....

newtron
17-07-2012, 18:00:59
Hola.

El tema de los acumulados como las existencias en las bases de datos de escritorio es peliagudo porque lo suyo es manejarlas desde los triggers de una base de datos más seria.

¿Cuando descuentas las existencias? ¿Cuando se introduce el artículo y la cantidad en el grid?

Casimiro Notevi
17-07-2012, 18:01:27
Recuerda poner títulos descriptivos a tus preguntas, "Facturacion" no es un título que describa el problema que quieres resolver. Gracias ;)

En cuanto a tu pregunta, es casi imposible ayudarte si no explicas mucho más lo que haces, el cómo, dónde, etc. aportas código fuente, etc.

Neftali [Germán.Estévez]
17-07-2012, 18:24:53
En la parte de ventas tengo un DBgrid donde son insertados los productos que seran vendidos (facturados) y al realizar esse processo se descuenta el mismo producto del BD Stock (ACCESS) salvo la venta y perfectamente funciona!!. Ahora el problema es: igual si no salvo la venta al insertar el producto me descuenta del BD,si cierro el programa sin salvar me descuenta del BD, qualquie problema que venga a ocurrir con la maquina (travar-se o algo así) descuenta el producto del BD, se que es algo sencillo pero como estoy con tam poco tiempo no estoy podiendo solucionar, la idea es que no se descuente el producto del BD si la venta no esta salva. Solamente descontar la venta del Banco de Dato si la venta fue salva.

Para estas operaciones, normalmente se usan 2 soluciones, sino he entendido mal lo que necesitas:

(1) Transacciones; Realizar las operaciones utilizando transacciones de forma que todas las operaciones de la transacción se hacen como una única operación, o todas o ninguna. Esto tiene sentido cuando las operaciones se realizan en un corto espacio de tiempo. Creo que este no es tu caso, pues entiendo que el proceso de venta puede tardar un rato.

(2) ClientDataset, MemoryDataset o similar. Significa que realizar esa "venta" en memoria, no directamente sobre la Base de Datos. Al finalizar la venta es cuando (utilizando una transacción) se realizan TODAS las operaciones de golpe en la Base de Datos; La venta en sí y los movimientos sobre el stock. Hay varios componentes que te permiten realizar algo así; El TClientDataset que viene con Delphi, las RxLib traen uno llamado MemoryTable, y algunos otros que puedes encontrar sueltos. Es posible que se pueda realizar también utilizando una tabla temporal en la misma Base de Datos, aunque la idea de funcionamiento al final siempre es la misma. Realizar las operaciones en un "lugar intermedio" y luego al aceptar la venta, grabar todo en un sólo paso.

Un saludo.