@mostajs/cod
v0.2.0
Published
L'argent du contre-remboursement de la plateforme ColisTrax : encaissé par le livreur à la porte, remis à la caisse du bureau avec attendu, déclaré, remis, écart et motif ; mouvements chaînés par bureau. Fonds de l'expéditeur, jamais recette du bureau.
Maintainers
Readme
@mostajs/cod
Auteur : Dr Hamid MADANI [email protected] · Licence AGPL-3.0-or-later
L'argent du contre-remboursement (COD) de la plateforme ColisTrax, de la porte du destinataire à la caisse du bureau.
- encaisser : le livreur reçoit l'argent à la porte. Le montant est déclaré par la tournée (
@mostajs/tournees), avec l'attendu (le COD du colis). Il se fait une fois par colis. À partir de là, le livreur détient l'argent. - encaisserEnLigne : le destinataire a payé en ligne. Pas de livreur ; la référence du paiement est requise (
par: moyen ou prestataire, facultatif). Cet argent n'est jamais à remettre à la caisse. - Un colis s'encaisse une seule fois, en espèces ou en ligne : la seconde tentative est refusée (
E_DOUBLON). - remettre : la caisse du bureau reçoit d'un livreur tout ce qu'il détient pour ce bureau.
- Elle note l'attendu, le déclaré et le remis.
- L'écart est
remis − attendu. Dès qu'il y en a un, le motif est requis. - La remise est numérotée (numérotation injectée) et figée.
- detenteur(colis) : qui détient l'argent de ce colis, le livreur, la caisse, ou
CHEZ_EN_LIGNE(payé en ligne, avec sa référence). - soldes(bureau) : ce qui est chez les livreurs et ce qui est en caisse ; dès qu'un paiement en ligne existe,
enLigneetcolisEnLignes'y ajoutent (dus aussi à l'expéditeur). - verifier(bureau) : les mouvements, paiements en ligne compris, sont chaînés par bureau ; un mouvement retiré, ajouté ou modifié se voit.
⚠️ Cet argent n'est pas une recette. Il appartient à l'expéditeur, qui le recevra par reversement. Il n'entre jamais dans le registre des règlements du bureau (@mostajs/encaissement), qui compte ce que le bureau a gagné.
import { createCod } from '@mostajs/cod';
const cod = createCod({ repositories: { mouvements, remises }, numeroter: ({ bureau }) => numbering.next('paiement') });
await cod.encaisser({ colis, montant: 370000, attendu: 420000, bureau: 'orn-01', livreur, tournee }, { agent: livreur });
await cod.encaisserEnLigne({ colis: autre, montant: 250000, attendu: 250000, bureau: 'orn-01', reference: 'PSP-889911', par: 'carte' });
const r = await cod.remettre({ bureau: 'orn-01', livreur, remis: 370000, motif: 'Paiement partiel accepté par le livreur' }, { agent: caissier });Les montants sont des entiers en unité mineure (centimes). Les tables se déclarent par @mostajs/cod/register.
À venir : la remontée à la Direction et le reversement à l'expéditeur.
