Référence vers écriture du paiement d'une facture cassée

Bonjour,

J’ai fait une petite boulette : j’ai supprimé l’écriture bancaire du paiement d’une facture (au lieu de supprimer le paiement lui-même). Du coup, maintenant, le paiement a une référence cassée, et je ne peux plus ni le détruire ni l’éditer !

Pouvez-vous m’indiquer comment résoudre ce problème ? J’imagine qu’il va falloir aller taper dans la base de données ?

Merci d’avance.

Url sollicitée: /compta/bank/line.php?rowid=
Referer: https://dolibarr.logre.eu/compta/paiement/card.php?action=editnote&id=3
Gestionnaire de menu: eldy_menu.php

Modules/Applications: syslog, user, bookmark, adherent, comptabilite, banque, mailing, export, import, fckeditor, propal, don, ecm, facture, societe, categorie
Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: SELECT c.label, c.rowid FROM llx_bank_class as a, llx_bank_categ as c WHERE a.lineid= AND a.fk_categ = c.rowid ORDER BY c.label
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 MariaDB server version for the right syntax to use near 'AND a.fk_categ = c.rowid ORDER BY c.label' at line 1


Warning: Invalid argument supplied for foreach() in /var/www/html/compta/bank/line.php on line 253
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: 20211022094651
Dolibarr: 11.0.2
Niveau de fonctionnalités: 0
PHP: 7.2.28
Server: Apache/2.4.38 (Debian)
OS: Linux e18825c1f7e4 4.9.0-14-amd64 #1 SMP Debian 4.9.240-2 (2020-10-30) x86_64
UserAgent: Mozilla/5.0 (X11; Linux x86_64; rv:93.0) Gecko/20100101 Firefox/93.0

@fma38,

supprime le règlement de la facture et re-saisie le.

C’est justement ce qui ne marche pas, puisque le lien vers l’écriture de ce règlement est cassé…

Tu as quoi comme message d’erreur quand tu essaie de supprimer le règlement ? (photo d’écran stp)

L’erreur pourrie habituelle de MariaDB :

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1

Mais si je vais sur ce règlement, et que je clique sur éditer l’écriture, ça me sort ce que j’ai mis dans mon premier post…

Du coup, une idée comment réparer ça ?

PS : au passage, il ne devrait pas être possible de supprimer une entrée référencée par une autre entrée. Il me semble que MySQL (ou MariaDB) permet de créer des tables liées qui empèche ça, non ?

Ou alors, au minimum mettre un warning…

Salut @fma38 ,

  1. prends une photo d’écran de ta facture stp (en masquant ce qui doit l’être)

  2. as tu un symbole « poubelle » à droite du règlement ?
    Que se passe t-il si tu clique dessus ?

  3. clique sur le numéro du paiement pour avoir son détail
    ->photo d’écran

  4. que se passe t il si tu clique sur « supprimer » ?

  5. clique sur le numéro d’écriture bancaire : que se passe t il ? photo d’écran

  6. si ça t’affiche une écriture : décoche « rapprochée » et enregistre et tente à nouveau la suppression (photo d’écran)

  1. oui. Si je clique dessus, ça me donne l’erreur MariaDB citée plus haut
  2. pareil qu’en 2
  3. ça donne l’erreur plus complète que j’ai postée plus haut (je n’ai pas tout mis, y’a sans doute des infos à ne pas transmettre ; faut que je vois avec l’admin de la machine ce que je peux montrer ou pas.

ok,

et si tu retournes dans les « lignes à lier » en compta" : tu as des choses qui trainent ?
et re-fare une intégration du journal dans le grand livre.

Ah, je n’utilise pas la Compta, donc je n’ai pas ces menus…

Je précise qu’on a tenté une réparation décrite ici : Troubleshooting - Dolibarr ERP CRM Wiki

Sans succès.

Bon, on a finalement remonté un backup, et tout est rentré dans l’ordre.

Mais ce serait bien 1) d’avoir au moins un avertissement lorsqu’on qu’on essaye de détruire une écriture référencée 2) qu’une fois l’écriture détruite, la procédure de réparation répare réellement la base.

Je précise que j’avais déjà fais ce genre de boulette avec une cotisation adhérent, et ça m’avait foutu le même bouzin, sans solution.

Quoi qu’il en soit, merci pour votre aide !

J’ai eu ce problème aujourd’hui.
Impossible de supprimer l’écriture de règlement.
Rien était écrit dans le grand livre.

J’ai donc supprimé le règlement de la facture dans la BDD : la dernière ligne sur les tables paiement et paiement_facture

Après recherche, ces lignes n’étaient pas liées à d’autres tables (mais je peux me tromper)

Cependant, c’est toujours délicat de supprimer des éléments dans la BDD. Il serai effectivement bien d’avoir quelque chose qui check les liens cassés et propose de les supprimer correctement.