Créer une vue de réception de facture fournisseur (validation en plusieurs fact. fournisseur)
Prérequis à ce ticket : #1640 (closed)
Ticket sur thématique proche : #1480 (closed)
Besoin
Il existe des métiers dans lesquels les fournisseurs facturent tous les ES d'un coup :
Les ES font des commandes direct chez leurs fournisseur avec leur carte pro, et en facturant au nom de la CAE, sans régler (si ça n'est éventuellement un accompte). Le fournisseur envoie UNE facture récap (ex : mensuellement) pour tous les ES clients chez lui (cette facture distingue les achats des un·e·s et des autres sur des lignes séparées, mentionnant le code analytique de chaque enseigne).
Dans notre découpage, un document-étape facture fournisseur ne concerne qu'une seule enseigne. On a donc pas de facture fournisseur multi-enseigne, ce qui évite de faire exploser la complexité du modèle et des interfaces.
On ne s'interdit pas cependant d'avoir pour un même document fournisseur (ex: la facture mensuelle avec toutes les enseignes dessus) qui soit « éclaté », dans enDi en plusieurs de nos « factures fournisseur » (les comptables font de toutes façons ce travail, endi ou pas endi).
Il faudrait par contre une fonction d'accélération pour éviter à l'EA de devoir passer par chaque enseigne pour y saisir ses lignes de facture.
Fonction
- En tant qu'EA : une vue qui permette de saisir le contenu du document envoyé par le fournisseur (PDF/papier), ligne par ligne, avec des champs globaux à la facture et des champs pour chaque ligne (cf wireframe)
- vérifier que les totaux du document et les totaux par ligne correspondent.
- quand on valide cette vue, elle crée des factures fournisseur en lot : une par enseigne.
Implémentation
Modèle (SQLA)
Néant
Vue
- la vue Full-JS (ou pas
👷 ) décrite par le wireframe- on liste tous les fournisseurs de toutes les enseignes, à condition qu'ils définissent un SIRET. (en attendant #1480 (closed) pour une gestion plus fine)
Contrôleur
-
Un vue d'API (dans supply.views.rest_api) associée dédiée
-
Au submit :
- pour les fournisseurs, si jamais il n'existe pas (matching sur le SIRET) pour l'enseigne concernée, on le crée à la volée (en attendant #1480 (closed) pour une gestion plus fine) : on maximise l'efficacité EA quitte à risquer de créer des doublons pour les enseignes.
- on enregistre une commande pour chaque enseigne concernée (en recopiant les champs du haut de la capture pour créer les infos de la commande)
- on y insère les lignes qui concernent l'enseigne concernée