mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-12 01:37:40 +02:00
feat(api): compléter la facture des fournisseurs en rapprochement automatique (#568)
Les livraisons d'un fournisseur en rapprochement automatique sont validées d'office à la saisie du BL ; PATCH /api/ext/v1/deliveries/:id les refusait donc (409) sauf à les dévalider. Pour ces fournisseurs, la référence, les montants HT/TTC et l'échéance s'écrivent désormais directement, la livraison restant validée. - automaticReconciliation exposé sur chaque livraison renvoyée par l'API - documentation mise à jour avec un exemple Claude-Session: https://claude.ai/code/session_01LEhR8Cok79VpsxixhrKChM Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
1 parent
6f1a39e4b2
commit
bd3bb5e64a
2 files changed
+27
-3
No files matched your search
@@ -2,7 +2,8 @@
|
||||
//
|
||||
// Permet à un outil tiers (comptabilité, n8n, script...) de lire les magasins,
|
||||
// les fournisseurs et les livraisons livrées (numéros de BL), puis d'écrire la
|
||||
// référence et le montant de la facture sur une livraison.
|
||||
// référence, les montants et l'échéance de la facture sur une livraison (y
|
||||
// compris déjà validée, pour les fournisseurs en rapprochement automatique).
|
||||
//
|
||||
// Authentification par clé d'API, indépendante des sessions du webUI :
|
||||
// - variable d'environnement EXTERNAL_API_KEYS (une ou plusieurs clés
|
||||
@@ -127,6 +128,7 @@ function toApiDelivery(d: any) {
|
||||
supplierId: d.supplierId,
|
||||
supplierName: d.supplier?.name ?? null,
|
||||
supplierCode: d.supplier?.codefou ?? null,
|
||||
automaticReconciliation: !!d.supplier?.automaticReconciliation,
|
||||
status: d.status,
|
||||
scheduledDate: toIsoDate(d.scheduledDate),
|
||||
deliveredDate: toIsoDateTime(d.deliveredDate),
|
||||
@@ -304,8 +306,11 @@ export function registerExternalApi(app: Express) {
|
||||
|
||||
const touchesInvoice = INVOICE_FIELDS.some((f) => body[f] !== undefined);
|
||||
// Une livraison rapprochée est figée, comme dans le webUI : il faut la
|
||||
// dévalider (reconciled: false) pour modifier sa facture.
|
||||
if (delivery.reconciled && touchesInvoice && body.reconciled !== false) {
|
||||
// dévalider (reconciled: false) pour modifier sa facture. Exception : les
|
||||
// fournisseurs en rapprochement automatique, validés d'office dès la
|
||||
// saisie du BL, dont la facture arrive après et se complète sans dévalider.
|
||||
const isAutomatic = !!delivery.supplier?.automaticReconciliation;
|
||||
if (delivery.reconciled && !isAutomatic && touchesInvoice && body.reconciled !== false) {
|
||||
return res.status(409).json({
|
||||
error: "Livraison déjà rapprochée : envoyer reconciled: false pour la dévalider avant de modifier la facture",
|
||||
});
|
||||
|
||||
Reference in new issue
Block a user