---
suivi: 1765
date: 2026-09-30
sujet: Chèque annulé dans Sage et virement par défaut
chantier: factures / paiement / sage
type: correctif
statut: poussé
hash:
fichiers:
  - app/Services/ChequeRealignementSageService.php
  - app/Http/Controllers/Admin/ChequeRealignementController.php
  - app/Support/PaiementComptaReglementResolver.php
  - app/Services/DepotFactureClaudeAnalysisService.php
  - app/Services/DepotFactureReglagesFournisseurResolver.php
  - app/Services/PaiementLignePersistService.php
  - app/Services/DepotReglementStatutService.php
  - app/Services/PaiementLignesPayablesService.php
  - app/Http/Controllers/DepotFactureController.php
  - routes/web.php
  - resources/js/Pages/Factures/Show.vue
  - resources/js/Pages/Factures/Paiement/Index.vue
  - resources/js/Pages/DepotFactures/DepotFactureSaisieForm.vue
  - resources/js/Pages/Admin/FacturesSuperadmin/ChequesRealignement.vue
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - tests/Unit/ChequeAnnuleModeVirement1765Test.php
  - public/build/
  - docs/suivi/SUIVI_1765_cheque_annule_mode_virement_defaut.md
---

# SUIVI #1765 — chèque supprimé dans Sage, virement par défaut

## PROMPT ENVOYÉ

PHASE 2, suite #1758 / #1764. Cas ELIS 2604901-973983 : paiement chèque supprimé dans Sage, bill ouvert, ERP encore « Paiement confirmé ». L'outil de réalignement doit proposer « Comptabilisée — à mettre en paiement » et réutiliser la marque d'un paiement annulé. Le mode envoyé est le virement, sauf choix explicite du chèque par la comptabilité. Une mention lue sur la facture fournisseur reste informative. Liste lecture seule des factures non payées en mode chèque. Aucune écriture Sage. ACH inchangé.

## FICHES LUES

- #1758 : ELIS payée au create, APPYMT Approved, bill non payé. Leçon : ne pas conclure « payé » sans confirmation Sage.
- #1764 : Printed Check suit Sage ; outil de réalignement ; garde « payée » qui ne recule pas hors outil. Leçon : le défaut de proposition quand l'état Sage est vide était « Paiement préparé ».
- #1693 : un paiement annulé se marque `intacct_appymt_state = V` sans supprimer la ligne. Leçon : un XML vide n'est pas un RECORDNO.
- #1703 : la ligne de paiement reste ; V / VOID / VOIDED n'est pas un paiement vivant. Leçon : un dialogue lit l'ERP, seul le POST relit Sage, un échec bloque.

La cible de l'outil #1764 n'a pas été élargie. ELIS y est déjà si la facture est payée, `intacct_when_paid` vide, l'état Sage n'est pas payé, et la ligne locale est Printed Check (pas déjà réglée, pas historique, pas acompte).

## SYNTHÈSE

Constat du « Mode : Chèque » (avant correctif) : Show.vue affichait `reglement_statut.mode_affichage`, alimenté par FactureController.php:1017 et DepotReglementStatutService (mise en paiement si renseignée, sinon PaiementComptaReglementResolver). Ce resolver lisait `ocr_raw.saisie.mode_reglement`, écrit par l'analyse de la facture (DepotFactureClaudeAnalysisService, `cheque` / `chèque` → Chèque), éventuellement recopié depuis la dernière facture du fournisseur (DepotFactureReglagesFournisseurResolver). La file Paiement reprenait ce mode. PaiementModeReglementMapper::toIntacctPaymentMethodForAppymt et PaiementAppymtExecutionService.php:67 / :106 en faisaient Printed Check.

Désormais une mention chèque ne part plus en chèque. Le mode envoyé est le virement, sauf choix sur l'écran de mise en paiement ou chèque marqué explicite à la saisie. La mention s'affiche : « Le fournisseur indique : chèque ».

Paiement Sage introuvable (réponse valide, zéro ligne) et bill Posted ou Selected avec total payé à 0 : proposition « Comptabilisée — à mettre en paiement ». Application : facture comptabilisée, état Sage vidé, paiement rouvert, ligne locale marquée V comme #1693. Échec de lecture : « non lue », rien modifié. Un bill déjà payé ne prend pas ce chemin.

## DÉPLOIEMENT-TEST

git pull origin main
php artisan route:clear
php artisan view:clear
php artisan journal:sync

Pas de migration. Pas de build sur le serveur.

1. Outil Réaligner les chèques : ELIS, Sage « aucun paiement, bill ouvert », proposé « Comptabilisée — à mettre en paiement ». Réaligner : ELIS dans la file Paiement, en virement.
2. Nouvelle facture dont le PDF dit « par chèque » : mise en paiement en virement, mention affichée.
3. Choix explicite Chèque : Printed Check, circuit chèque #1764.
4. Lecture Sage en échec : « non lue », rien modifié.
5. Bouton « Chèques non payés » : liste lecture seule.

## LEÇON

Une réponse Sage valide et vide n'est pas un échec, et ce n'est pas non plus « Paiement préparé ». Le mode lu sur le PDF n'est pas un choix de la comptabilité : sans marque explicite, le chèque ne doit pas sortir.
