---
name: s18-accounting-date-cloture
scenario: S18
description: Filtrer les payables par date comptable (accountingDate) pour la clôture mensuelle — avec gestion du risque feature désactivée
tags: [payables, accounting, month-end, date-filter, gotcha]
when_to_use: Quand un comptable veut les payables du mois de clôture filtrés par date comptable
risk: P0 — accountingDate est null par défaut si la feature n'est pas activée
---

# Instructions — Payables par date comptable (clôture mensuelle)

## ⚠️ Prérequis critique

Le champ `accountingDate` est une **fonctionnalité optionnelle désactivée par défaut** dans Spendesk.
Si elle est désactivée, `accountingDate` est `null` sur toutes les payables et un filtre sur ce champ retourne 0 résultats silencieusement.

**Avant d'utiliser ce filtre, vérifier** : appelle `get_payables` sans filtre de date sur 3 records et inspecte le champ `accountingDate`. S'il est `null`, la feature n'est pas activée — utiliser `payableDate` à la place.

## Étape 1 — Identifier la compagnie

Appelle `list_companies` pour obtenir le `companyId`.

## Étape 2 — Vérifier si accountingDate est activé

Appelle `get_payables` avec `pageSize=3` (sans filtre de date).
Inspecte `accountingDate` dans les résultats :
- Si peuplé → la feature est active, continuer
- Si `null` → **utiliser `payableDate` à la place** et informer l'utilisateur

## Étape 3a — Si accountingDate est activé

Appelle `get_payables` avec :
```
filters: { field: "accountingDate", operator: "between", value: { from: "<YYYY-MM-01T00:00:00.000Z>", to: "<YYYY-MM-lastDayT23:59:59.999Z>" } }
```

## Étape 3b — Si accountingDate est null (cas standard)

Appelle `get_payables` avec :
```
filters: { field: "payableDate", operator: "between", value: { from: "...", to: "..." } }
```

Et informer l'utilisateur : "La date comptable (accountingDate) n'est pas activée sur ce compte. Filtre effectué sur la date du document (payableDate)."

## Étape 4 — Pagination

Si `hasNextPage=true`, itérer avec le `cursor` jusqu'à épuisement.

## Étape 5 — Résultats

Afficher : nombre de payables, total en devise fonctionnelle (sommer `functionalAmount.amount / 10^precision`), répartition par `bookkeepingStatus`.

## Exemple de prompt

- "Montre-moi les factures de juin 2026 pour la clôture comptable"
- "Quelles payables ont une date comptable en juillet 2026 ?"
