---
name: s13-ap-outstanding-calcul
scenario: S13
description: Calculer l'encours fournisseurs réel (AP outstanding) en tenant compte des paiements partiels et des révisions
tags: [payables, AP, outstanding, allocations, finance]
when_to_use: Quand un DAF ou comptable veut connaître le montant exact dû aux fournisseurs
risk: P0 — Sommer `amount` sur paymentStatus=toPay surestime l'AP réel (factures partiellement payées incluses avec leur montant TOTAL)
---

# Instructions — Calcul de l'encours fournisseurs (AP outstanding)

## ⚠️ Règle critique

Le champ `amount` d'une payable est **toujours le montant total de la facture**, jamais réduit par des paiements partiels.
`paymentStatus=toPay` inclut les factures **partiellement payées** — ne pas sommer `amount` directement.

**Formule correcte** : pour chaque payable `toPay`, l'encours réel = `amount.amount - sum(allocations[].amount.amount)`

## Étape 1 — Récupérer les payables impayées

Appelle `get_payables` avec :
```
filters: { field: "paymentStatus", operator: "=", value: ["toPay"] }
```

Paginer si `hasNextPage=true`.

## Étape 2 — Pour chaque payable, calculer le vrai solde restant

```
Pour chaque payable p :
  allocations_sum = sum(p.allocations[i].amount.amount)
  encours_reel = p.amount.amount - allocations_sum
  encours_decimal = encours_reel / 10^p.amount.precision
```

Exemples de cas réels rencontrés :
- Payable avec allocations `[+11 106, -11 106]` → net = 0 → encours = 0 (paiement puis révision)
- Payable avec allocations `[]` → encours = montant total → facture non payée
- Payable avec allocation `[-250 000]` sur avoir de `-300 000` → 50 000 encore à appliquer

## Étape 3 — Agréger en devise fonctionnelle

**Attention** : les montants sont en devises diverses. Utiliser `functionalAmount` (en devise fonctionnelle de la compagnie) pour l'agrégation, pas `amount` (devise de la facture).

Calculer `encours_fonctionnel` = `functionalAmount.amount - sum(allocations_fonctionnels)`.

## Étape 4 — Résumé

Afficher :
- Total encours en devise fonctionnelle
- Nombre de factures concernées
- Top 5 fournisseurs par encours
- Signaler les payables avec allocations complexes (révisions, avoirs partiels)

## Exemple de prompt

- "Quel est notre encours fournisseurs total ?"
- "Combien doit-on encore aux fournisseurs ce mois-ci ?"
