No dispara la actualizacion


([N3] Servinfor) #1

Hola tengo 2 tablas Cabecera de factura y detalle de facturas. En el detalle de la factura tengo el campo importe que dispara una actualización hacia el campo Base imponible de la tabla cabecera de facturas. Lo ha ce correctamente

Ahora quiero desde el formulario de la factura duplicar una factura para lo que genero un proceso que me genera la factura duplicada y me la muestra. Ahora que estoy en la factura duplicada intento añadir nuevas lineas en el detalle de la factura y no me actualiza la base imponible con esos importes.

En cambio si cierro el formulario y lo vuelvo a abrir ya puedo añadir lineas y ahora si que me actualiza correctamente. He puesto un boton en el formulario que me dispare el invento Interfaz guardar en alta…otro para que actualice la rejillla pero ni asi dispara la actualizacion


([N1] vgegeo) #2

¿Cómo abres el formulario de la duplicada?

Es posible que cuando lo abres, has generado transacción, y por tanto, esa ficha está bloqueada, y aunque grabes líneas, estas NO consiguen actualizar la ficha maestra, porque está bloqueada por la transacción.

Tienes que aceptar el formulario de la factura duplicada, para que termine la transacción y quede desbloqueada.

Si no lo cierras, puedes ver en el vAdmin la transacción en curso.


([N4] sergioinfortic) #3

Tiene razón vgeogeo.

Tienes que independizar el proceso que crea la nueva factura de su apertura.

El proceso va a crear la factura iniciando una transacción, al ejecutar el formulario desde ese mismo proceso la transacción se queda en espera hasta que lo cierres, teniendo bloqueada la cabecera que acabas de crear.

Posible solución:

El proceso que duplica la factura FAC_DUP tiene entrada Factura (Ficha) y salida Factura (Ficha), le entra una factura, la duplica y añade a su salida la nueva factura.

Creas una accion también con origen Factura (Ficha) con 2 objetos:
Proceso FAC_DUP
Formulario FACTURA

Para duplicar la factura ejecutas la acción

Esta es una forma, hay varias, pero pasan todas por que FAC_DUP no abra el formulario, sino que consiga terminar