Versión: 3.8.4
BBDD: PostgreSQL
Tengo configurado para que al "Clasificar enviado" un pedido de cliente genere la factura.
He añadido un atributo adicional al pedido.
Si ese atributo no tiene valor, al "Clasificar enviado" genera la factura y todo OK.
Si doy valor a ese atributo, al "Clasificar enviado" ni lo clasifica como enviado ni genera factura.
Aunque borre contenido del atributo en el pedido ya no funciona "Clasificar enviado" para ese pedido.
He probado con distintos tipos de atributos y diferentes contenidos en los mismos.
Cuando doy a "Clasificar enviado", desde /dolibarr/htdocs/commande/card.php se llama al comando cloture que está en /dolibarr/htdocs/commande/class/commande.class.php
El comando cloture lanza una sentencia SQL que funciona bien: UPDATE llx_commande SET fk_statut = 3, fk_user_cloture = 2, date_cloture = '2018-04-04 21:29:25' WHERE rowid = 2994 AND fk_statut > 0
A continuación llama a la función call_trigger que está en /dolibarr/htdocs/core/class/commonobject.class.php
Esta función tiene por objeto disparar acciones adicionales, como es la de crear la factura a partir del pedido.
A partir de aquí algo falla. call_tigger devuelve -1 y hace un rollback de la sentencia SQL que había puesto como enviado el pedido.
Tengo claro que es un bug de esta versión. ¿Sabéis cómo se resolvió?
Problema al clasificar como enviado un pedido con atributos
Si desactivo en el módulo de workflow la opción de crear factura de cliente al cerrar pedido (Automatically create a customer invoice after a customer order is closed) me clasifica correctamente el pedido como enviado.
El problema es por tanto en el proceso de creación de la factura lanzado con call_tigger. Ese proceso da un error y por eso call_tigger devuelve -1 y se hace el rollback en el estado del pedido.
El problema es por tanto en el proceso de creación de la factura lanzado con call_tigger. Ese proceso da un error y por eso call_tigger devuelve -1 y se hace el rollback en el estado del pedido.
