Contexte du document
Cycle commercial de la prospection à la commande. Socle mature et convergent sur l’ensemble du
marché étudié, ERP libres comme propriétaires (pirates:analyses/transversales/matrice-fonctionnelle-globale.md §2, DOM-01) ;
l’apport rare est l’UX pipeline Kanban, différenciateur identifié par l’analyse
concurrentielle. Objets pivots : partner, opportunity, quotation, sales_order.
Aucune reprise de code des ERP étudiés.
Restriction de livraison au Lot 0
DEC-0071 limite les traitements du Lot 0 aux articles sans gestion de stock (prestations, abonnements par exemple). Les scénarios de recette de ce lot respectent cette restriction ; les articles gérés en stock ne sont pas traités par ces parcours au Lot 0. La cible fonctionnelle générale est conservée, sans suppression des données du catalogue ni avancement implicite du stock ou de la facturation récurrente.
Exigence détaillée
- Priorité : Must
- Domaine : DOM-01
- Énoncé : « Elena doit fournir un catalogue
productcouvrant articles stockables et services non stockables, réutilisable en vente, achat, stock et fabrication. » - Justification : convergence marché (
pirates:analyses/transversales/matrice-fonctionnelle-globale.md §5). ERPNext unifie les usages par booléens sur un seulItem(is_stock_item,is_purchase_item,is_sales_item) ; Dolibarr distinguemodProduct/modService. - Critères d’acceptation :
- CA-01 — Un
productdéclare son caractère vendable / achetable / stockable / fabricable. - CA-02 — Unités de vente/achat/stock distinctes avec conversions.
- CA-03 — Tarifs multiples et catégorisation.
- CA-04 — Un
productpeut être supprimé uniquement s’il n’est référencé par aucun objet métier ; lorsqu’une référence ou un historique existe, la suppression est refusée et sa désactivation viais_active = falsereste possible. - CA-05 — Un
productne porte aucun champexternal_id; ses zéro à plusieurs références externes sont conservées dans une structure dédiée et administrées par la fonction propriétaire de chaque correspondance, notamment EDI. - CA-06 — La modification, l’activation, la désactivation et la suppression définitive d’un
productexigent respectivementarticle.update,article.activate,article.deactivateetarticle.delete; aucune de ces permissions n’en accorde une autre, etarticle.deletene lève jamais le refus dû à une référence métier. - CA-07 — Un
productinactif est masqué par défaut dans les sélecteurs métier et refusé côté serveur dans tout nouveau document ; il reste visible dans les documents existants et historiques. - CA-08 — Une correction, un retour ou un avoir peut reprendre un
productinactif uniquement lorsque celui-ci est la référence historique du document existant explicitement lié ; la recherche d’administration ne l’inclut qu’au moyen d’un filtre de statut explicite. - CA-09 — L’import d’un nouveau document refuse tout
productinactif ; seul l’import d’une correction explicitement rattachée à un document existant peut reprendre sa référence historique. Un import de référentiel peut mettre à jour un article inactif ou le réactiver selon les permissions effectives ; toute réactivation exigearticle.activateet est auditée. - CA-10 — La fiche
productaffiche, selon leur utilité, une synthèse en lecture seule des tarifs, références externes multiples, libellés multilingues et paramètres documentaires administrés par d’autres fonctions ; chaque synthèse respecte le droit de consultation de son propriétaire et propose un lien vers cette fonction lorsqu’elle est disponible, sans que son absence temporaire bloque la fiche Article. - CA-11 — Aucune donnée administrée par une fonction propriétaire n’est modifiable depuis la fiche
product; les facettes UI-only ne constituent pas des surfaces d’administration et ne produisent aucune donnée métier.
- CA-01 — Un
- Conditionne : EXG-04-001 (article stockable).
- Dépendances : EXG-01-005, EXG-12-002 (relation annotée « unités », mais l’exigence cible porte sur les séquences ; arbitrage requis), EXG-13-002, EXG-13-003, EXG-13-006, EXG-14-005, DEC-0029, DEC-0037, DEC-0038, DEC-0039, DEC-0040.