feat : new dashboard and inventory_widget

This commit is contained in:
2025-10-08 17:01:33 +03:30
parent 665ef9abf7
commit be6e16f54e
28 changed files with 1020 additions and 126 deletions

View File

@@ -1,6 +1,5 @@
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:rasadyar_chicken/data/data_source/local/chicken_local.dart';
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
@@ -8,6 +7,7 @@ import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart'
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart';
import 'package:rasadyar_chicken/data/repositories/chicken/chicken_repository.dart';
import 'package:rasadyar_chicken/presentation/pages/common/profile/view.dart';
import 'package:rasadyar_chicken/presentation/pages/steward/buy/view.dart';
@@ -29,6 +29,7 @@ class StewardRootLogic extends GetxController {
final defaultRoutes = <int, String>{0: ChickenRoutes.buySteward, 1: ChickenRoutes.saleSteward};
RxList<ProductModel> rolesProductsModel = RxList<ProductModel>();
Rxn<WidelyUsedLocalModel> widelyUsedList = Rxn<WidelyUsedLocalModel>();
Rxn<StewardSalesInfoDashboard> stewardSalesInfoDashboard = Rxn<StewardSalesInfoDashboard>();
late DioRemote dioRemote;
var tokenService = Get.find<TokenStorageService>();
@@ -68,6 +69,7 @@ class StewardRootLogic extends GetxController {
if (rolesProductsModel.isEmpty) {
getRolesProducts();
}
getStewardSaleDashboard();
if (widelyUsedList.value?.hasInit != true) {
//TODO
@@ -83,6 +85,15 @@ class StewardRootLogic extends GetxController {
super.onClose();
}
Future<void> onRefresh() async {
await Future.wait([
getInventory(),
getRolesProducts(),
getStewardSaleDashboard(),
getProvinces(),
]);
}
void toggleExpanded(int index) {
if (inventoryExpandedList.keys.contains(index)) {
inventoryExpandedList.remove(index);
@@ -158,6 +169,21 @@ class StewardRootLogic extends GetxController {
);
}
Future<void> getStewardSaleDashboard() async {
safeCall(
call: () async => await chickenRepository.getStewardSalesInfoDashboard(
token: tokenService.accessToken.value!,
queryParameters: buildRawQueryParams(role: 'Steward'),
),
onSuccess: (result) {
if (result != null) {
stewardSalesInfoDashboard.value = result;
}
},
onError: (error, stacktrace) {},
);
}
int getNestedKey() {
switch (currentPage.value) {
case 0:
@@ -184,10 +210,9 @@ class StewardRootLogic extends GetxController {
final currentRoute = currentNestedKey?.currentState;
fLog(Get.currentRoute);
/*
/*
fLog("onPopScopTaped ==> ${currentNestedKey?.currentState?.canPop()}");
if (currentNestedKey?.currentState?.canPop() == true) {
iLog(currentNestedKey?.currentState?.canPop());