Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

Problema al clasificar como enviado un pedido con atributos

Si cree que ha encontrado un error en una versión estable, siéntase libre de comunicarlo aquí, indicando la versión.
retrocomp
Novato
Mensajes: 48
Registrado: Mar, 18/11/2014, 23:27

Problema al clasificar como enviado un pedido con atributos

Mensaje por retrocomp »

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ó?

retrocomp
Novato
Mensajes: 48
Registrado: Mar, 18/11/2014, 23:27

Mensaje por retrocomp »

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.