Fixed upto purchases and rate sync process

This commit is contained in:
2026-08-28 19:45:19 +05:30
parent 189f49ed07
commit eacca6aaea
21 changed files with 1203 additions and 401 deletions

View File

@@ -4,6 +4,7 @@ import 'package:kifi_app/features/inventory/domain/inventory_item.dart';
import 'package:kifi_app/features/inventory/domain/product.dart';
import 'package:kifi_app/features/inventory/providers/products_provider.dart';
import 'package:kifi_app/features/inventory/providers/product_categories_provider.dart';
import 'package:kifi_app/features/inventory/providers/commodity_rates_provider.dart';
import 'package:kifi_app/core/network/dio_client.dart';
import 'package:intl/intl.dart';
import 'package:lucide_icons/lucide_icons.dart';
@@ -63,12 +64,26 @@ class _StockLedgerTabState extends ConsumerState<StockLedgerTab> {
}
final categoriesState = ref.watch(productCategoriesProvider);
final category = categoriesState.value?.firstWhere(
final commodityRatesState = ref.watch(commodityRatesProvider);
final category = categoriesState.value?.where(
(c) => c.id == widget.product.categoryId,
);
).firstOrNull;
final String unit = category?.baseUnit ?? 'g';
final double currentRate = category?.dailyRate ?? 0.0;
final double purityFactor = category?.purityFactor ?? (widget.product.purityFactor ?? 1.0);
double commodityRate = 0.0;
if (category?.commodityCode != null && commodityRatesState.value != null) {
final match = commodityRatesState.value!.where(
(r) => r.commodityCode.toUpperCase() == category!.commodityCode!.toUpperCase()
).firstOrNull;
if (match != null) {
commodityRate = match.rate;
}
}
final double currentRate = commodityRate > 0 ? (commodityRate * purityFactor) : (category?.dailyRate ?? 0.0);
return RefreshIndicator(
onRefresh: _fetchLedger,