DB_ERROR_NOSUCHFIELD sur llx_payment_expensereport

Bonjour,

je rencontre une étrange anomalie dans les logs de mon Dolibarr 16.0.5…

2023-05-19 07:41:19 ERR     DoliDBMysqli::query SQL Error query: SELECT MAX(te.ref) FROM llx_payment_expensereport as te WHERE te.ref < '867'
2023-05-19 07:41:19 ERR     DoliDBMysqli::query SQL Error message: DB_ERROR_NOSUCHFIELD Unknown column 'te.ref' in 'field list'

J’ai donc cherché comment est construite la table en question (cf. llx_payment_expensereport.sql) :

create table llx_payment_expensereport
(
  rowid                   integer AUTO_INCREMENT PRIMARY KEY,
  fk_expensereport        integer,
  datec                   datetime,           -- date de creation
  tms                     timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  datep                   datetime,           -- payment date
  amount                  double(24,8) DEFAULT 0,
  fk_typepayment          integer NOT NULL,
  num_payment             varchar(50),
  note                    text,
  fk_bank                 integer NOT NULL,
  fk_user_creat           integer,            -- creation user
  fk_user_modif           integer             -- last modification user
)ENGINE=innodb;

Et je constate qu’il n’y a pas de colonne ref. Cela me semble trop étrange comme anomalie pour que ce soit un problème core, donc je soupçonne un module tiers d’être la cause, mais lequel ?

C’est là que j’ai une limitation dans mon analyse : je ne sais pas comment trouver quel composant appelle cette requête SQL.

Merci de votre aide !

Bonjour @espritlibre,

Essayez de désactiver les modules externes l’un après l’autre.

Ou bien recherchez le text ci-dessous dans le dossier « custom » :

SELECT MAX(te.ref) FROM

Bien cordialement

Merci pour la suggestion. Je vais tenter cela, mais comme l’erreur est très ponctuelle, je ne sais pas comment la reproduire de façon certaine.

Y a-t-il un niveau de logs qui permette de savoir de quel module vient l’erreur ?