From da664e957b81e73aaff6e5d661da21a12cbfccf1 Mon Sep 17 00:00:00 2001 From: WaseemAbbasi22 Date: Thu, 17 Oct 2024 17:25:35 +0300 Subject: [PATCH] implement changes mentioned in testing document --- assets/images/logo_white.png | Bin 0 -> 2454 bytes lib/dashboard_latest/dashboard_provider.dart | 11 +++- lib/dashboard_latest/dashboard_view.dart | 1 - .../widgets/request_category_fragment.dart | 2 +- .../widgets/requests_fragment.dart | 2 +- lib/l10n/app_ar.arb | 13 ++++ lib/l10n/app_en.arb | 13 ++++ .../workorder/work_order_helper_models.dart | 1 + .../common_widgets/app_bottom_nav_bar.dart | 2 +- .../create_request-type_bottomsheet.dart | 8 +-- .../my_request/my_requests_page.dart | 4 +- .../requests/service_request_item_view.dart | 6 +- lib/new_views/pages/login_page.dart | 13 ++-- .../action_button/footer_action_button.dart | 2 +- .../service_request_bottomsheet.dart | 6 +- .../views/components/request_detail_view.dart | 51 ++++++++------- .../asset_retired/verify_asset_detail.dart | 59 +++++++++++------- .../views/nurse/create_new_request_view.dart | 26 ++++---- .../views/request_detail_main_view.dart | 4 +- .../requests/service_request_details.dart | 1 - localization_error.txt | 3 +- 21 files changed, 137 insertions(+), 91 deletions(-) create mode 100644 assets/images/logo_white.png diff --git a/assets/images/logo_white.png b/assets/images/logo_white.png new file mode 100644 index 0000000000000000000000000000000000000000..0f7acf0fd1388f64cb05264e989bc42af32f0e64 GIT binary patch literal 2454 zcmV;H32F9;P)B$ zv~d8*J@qE~+yY|IqK=y&T7Q6qv`C5;xjU2hW_PJ2wYywOq>uxDz(VBi%xcY}5?hQVB z{OReY1b&w>$a(i9g9?+ZPEqBrZzmtY6ca_Hk3->+B~`0`{!u09`Ob^B!8P`Ttj>QQ zePC(hom3H~m>7D3GxFO8{WZ%EOc((>$F&Uaqz-YQ9<@po_QsvJmSKvCLHRfm8fS3C zL5%FH3X2PMA!Hvlwol)@f+;2nWpRt^+sBkV3ki#(TAT-@%{*u9J|^JLKmNyIz0qjh z{N>Nzt4qmplF5v)WvTE^suFj+Mx&c!8r#Bo)n{+$YlF{Enw`9+X|WT1VTrxDxkM%C zJ-7?2oU>cV6d9!XPbB*3`C0uSY^++XlhqQ)FpSru+V%I58C|y&D_NFaU04XNEH#^* ztnk5(+zk9E2Y1R{ZpxgR-d2P{zOX5%e`f_uAes;%qt8NRq zjKVYH^lzM6`zW+k`Ydg^GPvm{txlOUejj2&2w0y_>t*kIt=2XYGYML2E~JauJ=0c# zHm%X>7BL9hatB^cr;}9}0#Y>2x!PNeX^W{;|F|bDYZc`{`(<40&33zIyyO=)Ckqo& zTmGW_pxA|O5h&2W%M;*bF?VxzFu%)ajIGA$OPfkUlM^h5FwGrZlmRR`{A>Cn0z}oxW%(zVVAdu0e>s`E)Wr@R<5l z(5g&jRh;i5%`Jyf8@AcN=euFg2_zT@v?K?fP%SA|7H0dc7suX9B*h^n%(-UUx}Q$z zDn08etn{GfP?NI| z@&nSLKd#63XOZw|mqBq@Qw*rwXqg9=^-vkh>aT5wvH{UDxRi`RnmPE~VzTZ`husVt zgZw+XgvGgZ;`}{tuWuiIdwpA?0CO-VgqF)<0BNP%Jhddzf_JakvTAs*Mv+-$-BiJgvd=|)u?xbD^_c$k_(4>N!BD~Z#&=MF$Bk2aV^~l`K2DjcVC*=oQMS0B$v*gdtWCQLdQP0N z{@lo;OAc43OQy~Y$96hz+gb(ZS9gPyK1R?IUD`9lRlHE3uPt|3chQSx8OU8+>=6mE z*|MMDxW-@~G&EVlF!Uhvt))B)$Osy^T3oB+K-uiWzr`|Tq{@8Uwtg_~_!4P}zJ6L)xi*cI*v{Jtlw4QlX_ z@^LX0V3?0nb4OZp=XdC}as40qHoKP(2l==t)G#F@7V_rcUsvy^3(Bf6@`)Msl zb`-|r#!{Oc`6jBQU<8@RNbv%Di~=`5Eu+9p%&`waQ@Lz~o?SRd9cFcLAvHE=nUR%~ zUhc-U6%2g?FL%}xnfX#)Q^)BYn7}jiUBO$ zGM#Chrwo09Q|E6|j>mCR!=b})R+``fkT(ZRZ3tq4hnBYdXbw%g~9OKmiDpoCCZnws;V8v&G&$6jq-f|@MtJb zA7TJhk`hp)i}O&5go@L`(-HdY&WBQpl3x)<{(0WG;hj@4Ed9he9;vn4hHmKwm5K&y zdo>iM#-w3uiAvlJR|=rPD*BIi>FiGcQoIcZQNGDL3+%k%g~8%79r>Ul-s%7z!wk%! z(d<&e{9V^y_pb{rK8cnk=!eBlKm<}zFI2HcSsLamr}zed(tz4kPiNv_T#@J$@iFpG z(DVDp1|70uJ+jm-??;| zXNq_jOFD4xqyLumnVIwCQHat9Yj=t;#l$d{e{9qfGi9tAnCc5!oCTr`Q%n?J0~GuR U#ca$9vj6}907*qoM6N<$f`Lo7NdN!< literal 0 HcmV?d00001 diff --git a/lib/dashboard_latest/dashboard_provider.dart b/lib/dashboard_latest/dashboard_provider.dart index 2f4f6d62..89b03d22 100644 --- a/lib/dashboard_latest/dashboard_provider.dart +++ b/lib/dashboard_latest/dashboard_provider.dart @@ -62,6 +62,13 @@ class DashBoardProvider extends ChangeNotifier { _requestDetailList = null; dashboardCount = null; } + void refreshDashboard({required UsersTypes userType,required BuildContext context}) { + setTabs(userType:userType,context: context); + getDashBoardCount(usersType: userType); + resetRequestDataList(); + getRequestDetail(usersType: userType, status: tabs[currentListIndex].tag); + // notifyListeners(); + } void resetRequestDataList() { pageNum = 1; @@ -222,7 +229,7 @@ class CategoryTabs { static List getTabs({required UsersTypes userType, required BuildContext context}) { List tabs = []; if (userType == UsersTypes.engineer) { - tabs.add(CategoryTabs('New Request', 1)); + tabs.add(CategoryTabs('Open Request', 1)); tabs.add(CategoryTabs('In Progress', 2)); tabs.add(CategoryTabs('Completed', 3)); return tabs; @@ -230,7 +237,7 @@ class CategoryTabs { tabs.add(CategoryTabs('Open Request', 1)); tabs.add(CategoryTabs('In Progress', 2)); tabs.add(CategoryTabs('Acknowledged', 3)); - tabs.add(CategoryTabs('Rejected', 6)); + tabs.add(CategoryTabs('Canceled', 6)); return tabs; } } diff --git a/lib/dashboard_latest/dashboard_view.dart b/lib/dashboard_latest/dashboard_view.dart index 44eec765..c1d4c403 100644 --- a/lib/dashboard_latest/dashboard_view.dart +++ b/lib/dashboard_latest/dashboard_view.dart @@ -114,7 +114,6 @@ class _DashboardViewState extends State { @override Widget build(BuildContext context) { bool isNurse = (Provider.of(context, listen: false).user!.type) == UsersTypes.normal_user; - print('user data is ${Provider.of(context, listen: false).user?.toJson()}'); return Scaffold( // backgroundColor: AppColor.background(context), appBar: PreferredSize( diff --git a/lib/dashboard_latest/widgets/request_category_fragment.dart b/lib/dashboard_latest/widgets/request_category_fragment.dart index 9e265a7e..0770664d 100644 --- a/lib/dashboard_latest/widgets/request_category_fragment.dart +++ b/lib/dashboard_latest/widgets/request_category_fragment.dart @@ -19,7 +19,7 @@ class RequestCategoryFragment extends StatelessWidget { Widget build(BuildContext context) { return Consumer(builder: (context, dashboardProvider, child) { return Column(mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - context.translation.allRequests.heading4(context).paddingOnly(start: 16, end: 16), + context.translation.allWorkOrder.heading4(context).paddingOnly(start: 16, end: 16), getTabs( requestsProvider: dashboardProvider, context: context, diff --git a/lib/dashboard_latest/widgets/requests_fragment.dart b/lib/dashboard_latest/widgets/requests_fragment.dart index 16a8fac5..d6b9dd88 100644 --- a/lib/dashboard_latest/widgets/requests_fragment.dart +++ b/lib/dashboard_latest/widgets/requests_fragment.dart @@ -34,7 +34,7 @@ class RequestsFragment extends StatelessWidget { context.isDark ? AppColor.redStatus(context) : AppColor.red30, ), listItem(snapshot.dashboardCount?.data?.countOverdue ?? 0, "overdue", context.translation.overdue, context, snapshot.isAllCountLoading, 1, AppColor.yellowIcon(context)), - listItem(snapshot.dashboardCount?.data?.countOpen ?? 0, "new_request", ApiManager.instance.user!.type == UsersTypes.engineer ? context.translation.inProgress : context.translation.newR, + listItem(snapshot.dashboardCount?.data?.countOpen ?? 0, "new_request", ApiManager.instance.user?.type == UsersTypes.engineer ? context.translation.inProgress : context.translation.newR, context, snapshot.isAllCountLoading, 2, AppColor.primary10), listItem(snapshot.dashboardCount?.data?.countComplete ?? 0, "complete_request", context.translation.completed, context, snapshot.isAllCountLoading, 3, AppColor.greenStatus(context)), ], diff --git a/lib/l10n/app_ar.arb b/lib/l10n/app_ar.arb index 3916cade..212b47f0 100644 --- a/lib/l10n/app_ar.arb +++ b/lib/l10n/app_ar.arb @@ -149,6 +149,13 @@ "reason2": "يقوم المهندس بتغيير موعد الزيارة دون التنسيق معي", "reason3": "لم يحضر المهندس في التاريخ / الوقت", "reason4": "لا يمكنني الوصول إلى المهندس عن طريق الهاتف أو الرسائل القصيرة", + "requestSparePart": "طلب قطعة غيار", + "selectAction": "اختر إجراء", + "requestSparePartForYourAsset": "اطلب قطعة غيار لأصلك", + "addNewActivity": "أضف نشاطًا جديدًا", + "addNewActivityToYourWorkOrder": "أضف نشاطًا جديدًا إلى أمر العمل الخاص بك", + "markAsCompleted": "وضع علامة كمكتمل", + "cmNumber": "رقم الصيانة التصحيحية", "reason5": "هناك تأخير في إحضار قطع الغيار", "repaired": "تم الاصلاح", "repeated": "معاد", @@ -158,6 +165,11 @@ "serviceRequestInformation": "معلومات طلب الخدمة", "serviceRequests": "طلبات الخدمة", "correctiveMaintenance": "الصيانة التصحيحية", + "cmDetails": "تفاصيل الصيانة التصحيحية", + "assetInformation": "معلومات الأصول", + "callDetails": "تفاصيل الاتصال", + "assetStatus": "حالة الأصول", + "selectWorkOrder": "اختر أمر العمل", "shareAntherIssue": "مشاركة قضية أخرى", "shareApp": "مشاركة التطبيق", "sn": "الرقم التسلسلي", @@ -464,6 +476,7 @@ "trackAssetTransfer" : "تتبع نقل اجهزة", "total" : "مجموع", "allRequests" : "كل الطلبات", + "allWorkOrders": "جميع أوامر العمل", "requestStatus" : "حالة الطلب", "createSubWorkOrder" : "إنشاء أمر عمل فرعي", "mrNumber" : "MR Number", diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 5dae1142..1ae4aa65 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -328,12 +328,17 @@ "firstAction" : "First Action", "rejectionReason" : "Rejection Reason", "workOrder" : "Work Order", + "cmDetails": "CM Details", + "assetInformation": "Asset Information", + "callDetails": "Call Details", + "assetStatus": "Asset Status", "workOrders" : "Work Orders", "viewWorkOrder" : "View All Work Order", "createWorkOrder" : "Create Work Order", "serviceDetails": "Service Details", "setVisitDate": "Set Date Of Visit", "verifyArrival": "Verify Arrival", + "selectWorkOrder": "Select Work Order", "scanQr": "Scan QR", "scanQrDetail": "Scan QR Code of the device", "askRequester": "Ask Requester to Verify", @@ -345,6 +350,13 @@ "lastSituationStatus": "Last Situation Status", "priority" : "Request Priority", "equipmentStatus" : "Equipment Status", + "requestSparePart": "Request Spare Part", + "selectAction": "Select Action", + "requestSparePartForYourAsset": "Request spare part for your asset", + "addNewActivity": "Add New Activity", + "addNewActivityToYourWorkOrder": "Add new activity to your work order", + "markAsCompleted": "Mark As Completed", + "cmNumber": "CM Number", "jopStatus" : "Jop Status", "attachImage" : "Attach Image", "callComments" : "Call Comments", @@ -464,6 +476,7 @@ "createSubWorkOrder" : "Create Sub Work Order", "mrNumber" : "MR Number", "vendorEng" : "Vendor Engineer", + "allWorkOrder": "All Work Orders", "vendorName" : "Vendor Name", "reset" : "Reset", "solution" : "Solution", diff --git a/lib/models/helper_data_models/workorder/work_order_helper_models.dart b/lib/models/helper_data_models/workorder/work_order_helper_models.dart index 60b373bc..81bc0e19 100644 --- a/lib/models/helper_data_models/workorder/work_order_helper_models.dart +++ b/lib/models/helper_data_models/workorder/work_order_helper_models.dart @@ -89,6 +89,7 @@ class EngineerUpdateWorkOrderHelperModel { Map toJson() { final Map data = {}; + data['workOrderId'] = workOrderId; data['equipmentStatusId'] = equipmentStatus?.id; data['returnToService'] = returnToService; diff --git a/lib/new_views/common_widgets/app_bottom_nav_bar.dart b/lib/new_views/common_widgets/app_bottom_nav_bar.dart index c8346a9a..cfca45d9 100644 --- a/lib/new_views/common_widgets/app_bottom_nav_bar.dart +++ b/lib/new_views/common_widgets/app_bottom_nav_bar.dart @@ -27,7 +27,7 @@ class AppBottomNavigationBar extends StatelessWidget { backgroundColor: Colors.white, items: [ navBarItem(context, index: 0, iconName: "overview", label: context.translation.overview), - navBarItem(context, index: 1, iconName: "request_icon", label: context.translation.request), + navBarItem(context, index: 1, iconName: "request_icon", label: context.translation.workOrder), if (!isEngineer) navBarItem(context, index: 2, iconName: "add_icon", label: context.translation.calendar, showLabel: false), navBarItem(context, index: !isEngineer ? 3 : 2, iconName: "assets", label: context.translation.assets), navBarItem(context, index: !isEngineer ? 4 : 3, iconName: "contact", label: context.translation.contact), diff --git a/lib/new_views/pages/land_page/create_request-type_bottomsheet.dart b/lib/new_views/pages/land_page/create_request-type_bottomsheet.dart index f2668411..87206116 100644 --- a/lib/new_views/pages/land_page/create_request-type_bottomsheet.dart +++ b/lib/new_views/pages/land_page/create_request-type_bottomsheet.dart @@ -19,7 +19,7 @@ class CreateRequestTypeBottomSheet extends StatelessWidget { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - "Select Request".heading4(context), + context.translation.selectWorkOrder.heading4(context), 16.height, GridView( padding: EdgeInsets.all(0), @@ -30,7 +30,7 @@ class CreateRequestTypeBottomSheet extends StatelessWidget { listCard( context: context, icon: 'add_icon', - label: '${context.translation.create}\n${context.translation.serviceRequest}', + label: context.translation.correctiveMaintenance, onTap: () { Navigator.pushReplacementNamed(context, CreateNewRequest.id); }, @@ -38,7 +38,7 @@ class CreateRequestTypeBottomSheet extends StatelessWidget { listCard( context: context, icon: 'add_icon', - label: '${context.translation.create}\n${context.translation.gasRefill}', + label: context.translation.gasRefill, onTap: () { //NewGasRefillRequestPage.routeName) Navigator.pushReplacementNamed(context, NewGasRefillRequestPage.routeName); @@ -47,7 +47,7 @@ class CreateRequestTypeBottomSheet extends StatelessWidget { listCard( context: context, icon: 'add_icon', - label: '${context.translation.create}\n${context.translation.deviceTransfer}', + label: context.translation.deviceTransfer, onTap: () async { Navigator.pushReplacementNamed(context, RequestDeviceTransfer.id); }, diff --git a/lib/new_views/pages/land_page/my_request/my_requests_page.dart b/lib/new_views/pages/land_page/my_request/my_requests_page.dart index a6ab4a78..ee9654cf 100644 --- a/lib/new_views/pages/land_page/my_request/my_requests_page.dart +++ b/lib/new_views/pages/land_page/my_request/my_requests_page.dart @@ -32,8 +32,8 @@ class _MyRequestsPageState extends State { Widget build(BuildContext context) { if (_provider == null) { requestsList = [ - context.translation.allRequests, - context.translation.serviceRequest, + context.translation.allWorkOrder, + context.translation.correctiveMaintenance, context.translation.gasRefillRequest, context.translation.deviceTransferRequest, context.translation.preventiveMaintenance, diff --git a/lib/new_views/pages/land_page/requests/service_request_item_view.dart b/lib/new_views/pages/land_page/requests/service_request_item_view.dart index 1df33f39..07e7ebd3 100644 --- a/lib/new_views/pages/land_page/requests/service_request_item_view.dart +++ b/lib/new_views/pages/land_page/requests/service_request_item_view.dart @@ -46,10 +46,10 @@ class ServiceRequestItemView extends StatelessWidget { ], ), 8.height, - (requestData!.typeTransaction ?? context.translation.serviceRequest).heading5(context), + (requestData!.typeTransaction ?? context.translation.correctiveMaintenance).heading5(context), '${context.translation.assetName}: ${requestData!.assetName?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context), // '${context.translation.assetNumber}: ${request.assetNo}'.bodyText(context), - '${context.translation.requestType}: ${requestData!.requestTypeName}'.bodyText(context), + // '${context.translation.requestType}: ${requestData!.requestTypeName}'.bodyText(context), '${context.translation.requestNo}: ${requestData!.requestNo}'.bodyText(context), 8.height, Row( @@ -97,7 +97,7 @@ class ServiceRequestItemView extends StatelessWidget { ], ), 8.height, - (requestDetails!.nameOfType ?? context.translation.serviceRequest).heading5(context), + (requestDetails!.nameOfType ?? context.translation.correctiveMaintenance).heading5(context), '${context.translation.assetName}: ${requestDetails!.assetName?.cleanupWhitespace?.capitalizeFirstOfEach}'.bodyText(context), '${context.translation.assetNumber}: ${requestDetails!.assetNo}'.bodyText(context), '${context.translation.requestType}: ${requestDetails!.requestType}'.bodyText(context), diff --git a/lib/new_views/pages/login_page.dart b/lib/new_views/pages/login_page.dart index 2e069ffa..54efe6a9 100644 --- a/lib/new_views/pages/login_page.dart +++ b/lib/new_views/pages/login_page.dart @@ -217,18 +217,13 @@ class _LoginPageState extends State { mainAxisAlignment: MainAxisAlignment.start, children: [ SizedBox( - height: 146.toScreenHeight, + height: 100.toScreenHeight, ), - // RoundedBackButton( - // icon: Icons.arrow_back_ios, - // onPressed: () { - // ///There is no previous screen - // }, - // backgroundColor: context.isDark ? AppColor.primary80 : AppColor.primary80), - + "logo_white".toPngAsset(), + 25.height, context.translation.signInToYour.customHeadingText(context).custom(color: Colors.white, fontSize: 27, fontWeight: FontWeight.w500), context.translation.account.customHeadingText(context).custom(color: Colors.white, fontSize: 27, fontWeight: FontWeight.w500), - 25.height, + 15.height, context.translation.letSignInToAccount.customHeadingText(context).custom(color: Colors.white, fontWeight: FontWeight.w500, fontSize: 12), ], ), diff --git a/lib/service_request_latest/views/components/action_button/footer_action_button.dart b/lib/service_request_latest/views/components/action_button/footer_action_button.dart index 693f1f9d..90e769bd 100644 --- a/lib/service_request_latest/views/components/action_button/footer_action_button.dart +++ b/lib/service_request_latest/views/components/action_button/footer_action_button.dart @@ -157,7 +157,7 @@ class FooterActionButton { if (showMarkAsFixedButton) ...[ 8.height, AppFilledButton( - label: context.translation.markAsFixed, + label: context.translation.markAsCompleted, // maxWidth: true, buttonColor: AppColor.green70, onPressed: () async { diff --git a/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart b/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart index ba70c0a3..804e33be 100644 --- a/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart +++ b/lib/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart @@ -364,8 +364,8 @@ class ServiceRequestBottomSheet { static Future activityTypeBottomSheet({required BuildContext context}) { final List> items = [ - {'heading': context.translation.sparePartRequest, 'subHeading': context.translation.sparePartRequestDetail, 'icon': AppAsset.sparePartIcon}, - {'heading': context.translation.maintenanceRequest, 'subHeading': context.translation.sparePartRequestDetail, 'icon': AppAsset.maintenanceIcon}, + {'heading': context.translation.requestSparePart, 'subHeading': context.translation.requestSparePartForYourAsset, 'icon': AppAsset.sparePartIcon}, + {'heading': context.translation.addNewActivity, 'subHeading': context.translation.addNewActivityToYourWorkOrder, 'icon': AppAsset.maintenanceIcon}, ]; Widget customListItem({ required BuildContext context, @@ -449,7 +449,7 @@ class ServiceRequestBottomSheet { 8.height, Align( alignment: AlignmentDirectional.centerStart, - child: context.translation.selectActivityType.bottomSheetHeadingTextStyle(context), + child: context.translation.selectAction.bottomSheetHeadingTextStyle(context), ), 16.height, ListView.builder( diff --git a/lib/service_request_latest/views/components/request_detail_view.dart b/lib/service_request_latest/views/components/request_detail_view.dart index a1b59079..9488d534 100644 --- a/lib/service_request_latest/views/components/request_detail_view.dart +++ b/lib/service_request_latest/views/components/request_detail_view.dart @@ -31,7 +31,6 @@ class WorkOrderDetailView extends StatelessWidget { Widget build(BuildContext context) { UserProvider _userProvider = Provider.of(context, listen: false); return Consumer(builder: (pContext, requestProvider, _) { - return requestProvider.isLoading ? const CircularProgressIndicator(color: AppColor.primary10).center : requestProvider.currentWorkOrder == null @@ -118,7 +117,7 @@ class WorkOrderDetailView extends StatelessWidget { ], ), Text( - context.translation.assetDetails, + context.translation.assetInformation, style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), ), 8.height, @@ -173,7 +172,7 @@ class WorkOrderDetailView extends StatelessWidget { //... request details starts here.... Text( - context.translation.requestDetail, + context.translation.callDetails, style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), ), 8.height, @@ -193,13 +192,18 @@ class WorkOrderDetailView extends StatelessWidget { '${context.translation.date}: ${workOrder.requestedDate!.toString().toServiceRequestDetailsFormat}', style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120), ), + //TODO confirm the value... + Text( + '${context.translation.cmNumber}: ${workOrder.workOrderNo}', + style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120), + ), 8.height, if ((workOrder.comments ?? "").isNotEmpty) ...[ const Divider().defaultStyle(context), 8.height, Text( - workOrder.comments!, + '${context.translation.callComments}: ${workOrder.comments!}', style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20), ), ], @@ -319,28 +323,27 @@ class WorkOrderDetailView extends StatelessWidget { } } } + Widget assetDetailCard({required RequestDetailProvider requestDetailProvider, required UserProvider userProvider}) { //TODO add proper check to hide and show that widget - // if (requestDetailProvider.currentWorkOrder!.data!.needAVisitDateTime != null && - // userProvider.user?.type == UsersTypes.engineer && - // requestDetailProvider.currentWorkOrder?.data?.nextStep!.workOrderNextStepEnum == WorkOrderNextStepEnum.verifyAssetDetail) { - WorkOrderData currentWorkOrderData = requestDetailProvider.currentWorkOrder!.data!; - requestDetailProvider.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel( - workOrderId: currentWorkOrderData.requestId, - equipmentStatus: currentWorkOrderData.equipmentStatus, - loanAvailability: currentWorkOrderData.loanAvailablity, - failureReason: currentWorkOrderData.failureReasone, - // faultDescription: currentWorkOrderData.fa, - solution: currentWorkOrderData.solution?.name, - returnToService: currentWorkOrderData.returnToService, - serviceType: currentWorkOrderData.serviceType, - ); - // requestDetailProvider.updateNeedVisitHelperModel(requestDetailProvider.needVisitHelperModel); - return const AssetDetailCard(); - // } - // else { - // return const SizedBox(); - // } + if (userProvider.user?.type == UsersTypes.engineer && + requestDetailProvider.currentWorkOrder?.data?.nextStep!.workOrderNextStepEnum == WorkOrderNextStepEnum.activity) { + WorkOrderData currentWorkOrderData = requestDetailProvider.currentWorkOrder!.data!; + requestDetailProvider.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel( + workOrderId: currentWorkOrderData.requestId, + equipmentStatus: currentWorkOrderData.equipmentStatus, + loanAvailability: currentWorkOrderData.loanAvailablity, + failureReason: currentWorkOrderData.failureReasone, + // faultDescription: currentWorkOrderData.fa, + solution: currentWorkOrderData.solution?.name, + returnToService: currentWorkOrderData.returnToService, + serviceType: currentWorkOrderData.serviceType, + ); + return const AssetDetailCard(); + } + else { + return const SizedBox(); + } } } diff --git a/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart b/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart index dd7337e7..d00e5b1f 100644 --- a/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart +++ b/lib/service_request_latest/views/forms/asset_retired/verify_asset_detail.dart @@ -53,10 +53,11 @@ class _VerifyAssetDetailsState extends State with TickerProv @override void initState() { super.initState(); + assignValues(); } - Future getFaultDescription() async { - Provider.of(context, listen: false).getFaultDescriptionList(assetId: _requestDetailProvider?.currentWorkOrder?.data?.asset?.id).then((List? data) { + Future getFaultDescription({required int? assetId}) async { + Provider.of(context, listen: false).getFaultDescriptionList(assetId: assetId).then((List? data) { if (data?.isNotEmpty ?? false) { _faults = data!; setState(() {}); @@ -64,6 +65,22 @@ class _VerifyAssetDetailsState extends State with TickerProv }); } + void assignValues() { + RequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); + WorkOrderData currentWorkOrderData = requestDetailProvider.currentWorkOrder!.data!; + requestDetailProvider.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel( + workOrderId: currentWorkOrderData.requestId, + equipmentStatus: currentWorkOrderData.equipmentStatus, + loanAvailability: currentWorkOrderData.loanAvailablity, + failureReason: currentWorkOrderData.failureReasone, + // faultDescription: currentWorkOrderData.fa, + solution: currentWorkOrderData.solution?.name, + returnToService: currentWorkOrderData.returnToService, + serviceType: currentWorkOrderData.serviceType, + ); + getFaultDescription(assetId: requestDetailProvider.currentWorkOrder?.data?.asset?.id); + } + @override Widget build(BuildContext context) { if (_requestDetailProvider == null) { @@ -79,25 +96,14 @@ class _VerifyAssetDetailsState extends State with TickerProv _equipmentStatusProvider!.getDate(); }); _reasonProvider?.serviceRequestId = _requestDetailProvider?.currentWorkOrder!.data!.requestId.toString(); - WorkOrderData currentWorkOrderData = _requestDetailProvider!.currentWorkOrder!.data!; - _requestDetailProvider?.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel( - workOrderId: currentWorkOrderData.requestId, - equipmentStatus: currentWorkOrderData.equipmentStatus, - loanAvailability: currentWorkOrderData.loanAvailablity, - failureReason: currentWorkOrderData.failureReasone, - // faultDescription: currentWorkOrderData.fa, - solution: currentWorkOrderData.solution?.name, - returnToService: currentWorkOrderData.returnToService, - serviceType: currentWorkOrderData.serviceType, - ); - // _requestDetailProvider?.updateEngineerUpdateWorkOrderHelperModel(_requestDetailProvider?.engineerUpdateWorkOrderHelperModel); - getFaultDescription(); } return Scaffold( key: _scaffoldKey, appBar: DefaultAppBar(title: context.translation.verify_asset_details), body: Consumer(builder: (context, RequestDetailProvider requestDetailProvider, child) { + print('description model i got is ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription?.toJson()}'); + return Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ @@ -193,10 +199,14 @@ class _VerifyAssetDetailsState extends State with TickerProv showShadow: false, initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription, onSelect: (fault) { - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription = fault; - requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution = fault?.workPerformed; - if (mounted) { - requestDetailProvider.updateEngineerUpdateWorkOrderHelperModel(requestDetailProvider.engineerUpdateWorkOrderHelperModel); + if (fault != null) { + requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription = fault; + requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution = fault.workPerformed; + if (mounted) { + print('model updated...'); + requestDetailProvider.updateEngineerUpdateWorkOrderHelperModel(requestDetailProvider.engineerUpdateWorkOrderHelperModel); + } + print('description i got is ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription?.toJson()}'); } }, ), @@ -215,11 +225,12 @@ class _VerifyAssetDetailsState extends State with TickerProv label: context.translation.verify_asset_details, buttonColor: AppColor.primary10, onPressed: () async { - //TODO add loader.. - showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); - await requestDetailProvider.engineerUpdateWorkOrder(); - Navigator.pop(context); - Navigator.pop(context); + print('description model i got is ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription?.toJson()}'); + print('update model i got is ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.toJson()}'); + // showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading()); + // await requestDetailProvider.engineerUpdateWorkOrder(); + // Navigator.pop(context); + // Navigator.pop(context); }, ), ), diff --git a/lib/service_request_latest/views/nurse/create_new_request_view.dart b/lib/service_request_latest/views/nurse/create_new_request_view.dart index 38ccd9a2..c3eed327 100644 --- a/lib/service_request_latest/views/nurse/create_new_request_view.dart +++ b/lib/service_request_latest/views/nurse/create_new_request_view.dart @@ -7,10 +7,12 @@ import 'package:test_sa/controllers/providers/api/devices_provider.dart'; import 'package:test_sa/controllers/providers/api/service_requests_provider.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart'; import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; +import 'package:test_sa/dashboard_latest/dashboard_provider.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart'; +import 'package:test_sa/models/enums/user_types.dart'; import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart'; import 'package:test_sa/models/lookup.dart'; import 'package:test_sa/models/service_request/pending_service_request_model.dart'; @@ -43,7 +45,6 @@ class CreateNewRequest extends StatefulWidget { //TODO remove unnecessary code class _CreateNewRequestState extends State with TickerProviderStateMixin { - AssetProvider? _devicesProvider; late TextEditingController _commentController; late UserProvider _userProvider; late SettingProvider _settingProvider; @@ -108,7 +109,7 @@ class _CreateNewRequestState extends State with TickerProvider Widget build(BuildContext context) { return Scaffold( key: _scaffoldKey, - appBar: DefaultAppBar(title: context.translation.createNewRequest), + appBar: DefaultAppBar(title: context.translation.createWorkOrder), body: Consumer(builder: (context, serviceRequestProvider, child) { return SafeArea( child: LoadingManager( @@ -146,7 +147,7 @@ class _CreateNewRequestState extends State with TickerProvider 21.height, highPriorityWidget(), 20.height, - equipmentStatusWidget(context), + assetStatusWidget(context), 24.height, MultiFilesPicker( label: context.translation.attachImage, @@ -168,7 +169,7 @@ class _CreateNewRequestState extends State with TickerProvider buttonColor: AppColor.primary10, label: (pendingAssetServiceRequest != null && (pendingAssetServiceRequest!.details?.isNotEmpty ?? false)) ? context.translation.duplicateRequest - : context.translation.createNewRequest, + : context.translation.createWorkOrder, onPressed: checkPendingRequest ? null : _submit, // buttonColor: AppColor.primary10, ), @@ -182,7 +183,7 @@ class _CreateNewRequestState extends State with TickerProvider ); } - Widget equipmentStatusWidget(BuildContext context) { + Widget assetStatusWidget(BuildContext context) { return Consumer(builder: (cxt, snapshot, _) { try { _serviceRequest.defectType ??= snapshot.items.first; @@ -194,7 +195,7 @@ class _CreateNewRequestState extends State with TickerProvider crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ - context.translation.equipmentStatus.bodyText(context).custom(color: AppColor.black20), + context.translation.assetStatus.bodyText(context).custom(color: AppColor.black20), 8.height, Wrap( runSpacing: 8, @@ -209,10 +210,12 @@ class _CreateNewRequestState extends State with TickerProvider height: 24, child: Radio( value: element, - activeColor: Colors.red, + activeColor:AppColor.primary10, fillColor: WidgetStateColor.resolveWith((states) { - if (states.contains(WidgetState.selected)) return AppColor.primary10; - return AppColor.neutral130; + if (states.contains(WidgetState.selected)) { + return AppColor.primary10; // Thumb color when selected + } + return Colors.grey; // Thumb color when unselected (grey) }), groupValue: _serviceRequest.defectType, onChanged: (state) { @@ -258,7 +261,7 @@ class _CreateNewRequestState extends State with TickerProvider _serviceRequest.priority ??= snapshot.items.firstWhere((element) => element.value == 0, orElse: () => Lookup()); } return CupertinoSwitch( - thumbColor: AppColor.red70, + thumbColor:_serviceRequest.priority?.value != 0? AppColor.red70:AppColor.neutral10, activeColor: AppColor.red30.withOpacity(0.4), value: _serviceRequest.priority?.value != 0, onChanged: (state) { @@ -359,7 +362,8 @@ class _CreateNewRequestState extends State with TickerProvider int status = await _requestDetailProvider.createWorkOrder(); if(status==200){ - //pop dialoge... + DashBoardProvider dashBoardProvider = Provider.of(context,listen: false); + dashBoardProvider.refreshDashboard(context: context,userType: UsersTypes.nurse); Navigator.pop(context); Navigator.pop(context); } diff --git a/lib/service_request_latest/views/request_detail_main_view.dart b/lib/service_request_latest/views/request_detail_main_view.dart index 5904d482..51b28766 100644 --- a/lib/service_request_latest/views/request_detail_main_view.dart +++ b/lib/service_request_latest/views/request_detail_main_view.dart @@ -67,7 +67,7 @@ class _RequestDetailMainState extends State { }), 10.width, Text( - context.translation.serviceDetails , + context.translation.cmDetails , style: AppTextStyles.heading3.copyWith(fontWeight: FontWeight.w500, color: context.isDark ? AppColor.neutral30 : AppColor.neutral50), ).expanded, ], @@ -96,7 +96,7 @@ class _RequestDetailMainState extends State { // setState(() {}); }, tabs: [ - Tab(text: context.translation.requestDetail, height: 57.toScreenHeight), + Tab(text: context.translation.details, height: 57.toScreenHeight), Tab(text: context.translation.historyLogs, height: 57.toScreenHeight), ], ), diff --git a/lib/views/pages/user/requests/service_request_details.dart b/lib/views/pages/user/requests/service_request_details.dart index 2c619510..82ac923b 100644 --- a/lib/views/pages/user/requests/service_request_details.dart +++ b/lib/views/pages/user/requests/service_request_details.dart @@ -49,7 +49,6 @@ class _ServiceRequestDetailsPageState extends State { WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback((timeStamp) async { Provider.of(context, listen: false).reset(); serviceRequest = await Provider.of(context, listen: false).getServiceRequestObjectById(requestId: widget.serviceRequest.id!); - print('service request i got is ${serviceRequest?.id}'); loading = false; setState(() {}); }); diff --git a/localization_error.txt b/localization_error.txt index b7a7b76f..432e23b5 100644 --- a/localization_error.txt +++ b/localization_error.txt @@ -4,6 +4,7 @@ "signInToYour", "overdue", "newR", - "noDataFound" + "noDataFound", + "allWorkOrder" ] }