Onglet événements commande fournisseur défaillant

Sur les versions 10.0.1 et 10.0.2, sur une commande fournisseur si on choisit l’onglet « Evénements », on obtient le message d’erreur suivant:

Date: 20191002220855
Dolibarr: 10.0.2
Niveau de fonctionnalités: 2
PHP: 7.3.6
Serveur: Apache
OS: Linux paas_354 4.9.124-paas-2270098 #1 SMP PREEMPT Tue Aug 28 15:11:59 CEST 2018 x86_64
UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.1 Safari/605.1.15

Url sollicitée: /fourn/commande/info.php?id=431
Referer: https://www.myweb.site/fourn/commande/card.php?id=431
Gestionnaire de menu: eldy_menu.php

Modules/Applications: user, comptabilite, banque, commande, ecm, facture, fournisseur, societe, service, fckeditor, margin, propal, multicurrency, categorie, simplefab, stock, product, expedition
Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: ORDER BY dp DESC, id
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 'ORDER BY dp DESC, id' at line 1

Bonjour,
En version 10.0.0, je ne reproduis pas.

Bonjour,

Sur ma 10.0.2 de test, je ne reproduit pas non plus.
Avez-vous des modules externes ?

Non, pas de modules externes particuliers.

Slt

Pb de version de php ?
Vs etes sous MAMP ?

Solution hébergée en PAAS chez Gandi:

OS : Linux paas_354 4.9.124-paas-2270098 #1 SMP PREEMPT Tue Aug 28 15:11:59 CEST 2018 x86_64

PHP: version 7.3.6    Jun 26 2019 15:16:53
mysqli: mysqlnd 5.0.12-dev - 20150407 - $Id: 7cc7cc96e675f6d72e5cf0f267f48e167c2abb23 $

MySQL: MySQL or MariaDB 5.5.61-38.13-log 

Si ça peut aider…

Ok

Pour tester pouvez vous changer votre version de php ds l interface client de gandi ?
>>Descendre en version …7.0 au min

Je ne préfère pas, il s’agit d’un site en production :wink:

@pm17 baisser la version de php ça changera rien vu que c’est une erreur de requête SQL.

Essayez d’écraser les fichier php au cas ou il y aurait un vieux fichier pas mise à jour.

Sinon faites une installation neuve de Doli et exporter/importer vos sauvegarde dedans.

1 « J'aime »

Je vais vivre avec. Je n’utilise pas cette fonction souvent. J’ai trouvé le bug par erreur.
Par contre en analysant l’erreur MySQL ne peut-on pas isoler la ligne qui crée l’erreur et vérifier la syntaxe vis-à-vis de la structure de la table en faute qui n’a peut-être pas été mise à jour correctement?

Malheureusement non, c’est pas aussi simple

L’erreur qui existe est qu’une requête SQL est construite en étant erronée. Typiquement, il doit y avoir une boucle sur quelque chose ou des conditions pour construire la première partie de la requête, puis la fin est ajoutée. Ici, on ne retrouve que la fin et je présume que c’est parce que la boucle est vide ou les conditions ne sont pas remplies. Il faut vraiment plonger dans le code pour comprendre le hiatus.

Bonjour
En version 10, en montant le MAIN FEATURE LEVELà 2 tu dois pouvoir activer la debugbar et dans celle ci tu trouvera la requête sql défaillante.
Qu’est ce que le module simplefab?

Fred

J’ai le même problème sur deux sites en production.
Le premier est une mise à jour (successives) depuis 3.3.5 à 10.0.2 et elle comporte le module SimpleFab
Le second site est une mise à jour depuis 7.0.2 à 10.0.2 et ne comporte pas le module SimpleFab

Le module SimpleFab est un module que j’ai écrit moi-même il y a de nombreuses années (en 2014) pour me permettre de gérer la fabrication de certains produits finis de manière simplifiée (assemblage produit virtuel vers un produit fini, gestion de la BOM, transfert produit finis, démontage d’un produit en pièces détachées retournant au stock, etc.). Bref, comme le module n’est pas installé sur le second site, il ne doit pas être coupable.

Sur le site 1, MAIN_FEATURES_LEVEL est déjà à 2, sur le site 2 MAIN_FEATURES_LEVEL est à 0.
J’ai activé le « debugbar ». Toutefois, lorsque je re-crée l’erreur (qui d’ailleurs est systématique), le log DebugBar ne comporte pas la requête SQL mais juste le même message d’erreur que déjà cité en rouge. Mais pas de requête complète originelle ou bien peut-être bien que la requête originelle est: « ORDER BY dp DESC, id » uniquement => requête erronée.