From 9242cb812560d211fe1fb50a103be7080da2445c Mon Sep 17 00:00:00 2001 From: "mr.mojtaba" Date: Wed, 26 Nov 2025 16:23:18 +0330 Subject: [PATCH] feat: killHouse action page --- android/local.properties | 2 +- assets/icons/car_allocation.svg | 6 ++ assets/icons/direct_purchase.svg | 4 + assets/icons/enter_cargo_information.svg | 3 + assets/icons/management_bars.svg | 3 + assets/icons/orders_received.svg | 7 ++ assets/icons/submit_request.svg | 3 + assets/icons/warehouse_distribution.svg | 25 ++++++ assets/vec/car_allocation.svg.vec | Bin 0 -> 1721 bytes assets/vec/direct_purchase.svg.vec | Bin 0 -> 2259 bytes assets/vec/enter_cargo_information.svg.vec | Bin 0 -> 2868 bytes assets/vec/management_bars.svg.vec | Bin 0 -> 3636 bytes assets/vec/orders_received.svg.vec | Bin 0 -> 2212 bytes assets/vec/submit_request.svg.vec | Bin 0 -> 2576 bytes assets/vec/warehouse_distribution.svg.vec | Bin 0 -> 4981 bytes .../chicken/lib/data/common/fa_user_role.dart | 2 +- .../kill_request/kill_request_response.dart | 26 ------ .../kill_registration.freezed.dart | 4 +- .../poultry_order/poultry_order.freezed.dart | 4 +- .../presentation/pages/common/auth/logic.dart | 16 ++-- .../presentation/pages/common/role/view.dart | 14 +++- .../pages/kill_house/action/logic.dart | 41 ++++++++++ .../pages/kill_house/action/view.dart | 22 +++++ .../pages/kill_house/root/logic.dart | 43 ++++++++++ .../pages/kill_house/root/view.dart | 77 ++++++++++++++++++ .../lib/presentation/routes/pages.dart | 26 ++++++ .../lib/presentation/routes/routes.dart | 8 ++ .../presentation/utils/nested_keys_utils.dart | 5 ++ .../lib/presentation/common/assets.gen.dart | 56 +++++++++++++ .../widget/card/card_icon_widget.dart | 34 ++++++++ 30 files changed, 386 insertions(+), 45 deletions(-) create mode 100644 assets/icons/car_allocation.svg create mode 100644 assets/icons/direct_purchase.svg create mode 100644 assets/icons/enter_cargo_information.svg create mode 100644 assets/icons/management_bars.svg create mode 100644 assets/icons/orders_received.svg create mode 100644 assets/icons/submit_request.svg create mode 100644 assets/icons/warehouse_distribution.svg create mode 100644 assets/vec/car_allocation.svg.vec create mode 100644 assets/vec/direct_purchase.svg.vec create mode 100644 assets/vec/enter_cargo_information.svg.vec create mode 100644 assets/vec/management_bars.svg.vec create mode 100644 assets/vec/orders_received.svg.vec create mode 100644 assets/vec/submit_request.svg.vec create mode 100644 assets/vec/warehouse_distribution.svg.vec delete mode 100644 packages/chicken/lib/data/models/kill_house_module/register_request/response/kill_request/kill_request_response.dart create mode 100644 packages/chicken/lib/presentation/pages/kill_house/action/logic.dart create mode 100644 packages/chicken/lib/presentation/pages/kill_house/action/view.dart create mode 100644 packages/chicken/lib/presentation/pages/kill_house/root/logic.dart create mode 100644 packages/chicken/lib/presentation/pages/kill_house/root/view.dart diff --git a/android/local.properties b/android/local.properties index 8cd06f6..18ea619 100644 --- a/android/local.properties +++ b/android/local.properties @@ -1,4 +1,4 @@ -sdk.dir=C:\\Users\\Housh11\\AppData\\Local\\Android\\sdk +sdk.dir=C:/Users/Housh11/AppData/Local/Android/Sdk flutter.sdk=C:\\src\\flutter flutter.buildMode=debug flutter.versionName=1.3.33 diff --git a/assets/icons/car_allocation.svg b/assets/icons/car_allocation.svg new file mode 100644 index 0000000..22b4a5c --- /dev/null +++ b/assets/icons/car_allocation.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/assets/icons/direct_purchase.svg b/assets/icons/direct_purchase.svg new file mode 100644 index 0000000..1c0c12d --- /dev/null +++ b/assets/icons/direct_purchase.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/icons/enter_cargo_information.svg b/assets/icons/enter_cargo_information.svg new file mode 100644 index 0000000..ac3243a --- /dev/null +++ b/assets/icons/enter_cargo_information.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/management_bars.svg b/assets/icons/management_bars.svg new file mode 100644 index 0000000..a2a722e --- /dev/null +++ b/assets/icons/management_bars.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/orders_received.svg b/assets/icons/orders_received.svg new file mode 100644 index 0000000..0088fd8 --- /dev/null +++ b/assets/icons/orders_received.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/icons/submit_request.svg b/assets/icons/submit_request.svg new file mode 100644 index 0000000..8adf75c --- /dev/null +++ b/assets/icons/submit_request.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/icons/warehouse_distribution.svg b/assets/icons/warehouse_distribution.svg new file mode 100644 index 0000000..b06ba65 --- /dev/null +++ b/assets/icons/warehouse_distribution.svg @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/vec/car_allocation.svg.vec b/assets/vec/car_allocation.svg.vec new file mode 100644 index 0000000000000000000000000000000000000000..9beb3dc85c768cf2592b7d703c8950fc1221a90b GIT binary patch literal 1721 zcmZwIe@xV690%~{dtdKB;e<(J#}4jTNGJv}k14d;_xpL&GSg)_vAJpZTgx`ImXqZl z#Ue37#!NSVpo>&WqXx@JajoTSR~R{di{cGOI)yt_Sj~*CS^%_DvE7Z$y7!LI^42AkuU+Ucy>fJDf-odsCJ5&J4 zkKV7S^0rmI6kbtoHT9)PxPR_67FQhTD6`==%O0}+ku!vKTCjzFY0r_NudY+!$W-~% zx?42l&XhM^xJ@5rWy+&72HCvqFnhk*lzVn~<(Wpe?5Id!(+-;K{Oq7>~4dNI7B`~pRGZQ%|Cm}!di_iPHyUFzyGA2b%%an z`;B`tWZSB1RO8E*&CX6*{AsQ{R`D~-=lpf9)bjbO^~OVo?eL0B z`KK$*K6)pGeWtpXu)h4{@9gp4E>gemO&cEDa-8)$8)(;BvY~8svFC>Bt|1TjCv zdB8<;u5upE33ae&#@TV(FWG@WE8RU3OZ#Geq_>Ll*l7u`vAI<{)V*q@zkhw7P?z%d zD7$Xu1K#hcbV}6WIe-II9(K4Wou4axE~`V=_&&nKQXvOj@#IU6<@*lnyO%y%mk{DL zkrIA>pe*hs#D}w52+s*bJw!jmb^m##V_XN(=fVdriT<%W6WCeXJ#4tyFA;}$z99M_ zj=so;sE6o>xbE*Y3=xk9=|6ve`D*E`i>Jc*VS>?F{S?YcrRfbB<1ON&MarbACKHNn*~*(M0ytSTdUx@^Ty^A7T!~ zF&FY7>LL0euKS;?i{twPF=y?R$rAIS4vq~Zv3q4Q$06o~m;-Ulg?w1(oXnyh;<~?A zm?9bX6CbqvvCE&f{Ig*eAR=zA^vLGMF1v53`>|$mryU6nkoKjX3aWk8BVkvDpWRtM zRc`FqPH=bSGIr#j>8$&^7|ugq)Ioh6r!$@NVR`Tk>fE0y&57?3;xJ=jgtYs59JKz+ wSgGAmW>WTMkAx|orLqeW(`C+2PY}fQA$}iyojf0=j7ELNIF51D|0lKiFEG`H$N&HU literal 0 HcmV?d00001 diff --git a/assets/vec/direct_purchase.svg.vec b/assets/vec/direct_purchase.svg.vec new file mode 100644 index 0000000000000000000000000000000000000000..ca4404692e885098799fc570465f8574e9841ec1 GIT binary patch literal 2259 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 Q|E-Jj?C!;Xh?|;z2Xf+UEdT%j literal 0 HcmV?d00001 diff --git a/assets/vec/management_bars.svg.vec b/assets/vec/management_bars.svg.vec new file mode 100644 index 0000000000000000000000000000000000000000..11f72ad84d924eabd22d36e6bcf317a0d4510c71 GIT binary patch literal 3636 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 literal 0 HcmV?d00001 diff --git a/assets/vec/orders_received.svg.vec b/assets/vec/orders_received.svg.vec new file mode 100644 index 0000000000000000000000000000000000000000..f36169f64838b5810ec0f517a5290152f8448439 GIT binary patch literal 2212 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 getFaUserRoleWithOnTap(String? role) { case "ProvinceFinancial": return {"مالی اتحادیه": null}; case "KillHouse": - return {"کشتارگاه": null}; + return {"کشتارگاه": ChickenRoutes.initKillHouse}; case "KillHouseVet": return {"دامپزشک کشتارگاه": null}; case "VetFarm": diff --git a/packages/chicken/lib/data/models/kill_house_module/register_request/response/kill_request/kill_request_response.dart b/packages/chicken/lib/data/models/kill_house_module/register_request/response/kill_request/kill_request_response.dart deleted file mode 100644 index 2897427..0000000 --- a/packages/chicken/lib/data/models/kill_house_module/register_request/response/kill_request/kill_request_response.dart +++ /dev/null @@ -1,26 +0,0 @@ -import 'package:freezed_annotation/freezed_annotation.dart'; - -part 'kill_request_response.freezed.dart'; -part 'kill_request_response.g.dart'; - -@freezed -class KillRequestResponse with _$KillRequestResponse { - const factory KillRequestResponse({ - int? killCapacity, - String? reciveTime, - String? reciveDate, - bool? lowWeight, - bool? highWeight, - double? indexWeight, - String? chickenBreed, - bool? cash, - bool? credit, - bool? smsPayment, - String? killHouseKey, - String? killerKillHouseKey, - String? role, - }) = _KillRequestResponse; - - factory KillRequestResponse.fromJson(Map json) => - _$KillRequestResponseFromJson(json); -} diff --git a/packages/chicken/lib/data/models/request/kill_registration/kill_registration.freezed.dart b/packages/chicken/lib/data/models/request/kill_registration/kill_registration.freezed.dart index 91fee55..75f3864 100644 --- a/packages/chicken/lib/data/models/request/kill_registration/kill_registration.freezed.dart +++ b/packages/chicken/lib/data/models/request/kill_registration/kill_registration.freezed.dart @@ -15,7 +15,8 @@ T _$identity(T value) => value; /// @nodoc mixin _$KillRegistrationRequest { - bool? get approvedPrice; bool? get market; String? get killReqKey; String? get operatorKey; String? get poultryHatchingKey; int? get quantity; String? get sendDate; String? get chickenBreed;@JsonKey(name: "Index_weight") double? get indexWeight; String? get losses; List? get auctionList; bool? get freezing; bool? get export; bool? get cash; bool? get credit; List? get killHouseList; String? get role; String? get poultryKey; int? get amount; String? get financialOperation; bool? get freeSaleInProvince; String? get confirmPoultryMobile; + bool? get approvedPrice; bool? get market; String? get killReqKey; String? get operatorKey; String? get poultryHatchingKey; int? get quantity; String? get sendDate; String? get chickenBreed;// ignore: invalid_annotation_target +@JsonKey(name: "Index_weight") double? get indexWeight; String? get losses; List? get auctionList; bool? get freezing; bool? get export; bool? get cash; bool? get credit; List? get killHouseList; String? get role; String? get poultryKey; int? get amount; String? get financialOperation; bool? get freeSaleInProvince; String? get confirmPoultryMobile; /// Create a copy of KillRegistrationRequest /// with the given fields replaced by the non-null parameter values. @JsonKey(includeFromJson: false, includeToJson: false) @@ -241,6 +242,7 @@ class _KillRegistrationRequest implements KillRegistrationRequest { @override final int? quantity; @override final String? sendDate; @override final String? chickenBreed; +// ignore: invalid_annotation_target @override@JsonKey(name: "Index_weight") final double? indexWeight; @override final String? losses; final List? _auctionList; diff --git a/packages/chicken/lib/data/models/response/poultry_order/poultry_order.freezed.dart b/packages/chicken/lib/data/models/response/poultry_order/poultry_order.freezed.dart index cf022e3..a65f1c5 100644 --- a/packages/chicken/lib/data/models/response/poultry_order/poultry_order.freezed.dart +++ b/packages/chicken/lib/data/models/response/poultry_order/poultry_order.freezed.dart @@ -15,7 +15,8 @@ T _$identity(T value) => value; /// @nodoc mixin _$PoultryOrder { - String? get key; int? get id; Poultry? get poultry; int? get orderCode; String? get createDate; String? get sendDate; List? get killHouseList; int? get firstQuantity; int? get quantity; bool? get directBuying; bool? get union; double? get amount; String? get financialOperation; int? get remainQuantity;@JsonKey(name: "Index_weight") double? get indexWeight; Hatching? get hatching; String? get finalState; int? get losses; String? get provinceState; String? get stateProcess; Registrar? get registrar; VetFarm? get vetFarm; bool? get freeSaleInProvince; bool? get freezing; bool? get export; String? get cityCheckRequest; bool? get market; + String? get key; int? get id; Poultry? get poultry; int? get orderCode; String? get createDate; String? get sendDate; List? get killHouseList; int? get firstQuantity; int? get quantity; bool? get directBuying; bool? get union; double? get amount; String? get financialOperation; int? get remainQuantity;// ignore: invalid_annotation_target +@JsonKey(name: "Index_weight") double? get indexWeight; Hatching? get hatching; String? get finalState; int? get losses; String? get provinceState; String? get stateProcess; Registrar? get registrar; VetFarm? get vetFarm; bool? get freeSaleInProvince; bool? get freezing; bool? get export; String? get cityCheckRequest; bool? get market; /// Create a copy of PoultryOrder /// with the given fields replaced by the non-null parameter values. @JsonKey(includeFromJson: false, includeToJson: false) @@ -308,6 +309,7 @@ class _PoultryOrder implements PoultryOrder { @override final double? amount; @override final String? financialOperation; @override final int? remainQuantity; +// ignore: invalid_annotation_target @override@JsonKey(name: "Index_weight") final double? indexWeight; @override final Hatching? hatching; @override final String? finalState; diff --git a/packages/chicken/lib/presentation/pages/common/auth/logic.dart b/packages/chicken/lib/presentation/pages/common/auth/logic.dart index 17af2d5..6c349d6 100644 --- a/packages/chicken/lib/presentation/pages/common/auth/logic.dart +++ b/packages/chicken/lib/presentation/pages/common/auth/logic.dart @@ -119,17 +119,11 @@ class AuthLogic extends GetxController with GetTickerProviderStateMixin { await tokenStorageService.saveModule(_module); await tokenStorageService.saveAccessToken(_module, result?.accessToken ?? ''); await tokenStorageService.saveRefreshToken(_module, result?.accessToken ?? ''); - var tmpRoles = result?.role - ?.where((element) => element == 'PoultryScience' || element == 'Steward') - .toList(); - - /*var tmpRoles = result?.role?.where((element) { - return element == 'PoultryScience' || - element == 'Steward' || - element == 'CityOperator' || - element == 'CityJahad' || - element.toLowerCase().contains("admin"); - }).toList();*/ + var tmpRoles = result?.role?.where((element) { + final allowedRoles = {'poultryscience', 'steward', 'killhouse'}; + final lowerElement = element.toString().toLowerCase().trim(); + return allowedRoles.contains(lowerElement); + }).toList(); await tokenStorageService.saveRoles(_module, tmpRoles ?? []); if (rememberMe.value) { diff --git a/packages/chicken/lib/presentation/pages/common/role/view.dart b/packages/chicken/lib/presentation/pages/common/role/view.dart index 58b1b11..0f36180 100644 --- a/packages/chicken/lib/presentation/pages/common/role/view.dart +++ b/packages/chicken/lib/presentation/pages/common/role/view.dart @@ -32,11 +32,17 @@ class RolePage extends GetView { return roleCard( title: role.keys.first, onTap: () async { - String route = role.values.first; - await controller.gService.saveRoute(Module.chicken, route); + try { + String route = role.values.first; + await controller.gService.saveRoute(Module.chicken, route); - await controller.gService.saveRole(Module.chicken, data[index]); - Get.offAllNamed(route); + await controller.gService.saveRole(Module.chicken, data[index]); + Get.offAllNamed(route); + } catch (e) { + eLog( + "احتمالا در\n ``getFaUserRoleWithOnTap`` \nروت اش را تعریف نکردی 👻👻 ==>$e ", + ); + } }, ); }, diff --git a/packages/chicken/lib/presentation/pages/kill_house/action/logic.dart b/packages/chicken/lib/presentation/pages/kill_house/action/logic.dart new file mode 100644 index 0000000..a3ed2ff --- /dev/null +++ b/packages/chicken/lib/presentation/pages/kill_house/action/logic.dart @@ -0,0 +1,41 @@ +import 'package:rasadyar_core/core.dart'; + +class KillHouseActionLogic extends GetxController { + List items = [ + GlassMorphismCardItem(title: "ثبت درخواست", icon: Assets.vec.submitRequestSvg.path, route: ''), + GlassMorphismCardItem( + title: "انبار و توزیع", + icon: Assets.vec.warehouseDistributionSvg.path, + route: '', + ), + GlassMorphismCardItem( + title: "سفارشات دریافتی", + icon: Assets.vec.ordersReceivedSvg.path, + route: '', + ), + GlassMorphismCardItem(title: "خرید مستقیم", icon: Assets.vec.directPurchaseSvg.path, route: ''), + GlassMorphismCardItem(title: "تخصیص خودرو", icon: Assets.vec.carAllocationSvg.path, route: ''), + GlassMorphismCardItem( + title: "ورود اطلاعات بار", + icon: Assets.vec.enterCargoInformationSvg.path, + route: '', + ), + GlassMorphismCardItem( + title: "مدیریت بارها", + icon: Assets.vec.managementBarsSvg.path, + route: '', + ), + ]; + + @override + void onReady() { + // TODO: implement onReady + super.onReady(); + } + + @override + void onClose() { + // TODO: implement onClose + super.onClose(); + } +} diff --git a/packages/chicken/lib/presentation/pages/kill_house/action/view.dart b/packages/chicken/lib/presentation/pages/kill_house/action/view.dart new file mode 100644 index 0000000..221294f --- /dev/null +++ b/packages/chicken/lib/presentation/pages/kill_house/action/view.dart @@ -0,0 +1,22 @@ +import 'package:flutter/material.dart'; +import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; +import 'package:rasadyar_core/core.dart'; + +import 'logic.dart'; + +class KillHouseActionPage extends GetView { + const KillHouseActionPage({super.key}); + + @override + Widget build(BuildContext context) { + return ChickenBasePage( + isBase: true, + child: GlassMorphismGrid( + items: controller.items, + onTap: () { + iLog("Hoooooura 😍😍😍😍😍"); + }, + ), + ); + } +} diff --git a/packages/chicken/lib/presentation/pages/kill_house/root/logic.dart b/packages/chicken/lib/presentation/pages/kill_house/root/logic.dart new file mode 100644 index 0000000..b3d5288 --- /dev/null +++ b/packages/chicken/lib/presentation/pages/kill_house/root/logic.dart @@ -0,0 +1,43 @@ +import 'package:flutter/material.dart'; +import 'package:rasadyar_chicken/presentation/pages/common/profile/view.dart'; +import 'package:rasadyar_chicken/presentation/routes/pages.dart'; +import 'package:rasadyar_chicken/presentation/routes/routes.dart'; +import 'package:rasadyar_chicken/presentation/utils/nested_keys_utils.dart'; +import 'package:rasadyar_core/core.dart'; + +class KillHouseRootLogic extends GetxController { + RxInt currentPage = 2.obs; + + final pages = [ + Navigator( + key: Get.nestedKey(killHouseFirstKey), + onGenerateRoute: (settings) { + final page = ChickenPages.pages.firstWhere( + (e) => e.name == settings.name, + orElse: () => + ChickenPages.pages.firstWhere((e) => e.name == ChickenRoutes.actionKillHouse), + ); + + return buildRouteFromGetPage(page); + }, + ), + Container(color: Colors.deepPurpleAccent.withAlpha(50)), + ProfilePage(), + ]; + + @override + void onReady() { + // TODO: implement onReady + super.onReady(); + } + + @override + void onClose() { + // TODO: implement onClose + super.onClose(); + } + + void changePage(int i) { + currentPage.value = i; + } +} diff --git a/packages/chicken/lib/presentation/pages/kill_house/root/view.dart b/packages/chicken/lib/presentation/pages/kill_house/root/view.dart new file mode 100644 index 0000000..05bcc9e --- /dev/null +++ b/packages/chicken/lib/presentation/pages/kill_house/root/view.dart @@ -0,0 +1,77 @@ +import 'package:flutter/material.dart'; +import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart'; +import 'package:rasadyar_core/core.dart'; + +import 'logic.dart'; + +class KillHouseRootPage extends GetView { + const KillHouseRootPage({super.key}); + + @override + Widget build(BuildContext context) { + return ObxValue((data) { + return ChickenBasePage( + isBase: true, + isFullScreen: true, + scrollable: true, + child: Stack( + children: [ + IndexedStack(children: controller.pages, index: data.value), + Positioned( + right: 0, + left: 0, + bottom: 0, + child: RBottomNavigation( + mainAxisAlignment: MainAxisAlignment.spaceAround, + items: [ + RBottomNavigationItem( + label: 'عملیات', + icon: Assets.vec.settingSvg.path, + isSelected: controller.currentPage.value == 0, + onTap: () { + /* Get.nestedKey( + poultrySecondKey, + )?.currentState?.popUntil((route) => route.isFirst); + Get.nestedKey( + poultryFirstKey, + )?.currentState?.popUntil((route) => route.isFirst);*/ + controller.changePage(0); + }, + ), + RBottomNavigationItem( + label: 'خانه', + icon: Assets.vec.homeSvg.path, + isSelected: controller.currentPage.value == 1, + onTap: () { + /* Get.nestedKey( + poultryFirstKey, + )?.currentState?.popUntil((route) => route.isFirst); + Get.nestedKey( + poultryThirdKey, + )?.currentState?.popUntil((route) => route.isFirst);*/ + controller.changePage(1); + }, + ), + RBottomNavigationItem( + label: 'پروفایل', + icon: Assets.vec.profileCircleSvg.path, + isSelected: controller.currentPage.value == 2, + onTap: () { + /* Get.nestedKey( + poultryFirstKey, + )?.currentState?.popUntil((route) => route.isFirst); + Get.nestedKey( + poultrySecondKey, + )?.currentState?.popUntil((route) => route.isFirst);*/ + controller.changePage(2); + }, + ), + ], + ), + ), + ], + ), + ); + }, controller.currentPage); + } +} diff --git a/packages/chicken/lib/presentation/routes/pages.dart b/packages/chicken/lib/presentation/routes/pages.dart index 22a1194..2379288 100644 --- a/packages/chicken/lib/presentation/routes/pages.dart +++ b/packages/chicken/lib/presentation/routes/pages.dart @@ -2,6 +2,10 @@ import 'package:rasadyar_chicken/presentation/pages/common/auth/logic.dart'; import 'package:rasadyar_chicken/presentation/pages/common/auth/view.dart'; import 'package:rasadyar_chicken/presentation/pages/common/role/logic.dart'; import 'package:rasadyar_chicken/presentation/pages/common/role/view.dart'; +import 'package:rasadyar_chicken/presentation/pages/kill_house/action/logic.dart'; +import 'package:rasadyar_chicken/presentation/pages/kill_house/action/view.dart'; +import 'package:rasadyar_chicken/presentation/pages/kill_house/root/logic.dart'; +import 'package:rasadyar_chicken/presentation/pages/kill_house/root/view.dart'; import 'package:rasadyar_chicken/presentation/pages/poultry_farm_inspection/poultry_farm_inspection.dart'; import 'package:rasadyar_chicken/presentation/pages/poultry_science/active_hatching/logic.dart'; import 'package:rasadyar_chicken/presentation/pages/poultry_science/active_hatching/view.dart'; @@ -234,5 +238,27 @@ sealed class ChickenPages { }), ), //endregion + + //region kill house + GetPage( + name: ChickenRoutes.initKillHouse, + page: () => KillHouseRootPage(), + binding: BindingsBuilder(() { + Get.lazyPut(() => KillHouseRootLogic()); + Get.lazyPut(() => BaseLogic(), fenix: true); + }), + ), + GetPage( + name: ChickenRoutes.actionKillHouse, + page: () => KillHouseActionPage(), + bindings: [ + GlobalBinding(), + BindingsBuilder(() { + Get.lazyPut(() => KillHouseActionLogic()); + Get.lazyPut(() => BaseLogic(), fenix: true); + }), + ], + ), + //endregion ]; } diff --git a/packages/chicken/lib/presentation/routes/routes.dart b/packages/chicken/lib/presentation/routes/routes.dart index 9049f91..58c7414 100644 --- a/packages/chicken/lib/presentation/routes/routes.dart +++ b/packages/chicken/lib/presentation/routes/routes.dart @@ -42,4 +42,12 @@ sealed class ChickenRoutes { static const poultryFarmInspectionHome = '$_poultryFarmInspection/Home'; //endregion + + //region KillHouse Routes + + static const _killHouse = '$_base/killHouse'; + static const initKillHouse = '$_killHouse/home'; + static const actionKillHouse = '$_killHouse/action'; + + //endregion } diff --git a/packages/chicken/lib/presentation/utils/nested_keys_utils.dart b/packages/chicken/lib/presentation/utils/nested_keys_utils.dart index 4a2b69d..d816541 100644 --- a/packages/chicken/lib/presentation/utils/nested_keys_utils.dart +++ b/packages/chicken/lib/presentation/utils/nested_keys_utils.dart @@ -11,3 +11,8 @@ const int poultryFirstKey = 105; const int poultrySecondKey = 106; const int poultryThirdKey = 107; //endregion + +//region kill house Keys +const int killHouseFirstKey = 108; + +//endregion diff --git a/packages/core/lib/presentation/common/assets.gen.dart b/packages/core/lib/presentation/common/assets.gen.dart index 5a43f44..1108d38 100644 --- a/packages/core/lib/presentation/common/assets.gen.dart +++ b/packages/core/lib/presentation/common/assets.gen.dart @@ -79,6 +79,9 @@ class $AssetsIconsGen { /// File path: assets/icons/call.svg SvgGenImage get call => const SvgGenImage('assets/icons/call.svg'); + /// File path: assets/icons/car_allocation.svg + SvgGenImage get carAllocation => const SvgGenImage('assets/icons/car_allocation.svg'); + /// File path: assets/icons/check.svg SvgGenImage get check => const SvgGenImage('assets/icons/check.svg'); @@ -163,6 +166,9 @@ class $AssetsIconsGen { /// File path: assets/icons/diagram.svg SvgGenImage get diagram => const SvgGenImage('assets/icons/diagram.svg'); + /// File path: assets/icons/direct_purchase.svg + SvgGenImage get directPurchase => const SvgGenImage('assets/icons/direct_purchase.svg'); + /// File path: assets/icons/download.svg SvgGenImage get download => const SvgGenImage('assets/icons/download.svg'); @@ -172,6 +178,9 @@ class $AssetsIconsGen { /// File path: assets/icons/empty.svg SvgGenImage get empty => const SvgGenImage('assets/icons/empty.svg'); + /// File path: assets/icons/enter_cargo_information.svg + SvgGenImage get enterCargoInformation => const SvgGenImage('assets/icons/enter_cargo_information.svg'); + /// File path: assets/icons/excel_download.svg SvgGenImage get excelDownload => const SvgGenImage('assets/icons/excel_download.svg'); @@ -232,6 +241,9 @@ class $AssetsIconsGen { /// File path: assets/icons/logout.svg SvgGenImage get logout => const SvgGenImage('assets/icons/logout.svg'); + /// File path: assets/icons/management_bars.svg + SvgGenImage get managementBars => const SvgGenImage('assets/icons/management_bars.svg'); + /// File path: assets/icons/map.svg SvgGenImage get map => const SvgGenImage('assets/icons/map.svg'); @@ -250,6 +262,9 @@ class $AssetsIconsGen { /// File path: assets/icons/note_remove.svg SvgGenImage get noteRemove => const SvgGenImage('assets/icons/note_remove.svg'); + /// File path: assets/icons/orders_received.svg + SvgGenImage get ordersReceived => const SvgGenImage('assets/icons/orders_received.svg'); + /// File path: assets/icons/outside.svg SvgGenImage get outside => const SvgGenImage('assets/icons/outside.svg'); @@ -328,6 +343,9 @@ class $AssetsIconsGen { /// File path: assets/icons/shopping_basket.svg SvgGenImage get shoppingBasket => const SvgGenImage('assets/icons/shopping_basket.svg'); + /// File path: assets/icons/submit_request.svg + SvgGenImage get submitRequest => const SvgGenImage('assets/icons/submit_request.svg'); + /// File path: assets/icons/tag_label.svg SvgGenImage get tagLabel => const SvgGenImage('assets/icons/tag_label.svg'); @@ -364,6 +382,9 @@ class $AssetsIconsGen { /// File path: assets/icons/virtual.svg SvgGenImage get virtual => const SvgGenImage('assets/icons/virtual.svg'); + /// File path: assets/icons/warehouse_distribution.svg + SvgGenImage get warehouseDistribution => const SvgGenImage('assets/icons/warehouse_distribution.svg'); + /// File path: assets/icons/whare_house.svg SvgGenImage get whareHouse => const SvgGenImage('assets/icons/whare_house.svg'); @@ -385,6 +406,7 @@ class $AssetsIconsGen { calendarSearchOutline, calendarTick, call, + carAllocation, check, checkSquare, chicken, @@ -413,9 +435,11 @@ class $AssetsIconsGen { cubeTopRotation, cubeWatting, diagram, + directPurchase, download, edit, empty, + enterCargoInformation, excelDownload, farm, farms, @@ -436,12 +460,14 @@ class $AssetsIconsGen { liveStock, lock, logout, + managementBars, map, map1, map2, mapMarker, messageAdd, noteRemove, + ordersReceived, outside, pdfDownload, people, @@ -468,6 +494,7 @@ class $AssetsIconsGen { setting, shop, shoppingBasket, + submitRequest, tagLabel, tagUser, task, @@ -480,6 +507,7 @@ class $AssetsIconsGen { userRaduis, userSquare, virtual, + warehouseDistribution, whareHouse, ]; } @@ -570,6 +598,9 @@ class $AssetsVecGen { /// File path: assets/vec/call.svg.vec SvgGenImage get callSvg => const SvgGenImage.vec('assets/vec/call.svg.vec'); + /// File path: assets/vec/car_allocation.svg.vec + SvgGenImage get carAllocationSvg => const SvgGenImage.vec('assets/vec/car_allocation.svg.vec'); + /// File path: assets/vec/check.svg.vec SvgGenImage get checkSvg => const SvgGenImage.vec('assets/vec/check.svg.vec'); @@ -654,6 +685,9 @@ class $AssetsVecGen { /// File path: assets/vec/diagram.svg.vec SvgGenImage get diagramSvg => const SvgGenImage.vec('assets/vec/diagram.svg.vec'); + /// File path: assets/vec/direct_purchase.svg.vec + SvgGenImage get directPurchaseSvg => const SvgGenImage.vec('assets/vec/direct_purchase.svg.vec'); + /// File path: assets/vec/download.svg.vec SvgGenImage get downloadSvg => const SvgGenImage.vec('assets/vec/download.svg.vec'); @@ -663,6 +697,9 @@ class $AssetsVecGen { /// File path: assets/vec/empty.svg.vec SvgGenImage get emptySvg => const SvgGenImage.vec('assets/vec/empty.svg.vec'); + /// File path: assets/vec/enter_cargo_information.svg.vec + SvgGenImage get enterCargoInformationSvg => const SvgGenImage.vec('assets/vec/enter_cargo_information.svg.vec'); + /// File path: assets/vec/excel_download.svg.vec SvgGenImage get excelDownloadSvg => const SvgGenImage.vec('assets/vec/excel_download.svg.vec'); @@ -723,6 +760,9 @@ class $AssetsVecGen { /// File path: assets/vec/logout.svg.vec SvgGenImage get logoutSvg => const SvgGenImage.vec('assets/vec/logout.svg.vec'); + /// File path: assets/vec/management_bars.svg.vec + SvgGenImage get managementBarsSvg => const SvgGenImage.vec('assets/vec/management_bars.svg.vec'); + /// File path: assets/vec/map.svg.vec SvgGenImage get mapSvg => const SvgGenImage.vec('assets/vec/map.svg.vec'); @@ -741,6 +781,9 @@ class $AssetsVecGen { /// File path: assets/vec/note_remove.svg.vec SvgGenImage get noteRemoveSvg => const SvgGenImage.vec('assets/vec/note_remove.svg.vec'); + /// File path: assets/vec/orders_received.svg.vec + SvgGenImage get ordersReceivedSvg => const SvgGenImage.vec('assets/vec/orders_received.svg.vec'); + /// File path: assets/vec/outside.svg.vec SvgGenImage get outsideSvg => const SvgGenImage.vec('assets/vec/outside.svg.vec'); @@ -819,6 +862,9 @@ class $AssetsVecGen { /// File path: assets/vec/shopping_basket.svg.vec SvgGenImage get shoppingBasketSvg => const SvgGenImage.vec('assets/vec/shopping_basket.svg.vec'); + /// File path: assets/vec/submit_request.svg.vec + SvgGenImage get submitRequestSvg => const SvgGenImage.vec('assets/vec/submit_request.svg.vec'); + /// File path: assets/vec/tag_label.svg.vec SvgGenImage get tagLabelSvg => const SvgGenImage.vec('assets/vec/tag_label.svg.vec'); @@ -855,6 +901,9 @@ class $AssetsVecGen { /// File path: assets/vec/virtual.svg.vec SvgGenImage get virtualSvg => const SvgGenImage.vec('assets/vec/virtual.svg.vec'); + /// File path: assets/vec/warehouse_distribution.svg.vec + SvgGenImage get warehouseDistributionSvg => const SvgGenImage.vec('assets/vec/warehouse_distribution.svg.vec'); + /// File path: assets/vec/whare_house.svg.vec SvgGenImage get whareHouseSvg => const SvgGenImage.vec('assets/vec/whare_house.svg.vec'); @@ -876,6 +925,7 @@ class $AssetsVecGen { calendarSearchOutlineSvg, calendarTickSvg, callSvg, + carAllocationSvg, checkSvg, checkSquareSvg, chickenSvg, @@ -904,9 +954,11 @@ class $AssetsVecGen { cubeTopRotationSvg, cubeWattingSvg, diagramSvg, + directPurchaseSvg, downloadSvg, editSvg, emptySvg, + enterCargoInformationSvg, excelDownloadSvg, farmSvg, farmsSvg, @@ -927,12 +979,14 @@ class $AssetsVecGen { liveStockSvg, lockSvg, logoutSvg, + managementBarsSvg, mapSvg, map1Svg, map2Svg, mapMarkerSvg, messageAddSvg, noteRemoveSvg, + ordersReceivedSvg, outsideSvg, pdfDownloadSvg, peopleSvg, @@ -959,6 +1013,7 @@ class $AssetsVecGen { settingSvg, shopSvg, shoppingBasketSvg, + submitRequestSvg, tagLabelSvg, tagUserSvg, taskSvg, @@ -971,6 +1026,7 @@ class $AssetsVecGen { userRaduisSvg, userSquareSvg, virtualSvg, + warehouseDistributionSvg, whareHouseSvg, ]; } diff --git a/packages/core/lib/presentation/widget/card/card_icon_widget.dart b/packages/core/lib/presentation/widget/card/card_icon_widget.dart index b198b49..9a04a6a 100644 --- a/packages/core/lib/presentation/widget/card/card_icon_widget.dart +++ b/packages/core/lib/presentation/widget/card/card_icon_widget.dart @@ -225,3 +225,37 @@ class GlassMorphismCardIcon extends StatelessWidget { ); } } + +class GlassMorphismCardItem { + final String title; + final String route; + final String icon; + + GlassMorphismCardItem({required this.title, required this.route, required this.icon}); +} + +class GlassMorphismGrid extends StatelessWidget { + const GlassMorphismGrid({super.key, required this.items, required this.onTap}); + + final List items; + final VoidCallback onTap; + + @override + Widget build(BuildContext context) { + return GridView.builder( + physics: BouncingScrollPhysics(), + padding: EdgeInsets.symmetric(vertical: 18.h, horizontal: 32.w), + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, + mainAxisSpacing: 24.h, + crossAxisSpacing: 24.w, + ), + itemCount: items.length, + hitTestBehavior: HitTestBehavior.opaque, + itemBuilder: (BuildContext context, int index) { + var item = items[index]; + return GlassMorphismCardIcon(title: item.title, vecIcon: item.icon, onTap: onTap); + }, + ); + } +}