feat: Combine logic of count calculations in ViewOrdersCubit and update date handling for order filtering
This commit is contained in:
@@ -19,3 +19,4 @@
|
|||||||
- ` final String status;` in `OrderItem` make it an enum.
|
- ` final String status;` in `OrderItem` make it an enum.
|
||||||
- /// Date of the shift (ISO format).
|
- /// Date of the shift (ISO format).
|
||||||
final String date; make this in the DateTime format instead of string.
|
final String date; make this in the DateTime format instead of string.
|
||||||
|
- in `view_orders_cubit.dart` combine the logic of `_calculateUpNextCount ` and `_calculateTodayCount` into a single function that calculates both counts together to avoid redundant filtering of orders.
|
||||||
|
|||||||
@@ -252,13 +252,19 @@ class ViewOrdersCubit extends Cubit<ViewOrdersState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int _calculateCategoryCount(String category) {
|
int _calculateCategoryCount(String category) {
|
||||||
|
if (state.selectedDate == null) return 0;
|
||||||
|
|
||||||
|
final String selectedDateStr = DateFormat(
|
||||||
|
'yyyy-MM-dd',
|
||||||
|
).format(state.selectedDate!);
|
||||||
|
|
||||||
if (category == 'active') {
|
if (category == 'active') {
|
||||||
return state.orders
|
return state.orders
|
||||||
.where((OrderItem s) => s.status == 'IN_PROGRESS')
|
.where((OrderItem s) => s.date == selectedDateStr && s.status == 'IN_PROGRESS')
|
||||||
.length;
|
.length;
|
||||||
} else if (category == 'completed') {
|
} else if (category == 'completed') {
|
||||||
return state.orders
|
return state.orders
|
||||||
.where((OrderItem s) => s.status == 'COMPLETED')
|
.where((OrderItem s) => s.date == selectedDateStr && s.status == 'COMPLETED')
|
||||||
.length;
|
.length;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user