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:
@@ -0,0 +1,14 @@
|
||||
import 'api_client.dart';
|
||||
import '../models/client.dart';
|
||||
|
||||
class ClientService {
|
||||
static Future<List<Client>> fetchAll() async {
|
||||
final res = await ApiClient.instance.get('/clients');
|
||||
return (res.data as List).map((e) => Client.fromJson(e)).toList();
|
||||
}
|
||||
|
||||
static Future<Client> create(Client client) async {
|
||||
final res = await ApiClient.instance.post('/clients', data: client.toJson());
|
||||
return Client.fromJson(res.data);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import 'api_client.dart';
|
||||
import '../models/sales_order.dart';
|
||||
|
||||
class SalesOrderService {
|
||||
static Future<List<SalesOrder>> fetchAll() async {
|
||||
final res = await ApiClient.instance.get('/sales-orders');
|
||||
return (res.data as List).map((e) => SalesOrder.fromJson(e)).toList();
|
||||
}
|
||||
|
||||
static Future<SalesOrder> create(SalesOrder order) async {
|
||||
final res = await ApiClient.instance.post('/sales-orders', data: order.toJson());
|
||||
return SalesOrder.fromJson(res.data);
|
||||
}
|
||||
|
||||
static Future<void> deliver(int orderId, Map<String, dynamic> bonLivraison) async {
|
||||
await ApiClient.instance.post('/sales-orders/$orderId/deliver', data: bonLivraison);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user