FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Deshacer proceso de facturacion
Hola a todos, espero que Dios me los bendiga mucho.....
les comento que estoy realizando un programa de gestion educativa en delphi 2009 con mysql.... ya esta casi terminado, tengo una duda..... tengo un modulo de facturacion que funciona bien, lo que quiero saber es, si la persona responsable de realizar el cobro, por alguna razon comete un error a la hora de realizar un proceso, por ejemplo: si un cliente va a pagar 500 pesos, y el cajero sin querer coloca 1000 pesos, como se podria deshacer ese proceso, y que los cambios que se realizaron en las tablas vuelvan a estar como antes de haber guardado el proceso..... espero haberme explicado bien.....agradeciendo de antemano cualquier ayuda que me puedan brindar. |
#2
|
||||
|
||||
Con translaciones. Rollback deshace todos los cambios realizados desde que se inició esta. Las translaciones en MySql solo están disponibles con el motor inodb
__________________
PepeLolo El hombre el único virus que mide más de unas cuantas micras |
#3
|
||||
|
||||
En cuanto a programación ya te pusieron una forma, pero creo que más bien te refieres a deshacer una transacción (OJO, no hablo del motor de BD). Lo cual administrativamente es incorrecto y no debe permitirlo tu sistema. Una vez que se finalice cualquier transacción ya no debe haber forma de borrarla. Tienes que hacer una transacción adicional que corrija el error, pero obviamente, esta última operación debe realizarla un usuario diferente (con mayores privilegios) que el usuario original. De manera que al analizar las transacciones en esa caja al terminar el día se puede ver que en efecto un error y que fue corregido por x usuario. Si lo haces como estás pensando no quedaría rastro de error y sería peligroso ya que cualquiera podría "equivocarse" a propósito para realizar algún mal manejo. Y mas hablando de facturación ya que folio tomado debe ser folio utilizado.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#4
|
|||
|
|||
Hola AzidRain tienes mucha razon,,,sin quitarle merito a pepelolo al cual tambien le agradezco,,,, pero me llamo la antencion lo que comentaste AzidRain, he visto en los supermercados que cuando la cajera comete un error o un cliente desea devolver un producto realmente la que realiza ese proceso es la supervisora la cual tiene una llave para cancelar dicho producto......ahora, en mi caso como lo haria, ya que en el modulo de facturacion intervienen 3 tablas: una que lleva la carga de los meses a pagar y donde se hacen los pagos, la otra lleva el acumulativo etc....entonces tendria que actualizar cada tabla y borrar el recibo y/o factura que se genero....
Última edición por donpedro fecha: 28-05-2013 a las 03:01:42. |
#5
|
||||
|
||||
Cita:
__________________
PepeLolo El hombre el único virus que mide más de unas cuantas micras |
#6
|
||||
|
||||
Y lo "normal" es que el ticket no haya sido terminado y grabado. Esto sucede mientras siguen adicionando items a la nota.
__________________
Ya tengo Firma! |
#7
|
||||
|
||||
Haciendo la analogía. El "ticket" de compra es en realidad una transacción. De hecho el sistema operativo de POS de IBM (que es el que conozco bien) maneja cada transacción como única y genera el ticket a partir de ella. Las operaciones posibles dentro de la transacción son:
* Devolución de producto (cliente ya no lo quiere, cajero marcó doble, no era el artículo,etc.) : El sistema hace una venta negativa en al misma transacción (con llave de supervisor) * Cambio de precio (precio mal puesto, descuento por daño, etc.): El sistema registra la venta con el precio distinto pero guarda en la transacción el precio original (con llave) * Abortar la transacción (no le alcanzo el dinero, no pasó su tarjeta, etc.): Aquí si pasa lo mismo que al hacer un rollback. Solo que se requiere llave de supervisor. Al cerrar la cuenta, que normalmente es cuando se ingresa el total pagado y la forma de pago del cliente la transacción hace commit y queda todo registrado, normalmente es en este momento cuando se debe abrir el cajón de dinero, no antes. Llegado a este punto ya no hay forma de borrar nada ni cambiar nada. Cualquier ajuste se hace en otra transacción, por ejemplo si el cliente ya no quiere un artículo tiene que pedir una devolución que se realiza en otra transacción especial para ello y normalmente en otra caja destinada a ello. Si le cobraron de más o estaba mal el precio, se hace lo mismo: primero se hace una devolución y luego se hace la venta con los precios correctos. En todos los casos las transacciones no pueden borrarse y solo pueden corregirse mediante otra transacción. Hacerlo de otra forma se puede pero administrativamente no es lo mejor y se pierde no solo el control de los fondos sino de los artículos. Otra cosa. Normalmente los tickets no son facturas, sino que se guardan como notas o simples tickets. Si el cliente quiere factura simplemente se digita el ticket y la factura se genera a partir de él.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
#8
|
|||
|
|||
Aqui les cargo la imagen del modulo de facturacion que tiene mi sistema.
en ese modulo se cargan todos los meses, y cuando se va pagando el sistema va restando el monto pagado con los cargos. Lo que hice fue es que al momento de guardar salga un mensaje donde el cajero debe confirmar con el cliente el pago que el esta realizando y si es correcto hacer clic en si para guardar de lo contrario en no, como se muestra en la siguiente imagen. ahora en caso de que se cometa un error,, me recomiendan crear un modulo donde solo el administrador tenga acceso, y donde se puedan modificar las tablas que intervienen en dicho proceso de facturacion?????????? |
#9
|
|||
|
|||
Hola donpedro...
También desarrollo software para instituciones educativas y también me he encontrado con el mismo problema. Lo que yo hago se llama "Reversa de Operaciones" y es simplemente generar el mismo movimiento que generó la cobranza pero invertido en todas las tablas que se ven afectadas. Con esto se logra que ante una inspeccción quede reflejado: a) el movimiento de la cobranza b) el asiento contable que la refleja c) la "reversa" de la cobranza d) el asiento contable que refleja la reversa e) la nueva cobranza cargada correctamente. f) el asiento contable que refleja la nueva cobranza . . . además deberías actualizar las cuentas corrientes, movimientos y los saldos de las familias/alumnos/clientes... Esto es para que te sirva de idea, ya que depende de cómo tengas estructurado tu sistema. Te mando un cordial saludo Fita
__________________
No te vayas sin irte |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Deshacer Post sin transacciones | miquellg | SQL | 6 | 29-09-2006 00:23:37 |
Deshacer/hacer ilimitado | owl | Varios | 3 | 19-05-2006 14:57:47 |
deshacer truncate | Novás | MySQL | 3 | 19-08-2004 11:42:39 |
Deshacer selección en DBComboBox | javiermorales | OOP | 2 | 07-05-2004 19:52:06 |
Crear un deshacer | Zopi | API de Windows | 2 | 13-06-2003 17:53:24 |
|