From 044eadaacc6b2f317f54b3219f5daa4d522eaba4 Mon Sep 17 00:00:00 2001 From: "muhammad.abbasi" Date: Sun, 6 Oct 2024 10:24:33 +0300 Subject: [PATCH] ready for initial testing --- .../activity_maintenance_model.dart | 1 + .../new_models/work_order_detail_model.dart | 268 ++++++++---------- .../components/activities_list_view.dart | 7 +- .../components/assistant_employee_card.dart | 2 +- .../components/external_request.dart | 2 +- .../forms/spare_part/spare_part_request.dart | 14 +- 6 files changed, 132 insertions(+), 162 deletions(-) diff --git a/lib/models/helper_data_models/maintenance_request/activity_maintenance_model.dart b/lib/models/helper_data_models/maintenance_request/activity_maintenance_model.dart index fe444875..f2e3ecd8 100644 --- a/lib/models/helper_data_models/maintenance_request/activity_maintenance_model.dart +++ b/lib/models/helper_data_models/maintenance_request/activity_maintenance_model.dart @@ -71,6 +71,7 @@ class ActivityMaintenanceHelperModel { data['supplierStartTime'] = supplierStartTime?.toIso8601String(); data['supplierEndTime'] = supplierEndTime?.toIso8601String(); data['supplierWorkingHour'] = supplierWorkingHour; + print('model i got is ${modelAssistantEmployees?.toJson()}'); if (assignedEmployee != null&&assignedEmployee?.userId!=null) { data['assistantEmployees'] = [modelAssistantEmployees?.toJson()]; } diff --git a/lib/models/new_models/work_order_detail_model.dart b/lib/models/new_models/work_order_detail_model.dart index 04182013..b003c57e 100644 --- a/lib/models/new_models/work_order_detail_model.dart +++ b/lib/models/new_models/work_order_detail_model.dart @@ -30,8 +30,7 @@ class WorkOrderDetail { ); } - Map toJson() => - { + Map toJson() => { "data": data?.toJson(), "message": message, "title": title, @@ -88,47 +87,47 @@ class WorkOrderData { }); int? requestId; - String? workOrderNo; - WorkOrderAssignedEmployee? workOrderCreatedBy; - DateTime? requestedDate; + String? workOrderNo; + WorkOrderAssignedEmployee? workOrderCreatedBy; + DateTime? requestedDate; WorkOrderAsset? asset; - Lookup? assetGroup; - Lookup? manufacturer; - Lookup? model; - Lookup? assetNdModel; - Site? site; - Lookup? building; - Lookup? floor; - AssetGroup? department; - int? room; - Lookup? assetType; - WorkOrderAssignedEmployee? assignedEmployee; - String? lastActivityStatus; - Lookup? status; - Lookup? nextStep; - int? assetVerificationType; - List workOrderContactPerson; - Lookup? equipmentStatus; - Lookup? priority; - Lookup? requestedThrough; - Lookup? typeofRequest; - Lookup? loanAvailablity; - Lookup? assetLoan; - Lookup? safety; - Lookup? problemDescription; - String? comments; - String? voiceNote; - List workOrderAttachments; - String? returnToService; - Lookup? serviceType; - Lookup? failureReasone; - Lookup? solution; - String? totalWorkingHours; + Lookup? assetGroup; + Lookup? manufacturer; + Lookup? model; + Lookup? assetNdModel; + Site? site; + Lookup? building; + Lookup? floor; + AssetGroup? department; + int? room; + Lookup? assetType; + WorkOrderAssignedEmployee? assignedEmployee; + String? lastActivityStatus; + Lookup? status; + Lookup? nextStep; + int? assetVerificationType; + List workOrderContactPerson; + Lookup? equipmentStatus; + Lookup? priority; + Lookup? requestedThrough; + Lookup? typeofRequest; + Lookup? loanAvailablity; + Lookup? assetLoan; + Lookup? safety; + Lookup? problemDescription; + String? comments; + String? voiceNote; + List workOrderAttachments; + String? returnToService; + Lookup? serviceType; + Lookup? failureReasone; + Lookup? solution; + String? totalWorkingHours; DateTime? needAVisitDateTime; - String?needAVisitComment; - List workOrderHistory; - List activities; - List activityAssetToBeRetireds; + String? needAVisitComment; + List workOrderHistory; + List activities; + List activityAssetToBeRetireds; factory WorkOrderData.fromJson(Map json) { return WorkOrderData( @@ -163,7 +162,7 @@ class WorkOrderData { problemDescription: json["problemDescription"] == null ? null : Lookup.fromJson(json["problemDescription"]), comments: json["comments"], voiceNote: json["voiceNote"], - workOrderAttachments: json["workOrderAttachments"] == null ? [] : List.from(json['workOrderAttachments']).map((e)=>WorkOrderAttachments.fromJson(e)).toList(), + workOrderAttachments: json["workOrderAttachments"] == null ? [] : List.from(json['workOrderAttachments']).map((e) => WorkOrderAttachments.fromJson(e)).toList(), returnToService: json["returnToService"], serviceType: json["serviceType"] == null ? null : Lookup.fromJson(json["serviceType"]), failureReasone: json["failureReasone"] == null ? null : Lookup.fromJson(json["failureReasone"]), @@ -177,8 +176,7 @@ class WorkOrderData { ); } - Map toJson() => - { + Map toJson() => { "id": requestId, "workOrderNo": workOrderNo, "workOrderCreatedBy": workOrderCreatedBy?.toJson(), @@ -211,7 +209,7 @@ class WorkOrderData { "problemDescription": problemDescription?.toJson(), "comments": comments, "voiceNote": voiceNote, - "workOrderAttachments": workOrderAttachments.map((e)=>e.toJson()).toList(), + "workOrderAttachments": workOrderAttachments.map((e) => e.toJson()).toList(), "returnToService": returnToService, "serviceType": serviceType?.toJson(), "failureReasone": failureReasone?.toJson(), @@ -221,22 +219,33 @@ class WorkOrderData { "activities": activities.map((x) => x.toJson()).toList(), "activityAssetToBeRetireds": activityAssetToBeRetireds.map((x) => x).toList(), }; + Map toFixRemotelyJson() { - return {'workOrderId': workOrderNo, 'startDate': workOrderHistory.isNotEmpty? workOrderHistory[0].fixRemotlyStartTime:'', 'endDate': workOrderHistory.isNotEmpty? workOrderHistory[0].fixRemotlyEndTime:'', 'workingHour':'', 'comment': comments}; + return { + 'workOrderId': workOrderNo, + 'startDate': workOrderHistory.isNotEmpty ? workOrderHistory[0].fixRemotlyStartTime : '', + 'endDate': workOrderHistory.isNotEmpty ? workOrderHistory[0].fixRemotlyEndTime : '', + 'workingHour': '', + 'comment': comments + }; } + //TODO feedback not defined... Map toMarkAsFixedJson() { return {'workOrderId': workOrderNo, 'feedback': comments}; } + Map toNeedVisitJson() { - return {'workOrderId': workOrderNo, 'visitDate': workOrderHistory.isNotEmpty? workOrderHistory[0].needAVisitDateTime:'', 'comment': comments}; + return {'workOrderId': workOrderNo, 'visitDate': workOrderHistory.isNotEmpty ? workOrderHistory[0].needAVisitDateTime : '', 'comment': comments}; } + //TODO signatureNurse not defined... Map toNurseActionJson() { return {'workOrderId': workOrderNo, 'feedback': '', 'signatureNurse': 'signatureNurse'}; } + Map toWorkOrderJson() { - final Map data = {}; + final Map data = {}; data['workOrderId'] = requestId; data['equipmentStatusId'] = equipmentStatus?.id; data['returnToService'] = returnToService; @@ -256,8 +265,8 @@ class WorkOrderAsset { required this.assetNumber, }); - int? id; - String? assetNumber; + int? id; + String? assetNumber; factory WorkOrderAsset.fromJson(Map json) { return WorkOrderAsset( @@ -266,8 +275,7 @@ class WorkOrderAsset { ); } - Map toJson() => - { + Map toJson() => { "id": id, "assetNumber": assetNumber, }; @@ -279,8 +287,8 @@ class AssetGroup { required this.name, }); - int? id; - String? name; + int? id; + String? name; factory AssetGroup.fromJson(Map json) { return AssetGroup( @@ -289,8 +297,7 @@ class AssetGroup { ); } - Map toJson() => - { + Map toJson() => { "id": id, "name": name, }; @@ -304,10 +311,10 @@ class WorkOrderAssignedEmployee { required this.languageId, }); - dynamic userId; - String? userName; - String? email; - int? languageId; + dynamic userId; + String? userName; + String? email; + int? languageId; factory WorkOrderAssignedEmployee.fromJson(Map json) { return WorkOrderAssignedEmployee( @@ -318,14 +325,14 @@ class WorkOrderAssignedEmployee { ); } - Map toJson() => - { + Map toJson() => { "userId": userId, "userName": userName, "email": email, "languageId": languageId, }; } + class Activities { int? id; int? orderNo; @@ -334,32 +341,20 @@ class Activities { ActivitySparePart? activitySparePart; String? activityType; - Activities( - {this.id, - this.orderNo, - this.activityStatus, - this.activityMaintenance, - this.activityType, - this.activitySparePart}); + Activities({this.id, this.orderNo, this.activityStatus, this.activityMaintenance, this.activityType, this.activitySparePart}); Activities.fromJson(Map json) { id = json['id']; orderNo = json['orderNo']; - activityStatus = json['activityStatus'] != null - ? Lookup.fromJson(json['activityStatus']) - : null; - activityMaintenance = json['activityMaintenance'] != null - ? ActivityMaintenance.fromJson(json['activityMaintenance']) - : null; - if(activityMaintenance!=null){ - activityType='Maintenance Request'; + activityStatus = json['activityStatus'] != null ? Lookup.fromJson(json['activityStatus']) : null; + activityMaintenance = json['activityMaintenance'] != null ? ActivityMaintenance.fromJson(json['activityMaintenance']) : null; + if (activityMaintenance != null) { + activityType = 'Maintenance Request'; } - activitySparePart = json['activitySparePart'] != null - ? ActivitySparePart.fromJson(json['activitySparePart']) - : null; - if(activitySparePart!=null){ - activityType='Spare Part Request'; + activitySparePart = json['activitySparePart'] != null ? ActivitySparePart.fromJson(json['activitySparePart']) : null; + if (activitySparePart != null) { + activityType = 'Spare Part Request'; } } @@ -409,18 +404,11 @@ class ActivitySparePart { String? comment; List? acitiySparePartAttachments; - ActivitySparePart( - {this.id, - this.partCatalogItem, - this.quantity, - this.comment, - this.acitiySparePartAttachments}); + ActivitySparePart({this.id, this.partCatalogItem, this.quantity, this.comment, this.acitiySparePartAttachments}); ActivitySparePart.fromJson(Map json) { id = json['id']; - partCatalogItem = json['partCatalogItem'] != null - ? new PartCatalogItem.fromJson(json['partCatalogItem']) - : null; + partCatalogItem = json['partCatalogItem'] != null ? new PartCatalogItem.fromJson(json['partCatalogItem']) : null; quantity = json['quantity']; comment = json['comment']; if (json['acitiySparePartAttachments'] != null) { @@ -440,8 +428,7 @@ class ActivitySparePart { data['quantity'] = quantity; data['comment'] = comment; if (acitiySparePartAttachments != null) { - data['acitiySparePartAttachments'] = - acitiySparePartAttachments!.map((v) => v.toJson()).toList(); + data['acitiySparePartAttachments'] = acitiySparePartAttachments!.map((v) => v.toJson()).toList(); } return data; } @@ -451,13 +438,15 @@ class PartCatalogItem { int? id; String? partName; String? partNumber; + String? oracleCode; - PartCatalogItem({this.id, this.partName, this.partNumber}); + PartCatalogItem({this.id, this.partName, this.partNumber,this.oracleCode}); PartCatalogItem.fromJson(Map json) { id = json['id']; partName = json['partName']; partNumber = json['partNumber']; + oracleCode = json['oracleCode']; } Map toJson() { @@ -469,15 +458,14 @@ class PartCatalogItem { } } - class Site { Site({ required this.id, required this.siteName, }); - int? id; - String? siteName; + int? id; + String? siteName; factory Site.fromJson(Map json) { return Site( @@ -486,8 +474,7 @@ class Site { ); } - Map toJson() => - { + Map toJson() => { "id": id, "siteName": siteName, }; @@ -505,14 +492,14 @@ class WorkOrderContactPerson { required this.contactUser, }); - int? id; - String? name; - String? employeeId; - String? position; - dynamic extension; - String? email; - dynamic mobilePhone; - WorkOrderAssignedEmployee? contactUser; + int? id; + String? name; + String? employeeId; + String? position; + dynamic extension; + String? email; + dynamic mobilePhone; + WorkOrderAssignedEmployee? contactUser; factory WorkOrderContactPerson.fromJson(Map json) { return WorkOrderContactPerson( @@ -527,8 +514,7 @@ class WorkOrderContactPerson { ); } - Map toJson() => - { + Map toJson() => { "id": id, "name": name, "employeeId": employeeId, @@ -555,17 +541,17 @@ class WorkOrderHistory { required this.needAVisitDateTime, }); - int? id; - Lookup? workorderStatus; - dynamic activityStatus; - DateTime? date; - WorkOrderAssignedEmployee? user; - Lookup? step; - DateTime? fixRemotlyStartTime; - DateTime? fixRemotlyEndTime; - num? fixRemotlyWorkingHours; - String? comments; - DateTime? needAVisitDateTime; + int? id; + Lookup? workorderStatus; + dynamic activityStatus; + DateTime? date; + WorkOrderAssignedEmployee? user; + Lookup? step; + DateTime? fixRemotlyStartTime; + DateTime? fixRemotlyEndTime; + num? fixRemotlyWorkingHours; + String? comments; + DateTime? needAVisitDateTime; factory WorkOrderHistory.fromJson(Map json) { return WorkOrderHistory( @@ -583,8 +569,7 @@ class WorkOrderHistory { ); } - Map toJson() => - { + Map toJson() => { "id": id, "workorderStatus": workorderStatus?.toJson(), "activityStatus": activityStatus, @@ -598,6 +583,7 @@ class WorkOrderHistory { "needAVisitDateTime": needAVisitDateTime?.toIso8601String(), }; } + class ActivityMaintenance { int? id; ActivityStatus? activityStatus; @@ -635,22 +621,16 @@ class ActivityMaintenance { this.assistantEmployees}); ActivityMaintenance.fromJson(Map json) { - print('activity status i got is ${json['activityStatus']}'); + print('activity status i got is ${json['activityStatus']}'); id = json['id']; - activityStatus = json['activityStatus'] != null - ? ActivityStatus.fromJson(json['activityStatus']) - : null; + activityStatus = json['activityStatus'] != null ? ActivityStatus.fromJson(json['activityStatus']) : null; startTime = json['startTime']; endTime = json['endTime']; workingHours = json['workingHours']; travelHours = json['travelHours']; - lastSituation = json['lastSituation'] != null ? Lookup.fromJson(json['lastSituation']) : null; - repairLocation = json['repairLocation'] != null - ? Lookup.fromJson(json['repairLocation']) - : null; - assignedEmployee = json['assignedEmployee'] != null - ? AssignedEmployee.fromJson(json['assignedEmployee']) - : null; + lastSituation = json['lastSituation'] != null ? Lookup.fromJson(json['lastSituation']) : null; + repairLocation = json['repairLocation'] != null ? Lookup.fromJson(json['repairLocation']) : null; + assignedEmployee = json['assignedEmployee'] != null ? AssignedEmployee.fromJson(json['assignedEmployee']) : null; technicalComment = json['technicalComment']; //json["supplier"] == null ? null : Lookup.fromJson(json["supplier"]), supplier = json["supplier"] == null ? null : Lookup.fromJson(json["supplier"]); @@ -662,7 +642,7 @@ class ActivityMaintenance { if (json['assistantEmployees'] != null) { assistantEmployees = []; json['assistantEmployees'].forEach((v) { - assistantEmployees!.add( ActivityMaintenanceAssistantEmployees.fromJson(v)); + assistantEmployees!.add(ActivityMaintenanceAssistantEmployees.fromJson(v)); }); } } @@ -688,8 +668,7 @@ class ActivityMaintenance { data['supplierEndTime'] = supplierEndTime; data['supplierWorkingHours'] = supplierWorkingHours; if (assistantEmployees != null) { - data['assistantEmployees'] = - assistantEmployees!.map((v) => v.toJson()).toList(); + data['assistantEmployees'] = assistantEmployees!.map((v) => v.toJson()).toList(); } return data; } @@ -749,22 +728,14 @@ class ActivityMaintenanceAssistantEmployees { String? technicalComment; AssignedEmployee? user; - - ActivityMaintenanceAssistantEmployees( - {this.startDate, - this.endDate, - this.workingHours, - this.technicalComment, - this.user}); + ActivityMaintenanceAssistantEmployees({this.startDate, this.endDate, this.workingHours, this.technicalComment, this.user}); ActivityMaintenanceAssistantEmployees.fromJson(Map json) { - startDate = json['startDate']!=null?DateTime.parse(json['startDate']):null; - endDate = json['endDate']!=null?DateTime.parse(json['endDate']):null; + startDate = json['startDate'] != null ? DateTime.parse(json['startDate']) : null; + endDate = json['endDate'] != null ? DateTime.parse(json['endDate']) : null; workingHours = json['workingHours']; technicalComment = json['technicalComment']; - user = json['user'] != null - ? AssignedEmployee.fromJson(json['user']) - : null; + user = json['user'] != null ? AssignedEmployee.fromJson(json['user']) : null; } Map toJson() { @@ -779,4 +750,3 @@ class ActivityMaintenanceAssistantEmployees { return data; } } - diff --git a/lib/service_request_latest/views/components/activities_list_view.dart b/lib/service_request_latest/views/components/activities_list_view.dart index 7efd0d26..7496b3ee 100644 --- a/lib/service_request_latest/views/components/activities_list_view.dart +++ b/lib/service_request_latest/views/components/activities_list_view.dart @@ -167,7 +167,8 @@ class _ActivitiesListViewState extends State { sparePart: SparePart( id: activity.activitySparePart?.partCatalogItem?.id, partName: activity.activitySparePart?.partCatalogItem?.partName, - partNo: activity.activitySparePart?.partCatalogItem?.partNumber), + partNo: activity.activitySparePart?.partCatalogItem?.partNumber, + oracleCode: activity.activitySparePart?.partCatalogItem?.oracleCode), quantity: activity.activitySparePart?.quantity, activityStatusId: activity.activityStatus?.id, //TODO commets are missing in api response.. @@ -260,7 +261,7 @@ class _ActivitiesListViewState extends State { mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ "edit_icon".toSvgAsset(height: 21, width: 21).onPress(() { - onEditPress(context: context, requestDetailProvider: requestDetailProvider, activity: activity); + onEditMaintenanceRequestPress(context: context, requestDetailProvider: requestDetailProvider, activity: activity); }), 24.width, "delete_icon".toSvgAsset(height: 21, width: 21).onPress(() async { @@ -322,7 +323,7 @@ class _ActivitiesListViewState extends State { }); } - void onEditPress({required BuildContext context, required RequestDetailProvider requestDetailProvider, required Activities activity}) async { + void onEditMaintenanceRequestPress({required BuildContext context, required RequestDetailProvider requestDetailProvider, required Activities activity}) async { Map assistEmpData = {}; try { if (activity.activityMaintenance?.assistantEmployees != null && activity.activityMaintenance!.assistantEmployees!.isNotEmpty) { diff --git a/lib/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.dart b/lib/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.dart index d85d839c..aa921bda 100644 --- a/lib/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.dart +++ b/lib/service_request_latest/views/forms/maintenance_request/components/assistant_employee_card.dart @@ -90,7 +90,7 @@ class _AssistantEmployeeCardState extends State { requestDetailProvider.activityMaintenanceHelperModel?.assistantEmployees = []; } else { requestDetailProvider.activityMaintenanceHelperModel?.assistantEmployees = [employee.copyWith(id: 0)]; - requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.user?.userId=employee.user?.id; + requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.user= AssignedEmployee(userId: employee.user?.id,userName:employee.user?.name ); } }, diff --git a/lib/service_request_latest/views/forms/maintenance_request/components/external_request.dart b/lib/service_request_latest/views/forms/maintenance_request/components/external_request.dart index cd00b962..18ca109f 100644 --- a/lib/service_request_latest/views/forms/maintenance_request/components/external_request.dart +++ b/lib/service_request_latest/views/forms/maintenance_request/components/external_request.dart @@ -247,7 +247,7 @@ class _ExternalMaintenanceRequestState extends State int hours = calculateWorkingHours(requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime, requestDetailProvider.activityMaintenanceHelperModel!.supplierEndTime); if (hours != -1) { _workingHoursController.text = hours.toString(); - requestDetailProvider.activityMaintenanceHelperModel!.workingHour = hours; + requestDetailProvider.activityMaintenanceHelperModel!.supplierWorkingHour = hours; } } } diff --git a/lib/service_request_latest/views/forms/spare_part/spare_part_request.dart b/lib/service_request_latest/views/forms/spare_part/spare_part_request.dart index 788b0b52..679d5559 100644 --- a/lib/service_request_latest/views/forms/spare_part/spare_part_request.dart +++ b/lib/service_request_latest/views/forms/spare_part/spare_part_request.dart @@ -187,12 +187,6 @@ class _SparePartRequestState extends State with TickerProvider files: _files, buttonIcon: 'quotation_icon'.toSvgAsset(), buttonColor: AppColor.primary10, - onChange: (List list) { - - for (var element in list) { - print('path is ${element.file.path}'); - } - }, ), ], ).paddingAll(16), @@ -225,8 +219,12 @@ class _SparePartRequestState extends State with TickerProvider //this is for hide the dialoge... Navigator.pop(context); Navigator.pop(context); - ServiceRequestBottomSheet.addAnotherSpareRequestBottomSheet(context: context); - SizedBox().flushBar(context: context, title: context.translation.sparePartActivitySuccess, message: ''); + //show this only for add form.. + if(_requestDetailProvider?.sparePartHelperModel?.id==0){ + ServiceRequestBottomSheet.addAnotherSpareRequestBottomSheet(context: context); + SizedBox().flushBar(context: context, title: context.translation.sparePartActivitySuccess, message: ''); + } + } else { Navigator.pop(context); }