feat(frontend): module Ventes complet (commandes, livraison, stock)
- Modèles Client, SalesOrder, SalesOrderLine - ClientService + SalesOrderService (create, deliver) - VentesProvider : chargement parallèle commandes + clients - VentesScreen : liste avec badges statut colorés - SalesOrderFormScreen : lignes dynamiques, calcul HT/TVA/TTC temps réel - SalesOrderDetailScreen : détail + bouton livrer + confirmation - Rapport PFE : section 5.7 module Ventes (cycle, statuts, UI) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -615,3 +615,70 @@ class Article {
|
||||
bool actif; // Soft delete
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5.7 Module Ventes
|
||||
|
||||
### Objectif
|
||||
|
||||
Le module Ventes couvre le **cycle de vente complet** de SUARL Rayhan, de la prise de commande client jusqu'à la livraison et la mise à jour automatique du stock.
|
||||
|
||||
### Cycle de vente
|
||||
|
||||
```
|
||||
Client passe commande
|
||||
│
|
||||
POST /api/sales-orders
|
||||
│
|
||||
Vérification stock disponible (backend)
|
||||
│
|
||||
Calcul automatique HT / TVA 19% / TTC
|
||||
│
|
||||
Commande → statut CONFIRMEE
|
||||
│
|
||||
POST /api/sales-orders/{id}/deliver
|
||||
│
|
||||
Bon de livraison généré (BL-XXXX-XXX)
|
||||
│
|
||||
Sortie de stock automatique
|
||||
│
|
||||
Commande → statut COMPLETEMENT_LIVREE
|
||||
```
|
||||
|
||||
### Statuts d'une commande
|
||||
|
||||
| Statut | Description | Couleur |
|
||||
|--------|-------------|---------|
|
||||
| CONFIRMEE | Commande validée, stock vérifié | Bleu |
|
||||
| EN_PREPARATION | En cours de préparation | Orange |
|
||||
| PARTIELLEMENT_LIVREE | Livraison partielle effectuée | Violet |
|
||||
| COMPLETEMENT_LIVREE | Toutes les lignes livrées | Vert |
|
||||
| ANNULEE | Commande annulée | Rouge |
|
||||
|
||||
### Fonctionnalités Flutter
|
||||
|
||||
**Écran liste (`VentesScreen`) :**
|
||||
- Liste de toutes les commandes avec badge statut coloré
|
||||
- Montant TTC visible directement sur la carte
|
||||
- Accès au détail par tap
|
||||
|
||||
**Formulaire création (`SalesOrderFormScreen`) :**
|
||||
- Sélection du client (dropdown)
|
||||
- Date de livraison souhaitée (sélecteur de date)
|
||||
- Lignes dynamiques : ajout / suppression d'articles
|
||||
- Sélection article (avec pré-remplissage du prix)
|
||||
- Quantité + prix unitaire HT
|
||||
- Calcul en temps réel du total HT / TVA / TTC
|
||||
- Notes optionnelles
|
||||
|
||||
**Écran détail (`SalesOrderDetailScreen`) :**
|
||||
- Toutes les informations de la commande
|
||||
- Liste des lignes avec quantités et montants
|
||||
- Récapitulatif financier HT / TVA / TTC
|
||||
- Bouton **Livrer** (affiché uniquement si la commande est livrable)
|
||||
- Confirmation de livraison avec mise à jour automatique du stock
|
||||
|
||||
### Sécurité stock
|
||||
|
||||
Le backend valide avant chaque création de commande que le stock disponible est suffisant pour chaque ligne. En cas d'insuffisance, l'API retourne une erreur explicite affichée à l'utilisateur.
|
||||
|
||||
Reference in New Issue
Block a user