Trigger Actualizacion


([N3] CENTRAL) #1

Amigos:
Estoy confundido, Tengo una tabla maestra y otra submaestra de líneas. En la tabla de líneas se incluyen productos que al grabar rebajan inventario. Su stock disminuye correctamente. Esto es con una actualización a una tabla de artículos. Todo funciona correctamente.

Sin embargo al eliminar el documento con su tabla submaestra y maestra en vez de devolver el stock lo sigue disminuyendo. No hace la reversa.

Simplificando, si un producto tengo stock 100, luego vendo 2 queda en 98. Todo bien hasta ahí. Luego elimino ese documento y en vez de volver a 100 me queda en 96.

Tengo un proceso de actualización para rebajar el inventario cuando venden que funciona correctamente en la tabla de líneas de boleta de venta. Y tengo otro proceso que elimina las líneas submaestras antes de eliminar la ficha principal.

Que me estará faltando. No he podido resolver el problema.


([N4] Infortic) #2

Hola.

¿El tipo de los campos implicados es correcto (signo, decimales, …) ?

Tampoco entiendo muy bien el funcionamiento, ¿es un trigger, una actualización o un proceso?, porque nombras las tres cosas.


([N3] CENTRAL) #3

Gracias por contestarme.
Disculpa la demora en responder.

Pero realmente estoy confundido.

Que me recomiendas?

To tenia una tabla de artículos con un campo numérico stock que pretendía modificarlo con una actualización. Al vender rebaja la cantidad y al ingresar mercadería lo suma. Eso estaba bien. Lo hice con un proceso. Funcionaba perfecto. El proceso en la venta tenia una formula que restaba lo que decía la línea de venta.

El problema es que tengo el botón eliminar controlado en la venta. Y esto en vez de reversar el movimiento lo vuelve a descontar.

Espero haberme explicado bien.

Quizas debería hacerlo de otra forma. Que me recomiendas?


([N3] blavan) #4

Hola, tal como lo comentas está mezclando actualizacion y proceso


([N4] Infortic) #5

Hola CENTRAL, necesitamos más información.

Sigo sin saber cómo lo estás haciendo, si es código en un manejador que descuenta, si es una actualización en una tabla, si es código en un trigger…

Lo normal para hacer lo que comentas es:

En las líneas de venta se pone un objeto de tipo actualización, donde el campo enlazado es la tabla de artículos y un componente de actualización, para modificar el campo STOCK modo acumular y fórmula -#CANTIDAD

En las lineas de compra lo mismo con fórmula #CANTIDAD

Y nada más, con esto (y nada más, ni triggers ni procesos ni nada) ya debería funcionar correctamente en altas, eliminaciones y modificaciones de líneas de compra y venta, siempre y cuando los campos CANTIDAD y STOCK estén bien definidos (sean numéricos con signo).