Voici ou nous en sommes donc dans la recherche du bug. (Rappel : Je ne peux plus supprimer aucune facture depuis Dolibarr, même les dernières crées, en brouillon et sans paiement)
Observation : ça ne concerne que les factures clients. Aucun soucis avec les factures fournisseurs.
Voici les logs que j’obtiens quand je tente de supprimer une facture client (la plus récente, à l’état de brouillon sans paiement) depuis dolibarr :
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 BEGIN Transaction
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 Facture::deleteExtraFields delete
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 sql=DELETE FROM llx_facture_extrafields WHERE fk_object = 748
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 Facture::deleteObjectLinked
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 sql=DELETE FROM llx_element_element WHERE (fk_source = 748 AND sourcetype = 'facture') OR (fk_target = 748 AND targettype = 'facture')
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 sql=DELETE FROM llx_societe_remise_except WHERE fk_facture_source = 748 AND fk_facture_line IS NULL
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 Facture::fetch_lines
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 sql=SELECT l.rowid, l.fk_facture, l.fk_product, l.fk_parent_line, l.label as custom_label, l.description, l.product_type, l.price, l.qty, l.vat_src_code, l.tva_tx, l.localtax1_tx, l.localtax2_tx, l.localtax1_type, l.localtax2_type, l.remise_percent, l.fk_remise_except, l.subprice, l.ref_ext, l.situation_percent, l.fk_prev_id, l.rang, l.special_code, l.date_start as date_start, l.date_end as date_end, l.info_bits, l.total_ht, l.total_tva, l.total_localtax1, l.total_localtax2, l.total_ttc, l.fk_code_ventilation, l.fk_product_fournisseur_price as fk_fournprice, l.buy_price_ht as pa_ht, l.fk_unit, l.fk_multicurrency, l.multicurrency_code, l.multicurrency_subprice, l.multicurrency_total_ht, l.multicurrency_total_tva, l.multicurrency_total_ttc, p.ref as product_ref, p.fk_product_type as fk_product_type, p.label as product_label, p.description as product_desc FROM llx_facturedet as l LEFT JOIN llx_product as p ON l.fk_product = p.rowid WHERE l.fk_facture = 748 ORDER BY l.rang, l.rowid
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 sql=UPDATE llx_eventorganization_conferenceorboothattendee SET fk_invoice = NULL WHERE fk_invoice = 748
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 sql=UPDATE llx_projet_task_time SET invoice_id = NULL, invoice_line_id = NULL WHERE invoice_id = 748
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 sql=DELETE FROM llx_facturedet_extrafields WHERE fk_object IN (SELECT rowid FROM llx_facturedet WHERE fk_facture = 748)
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 sql=DELETE FROM llx_facturedet WHERE fk_facture = 748
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 sql=SELECT DISTINCT tc.rowid, tc.code, tc.libelle, tc.position FROM llx_c_type_contact as tc WHERE tc.element='facture' ORDER BY position ASC, code ASC
2023-08-13 17:22:09 DEBUG 2a01:cb08:8148:4300:409c:a886:798e:8d7 ROLLBACK Transaction
Et voici ce que je devrais avoir :
2023-08-12 11:46:44 DEBUG 127.0.0.1 BEGIN Transaction
2023-08-12 11:46:44 INFO 127.0.0.1 Trigger 'ActionsBlockedLog' for action 'BILL_DELETE' launched by /opt/lampp/htdocs/dolibarr_1703/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php. id=7
2023-08-12 11:46:44 DEBUG 127.0.0.1 Facture::deleteExtraFields delete
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=DELETE FROM llx_facture_extrafields WHERE fk_object = 7
2023-08-12 11:46:44 INFO 127.0.0.1 Trigger 'ActionsBlockedLog' for action 'OBJECT_LINK_DELETE' launched by /opt/lampp/htdocs/dolibarr_1703/htdocs/core/triggers/interface_50_modBlockedlog_ActionsBlockedLog.class.php. id=7
2023-08-12 11:46:44 DEBUG 127.0.0.1 Facture::deleteObjectLinked
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=DELETE FROM llx_element_element WHERE (fk_source = 7 AND sourcetype = 'facture') OR (fk_target = 7 AND targettype = 'facture')
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=DELETE FROM llx_societe_remise_except WHERE fk_facture_source = 7 AND fk_facture_line IS NULL
2023-08-12 11:46:44 DEBUG 127.0.0.1 Facture::fetch_lines
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=SELECT l.rowid, l.fk_facture, l.fk_product, l.fk_parent_line, l.label as custom_label, l.description, l.product_type, l.price, l.qty, l.vat_src_code, l.tva_tx, l.localtax1_tx, l.localtax2_tx, l.localtax1_type, l.localtax2_type, l.remise_percent, l.fk_remise_except, l.subprice, l.ref_ext, l.situation_percent, l.fk_prev_id, l.rang, l.special_code, l.date_start as date_start, l.date_end as date_end, l.info_bits, l.total_ht, l.total_tva, l.total_localtax1, l.total_localtax2, l.total_ttc, l.fk_code_ventilation, l.fk_product_fournisseur_price as fk_fournprice, l.buy_price_ht as pa_ht, l.fk_unit, l.fk_multicurrency, l.multicurrency_code, l.multicurrency_subprice, l.multicurrency_total_ht, l.multicurrency_total_tva, l.multicurrency_total_ttc, p.ref as product_ref, p.fk_product_type as fk_product_type, p.label as product_label, p.description as product_desc FROM llx_facturedet as l LEFT JOIN llx_product as p ON l.fk_product = p.rowid WHERE l.fk_facture = 7 ORDER BY l.rang, l.rowid
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=UPDATE llx_eventorganization_conferenceorboothattendee SET fk_invoice = NULL WHERE fk_invoice = 7
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=UPDATE llx_projet_task_time SET invoice_id = NULL, invoice_line_id = NULL WHERE invoice_id = 7
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=DELETE FROM llx_facturedet_extrafields WHERE fk_object IN (SELECT rowid FROM llx_facturedet WHERE fk_facture = 7)
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=DELETE FROM llx_facturedet WHERE fk_facture = 7
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=SELECT DISTINCT tc.rowid, tc.code, tc.libelle, tc.position FROM llx_c_type_contact as tc WHERE tc.element='facture' ORDER BY position ASC, code ASC
2023-08-12 11:46:44 DEBUG 127.0.0.1 Facture::delete_linked_contact
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=DELETE FROM llx_element_contact WHERE element_id = 7 AND fk_c_type_contact IN (60,50,62,61)
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=DELETE FROM llx_facture WHERE rowid = 7
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=DELETE FROM llx_ecm_files_extrafields WHERE fk_object IN ( SELECT rowid FROM llx_ecm_files WHERE filename LIKE '(PROV7)%' AND filepath = 'facture/(PROV7)' AND entity = 1)
2023-08-12 11:46:44 DEBUG 127.0.0.1 sql=DELETE FROM llx_ecm_files WHERE filename LIKE '(PROV7)%' AND filepath = 'facture/(PROV7)' AND entity = 1
2023-08-12 11:46:44 DEBUG 127.0.0.1 COMMIT Transaction