diff --git a/lib/Services/stock_managementDatabase.dart b/lib/Services/stock_managementDatabase.dart index b010336..b1768c7 100644 --- a/lib/Services/stock_managementDatabase.dart +++ b/lib/Services/stock_managementDatabase.dart @@ -596,32 +596,23 @@ class AppDatabase { return []; } } - Future getValeurTotaleStock() async { final db = await database; - + try { - // Récupérer tous les produits - final List> products = (await db.query('products')) as List>; - - double valeurTotale = 0.0; - for (final product in products) { - final stock = (product['stock'] as num?)?.toDouble(); - final price = (product['price'] as num?)?.toDouble(); - - // Vérifier que stock et price ne sont pas null - if (stock != null && price != null) { - valeurTotale += (stock * price); - } - } - - return valeurTotale; + final result = await db.query( + 'SELECT SUM(stock * price) AS total_stock_value FROM products', + ); + + final value = result.first['total_stock_value']; + return (value != null) ? (value as num).toDouble() : 0.0; } catch (e) { - print('Erreur lors du calcul de la valeur totale du stock: $e'); + print('Erreur lors du calcul de la valeur totale du stock : $e'); return 0.0; } } + // --- STATISTIQUES --- Future> getStatistiques() async { @@ -636,11 +627,14 @@ Future getValeurTotaleStock() async { final chiffreAffaires = await db.query( 'SELECT SUM(montantTotal) as total FROM commandes WHERE statut != 5'); + final valeurTotaleStock = await getValeurTotaleStock(); + return { 'totalClients': totalClients.first['count'], 'totalCommandes': totalCommandes.first['count'], 'totalProduits': totalProduits.first['count'], 'chiffreAffaires': chiffreAffaires.first['total'] ?? 0.0, + 'valeurTotaleStock': valeurTotaleStock, }; }