# Una de actualizacio de campo

**URL:** <https://foros.velneo.com/t/una-de-actualizacio-de-campo/10799>\
**Category:** Velneo\
**Created:** [25 Junio, 2021 07:58 UTC](https://foros.velneo.com/t/una-de-actualizacio-de-campo/10799 "2021-06-25T07:58:50Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![td2010](https://avatars.discourse-cdn.com/v4/letter/t/7ea924/32.png) [@td2010](https://foros.velneo.com/u/td2010)\
**Post date:** [25 Junio, 2021 07:58 UTC](https://foros.velneo.com/t/una-de-actualizacio-de-campo/10799/1 "2021-06-25T07:58:50Z")

</div>

Buenos dias, a ver si podeis ayudarme con esto porque me esta volviendo loco, he creado 3 campos en la tabla VTA FAC para controlar cuando esta la factura totalmente pagada para sacar las comisiones del comercial,  
uno es booleano y se pone a 1 cuando el total de la factura es igual al importe total cobrado, y funciona correctamente.  
los otros dos campos controlo el total cobrado y la cantidad de vencimientos,  
estos dos ultimos campos se actualizan desde la tabla de vencimientos con una actualizacion, para ambos campos tienen como condicion que el #EST=“C” y el campo de num vto me acumula 1 y el del total cobrado me acumula el campo #IMP\_COB, OK todo funciona correctamente me pone el booleano a 1 cuando todo esta cobrado y todo perfecto.  
PEEEEROOOOOO si por el motivo que sea elimino la operacion de cobro del vencimiento en el campo que he creado en la tabla de facturas #IMP\_COB\_VTO no me funciona correctamente.  
por ejemplo una factura de 150 € con 3 vencimientos  
cobro 2 vencimientos y quedaria con IMP\_COB\_VTO = 100  
elimino 1 cobro de vencimiento para que quede sin cobrar y deberia de quedar IMP\_COB\_VTO = 50 NO¿? pues no se pone a 0 y si elimino el otro cobro se va a IMP\_COB\_VTO= -100 o sea cuando actualiza lo hace bien y cuando en teoria se elimina esa actualizacion me quita el doble SIEMPRE.  
y solo en ese campo, el campo de #NUM\_VTO funciona correctamente +1 y -1  
Gracias

---

<div class="post-metadata">

**Author:** ![carlosan](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/carlosan/32/5706_2.png) [@carlosan](https://foros.velneo.com/u/carlosan)\
**Post date:** [7 Agosto, 2022 10:53 UTC](https://foros.velneo.com/t/una-de-actualizacio-de-campo/10799/2 "2022-08-07T10:53:20Z")

</div>

Idem de lienzo con vERP.

A mi me acumula el doble del importe cobrado / anulado en la factura de venta.  
En la tabla VTA\_FAC\_G he creado un el campo IMP\_COB como tu campo IMP\_COB\_VTO.  
En la tabla VTO\_COB\_C una actualización hacia VTA\_FAC\_G que acumula el campo IMP\_COB de esta tabla sobre aquella. Pero acumula el doble y resta el doble. Estaba por dividir entre dos pero lo mismo se me lía con los decimales y sin conocer porqué sucede sería una locura.  
También estaba pensando que lo mismo hay que lanzar la actualización desde la tabla COB\_C (operaciones de cobro). Pero tendría que añadirle enlace a la tabla VTA\_FAC\_G.  
Como condición para acumular he puesto (! #VTA\_FAC\_G:IsEmpty).  
También probé sin condición pero dobla igual el importe. Y es curioso que si la condición se cumple suma pero si no se cumple resta.  
Creía que sólo sumaba bajo la condición al crear el registro o al darlo de baja pero me parece que no es esa la idea. Si el registro de VTO\_COB\_C se actualiza dos veces desde la tabla de COB\_C o una vez desde COB\_C y otra por otro camino, sumará el importe cada ocasión porque la condición no lo impide.  
Voy a consultar la larga lista de ejemplos que a buen seguro ofrece la documentación de Velneo, pues este tema es muy importante.

¿Lo solucionaste?

---

<div class="post-metadata">

**Author:** ![carlosan](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/carlosan/32/5706_2.png) [@carlosan](https://foros.velneo.com/u/carlosan)\
**Post date:** [7 Agosto, 2022 11:41 UTC](https://foros.velneo.com/t/una-de-actualizacio-de-campo/10799/3 "2022-08-07T11:41:38Z")

</div>

En la documentación de Velneo dice:  
_“Por ejemplo **si condicionamos** una actualización del nº de líneas recibidas de un pedido a que la línea esté recibida o cancelada, cuando se cumple la condición se suma 1 al campo de la tabla maestra, sin embargo, al cambiar la condición si ya no se cumple se resta 1.”_

Pues no sé qué significa porque en las tablas de vERP hay una condición para actualizar las estadísticas de importes de vencimientos cobrados (EST\_COB\_PAG) por meses con la condición #MES=01 para acumular a Enero el importe cobrado y según esa explicación, restaría el importe a los demás campos, es decir sería un desastre, y eso no sucede.  
Símplemente suma bajo esa condición pero … no sé cual será la circunstancia que cambia el signo de la operación durante la actualización.

---

<div class="post-metadata">

**Author:** ![td2010](https://avatars.discourse-cdn.com/v4/letter/t/7ea924/32.png) [@td2010](https://foros.velneo.com/u/td2010)\
**Post date:** [9 Agosto, 2022 08:17 UTC](https://foros.velneo.com/t/una-de-actualizacio-de-campo/10799/5 "2022-08-09T08:17:26Z")

</div>

Buenos dias Carlos, yo lo intente de todas las formas por actualizacion y da igual, a mi me hacia algo parecido como puedes ver arriba,  
yo lo logre solucionar por codigo,  
en el altenador VTO\_COB\_C\_VTA\_FAC - insertado en el formulario de cobros de la factura VTA\_FAC\_G\_COB - modifique el codigo del manejador de eventos COB quedando de la siguiente manera,  
[VTO\_COB\_C\_VTA\_FAC.pdf](https://foros.velneo.com/uploads/short-url/9yogpGVtcDOy8qnq670BlbM7hOp.pdf) (27,8 KB)  
en mi caso cree una variable que se llama ZZZ\_IMP\_COB\_VTO en la que capturo el campo IMP\_PDT\_COB, Y modifico la ficha de maestro VTA\_FAC.  
hay que hacer exactamente lo mismo con el altenador VTO\_COB\_C en el formulario VTO\_COB\_C\_MEN  
te adjunto el codigo del manejador COB  
[VTO\_COB\_C.pdf](https://foros.velneo.com/uploads/short-url/tDIpbQd3V35Xyx2eKgXsMmHko8r.pdf) (27,8 KB)  
con esto me actualiza el campo en VTA FAC cuando realizo el cobro por cualquiera de los dos lados, tanto desde facturas pestaña cobros, como desde los vencimientos a cobrar en tesoreria.  
para descontar lo cobrado cuando elimino una operacion de cobro lo hice tambien desde codigo en el manejador de evento BTN\_SUP en el formulario COB\_C de las operaciones de cobro.  
adjunto codigo  
[COB\_C.pdf](https://foros.velneo.com/uploads/short-url/1PZeGXnUMskPa6XjlgC6JNlf1ir.pdf) (20,0 KB)  
Espero te sirva de ayuda para realizar lo que quieres seguro hay mejores formas pero esta a mi me funciona bien.  
un saludo

> por comentar tambien que en mi caso y por ACTUALIZACION me suma 1 en cantidad de vencimientos cobrados cada vez que realizo un cobro y me lo resta si elimino la operacion de cobro. y ese campo que tambien esta en la tabla de VTA FAC igual que el otro si que me funciona correctamente y sin errores ni negativos ni duplicidades como en el caso del total cobrado.  
> Stranger Things in Velneo

---

<div class="post-metadata">

**Author:** ![carlosan](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/carlosan/32/5706_2.png) [@carlosan](https://foros.velneo.com/u/carlosan)\
**Post date:** [9 Agosto, 2022 09:01 UTC](https://foros.velneo.com/t/una-de-actualizacio-de-campo/10799/6 "2022-08-09T09:01:15Z")

</div>

“Stranger Things” 🤣🤣🤣 aunque … “poca broma” con el colesterol del Life=Soft cuando se atasca.  
Gracias por compartir tu solución.

Acostumbro a desarrollar las formas más complicadas de programación que me permite mi cerebro y, aunque no es mucho, me ponen muy nervioso los trozos de código repetidos en diferentes lugares: cuando puedo los unifico y cuando no puedo, trato de REMark carlos.

Dicho eso, que no sé pa’qué lo digo, reconozco haberlo solucionado ayer a lo mecagüen. Cada vez que se modifica un registro de VTO\_COB\_C, cambio un booleano en VTA\_FAC\_G (que me costó hacerlo cambiar porque no quiere el lenguaje nativo según qué cosas). Eso dispara el trigger de modificaciones de VTA\_FAC\_G que recorre todos los vencimientos existentes sumando los importes y a continuación en función de ellos decido si está o no pendiente la factura.

Eso sí lo pone la documentación: No hacer actualizaciones encadenadas largas.  
Pues no he hecho caso: COB\_C a VTO\_COB\_C y VTO\_COB\_C a VTA\_FAC\_G. 🤯 ya veremos qué pasa y si no me toca hacer un “Regreso al futuro” .  
(Status line updated: td2010 code files downloaded, for if the flys)

---

<div class="post-metadata">

**Author:** ![marco\_rangel](https://avatars.discourse-cdn.com/v4/letter/m/8797f3/32.png) [@marco\_rangel](https://foros.velneo.com/u/marco_rangel)\
**Post date:** [11 Agosto, 2022 14:38 UTC](https://foros.velneo.com/t/una-de-actualizacio-de-campo/10799/7 "2022-08-11T14:38:38Z")

</div>

Pregunta, ¿Este comportamiento es reciente? mi aplicación hace poco me acaba de hacer algo similar, por un momento pensé que fue por unas modificaciones que había hecho al rededor, pero ahora que leo esto me ha entrado un miedo a que sea culpa de Velneo y vaya a comenzar a dar problemas.

---

<div class="post-metadata">

**Author:** ![carlosan](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/carlosan/32/5706_2.png) [@carlosan](https://foros.velneo.com/u/carlosan)\
**Post date:** [11 Agosto, 2022 17:33 UTC](https://foros.velneo.com/t/una-de-actualizacio-de-campo/10799/8 "2022-08-11T17:33:32Z")

</div>

Pero … ¿ a ti se te cierra vDevelop o vClient ?  
Es decir  
¿ Mientras ejecutas la aplicación se te cierra vClient o mientras editas se te cierra vDevelop. ?  
Y no. No es reciente que vDevelop se cierra en determinadas circunstancias. Como dice td2010 casi siempre, sino siempre, es al borrar un trozo de código o un objeto u objetos.

---

<div class="post-metadata">

**Author:** ![marco\_rangel](https://avatars.discourse-cdn.com/v4/letter/m/8797f3/32.png) [@marco\_rangel](https://foros.velneo.com/u/marco_rangel)\
**Post date:** [11 Agosto, 2022 21:16 UTC](https://foros.velneo.com/t/una-de-actualizacio-de-campo/10799/10 "2022-08-11T21:16:04Z")

</div>

Creo que se nos cruzaron los cables, en cuanto a lo del vDevelop que se cierra, pues eso, es en vDevelop, que aunque no me pasa tan seguido si he visto que me ha pasado más desde que instalé la versión 30.1.

Y con respecto a lo de la actualización de campos, pues ahí si es al ejecutar la aplicación con el vClient…
