---
suivi: 1740
date: 2026-09-28
sujet: Lecture du lien avance et demande de paiement
chantier: comptabilite / sage / acompte
type: diagnostic
statut: poussé
hash:
fichiers:
  - app/Services/IntacctService.php
  - app/Services/FactureLectureSageBruteService.php
  - resources/js/Pages/Admin/FacturesSuperadmin/Show.vue
  - tests/Unit/AcompteDemandePaiement1740Test.php
  - public/build/
  - docs/suivi/SUIVI_1740_acomptes_demande_paiement.md
---

# SUIVI #1740 — lien avance et demande de paiement

## PROMPT ENVOYÉ

Faire suivre à la frise des acomptes la demande de paiement Sage, comme les factures. Constater d'abord le champ qui relie l'avance 1674392 à cette demande. Si la lecture ne trouve pas le lien, s'arrêter après l'outil de lecture.

## FICHES LUES

- #1738 — la frise acompte ne lit que l'APADVANCE. In process + rien de payé = silence. Advance paid = payé. Impact : ce lot ne change pas cette décision.
- #1618 LEÇON — la clé qui paie un APADVANCE n'est pas établie. ADVANCEKEY documenté = consommer une avance déjà payée. Ne pas mettre le RECORDNO d'avance dans RECORDKEY sans témoin. Impact : les deux critères sont lus et affichés, aucun n'est appliqué à la frise.
- #1616 LEÇON — pas de intacct_bill_id pour une avance. Impact : aucun écriture de ce champ.

## CONSTAT

Documentation Sage, AP Payments, champs de requête APPYMTDETAIL : RECORDKEY = facture fournisseur positive, ADVANCEKEY = avance. Aide « About AP advances » : Sage crée une demande de paiement avec l'avance ; le statut Delivered laisse l'avance « In process ».

Code existant : `probeReadAppymtDetailsByRecordKey` interroge RECORDKEY pour une facture. La sonde #1618 interroge RECORDKEY et ADVANCEKEY, sans témoin lu.

Lecture web locale du 28/09/2026, avance 1674392, session générale : Sage répond « Login information is incorrect ». La base locale refuse la connexion, l'entité de la facture 1661 n'a pas été lue. Aucune ligne APPYMTDETAIL ni APPYMT n'a été obtenue. Le lien n'est pas établi. La frise n'est pas modifiée.

## SYNTHÈSE

Le panneau super-admin, sous l'APADVANCE, interroge APPYMTDETAIL par RECORDKEY puis par ADVANCEKEY, puis l'APPYMT de chaque PAYMENTKEY. Chaque lecture affiche présent, introuvable ou échec, et tous les champs renvoyés. Le journal intacct note les deux critères, les DISPLAYSTATE et la décision d'avance. `lien_applique` reste faux. Factures, file à payer et création d'avance : non touchées.

Boucles relues : le classement des sondes reprend le même enchaînement que la lecture facture (entité puis session générale, première série de lignes non vide). `paymentKeyLigne` ignore les valeurs qui sont des tableaux. Aucune closure nouvelle. Aucune transaction.

## DÉPLOIEMENT-TEST

git pull origin main
php artisan view:clear

Pas de migration. Pas de journal.

Sur `/admin/factures-superadmin/1661`, « Lire Sage maintenant ». Noter, pour RECORDKEY et pour ADVANCEKEY, l'issue et, s'il y a une ligne, le PAYMENTKEY et le DISPLAYSTATE de l'APPYMT. C'est ce constat qui décide si la frise peut suivre la demande.

## LEÇON

Ne pas brancher `mapperVersEtatErp` sur un RECORDNO d'avance tant que la lecture prod n'a pas montré le champ qui porte la demande « Livré ». Les deux critères restent affichés côte à côte.
