diff --git a/lib/pages/commandes_screen.dart b/lib/pages/commandes_screen.dart index cfde96e..25d5980 100644 --- a/lib/pages/commandes_screen.dart +++ b/lib/pages/commandes_screen.dart @@ -3,7 +3,6 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'dart:convert'; -import './PlatEdit_screen.dart'; import 'commande_item_screen.dart'; @@ -19,18 +18,11 @@ class _OrdersManagementScreenState extends State { bool isLoading = true; String? errorMessage; final String baseUrl = 'https://restaurant.careeracademy.mg/api'; - Map? menuMap; + @override void initState() { super.initState(); loadOrders(); - loadMenuMap(); - } - - Future loadMenuMap() async { - final loadedMenuMap = await fetchMenuMap(); - - menuMap = loadedMenuMap; } Future loadOrders() async { @@ -536,7 +528,6 @@ class _OrdersManagementScreenState extends State { onProcessPayment: processPayment, onDelete: deleteOrder, onViewDetails: () => getOrderById(order.id), - menuMap: menuMap, ); }, ), @@ -544,30 +535,6 @@ class _OrdersManagementScreenState extends State { } } -/// Récupère la liste des menus et la stocke dans un [Map] -/// où la clé est l'ID du menu et la valeur est le [MenuPlat] correspondant. -/// -/// Si la requête échoue, lève une [Exception] avec un message d'erreur. -Future> fetchMenuMap() async { - final response = await http.get( - Uri.parse('https://restaurant.careeracademy.mg/api/menus'), - ); - - if (response.statusCode == 200) { - final List menuList = json.decode(response.body); - final Map menuMap = {}; - - for (var menu in menuList) { - final menuPlat = MenuPlat.fromJson(menu); - menuMap[menuPlat.id] = menuPlat; - } - - return menuMap; - } else { - throw Exception('Échec de la récupération des menus'); - } -} - class OrderCard extends StatelessWidget { final Order order; final Function(Order, String, {String? modePaiement}) onStatusUpdate; @@ -575,19 +542,14 @@ class OrderCard extends StatelessWidget { final Function(Order) onDelete; final VoidCallback onViewDetails; - // Add menuMap field to have access to menu names - - // late Future> menuMapFuture = fetchMenuMap(); - final Map menuMap; - OrderCard({ - super.key, + const OrderCard({ + Key? key, required this.order, required this.onStatusUpdate, required this.onProcessPayment, required this.onDelete, required this.onViewDetails, - required this.menuMap, // Require menuMap in constructor - }); + }) : super(key: key); String _formatTime(DateTime dateTime) { return '${dateTime.hour.toString().padLeft(2, '0')}:${dateTime.minute.toString().padLeft(2, '0')} •${dateTime.day.toString().padLeft(2, '0')}/${dateTime.month.toString().padLeft(2, '0')}/${dateTime.year} •1 personne'; @@ -713,7 +675,7 @@ class OrderCard extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( - '${item.quantite}x ${item.getNomById(menuMap)}', + '${item.quantite}x ${item.menuId}', // You might want to resolve menu name style: const TextStyle( fontSize: 14, color: Colors.black87, @@ -960,9 +922,4 @@ class OrderItem { commentaires: json['commentaires'], ); } - - // Pass a Map of menus to get the name - String getNomById(Map menuMap) { - return menuMap[menuId]?.nom ?? 'Menu Item $menuId'; - } }