44 lines
1.0 KiB
Dart
44 lines
1.0 KiB
Dart
import 'package:e_porter/domain/usecases/statistic_usecase.dart';
|
|
import 'package:get/get.dart';
|
|
|
|
class StatisticController extends GetxController {
|
|
final StatisticUseCase useCase;
|
|
final String porterId;
|
|
|
|
final date = DateTime.now().obs;
|
|
|
|
final incoming = 0.obs;
|
|
final inProgress = 0.obs;
|
|
final completed = 0.obs;
|
|
final revenue = 0.0.obs;
|
|
|
|
StatisticController({
|
|
required this.useCase,
|
|
required this.porterId,
|
|
});
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
_bindAllStreams();
|
|
ever(date, (_) => _bindAllStreams());
|
|
}
|
|
|
|
void _bindAllStreams() {
|
|
incoming.bindStream(
|
|
useCase.getIncomingOrders(porterId: porterId, date: date.value),
|
|
);
|
|
inProgress.bindStream(
|
|
useCase.getInProgressOrders(porterId: porterId, date: date.value),
|
|
);
|
|
completed.bindStream(
|
|
useCase.getCompletedOrders(porterId: porterId, date: date.value),
|
|
);
|
|
revenue.bindStream(
|
|
useCase.getRevenue(porterId: porterId, date: date.value),
|
|
);
|
|
}
|
|
|
|
void changeDate(DateTime newDate) => date.value = newDate;
|
|
}
|