Repérer les bons de commande inactifs

Identifie les bons de commande ouverts sans activité récente pour libérer les engagements budgétaires fictifs et relancer les fournisseurs en retard.

ProcurementController📆 MensuelDébutantLecture seule

Demandez-le comme ça

Quels bons de commande sont ouverts mais jamais facturés ?

Quand l'utiliser

Chaque mois, pour repérer les bons de commande à relancer, annuler ou clôturer.

Ce que ça produit

Rapport des POs inactifs par catégorie (> 90j, expirés, nouveaux non utilisés) avec engagement budgétaire immobilisé et actions recommandées.

Comment ça se déroule

  1. 1Liste les bons de commande ouverts
  2. 2Repère ceux dont la période est terminée sans facture
  3. 3Signale ceux dont la facture attendue est en retard
  4. 4Chiffre l'engagement restant par catégorie
  5. 5Suggère une action pour chacun : relancer, annuler ou clôturer

Ce qui vous protège

  • Ce skill ne fait que lire : il ne modifie rien dans Spendesk
  • Il agit avec vos permissions et votre rôle, jamais au-delà
  • L'assistant ne peut ni approuver ni payer
▸Détail technique78/100 · 2 outils
Budget & POsRéconciliationget_purchase_ordersget_supplier_by_id

# Audit des bons de commande inactifs

## But

Repérer les bons de commande ouverts qui ne vivent plus : aucune facture reçue, période terminée, facture attendue en retard. Ces bons de commande gonflent les engagements et attendent une décision : relancer le fournisseur, annuler ou clôturer.

Ce skill ne fait que lire. Annuler ou clôturer un bon de commande est irréversible et relève du skill dédié (permission « Manage purchase orders », en Beta).

## Étape 1 — Lister les bons de commande ouverts

```json
{ "tool": "get_purchase_orders", "params": { "status": ["open"], "pageSize": 100 } }
```

Champs à lire sur chaque bon de commande :

| Champ | Ce que c'est |
|-------|--------------|
| `purchaseOrderNumber`, `description` | Pour l'identifier |
| `amount` | Montant engagé **actuel** (voir limite) |
| `billedAmount` | Facturé à ce jour |
| `startDate`, `endDate` | Période de validité |
| `invoices` | Factures rattachées (vide s'il n'y en a pas) |
| `billingStatus` | Avancement de la facturation |

Il n'existe pas de champ `budgetAmount`, `invoicedAmount` ni `expectedDeliveryDate`. Paginer avec `page` tant que `hasNextPage` est `true`.

## Étape 2 — Classer

Pas besoin de chercher les factures du fournisseur : le rattachement est sur le bon de commande.

| Catégorie | Critère |
|-----------|---------|
| 🔴 Expiré, jamais facturé | `endDate` dépassée et `invoices` vide |
| 🟠 Facture en retard | `billingStatus` vaut `lateInvoice` |
| 🟡 Expiré, facturé en partie | `endDate` dépassée, `billedAmount` inférieur à `amount` |
| ⚪ En cours, pas encore facturé | `endDate` à venir et `invoices` vide : normal, à suivre |

Un bon de commande reste `open` après sa date de fin : rien ne le ferme automatiquement.

## Étape 3 — Chiffrer

- Engagement restant d'un bon de commande = `amount` − `billedAmount`.
- Totaliser par catégorie. Les montants sont dans la devise de chaque bon de commande : totaliser par devise.

## Étape 4 — Résoudre les fournisseurs

```json
{ "tool": "get_supplier_by_id", "params": { "id": "<supplierId>" } }
```

La fiche fournisseur ne contient pas d'email : la relance passe par vos propres contacts.

## Rapport

```
Bons de commande ouverts — <date du jour> : N, pour X EUR engagés

🔴 Expirés, jamais facturés : N — X EUR
🟠 Facture en retard : N — X EUR
🟡 Expirés, facturés en partie : N — reste X EUR
⚪ En cours, pas encore facturés : N — X EUR

| N° | Fournisseur | Objet | Engagé | Facturé | Fin de période | Action suggérée |
```

Actions suggérées : relancer le fournisseur (facture en retard), annuler (expiré, jamais facturé, sans dépense associée), clôturer (facturé et entièrement payé).

## Limites à dire

- `amount` n'est pas le montant approuvé à l'origine : Spendesk peut le réaligner sur le montant facturé. Un « reste » à zéro ne prouve pas que le budget initial a été respecté.
- Un bon de commande ne peut être annulé que s'il est ouvert, sans facture ni dépense associée, et clôturé que si toutes ses factures sont payées.
- Une facture du même fournisseur non rattachée au bon de commande n'apparaît pas ici : voir le skill de rapprochement factures et bons de commande.

## Résultat observé (compte démo, 5 octobre 2026)

13 bons de commande ouverts pour EUR 96 338,00 engagés, aucun facturé. Un seul était expiré et signalé en retard de facture : période terminée le 31 décembre 2025, EUR 558,00. Un autre arrivait à échéance le jour même. Les onze restants étaient en cours.

## Exemples de prompts
- "Quels bons de commande sont ouverts mais jamais facturés ?"
- "Y a-t-il des bons de commande expirés que je devrais clôturer ou annuler ?"
- "Combien d'engagement reste-t-il sur nos bons de commande ouverts ?"

Comment installer ce skill

/
  1. 1
    Télécharger le fichier s59-inactive-pos.md via le bouton ci-dessus.
  2. 2
    Placer le fichier dans le répertoire .claude/ de votre projet (ou ~/.claude/ pour une installation globale).
    cp s59-inactive-pos.md .claude/s59-inactive-pos.md
  3. 3
    Utiliser dans Claude Code — le skill est automatiquement découvert. Décrivez votre besoin en langage naturel et Claude appliquera les instructions du skill.
💡 Assurez-vous que le MCP Spendesk est configuré dans votre .claude/settings.json avec les outils get_purchase_orders, get_supplier_by_id.

Skills similaires

★ Top
95/100·🔍 Ponctuel·Expert

Auditer la couverture du MCP

Sonde tous les outils MCP disponibles, re-évalue la couverture des 50 cas d'usages persona, détecte les nouveaux champs ou outils, et régénère le rapport d'analyse des gaps.

CFOControllerAP Manager
90/100·📅 Hebdo·Débutant

Demandes de carte via get_requests

Explique comment utiliser get_requests pour les demandes de carte et pourquoi les remboursements de frais n'y apparaissent pas. Évite une source de confusion fréquente entre deux workflows distincts.

ControllerFinance Analyst
90/100·🔍 Ponctuel·Intermédiaire

Cost centers actifs vs archivés

Distingue les centres de coût actifs des archivés via le bon usage de get_cost_centers. Évite le piège de la convention de nommage isArchived vs isActive qui est contre-intuitive.

ControllerFinance Analyst

Interested in AI Agent services or Custom Integrations?