Problème lors de la création d'une facture suivante de situation

Bonjour à tous,

J’ai récemment migré mon Dolibarr de la version v19 à la v20 (20.0.3). Or je vois apparaître ce message sur le tableau de bord :

image

Le sujet est également traité dans une issue similaire: Dolibarr V20 est sorti (Mise à jour : La V20.0.3 est sortie)! - #18 par ksar

Lorsque je crée une première facture de situation à partir d’une facture standard, tout fonctionne correctement.
Cependant, lorsque je tente de créer une facture suivante basée sur une facture de situation existante (voir image ci-dessous),

J’obtiens une erreur PHP (voir ci-dessous) malgré les correctifs proposés dans l’Issue qui traite le problème. Cela ne résout rien même en essayant de passer au mode officiel :

PHP Fatal error:  Uncaught Error: Attempt to modify property "lines" on null in /var/www/html/custom/subtotal/class/actions_subtotal.class.php:508
Stack trace:
#0 /var/www/html/core/class/hookmanager.class.php(359): ActionsSubtotal->createFrom()
#1 /var/www/html/compta/facture/card.php(2058): HookManager->executeHooks()
#2 {main}
  thrown in /var/www/html/custom/subtotal/class/actions_subtotal.class.php on line 508

L’erreur provient du fichier /custom/subtotal/class/actions_subtotal.class.php, à la ligne 508 (boucle foreach) qui provie,t de la fonction createFrom():

foreach($objFrom->lines as $k=> &$lineOld) {
    if($lineOld->product_type == 9 && $lineOld->info_bits > 0 ) {
        $line = & $object->lines[$k];
        $idLine = (int) ($line->id ? $line->id : $line->rowid); 
        $db->query("UPDATE ".MAIN_DB_PREFIX.$line->table_element."
            SET info_bits=".(int)$lineOld->info_bits."
            WHERE rowid = ".$idLine."
        ");
    }
}

Cependant en comparant en base de donnée la structure d’anciennes factures suivant de situation qui s’affichent correctement dans Dolibarr et la structure des premières facture de situation. Je constate que les données sont semblables.
Voici un extrait d’une comparaison de 2 factures de situations (anciennement créé avant la v20 de Dolibarr → 2 premières lignes du tableur) et une première facture de situation créée (qui fonctionne comme dit précédemment → 3° ligne du tableur):

image
image
image

Selon moi il y a quelque chose (une donnée dans la table llx_facture ?) qui manque lors de la création du formulaire.

Quelqu’un a t-il eu le même souci ?
Bonne journée.

1 « J'aime »

Bonsoir,

le fichier qui pose problème est un module externe : custom/subtotoal
essayez de le désactiver pour voir si l’erreur est présente dans dolibarr ou dans le module externe

1 « J'aime »

Bonjour,

Merci pour votre réponse. En effet, le problème venait du module « Sous-Totaux ».

La raison venait du fait que le module n’avait pas été mis à jour (v2.6.9) sur notre instance. Nous l’avons donc mis à jour vers la version v3.28.1 (rèf : GitHub - ATM-Consulting/dolibarr_module_subtotal).

Le problème est résolu. Il devait y avoir une incompatibilité entre cette version et la v20 de Dolibarr.

Très bonne journée.

1 « J'aime »