From fb35e256e7637e2e3690bb155153a8ec0c99f816 Mon Sep 17 00:00:00 2001 From: Sultan khan Date: Mon, 10 Nov 2025 10:14:13 +0300 Subject: [PATCH] CS Standard Change Request CR-7260 Fixed Asset Disposal Request amendment --- assets/langs/ar-SA.json | 24 +- assets/langs/en-US.json | 25 +- lib/api/worklist/worklist_api_client.dart | 7 +- lib/classes/consts.dart | 4 +- lib/generated/codegen_loader.g.dart | 48 +++- lib/generated/locale_keys.g.dart | 23 +- lib/models/generic_response_model.dart | 7 + .../worklist/get_fad_notifications.dart | 233 ++++++++++++++++++ lib/ui/work_list/work_list_screen.dart | 20 +- lib/ui/work_list/worklist_detail_screen.dart | 24 +- .../worklist_fragments/info_fragments.dart | 132 +++++++++- 11 files changed, 520 insertions(+), 27 deletions(-) create mode 100644 lib/models/worklist/get_fad_notifications.dart diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json index 08b00da..916e8fb 100644 --- a/assets/langs/ar-SA.json +++ b/assets/langs/ar-SA.json @@ -620,5 +620,27 @@ "mazaya": "مازيا", "benefits": "فوائد", "mazayaDesc": "اكتشف الخصومات والعروض الخاصة المتاحة للموظفين", - "viewallofferMazaya" : "أعرض كل المزايا" + "viewallofferMazaya" : "أعرض كل المزايا", + "buyerName": "اسم المشتري", + "buyerNumber": "رقم المشتري", + "highestBidder": "أعلى مزايد", + "remarks": "ملاحظات", + "faHeader": "تفاصيل رأس الصفحة FA", + "bookTypeCode": "رمز نوع الكتاب", + "categoryCode": "رمز الفئة", + "categoryGroup": "مجموعة الفئات", + "faLINES": "تفاصيل الأصول", + "assetNumber": "رقم الأصول", + "assetDescription": "وصف الأصول", + "barCodeNumber": "رقم الباركود", + "datePlaceInService": "تاريخ وضعه في الخدمة", + "serialNumber": "رقم سري", + "disposedDate": "تاريخ التخلص", + "netBookValue": "القيمة الدفترية الصافية", + "purchasedPrice": "سعر الشراء", + "usefulLife": "العمر الإنتاجي", + "yearsUsed": "سنوات الاستخدام", + "faRequest": "طلب التخلص من FA", + "showMore": "عرض المزيد", + "buyerDetails": "تفاصيل المشتري" } \ No newline at end of file diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json index ff30994..5fcb35c 100644 --- a/assets/langs/en-US.json +++ b/assets/langs/en-US.json @@ -618,6 +618,27 @@ "mazaya": "MAZAYA", "benefits": "Benefits", "mazayaDesc": "Discover special Discounts and offers available to Employees", - "viewallofferMazaya" : "View All Offers" - + "viewallofferMazaya" : "View All Offers", + "buyerName": "Buyer Name", + "buyerNumber": "Buyer Number", + "highestBidder": "Highest Bidder", + "remarks": "Remarks", + "faHeader": "FA Header Details", + "bookTypeCode": "Book Type Code", + "categoryCode": "Category Code", + "categoryGroup": "Category Group", + "faLINES": "Asset Details", + "assetNumber": "Asset Number", + "assetDescription": "Asset Description", + "barCodeNumber": "BarCode Number", + "datePlaceInService": "Date place In Service", + "serialNumber": "Serial Number", + "disposedDate": "Disposed Date", + "netBookValue": "Net Book Value", + "purchasedPrice": "Purchased Price", + "usefulLife": "Useful Life", + "yearsUsed": "Years Used", + "faRequest":"FA Disposal Request", + "showMore": "Show More", + "buyerDetails": "Buyer Details" } \ No newline at end of file diff --git a/lib/api/worklist/worklist_api_client.dart b/lib/api/worklist/worklist_api_client.dart index 1adfe29..10d9472 100644 --- a/lib/api/worklist/worklist_api_client.dart +++ b/lib/api/worklist/worklist_api_client.dart @@ -28,6 +28,7 @@ import 'package:mohem_flutter_app/models/notification_get_respond_attributes_lis import 'package:mohem_flutter_app/models/termination/termination_notification_body.dart'; import 'package:mohem_flutter_app/models/update_user_item_type_list.dart'; import 'package:mohem_flutter_app/models/worklist/GetRFCEmployeeList.dart'; +import 'package:mohem_flutter_app/models/worklist/get_fad_notifications.dart'; import 'package:mohem_flutter_app/models/worklist/get_favorite_replacements_model.dart'; import 'package:mohem_flutter_app/models/worklist/hr/eit_otification_body_model.dart'; import 'package:mohem_flutter_app/models/worklist/hr/get_address_notification_body_list.dart'; @@ -848,14 +849,14 @@ class WorkListApiClient { } - Future?> getFADisposalNtfDetails(int? notificationId) async { - String url = "${ApiConsts.erpRest}GET_PAY_REQ_NOTIFICATION_BODY"; + Future getFADNotificationBody(int? notificationId) async { + String url = "${ApiConsts.erpRest}GetFADisposalNtfDetails"; Map postParams = {"P_NOTIFICATION_ID": notificationId, "P_PAGE_LIMIT": 100, "P_PAGE_NUM": 1}; postParams.addAll(AppState().postParamsJson); return await ApiClient().postJsonForObject( (json) { GenericResponseModel responseData = GenericResponseModel.fromJson(json); - return responseData.getAbsenceCollectionNotificationBodyList; + return responseData.getFADisposalNtfDetails; }, url, postParams, diff --git a/lib/classes/consts.dart b/lib/classes/consts.dart index 6b43bbd..cfc240f 100644 --- a/lib/classes/consts.dart +++ b/lib/classes/consts.dart @@ -4,7 +4,7 @@ class ApiConsts { // static String baseUrl = "http://10.200.204.11"; // Local server // static String baseUrl = "https://erptstapp.srca.org.sa"; // SRCA server - // static String baseUrl = "https://uat.hmgwebservices.com"; // UAT ser343622ver + static String baseUrl = "https://uat.hmgwebservices.com"; // UAT ser343622ver // static String baseUrl = "http://10.201.204.101:2024"; // static String baseUrl = "https://webservices.hmg.com"; // PreProd // static String baseUrl = "https://hmgwebservices.com"; // Live server @@ -15,7 +15,7 @@ class ApiConsts { // static String baseUrl = "http://10.20.200.111:1010/"; // static String baseUrl = "https://webservices.hmg.com"; // PreProd - static String baseUrl = "https://mohemm.hmg.com"; + // static String baseUrl = "https://mohemm.hmg.com"; // static String baseUrl = "https://hmgwebservices.com"; // Live server static String baseUrlServices = baseUrl + "/Services/"; // server diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index f4c247c..6feb438 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -634,8 +634,28 @@ class CodegenLoader extends AssetLoader{ "benefits": "فوائد", "mazayaDesc": "اكتشف الخصومات والعروض الخاصة المتاحة للموظفين", "viewallofferMazaya": "أعرض كل المزايا", - "faDisposalRequest":"طلب التخلص من FA", - "showMore": "إظهار المزيد" + "buyerName": "اسم المشتري", + "buyerNumber": "رقم المشتري", + "highestBidder": "أعلى مزايد", + "remarks": "ملاحظات", + "faHeader": "تفاصيل رأس الصفحة FA", + "bookTypeCode": "رمز نوع الكتاب", + "categoryCode": "رمز الفئة", + "categoryGroup": "مجموعة الفئات", + "faLINES": "تفاصيل الأصول", + "assetNumber": "رقم الأصول", + "assetDescription": "وصف الأصول", + "barCodeNumber": "رقم الباركود", + "datePlaceInService": "تاريخ وضعه في الخدمة", + "serialNumber": "رقم سري", + "disposedDate": "تاريخ التخلص", + "netBookValue": "القيمة الدفترية الصافية", + "purchasedPrice": "سعر الشراء", + "usefulLife": "العمر الإنتاجي", + "yearsUsed": "سنوات الاستخدام", + "faRequest": "طلب التخلص من FA", + "showMore": "عرض المزيد", + "buyerDetails": "تفاصيل المشتري" }; static const Map _en_US = { "mohemm": "Mohemm", @@ -1257,8 +1277,28 @@ static const Map _en_US = { "benefits": "Benefits", "mazayaDesc": "Discover special Discounts and offers available to Employees", "viewallofferMazaya": "View All Offers", - "faDisposalRequest":"FA Disposal Request", - "showMore":"Show More" + "buyerName": "Buyer Name", + "buyerNumber": "Buyer Number", + "highestBidder": "Highest Bidder", + "remarks": "Remarks", + "faHeader": "FA Header Details", + "bookTypeCode": "Book Type Code", + "categoryCode": "Category Code", + "categoryGroup": "Category Group", + "faLINES": "Asset Details", + "assetNumber": "Asset Number", + "assetDescription": "Asset Description", + "barCodeNumber": "BarCode Number", + "datePlaceInService": "Date place In Service", + "serialNumber": "Serial Number", + "disposedDate": "Disposed Date", + "netBookValue": "Net Book Value", + "purchasedPrice": "Purchased Price", + "usefulLife": "Useful Life", + "yearsUsed": "Years Used", + "faRequest": "FA Disposal Request", + "showMore": "Show More", + "buyerDetails": "Buyer Details" }; static const Map> mapLocales = {"ar_SA": _ar_SA, "en_US": _en_US}; } diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart index 5abf026..1a1cf95 100644 --- a/lib/generated/locale_keys.g.dart +++ b/lib/generated/locale_keys.g.dart @@ -606,6 +606,27 @@ abstract class LocaleKeys { static const benefits = 'benefits'; static const mazayaDesc = 'mazayaDesc'; static const viewallofferMazaya = 'viewallofferMazaya'; - static const faRequest = 'faDisposalRequest'; + static const buyerName = 'buyerName'; + static const buyerNumber = 'buyerNumber'; + static const highestBidder = 'highestBidder'; + static const remarks = 'remarks'; + static const faHeader = 'faHeader'; + static const bookTypeCode = 'bookTypeCode'; + static const categoryCode = 'categoryCode'; + static const categoryGroup = 'categoryGroup'; + static const faLINES = 'faLINES'; + static const assetNumber = 'assetNumber'; + static const assetDescription = 'assetDescription'; + static const barCodeNumber = 'barCodeNumber'; + static const datePlaceInService = 'datePlaceInService'; + static const serialNumber = 'serialNumber'; + static const disposedDate = 'disposedDate'; + static const netBookValue = 'netBookValue'; + static const purchasedPrice = 'purchasedPrice'; + static const usefulLife = 'usefulLife'; + static const yearsUsed = 'yearsUsed'; + static const faRequest = 'faRequest'; static const showMore = 'showMore'; + static const buyerDetails = 'buyerDetails'; + } diff --git a/lib/models/generic_response_model.dart b/lib/models/generic_response_model.dart index 74cef13..8c653aa 100644 --- a/lib/models/generic_response_model.dart +++ b/lib/models/generic_response_model.dart @@ -107,6 +107,7 @@ import 'package:mohem_flutter_app/models/vacation_rule/vr_item_types_list_model. import 'package:mohem_flutter_app/models/vacation_rule/wf_look_up_list_model.dart'; import 'package:mohem_flutter_app/models/validate_eit_transaction_list_model.dart'; import 'package:mohem_flutter_app/models/worklist/GetRFCEmployeeList.dart'; +import 'package:mohem_flutter_app/models/worklist/get_fad_notifications.dart'; import 'package:mohem_flutter_app/models/worklist/get_favorite_replacements_model.dart'; import 'package:mohem_flutter_app/models/worklist/hr/eit_otification_body_model.dart'; import 'package:mohem_flutter_app/models/worklist/hr/get_address_notification_body_list.dart'; @@ -386,6 +387,7 @@ class GenericResponseModel { String? validatePhonesTransactionList; List? vrItemTypesList; List? wFLookUpList; + GetFaDisposalNtfDetails? getFADisposalNtfDetails; String? eLearningGETEMPLOYEEPROFILEList; String? eLearningLOGINList; String? eLearningValidateLoginList; @@ -664,6 +666,7 @@ class GenericResponseModel { this.ePharmacyGetItemOnHandList, this.isActiveCode, this.isSMSSent, + this.getFADisposalNtfDetails }); GenericResponseModel.fromJson(Map json) { @@ -933,6 +936,9 @@ class GenericResponseModel { }); } + getFADisposalNtfDetails = json['GetFADisposalNtfDetails'] != null ? GetFaDisposalNtfDetails.fromJson(json['GetFADisposalNtfDetails']) : null; + + if (json['GetEarningsList'] != null) { getEarningsList = []; json['GetEarningsList'].forEach((v) { @@ -1549,6 +1555,7 @@ class GenericResponseModel { if (this.getActionHistoryList != null) { data['GetActionHistoryList'] = this.getActionHistoryList!.map((v) => v.toJson()).toList(); } + data['GetFADisposalNtfDetails'] =this.getFADisposalNtfDetails; data['GetAddressDffStructureList'] = this.getAddressDffStructureList; data['GetAddressNotificationBodyList'] = this.getAddressNotificationBodyList; diff --git a/lib/models/worklist/get_fad_notifications.dart b/lib/models/worklist/get_fad_notifications.dart new file mode 100644 index 0000000..3a7ed2d --- /dev/null +++ b/lib/models/worklist/get_fad_notifications.dart @@ -0,0 +1,233 @@ +import 'dart:convert'; + +class GetFaDisposalNtfDetails { + List? pFaBuyers; + List? pFaHeader; + List? pFaLines; + String? pInformation; + dynamic pQuestion; + + GetFaDisposalNtfDetails({ + this.pFaBuyers, + this.pFaHeader, + this.pFaLines, + this.pInformation, + this.pQuestion, + }); + + factory GetFaDisposalNtfDetails.fromRawJson(String str) => GetFaDisposalNtfDetails.fromJson(json.decode(str)); + + String toRawJson() => json.encode(toJson()); + + factory GetFaDisposalNtfDetails.fromJson(Map json) => GetFaDisposalNtfDetails( + pFaBuyers: json["P_FA_BUYERS"] == null ? [] : List.from(json["P_FA_BUYERS"]!.map((x) => PFaBuyer.fromJson(x))), + pFaHeader: json["P_FA_HEADER"] == null ? [] : List.from(json["P_FA_HEADER"]!.map((x) => PFaHeader.fromJson(x))), + pFaLines: json["P_FA_LINES"] == null ? [] : List.from(json["P_FA_LINES"]!.map((x) => PFaLine.fromJson(x))), + pInformation: json["P_INFORMATION"], + pQuestion: json["P_QUESTION"], + ); + + Map toJson() => { + "P_FA_BUYERS": pFaBuyers == null ? [] : List.from(pFaBuyers!.map((x) => x.toJson())), + "P_FA_HEADER": pFaHeader == null ? [] : List.from(pFaHeader!.map((x) => x.toJson())), + "P_FA_LINES": pFaLines == null ? [] : List.from(pFaLines!.map((x) => x.toJson())), + "P_INFORMATION": pInformation, + "P_QUESTION": pQuestion, + }; +} + +class PFaBuyer { + int? amount; + String? buyerName; + String? buyerNumber; + int? fromRowNum; + String? highestBidder; + int? noOfRows; + String? receiptNumber; + String? remarks; + int? requestNo; + int? rowNum; + int? toRowNum; + + PFaBuyer({ + this.amount, + this.buyerName, + this.buyerNumber, + this.fromRowNum, + this.highestBidder, + this.noOfRows, + this.receiptNumber, + this.remarks, + this.requestNo, + this.rowNum, + this.toRowNum, + }); + + factory PFaBuyer.fromRawJson(String str) => PFaBuyer.fromJson(json.decode(str)); + + String toRawJson() => json.encode(toJson()); + + factory PFaBuyer.fromJson(Map json) => PFaBuyer( + amount: json["AMOUNT"], + buyerName: json["BUYER_NAME"], + buyerNumber: json["BUYER_NUMBER"], + fromRowNum: json["FROM_ROW_NUM"], + highestBidder: json["HIGHEST_BIDDER"], + noOfRows: json["NO_OF_ROWS"], + receiptNumber: json["RECEIPT_NUMBER"], + remarks: json["REMARKS"], + requestNo: json["REQUEST_NO"], + rowNum: json["ROW_NUM"], + toRowNum: json["TO_ROW_NUM"], + ); + + Map toJson() => { + "AMOUNT": amount, + "BUYER_NAME": buyerName, + "BUYER_NUMBER": buyerNumber, + "FROM_ROW_NUM": fromRowNum, + "HIGHEST_BIDDER": highestBidder, + "NO_OF_ROWS": noOfRows, + "RECEIPT_NUMBER": receiptNumber, + "REMARKS": remarks, + "REQUEST_NO": requestNo, + "ROW_NUM": rowNum, + "TO_ROW_NUM": toRowNum, + }; +} + +class PFaHeader { + String? bookTypeCode; + String? categoryCode; + String? categoryGroup; + String? comments; + int? requestNo; + String? status; + + PFaHeader({ + this.bookTypeCode, + this.categoryCode, + this.categoryGroup, + this.comments, + this.requestNo, + this.status, + }); + + factory PFaHeader.fromRawJson(String str) => PFaHeader.fromJson(json.decode(str)); + + String toRawJson() => json.encode(toJson()); + + factory PFaHeader.fromJson(Map json) => PFaHeader( + bookTypeCode: json["BOOK_TYPE_CODE"], + categoryCode: json["CATEGORY_CODE"], + categoryGroup: json["CATEGORY_GROUP"], + comments: json["COMMENTS"], + requestNo: json["REQUEST_NO"], + status: json["STATUS"], + ); + + Map toJson() => { + "BOOK_TYPE_CODE": bookTypeCode, + "CATEGORY_CODE": categoryCode, + "CATEGORY_GROUP": categoryGroup, + "COMMENTS": comments, + "REQUEST_NO": requestNo, + "STATUS": status, + }; +} + +class PFaLine { + String? action; + String? assetDescription; + int? assetNumber; + String? barcodeNumber; + String? bme; + String? datePlacedInService; + String? department; + String? disposedDate; + int? fromRowNum; + double? netBookValue; + int? noOfRows; + String? poNumber; + double? purchasePrice; + int? quantity; + int? requestNo; + int? rowNum; + String? serialNumber; + int? toRowNum; + int? usefulLife; + String? yearsUsed; + + PFaLine({ + this.action, + this.assetDescription, + this.assetNumber, + this.barcodeNumber, + this.bme, + this.datePlacedInService, + this.department, + this.disposedDate, + this.fromRowNum, + this.netBookValue, + this.noOfRows, + this.poNumber, + this.purchasePrice, + this.quantity, + this.requestNo, + this.rowNum, + this.serialNumber, + this.toRowNum, + this.usefulLife, + this.yearsUsed, + }); + + factory PFaLine.fromRawJson(String str) => PFaLine.fromJson(json.decode(str)); + + String toRawJson() => json.encode(toJson()); + + factory PFaLine.fromJson(Map json) => PFaLine( + action: json["ACTION"], + assetDescription: json["ASSET_DESCRIPTION"], + assetNumber: json["ASSET_NUMBER"], + barcodeNumber: json["BARCODE_NUMBER"], + bme: json["BME"], + datePlacedInService: json["DATE_PLACED_IN_SERVICE"], + department: json["DEPARTMENT"], + disposedDate: json["DISPOSED_DATE"], + fromRowNum: json["FROM_ROW_NUM"], + netBookValue: json["NET_BOOK_VALUE"]?.toDouble(), + noOfRows: json["NO_OF_ROWS"], + poNumber: json["PO_NUMBER"], + purchasePrice: json["PURCHASE_PRICE"]?.toDouble(), + quantity: json["QUANTITY"], + requestNo: json["REQUEST_NO"], + rowNum: json["ROW_NUM"], + serialNumber: json["SERIAL_NUMBER"], + toRowNum: json["TO_ROW_NUM"], + usefulLife: json["USEFUL_LIFE"], + yearsUsed: json["YEARS_USED"], + ); + + Map toJson() => { + "ACTION": action, + "ASSET_DESCRIPTION": assetDescription, + "ASSET_NUMBER": assetNumber, + "BARCODE_NUMBER": barcodeNumber, + "BME": bme, + "DATE_PLACED_IN_SERVICE": datePlacedInService, + "DEPARTMENT": department, + "DISPOSED_DATE": disposedDate, + "FROM_ROW_NUM": fromRowNum, + "NET_BOOK_VALUE": netBookValue, + "NO_OF_ROWS": noOfRows, + "PO_NUMBER": poNumber, + "PURCHASE_PRICE": purchasePrice, + "QUANTITY": quantity, + "REQUEST_NO": requestNo, + "ROW_NUM": rowNum, + "SERIAL_NUMBER": serialNumber, + "TO_ROW_NUM": toRowNum, + "USEFUL_LIFE": usefulLife, + "YEARS_USED": yearsUsed, + }; +} diff --git a/lib/ui/work_list/work_list_screen.dart b/lib/ui/work_list/work_list_screen.dart index 954558d..d659ea6 100644 --- a/lib/ui/work_list/work_list_screen.dart +++ b/lib/ui/work_list/work_list_screen.dart @@ -125,16 +125,16 @@ class _WorkListScreenState extends State { key: 'PAY_REQ', disable: false, ), - // WorkListItemTypeModelData( - // value: 0, - // name: 'FA Disposal Request ', - // fullName: LocaleKeys.faRequest.tr(), - // active: false, - // color: [Color(0xff42d7bf), Color(0xff42d7bf)], - // icon: "assets/images/miss_swipe.svg", - // key: 'HMG_FA_D', - // disable: false, - // ), + WorkListItemTypeModelData( + value: 0, + name: 'FA Disposal Request ', + fullName: LocaleKeys.faRequest.tr(), + active: false, + color: [Color(0xff42d7bf), Color(0xff42d7bf)], + icon: "assets/images/miss_swipe.svg", + key: 'HMG_FA_D', + disable: false, + ), ]; diff --git a/lib/ui/work_list/worklist_detail_screen.dart b/lib/ui/work_list/worklist_detail_screen.dart index 20cb0ea..6bf8ea9 100644 --- a/lib/ui/work_list/worklist_detail_screen.dart +++ b/lib/ui/work_list/worklist_detail_screen.dart @@ -25,6 +25,7 @@ import 'package:mohem_flutter_app/models/member_information_list_model.dart'; import 'package:mohem_flutter_app/models/notification_get_respond_attributes_list_model.dart'; import 'package:mohem_flutter_app/models/termination/termination_notification_body.dart'; import 'package:mohem_flutter_app/models/worklist/GetRFCEmployeeList.dart'; +import 'package:mohem_flutter_app/models/worklist/get_fad_notifications.dart'; import 'package:mohem_flutter_app/models/worklist/hr/eit_otification_body_model.dart'; import 'package:mohem_flutter_app/models/worklist/hr/get_address_notification_body_list.dart'; import 'package:mohem_flutter_app/models/worklist/hr/get_basic_det_ntf_body_list_model.dart'; @@ -92,7 +93,7 @@ class _WorkListDetailScreenState extends State { GetPrNotificationBodyList? getPrNotificationBody; GetItemCreationNtfBodyList? getItemCreationNtfBody; GetPaymentNotificationBodyList? getPaymentNotificationBodyList; - + GetFaDisposalNtfDetails? getFADNotificationBody; bool isCloseAvailable = false; bool isApproveAvailable = false; bool isRejectAvailable = false; @@ -177,6 +178,9 @@ class _WorkListDetailScreenState extends State { if (workListData!.iTEMTYPE == "PAY_REQ") { getPaymentNotification(); } + if (workListData!.iTEMTYPE == "HMG_FA_D") { + getFADNotification(); + } if (controller.hasClients) { controller.jumpToPage(0); @@ -272,6 +276,7 @@ class _WorkListDetailScreenState extends State { getPrNotificationBodyList: getPrNotificationBody, getTerminationNotificationBodyList: getTerminationNotificationBodyList, getPaymentNotificationBodyList: getPaymentNotificationBodyList, + getFADNotificationBodyList: getFADNotificationBody ), (workListData!.iTEMTYPE == "HRSSA" || workListData!.iTEMTYPE == "STAMP" || workListData!.iTEMTYPE == "PAY_REQ") ? DetailFragment(workListData, memberInformationListModel) @@ -1036,6 +1041,23 @@ class _WorkListDetailScreenState extends State { } } + Future getFADNotification() async { + try { + if (apiCallCount == 0) Utils.showLoading(context); + apiCallCount++; + getFADNotificationBody = await WorkListApiClient().getFADNotificationBody(workListData!.nOTIFICATIONID); + apiCallCount--; + if (apiCallCount == 0) { + Utils.hideLoading(context); + setState(() {}); + } + } catch (ex) { + apiCallCount--; + Utils.hideLoading(context); + Utils.handleException(ex, context, null); + } + } + void notificationGetRespondAttributes() async { try { if (apiCallCount == 0) Utils.showLoading(context); diff --git a/lib/ui/work_list/worklist_fragments/info_fragments.dart b/lib/ui/work_list/worklist_fragments/info_fragments.dart index 73a87f7..541d347 100644 --- a/lib/ui/work_list/worklist_fragments/info_fragments.dart +++ b/lib/ui/work_list/worklist_fragments/info_fragments.dart @@ -12,6 +12,7 @@ import 'package:mohem_flutter_app/models/get_po_notification_body_list_model.dar import 'package:mohem_flutter_app/models/get_pr_notification_body_list_model.dart'; import 'package:mohem_flutter_app/models/get_stamp_ms_notification_body_list_model.dart'; import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_list_model.dart'; +import 'package:mohem_flutter_app/models/worklist/get_fad_notifications.dart'; import 'package:mohem_flutter_app/models/worklist/hr/eit_otification_body_model.dart'; import 'package:mohem_flutter_app/models/worklist/hr/get_address_notification_body_list.dart'; import 'package:mohem_flutter_app/models/worklist/hr/get_basic_det_ntf_body_list_model.dart'; @@ -39,7 +40,7 @@ class InfoFragment extends StatelessWidget { List? getAddressNotificationBodyList = []; List? getTerminationNotificationBodyList = []; GetPaymentNotificationBodyList? getPaymentNotificationBodyList; - + GetFaDisposalNtfDetails? getFADNotificationBodyList; InfoFragment( {this.workListData, this.poHeaderList = const [], @@ -54,7 +55,9 @@ class InfoFragment extends StatelessWidget { this.getPrNotificationBodyList, this.getAddressNotificationBodyList, this.getTerminationNotificationBodyList, - this.getPaymentNotificationBodyList}); + this.getPaymentNotificationBodyList, + this.getFADNotificationBodyList + }); double itemHeight = 0; double itemWidth = 0; @@ -129,7 +132,10 @@ class InfoFragment extends StatelessWidget { getTerminationNotificationBodyList!), if (getPaymentNotificationBodyList != null) getPaymentNotificationBodyListWidget(getPaymentNotificationBodyList ?? - GetPaymentNotificationBodyList()) + GetPaymentNotificationBodyList()), + if (getFADNotificationBodyList != null) + getFANotificationBodyListWidget(getFADNotificationBodyList ?? + GetFaDisposalNtfDetails()) .objectContainerView(), ]; return Container( @@ -922,5 +928,125 @@ class InfoFragment extends StatelessWidget { ], ); + } + + Widget getFANotificationBodyListWidget( + GetFaDisposalNtfDetails? data) { + return Column( + children: [ + 12.height, + + if (data!.pFaHeader!.isNotEmpty) + Column( + children: [ + LocaleKeys.faHeader.tr().toText14(color: MyColors.textMixColor), + ItemDetailGrid( + ItemDetailViewCol(LocaleKeys.requestNo.tr(), + data.pFaHeader![0].requestNo.toString() ?? ""), + ItemDetailViewCol( + LocaleKeys.stats.tr(), data.pFaHeader![0].status ?? ""), + ), + ItemDetailGrid( + ItemDetailViewCol( + LocaleKeys.bookTypeCode.tr(), data.pFaHeader![0].bookTypeCode ?? ""), + ItemDetailViewCol(LocaleKeys.categoryCode.tr(), + data.pFaHeader![0].categoryCode ?? ""), + ), + ItemDetailGrid( + ItemDetailViewCol(LocaleKeys.categoryGroup.tr(), + data.pFaHeader![0].categoryGroup ?? ""), + ItemDetailViewCol( + LocaleKeys.comments.tr(), data.pFaHeader![0].comments ?? ""), + ), + + + ], + ).objectContainerView(), + if (data!.pFaLines!.isNotEmpty) + Column( + children: [ + LocaleKeys.faLINES.tr().toText14(color: MyColors.textMixColor), + ItemDetailGrid( + ItemDetailViewCol( LocaleKeys.requestNo.tr(), + data.pFaLines![0].requestNo.toString() ?? ""), + ItemDetailViewCol( + LocaleKeys.quantity.tr(), data.pFaLines![0].quantity.toString() ?? "" ), + + ), + ItemDetailGrid( + ItemDetailViewCol( + LocaleKeys.assetNumber.tr(), data.pFaLines![0].assetNumber.toString() ?? ""), + ItemDetailViewCol(LocaleKeys.assetDescription.tr(), + data.pFaLines![0].assetDescription ?? ""), + ), + ItemDetailGrid( + ItemDetailViewCol(LocaleKeys.barCodeNumber.tr(), + data.pFaLines![0] .barcodeNumber.toString() ?? ""), + ItemDetailViewCol( + LocaleKeys.datePlaceInService.tr(), DateUtil.formatDateToDate( + DateUtil.convertStringToDate( data.pFaLines![0].datePlacedInService ?? ""), false)), + ), + ItemDetailGrid( + ItemDetailViewCol(LocaleKeys.departmentName.tr(), + data.pFaLines![0].department ?? ""), + ItemDetailViewCol(LocaleKeys.serialNumber.tr(), + data.pFaLines![0].serialNumber ?? "") , + ), + ItemDetailGrid( + ItemDetailViewCol( + LocaleKeys.disposedDate.tr(), DateUtil.formatDateToDate( + DateUtil.convertStringToDate( data.pFaLines![0].disposedDate ?? ""), false)), + ItemDetailViewCol(LocaleKeys.netBookValue.tr(), + data.pFaLines![0].netBookValue.toString() ?? ""), + + ), + ItemDetailGrid( + ItemDetailViewCol( + LocaleKeys.poNumber.tr(), data.pFaLines![0].poNumber.toString() ?? "" ), + ItemDetailViewCol(LocaleKeys.purchasedPrice.tr(), + data.pFaLines![0].purchasePrice.toString() ?? ""), + + ), + ItemDetailGrid( + ItemDetailViewCol( + LocaleKeys.usefulLife.tr(), data.pFaLines![0].usefulLife.toString() ?? "" ), + ItemDetailViewCol(LocaleKeys.yearsUsed.tr(), + data.pFaLines![0].yearsUsed.toString() ?? ""), + + ), + ], + ).objectContainerView(), + + if (data!.pFaBuyers!.isNotEmpty) + Column( + children: [ + LocaleKeys.buyer.tr().toText14(color: MyColors.textMixColor), + ItemDetailGrid( + ItemDetailViewCol( + LocaleKeys.requestNo.tr(), data.pFaBuyers![0].requestNo.toString() ?? ""), + ItemDetailViewCol( LocaleKeys.amount.tr(), + data.pFaBuyers![0].amount.toString() ?? ""), + ), + ItemDetailGrid( + ItemDetailViewCol(LocaleKeys.buyerNumber.tr(), + data.pFaBuyers![0].buyerName!), + ItemDetailViewCol( + LocaleKeys.buyerNumber.tr(), data.pFaBuyers![0].buyerNumber ?? ""), + ), + ItemDetailGrid( + ItemDetailViewCol( LocaleKeys.highestBidder.tr(), + data.pFaBuyers![0].highestBidder ?? ""), + ItemDetailViewCol( + LocaleKeys.remarks.tr(), data.pFaBuyers![0].remarks ?? ""), + ), + + ], + ).objectContainerView(), + + ]); + + + + } }