activity status on sparepart activity and last situation in maintenance request added

design_3.0_latest
muhammad.abbasi 1 year ago
parent 0d2e8d63b7
commit f6b3c82fb3

@ -255,6 +255,7 @@
"askOtpDetail": "اطلب رمز OTP من مقدم الطلب للتحقق من وصولك", "askOtpDetail": "اطلب رمز OTP من مقدم الطلب للتحقق من وصولك",
"takeDevicePhoto": "التقط صورة للجهاز", "takeDevicePhoto": "التقط صورة للجهاز",
"takeDevicePhotoDetail": "التقط صورة الجهاز من الموقع", "takeDevicePhotoDetail": "التقط صورة الجهاز من الموقع",
"lastSituationStatus": "حالة الوضع الأخير",
"assetNumber": "رقم الاصل", "assetNumber": "رقم الاصل",
"assetDetail": "تفاصيل الأصل", "assetDetail": "تفاصيل الأصل",
"requestDetail": "تفاصيل الطلب", "requestDetail": "تفاصيل الطلب",

@ -340,6 +340,7 @@
"askOtpDetail": "Ask OTP from requester to verify you arrival", "askOtpDetail": "Ask OTP from requester to verify you arrival",
"takeDevicePhoto": "Take Device Photo", "takeDevicePhoto": "Take Device Photo",
"takeDevicePhotoDetail": "Take the photo of the device from location", "takeDevicePhotoDetail": "Take the photo of the device from location",
"lastSituationStatus": "Last Situation Status",
"priority" : "Request Priority", "priority" : "Request Priority",
"equipmentStatus" : "Equipment Status", "equipmentStatus" : "Equipment Status",
"jopStatus" : "Jop Status", "jopStatus" : "Jop Status",

@ -1,5 +1,4 @@
import 'dart:io'; import 'dart:io';
import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
@ -48,6 +47,7 @@ import 'package:test_sa/providers/ppm_visit_status_provider.dart';
import 'package:test_sa/providers/service_request_providers/commissioning_status_provider.dart'; import 'package:test_sa/providers/service_request_providers/commissioning_status_provider.dart';
import 'package:test_sa/providers/service_request_providers/equipment_status_provider.dart'; import 'package:test_sa/providers/service_request_providers/equipment_status_provider.dart';
import 'package:test_sa/providers/service_request_providers/first_action_provider.dart'; import 'package:test_sa/providers/service_request_providers/first_action_provider.dart';
import 'package:test_sa/providers/service_request_providers/last_situation_provider.dart';
import 'package:test_sa/providers/service_request_providers/priority_provider.dart'; import 'package:test_sa/providers/service_request_providers/priority_provider.dart';
import 'package:test_sa/providers/service_request_providers/requested_through_provider.dart'; import 'package:test_sa/providers/service_request_providers/requested_through_provider.dart';
import 'package:test_sa/providers/service_request_providers/type_of_request_provider.dart'; import 'package:test_sa/providers/service_request_providers/type_of_request_provider.dart';
@ -206,6 +206,7 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => LoanAvailabilityProvider()), ChangeNotifierProvider(create: (_) => LoanAvailabilityProvider()),
ChangeNotifierProvider(create: (_) => ReasonProvider()), ChangeNotifierProvider(create: (_) => ReasonProvider()),
ChangeNotifierProvider(create: (_) => RejectReasonProvider()), ChangeNotifierProvider(create: (_) => RejectReasonProvider()),
ChangeNotifierProvider(create: (_) => LastSituationProvider()),
ChangeNotifierProvider(create: (_) => FaultDescriptionProvider()), ChangeNotifierProvider(create: (_) => FaultDescriptionProvider()),
ChangeNotifierProvider(create: (_) => RetirementTypeProvider()), ChangeNotifierProvider(create: (_) => RetirementTypeProvider()),
ChangeNotifierProvider(create: (_) => ActivityStatusProvider()), ChangeNotifierProvider(create: (_) => ActivityStatusProvider()),

@ -9,6 +9,7 @@ class ActivityMaintenanceHelperModel {
int? id; int? id;
int? workOrderId; int? workOrderId;
int? lastSituationId; int? lastSituationId;
Lookup? lastSituation;
Lookup? activityStatus; Lookup? activityStatus;
DateTime? startTime; DateTime? startTime;
DateTime? endTime; DateTime? endTime;
@ -33,6 +34,7 @@ class ActivityMaintenanceHelperModel {
{this.id, {this.id,
this.workOrderId, this.workOrderId,
this.lastSituationId, this.lastSituationId,
this.lastSituation,
this.activityStatus, this.activityStatus,
this.startTime, this.startTime,
this.supplier, this.supplier,
@ -57,7 +59,7 @@ class ActivityMaintenanceHelperModel {
final Map<String, dynamic> data = <String, dynamic>{}; final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = id; data['id'] = id;
data['workOrderId'] = workOrderId; data['workOrderId'] = workOrderId;
data['lastSituationId'] = lastSituationId;
data['activityStatusId'] = activityStatus?.id; data['activityStatusId'] = activityStatus?.id;
data['startTime'] = startTime?.toIso8601String(); data['startTime'] = startTime?.toIso8601String();
data['endTime'] = endTime?.toIso8601String(); data['endTime'] = endTime?.toIso8601String();
@ -71,7 +73,9 @@ class ActivityMaintenanceHelperModel {
data['supplierStartTime'] = supplierStartTime?.toIso8601String(); data['supplierStartTime'] = supplierStartTime?.toIso8601String();
data['supplierEndTime'] = supplierEndTime?.toIso8601String(); data['supplierEndTime'] = supplierEndTime?.toIso8601String();
data['supplierWorkingHour'] = supplierWorkingHour; data['supplierWorkingHour'] = supplierWorkingHour;
print('model i got is ${modelAssistantEmployees?.toJson()}'); if(lastSituation!=null){
data['lastSituationId'] = lastSituation?.id;
}
if (assignedEmployee != null&&assignedEmployee?.userId!=null) { if (assignedEmployee != null&&assignedEmployee?.userId!=null) {
data['assistantEmployees'] = [modelAssistantEmployees?.toJson()]; data['assistantEmployees'] = [modelAssistantEmployees?.toJson()];
} }

@ -0,0 +1,36 @@
import 'dart:convert';
import 'package:http/http.dart';
import 'package:test_sa/providers/loading_list_notifier.dart';
import '../../controllers/api_routes/api_manager.dart';
import '../../controllers/api_routes/urls.dart';
import '../../models/lookup.dart';
class LastSituationProvider extends LoadingListNotifier<Lookup> {
@override
Future getDate() async {
if (loading == true) return -2;
loading = true;
notifyListeners();
loading = true;
notifyListeners();
try {
Response response = await ApiManager.instance.get(URLs.getMaintenanceSituation);
stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
List categoriesListJson = json.decode(response.body)["data"];
items = categoriesListJson.map((item) => Lookup.fromJson(item)).toList();
}
loading = false;
notifyListeners();
return response.statusCode;
} catch (error) {
loading = false;
stateCode = -1;
notifyListeners();
return -1;
}
}
}

@ -9,7 +9,6 @@ import '../../models/lookup.dart';
class RejectReasonProvider extends LoadingListNotifier<Lookup> { class RejectReasonProvider extends LoadingListNotifier<Lookup> {
@override @override
Future getDate() async { Future getDate() async {
if (loading == true) return -2; if (loading == true) return -2;

@ -350,6 +350,7 @@ class _ActivitiesListViewState extends State<ActivitiesListView> {
workingHour: activity.activityMaintenance?.workingHours ?? 0, workingHour: activity.activityMaintenance?.workingHours ?? 0,
travelHours: activity.activityMaintenance?.travelHours ?? 0, travelHours: activity.activityMaintenance?.travelHours ?? 0,
repairLocation: activity.activityMaintenance?.repairLocation, repairLocation: activity.activityMaintenance?.repairLocation,
lastSituation: activity.activityMaintenance?.lastSituation,
assignedEmployee: activity.activityMaintenance?.assignedEmployee != null ? WorkOrderAssignedEmployee.fromJson(activity.activityMaintenance!.assignedEmployee!.toJson()) : null, assignedEmployee: activity.activityMaintenance?.assignedEmployee != null ? WorkOrderAssignedEmployee.fromJson(activity.activityMaintenance!.assignedEmployee!.toJson()) : null,
technicalComment: activity.activityMaintenance?.technicalComment, technicalComment: activity.activityMaintenance?.technicalComment,
assistantEmployees: assistantEmployees:

@ -14,6 +14,7 @@ import 'package:test_sa/models/service_request/service_report.dart';
import 'package:test_sa/models/service_request/service_request.dart'; import 'package:test_sa/models/service_request/service_request.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/providers/service_request_providers/last_situation_provider.dart';
import 'package:test_sa/providers/work_order/activity_status_provider.dart'; import 'package:test_sa/providers/work_order/activity_status_provider.dart';
import 'package:test_sa/service_request_latest/request_detail_provider.dart'; import 'package:test_sa/service_request_latest/request_detail_provider.dart';
import 'package:test_sa/service_request_latest/views/components/action_button/footer_action_button.dart'; import 'package:test_sa/service_request_latest/views/components/action_button/footer_action_button.dart';
@ -52,11 +53,8 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
void initState() { void initState() {
_activityStatusProvider = Provider.of<ActivityStatusProvider>(context, listen: false); _activityStatusProvider = Provider.of<ActivityStatusProvider>(context, listen: false);
_requestDetailProvider = Provider.of<RequestDetailProvider>(context, listen: false); _requestDetailProvider = Provider.of<RequestDetailProvider>(context, listen: false);
_requestDetailProvider?.activityMaintenanceHelperModel?.lastSituationId = _requestDetailProvider?.currentWorkOrder?.data?.status?.id;
super.initState(); super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
_travellingHoursController.text = _travellingHoursController.text =
_requestDetailProvider?.activityMaintenanceHelperModel?.travelHours != null ? _requestDetailProvider!.activityMaintenanceHelperModel!.travelHours.toString() : ''; _requestDetailProvider?.activityMaintenanceHelperModel?.travelHours != null ? _requestDetailProvider!.activityMaintenanceHelperModel!.travelHours.toString() : '';
}); });
@ -94,6 +92,20 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch, crossAxisAlignment: CrossAxisAlignment.stretch,
children: [ children: [
SingleItemDropDownMenu<Lookup, LastSituationProvider>(
context: context,
height: 56.toScreenHeight,
title: context.translation.lastSituationStatus,
showShadow: false,
backgroundColor: AppColor.neutral100,
showAsBottomSheet: true,
initialValue: requestDetailProvider.activityMaintenanceHelperModel?.lastSituation,
onSelect: (status) {
requestDetailProvider.activityMaintenanceHelperModel?.lastSituation = status;
setState(() {});
},
),
8.height,
SingleItemDropDownMenu<Lookup, ActivityStatusProvider>( SingleItemDropDownMenu<Lookup, ActivityStatusProvider>(
context: context, context: context,
height: 56.toScreenHeight, height: 56.toScreenHeight,

Loading…
Cancel
Save