Bonjour à tous,
Pour vous donner un peu de contexte, j’utilise Dolibarr depuis plusieurs années via une installation fournie par IONOS qui m’empêchait de faire les mises à jour. J’ai donc réinstallé une version directement sur le serveur sans passer par « l’aide » IONOS avec une sauvegarde de ma base de données pour me créer un environnement test. Le tout était en 6.0.2 à l’époque. Pour respecter les normes FEC j’ai fait progressivement les mises à jour une à une jusqu’à la version 13.0.4.
Tout semblait s’être bien passé jusqu’à ce que je tente de créer une expédition à partir d’une commande.
J’ai le message d’erreur suivant en rouge "Unknown column ‹ e.billed › in ‹ field list › "
et sur la partie supposé afficher le contenu de l’expédition ce détail :
Dolibarr a détecté une erreur technique.
Voici les informations qui pourront aider au diagnostic (Vous pouvez fixer l'option $dolibarr_main_prod sur '1' pour supprimer quelques notifications):
**Date:** 20210817190858
**Dolibarr:** 13.0.4 - https://www.dolibarr.org
**Niveau de fonctionnalités:** 0
**PHP:** 7.4.22
**Server:** Apache
**OS:** Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
**UserAgent:** Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36
**Url sollicitée:** /expedition/card.php?id=406
**Referer:** https://monsite.fr/expedition/shipment.php?id=332
**Gestionnaire de menu:** eldy_menu.php
**Modules/Applications:** syslog, user, societe, blockedlog, commande, expedition, product, expensereport, propal, contrat, fournisseur, facture, salaries, accounting, banque, tax, service, stock, agenda, reception, loan, margin, productbatch, bom, mrp, projet, ecm, categorie, import, export, debugbar, incoterm
**Type gestionnaire de base de données:** mysqli
**Requête dernier accès en base en erreur:** SELECT rowid, fk_source, sourcetype, fk_target, targettype FROM f5r9_element_element WHERE (fk_source = AND sourcetype = 'shipping') OR (fk_target = AND targettype = 'shipping') ORDER BY sourcetype
**Code retour dernier accès en base en erreur:** DB_ERROR_SYNTAX
**Information sur le dernier accès en base en erreur:** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND sourcetype = 'shipping') OR (fk_target = AND targettype = 'shipping') ORDER' at line 1
J’ai activé la barre de débug pour en savoir un peu plus et voilà ce que j’apprends de plus (sans m’aider pour autant) :
SELECT e.rowid, e.entity, e.ref, e.fk_soc as socid, e.date_creation, e.ref_customer, e.ref_ext, e.ref_int, e.fk_user_author, e.fk_statut, e.fk_projet as fk_project, e.billed, e.date_valid, e.weight, e.weight_units, e.size, e.size_units, e.width, e.height, e.date_expedition as date_expedition, e.model_pdf, e.fk_address, e.date_delivery, e.fk_shipping_method, e.tracking_number, e.note_private, e.note_public, e.fk_incoterms, e.location_incoterms, i.libelle as label_incoterms, s.libelle as shipping_method, el.fk_source as origin_id, el.sourcetype as origin FROM f5r9_expedition as e LEFT JOIN f5r9_element_element as el ON el.fk_target = e.rowid AND el.targettype = 'shipping' LEFT JOIN f5r9_c_incoterms as i ON e.fk_incoterms = i.rowid LEFT JOIN f5r9_c_shipment_mode as s ON e.fk_shipping_method = s.rowid WHERE e.entity IN (1) AND e.rowid=406` [DB_ERROR_NOSUCHFIELD] Unknown column 'e.billed' in 'field list'
J’ai recherché en long et en large sur le forum (y compris en anglais) et trouvé des situations tout à fait similaires, notamment une qui affiche le même problème et qui a été résolue en recréant la colonne « billed » dans la table. Problème, dans mon cas, elle existe déjà. Dans les autres cas, c’est souvent une mise à jour qui est recommandée, or, je suis déjà en 13.0.4 et j’ai évité la 14.0.0 en respectant bien le « dernière version stable » pour éviter les risques.
On se prend la tête avec mon beau frère sur cette erreur depuis un moment sans être experts, et j’avoue qu’on finit par tourner en rond en se disant qu’on doit franchement louper un truc.
Je vous serais extrêmement reconnaissante si vous pouviez m’aider avant que j’y perde la raison.
Merci d’avoir pris le temps de me lire.
Julie