Erreur ventilation journal tréso [ISSUE#10485]

Bonsoir à toutes et à tous

Je viens d’installer la V9 en test sur la compta en priorité.

Sur la ventilation des écritures, tout va bien pour les ventes et les achats mais pour la trésorerie, j’ai l’erreur suivante :

Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: SELECT payfac.fk_facture as id, f.ref as ref FROM llx_paiement_facture as payfac, llx_facture as f WHERE payfac.fk_facture = f.rowid AND payfac.fk_paiement=2186
Code retour dernier accès en base en erreur: DB_ERROR_NOSUCHFIELD
Information sur le dernier accès en base en erreur: Unknown column ‹ f.ref › in ‹ field list ›

A priori, pas de colonne « Ref » dans la table llx_facture

Comment puis-je corriger ?

Régis

même erreur sur le passage de v8.0.4 à v9.0.0:

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: 20190203054919
Dolibarr: 9.0.0
Niveau de fonctionnalités: 0
PHP: 7.3.1
Server: nginx/1.14.2
OS: Linux server 4.20.6-1-ARCH #1 SMP Thu Jan 31 20:58:13 MST 2019 aarch64
UserAgent: Mozilla/5.0 (X11; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0

Url sollicitée: /dolibarr-9.0.0/htdocs/accountancy/journal/bankjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=3
Referer: http://192.168.1.10/dolibarr-9.0.0/htdocs/accountancy/journal/purchasesjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=2
Gestionnaire de menu: eldy_menu.php

Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: SELECT payfac.fk_facture as id, f.ref as ref FROM llx_paiement_facture as payfac, llx_facture as f WHERE payfac.fk_facture = f.rowid AND payfac.fk_paiement=3
Code retour dernier accès en base en erreur: DB_ERROR_NOSUCHFIELD
Information sur le dernier accès en base en erreur: Unknown column ‹ f.ref › in ‹ field list ›

je reproduis également cette erreur.

Issue ouverte sur le github.

https://github.com/Dolibarr/dolibarr/issues/10485

1 « J'aime »

Le script de migration 8.x.x -> 9.x.x n’est pas complet.
et je pense qu’il y a aussi un problème de version de fichiers (un même champs de llx_facture est appelé de différentes manières dans différents script.

-> ne migrez pas en 9.0.0 avant correction !

1 « J'aime »

Voila la correctif:
https://github.com/Dolibarr/dolibarr/commit/456e78b7cfd15f71376abe7cfbeb45c9aaaafa9d

2 « J'aime »

Merci eldy :happy:

En v9 et moins, le champ s’appelle facnumber. Les scripts doivent utiliser ce nom de champ.
Ce n’est qu’à partir de la v10 que le nom sera comme les autres, soit « ref ».

1 « J'aime »

Merci beaucoup !

J’ai bien modifié le fichier « purchasesjournal.php » mais impossible pour le fichier bankjournal.php, je ne retrouve pas la ligne à modifier
Et l’erreur est toujours là.

Help …

Merci

Régis

@Régis
Pourtant la ligne y est bien.

Tu es sûr de checker le fichier de la 9.0.0 ? (Et pas celui de ton ancienne version)

En effet, j’étais sur la sauvegarde.

C’est Ok mais la correction de Purchasesjournal.php provoque une erreur, il ne faut pas le corriger, il est correct en l’état !

Merci

Régis

Quelle erreur ? Tu peux préciser la manip exacte pour reproduire ?

Pour ma part j’ai fait les 2 correctifs des fichiers « bankjournal.php » et « purchasesjournal.php » et plus d’erreur, ça fonctionne

Il faut bien comprendre la modif: il ne faut pas laisser les 2 lignes en question avec ‹ f.ref › et ajouter 2 lignes avec ‹ f.facnumber ›, mais juste remplacer ‹ f.ref › par ‹ f.facnumber › dans ces 2 lignes.

Olivier

Et chez moi, dans le fichier « banckjournal.php » la présence de « f.facnumber » provoque l’erreur identique. j’ai donc remis l’ancienne ligne (avec f.ref) et ça fonctionne !

Bon… je crois qu’il est urgent d’attendre les corrections de la 9.01 ou 9.02 !

Merci de vos réponses

Régis

Étrange, chez moi en test tout fonctionne avec le fix d’eldy.
Ça devrait être identique chez toi, car le champs de llx_facture est bien facnumber, pas ref.

Effectivement après les 2 modifs suggérées par eldy, l’erreur sur le journal de banque a disparue pour moi, mais une nouvelle erreur apparaît sur le journal d’achats; « f.facnumber » --> champ non trouvé

Il semblerai que le fichier « purchasesjournal.php » ne soit pas à modifier comme indiqué et que seul le fichier « bankjournal.php » soit a modifer.

ce qui semble logique « purchasesjournal »= journal d’achats (seules les factures clients sont avec f.facnumber)
j’ai vérifié dans le « sellsjournal »: on a bien la référence à « facnumber » et non « ref »

Olivier

1 « J'aime »

Autant pour moi, j’avais juste testé le journal de banque.

Merci olivedol, c’est remonté sur github.

https://github.com/Dolibarr/dolibarr/commit/456e78b7cfd15f71376abe7cfbeb45c9aaaafa9d

Oui car dans le 2° fix , on parle de la table llx_facturedet et non de llx_facture
donc cette fois, le champ « ref » existe bien dans llx_facturedet

Régis

Bonjour, je suis en train de faire ma compta et j’ai une erreur différente (j’ai fait les deux modifications indiquées aux fichiers bankjournal.php et purchasesjournal.php et ça ne change rien), lorsque je veux lier mes factures, j’obtiens ce message :

Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='

Une idée ? C’est ballot, je ne peux pas faire ma ventilation, du coup :unhappy:

Sur la page http://localhost/dolibarr/accountancy/admin/productaccount.php j’ai également ces erreurs :

[code]
Dolibarr a détecté une erreur technique.
You use an experimental or develop level of features, so please do NOT report any bugs, except if problem is confirmed moving option MAIN_FEATURES_LEVEL back to 0.
Voici les informations qui pourront aider au diagnostic (Vous pouvez fixer l’option $dolibarr_main_prod sur ‹ 1 › pour supprimer quelques notifications):
Date: 20190204135754
Dolibarr: 9.0.0
Niveau de fonctionnalités: 2
PHP: 5.5.12
Server: Apache/2.4.9 (Win32) PHP/5.5.12
OS: Windows NT CERKILL 6.2 build 9200 (Windows 8 Business Edition) i586
UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

Url sollicitée: /dolibarr/accountancy/admin/productaccount.php
Referer: http://localhost/dolibarr/accountancy/index.php?leftmenu=accountancy_admin
Gestionnaire de menu: eldy_menu.php

Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: SELECT p.rowid, p.ref, p.label, p.description, p.tosell, p.tobuy, p.accountancy_code_sell, p.accountancy_code_buy, p.tms, p.fk_product_type as product_type, aa.rowid as aaid FROM llx_product as p LEFT JOIN llx_accounting_account as aa ON p.accountancy_code_sell = aa.account_number AND aa.fk_pcg_version = ‹ PCG99-BASE › WHERE p.entity IN (1) AND aa.account_number IS NULL ORDER BY p.ref ASC LIMIT 51
Code retour dernier accès en base en erreur: DB_ERROR_1267
Information sur le dernier accès en base en erreur: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation ‹ = ›[/code]
Et lorsque je veux écrire dans le grand livre, sur les ventes, ça va, mais sur le journal des achats, Dolibarr m’insulte joyeusement :

[code]
Dolibarr a détecté une erreur technique.
You use an experimental or develop level of features, so please do NOT report any bugs, except if problem is confirmed moving option MAIN_FEATURES_LEVEL back to 0.
Voici les informations qui pourront aider au diagnostic (Vous pouvez fixer l’option $dolibarr_main_prod sur ‹ 1 › pour supprimer quelques notifications):
Date: 20190204140405
Dolibarr: 9.0.0
Niveau de fonctionnalités: 2
PHP: 5.5.12
Server: Apache/2.4.9 (Win32) PHP/5.5.12
OS: Windows NT CERKILL 6.2 build 9200 (Windows 8 Business Edition) i586
UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

Url sollicitée: /dolibarr/accountancy/journal/purchasesjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=2
Referer: http://localhost/dolibarr/accountancy/journal/expensereportsjournal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal=6
Gestionnaire de menu: eldy_menu.php

Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: SELECT f.rowid, f.facnumber as ref, f.type, f.datef as df, f.libelle,f.ref_supplier, f.date_lim_reglement as dlf, f.close_code, fd.rowid as fdid, fd.description, fd.product_type, fd.total_ht, fd.tva as total_tva, fd.total_localtax1, fd.total_localtax2, fd.tva_tx, fd.total_ttc, fd.vat_src_code, s.rowid as socid, s.nom as name, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur, p.accountancy_code_buy , aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte FROM llx_facture_fourn_det as fd LEFT JOIN llx_product as p ON p.rowid = fd.fk_product LEFT JOIN llx_accounting_account as aa ON aa.rowid = fd.fk_code_ventilation JOIN llx_facture_fourn as f ON f.rowid = fd.fk_facture_fourn JOIN llx_societe as s ON s.rowid = f.fk_soc WHERE f.fk_statut > 0 AND fd.fk_code_ventilation > 0 AND f.entity IN (1) AND f.type IN (0,1,2,3,5) AND f.datef >= ‹ 2019-01-01 00:00:00 › AND f.datef <= ‹ 2019-01-31 23:59:59 › AND f.rowid NOT IN (SELECT fk_doc FROM llx_accounting_bookkeeping as ab WHERE ab.doc_type=‹ supplier_invoice ›) ORDER BY f.datef
Code retour dernier accès en base en erreur: DB_ERROR_NOSUCHFIELD
Information sur le dernier accès en base en erreur: Unknown column ‹ f.facnumber › in ‹ field list ›

Warning: Invalid argument supplied for foreach() in D:\CCTP Dolibarr\www\dolibarr\htdocs\accountancy\journal\purchasesjournal.php on line 217[/code]
Pour cette dernière erreur, j’ai remis le fichier purchasesjournal.php dans son état antérieur (j’ai annulé les modifications préconisées).

Pas de solution ?

Bonjour
Évitez de relancer votre question trop vite ! Un peu de patience.
Ceux qui vous aident sont tous bénévoles et dorment la nuit.
@+