tsy hita
This commit is contained in:
parent
646efaad64
commit
58bff6bf42
@ -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';
|
||||
|
||||
class OrdersManagementScreen extends StatefulWidget {
|
||||
const OrdersManagementScreen({super.key});
|
||||
@ -17,18 +16,11 @@ class _OrdersManagementScreenState extends State<OrdersManagementScreen> {
|
||||
bool isLoading = true;
|
||||
String? errorMessage;
|
||||
final String baseUrl = 'https://restaurant.careeracademy.mg/api';
|
||||
Map<int, MenuPlat>? menuMap;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
loadOrders();
|
||||
loadMenuMap();
|
||||
}
|
||||
|
||||
Future<void> loadMenuMap() async {
|
||||
final loadedMenuMap = await fetchMenuMap();
|
||||
|
||||
menuMap = loadedMenuMap;
|
||||
}
|
||||
|
||||
Future<void> loadOrders() async {
|
||||
@ -529,7 +521,6 @@ class _OrdersManagementScreenState extends State<OrdersManagementScreen> {
|
||||
onProcessPayment: processPayment,
|
||||
onDelete: deleteOrder,
|
||||
onViewDetails: () => getOrderById(order.id),
|
||||
menuMap: menuMap,
|
||||
);
|
||||
},
|
||||
),
|
||||
@ -537,30 +528,6 @@ class _OrdersManagementScreenState extends State<OrdersManagementScreen> {
|
||||
}
|
||||
}
|
||||
|
||||
/// 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<Map<int, MenuPlat>> fetchMenuMap() async {
|
||||
final response = await http.get(
|
||||
Uri.parse('https://restaurant.careeracademy.mg/api/menus'),
|
||||
);
|
||||
|
||||
if (response.statusCode == 200) {
|
||||
final List<dynamic> menuList = json.decode(response.body);
|
||||
final Map<int, MenuPlat> 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;
|
||||
@ -568,19 +535,14 @@ class OrderCard extends StatelessWidget {
|
||||
final Function(Order) onDelete;
|
||||
final VoidCallback onViewDetails;
|
||||
|
||||
// Add menuMap field to have access to menu names
|
||||
|
||||
// late Future<Map<int, MenuPlat>> menuMapFuture = fetchMenuMap();
|
||||
final Map<int, MenuPlat> 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';
|
||||
@ -699,7 +661,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,
|
||||
@ -942,9 +904,4 @@ class OrderItem {
|
||||
commentaires: json['commentaires'],
|
||||
);
|
||||
}
|
||||
|
||||
// Pass a Map of menus to get the name
|
||||
String getNomById(Map<int, MenuPlat> menuMap) {
|
||||
return menuMap[menuId]?.nom ?? 'Menu Item $menuId';
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user