code improvements & fixes.

design_3.0_demo_module
Sikander Saleem 1 year ago
parent 01e0d054e6
commit 973c85418e

@ -44,6 +44,7 @@ class URLs {
static get engineerNeedVisitUrl=> '$_baseUrl/ServiceRequest/EngineerNeedVisit'; static get engineerNeedVisitUrl=> '$_baseUrl/ServiceRequest/EngineerNeedVisit';
static get engineerUpdateNeedVisitUrl=> '$_baseUrl/ServiceRequest/EngineerUpdateNeedVisit'; static get engineerUpdateNeedVisitUrl=> '$_baseUrl/ServiceRequest/EngineerUpdateNeedVisit';
static get engineerMarkAsFixUrl=> '$_baseUrl/ServiceRequest/EngineerMarkAsFix'; static get engineerMarkAsFixUrl=> '$_baseUrl/ServiceRequest/EngineerMarkAsFix';
static get reOrderActivity=> '$_baseUrl/ServiceRequest/ReOrderActivity';
static get engineerConfirmArriveUrl=> '$_baseUrl/ServiceRequest/EngineerConfirmArrive'; static get engineerConfirmArriveUrl=> '$_baseUrl/ServiceRequest/EngineerConfirmArrive';
static get engineerUpdateWorkOrderUrl=> '$_baseUrl/ServiceRequest/EngineerUpdateWorkOrder'; static get engineerUpdateWorkOrderUrl=> '$_baseUrl/ServiceRequest/EngineerUpdateWorkOrder';
static get getWorkOrderByIdUrl=> '$_baseUrl/ServiceRequest/GetWorkOrderById'; static get getWorkOrderByIdUrl=> '$_baseUrl/ServiceRequest/GetWorkOrderById';

@ -147,6 +147,7 @@ class RequestDetailProvider extends ChangeNotifier {
//create workOrder nurse ..... //create workOrder nurse .....
Future<int> createWorkOrder() async { Future<int> createWorkOrder() async {
isLoading = true; isLoading = true;
notifyListeners();
try { try {
final response = await ApiManager.instance.post( final response = await ApiManager.instance.post(
URLs.createWorkOrderUrl, URLs.createWorkOrderUrl,
@ -156,7 +157,6 @@ class RequestDetailProvider extends ChangeNotifier {
print('response of create request is ${response.body}'); print('response of create request is ${response.body}');
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
// request.engineerName = employee.name; // request.engineerName = employee.name;
notifyListeners();
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -192,18 +192,13 @@ class RequestDetailProvider extends ChangeNotifier {
Future<int> engineerAcceptWorkOrder({required String id}) async { Future<int> engineerAcceptWorkOrder({required String id}) async {
Response response; Response response;
try { try {
final body = { final body = {"workOrderId": id};
"workOrderId": id,
};
isLoading = true; isLoading = true;
notifyListeners();
response = await ApiManager.instance.post(URLs.engineerAcceptUrl, body: body); response = await ApiManager.instance.post(URLs.engineerAcceptUrl, body: body);
stateCode = response.statusCode; stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body));
updateCurrentWorkOrder(currentWorkOrder);
notifyListeners();
isLoading = false;
return response.statusCode;
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -221,15 +216,11 @@ class RequestDetailProvider extends ChangeNotifier {
Response response; Response response;
try { try {
isLoading = true; isLoading = true;
notifyListeners();
response = await ApiManager.instance.post(URLs.engineerRejectUrl, body: engineerRejectHelperModel!.toJson()); response = await ApiManager.instance.post(URLs.engineerRejectUrl, body: engineerRejectHelperModel!.toJson());
stateCode = response.statusCode; stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
print('engineer reject workOrder response is ${response.body}');
currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body));
updateCurrentWorkOrder(currentWorkOrder);
notifyListeners();
isLoading = false;
return response.statusCode;
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -247,13 +238,11 @@ class RequestDetailProvider extends ChangeNotifier {
Response response; Response response;
try { try {
isLoading = true; isLoading = true;
notifyListeners();
response = await ApiManager.instance.post(URLs.engineerFixRemotlyUrl, body: fixRemotelyHelperModel!.toJson()); response = await ApiManager.instance.post(URLs.engineerFixRemotlyUrl, body: fixRemotelyHelperModel!.toJson());
stateCode = response.statusCode; stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
updateCurrentWorkOrder(WorkOrderDetail.fromJson(json.decode(response.body))); currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body));
notifyListeners();
isLoading = false;
return response.statusCode;
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -271,14 +260,11 @@ class RequestDetailProvider extends ChangeNotifier {
Response response; Response response;
try { try {
isLoading = true; isLoading = true;
notifyListeners();
response = await ApiManager.instance.post(URLs.engineerNeedVisitUrl, body: needVisitHelperModel!.toJson()); response = await ApiManager.instance.post(URLs.engineerNeedVisitUrl, body: needVisitHelperModel!.toJson());
stateCode = response.statusCode; stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body));
updateCurrentWorkOrder(currentWorkOrder);
notifyListeners();
isLoading = false;
return response.statusCode;
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -296,16 +282,13 @@ class RequestDetailProvider extends ChangeNotifier {
Response response; Response response;
try { try {
isLoading = true; isLoading = true;
notifyListeners();
response = await ApiManager.instance.post(URLs.engineerUpdateNeedVisitUrl, body: needVisitHelperModel!.toJson()); response = await ApiManager.instance.post(URLs.engineerUpdateNeedVisitUrl, body: needVisitHelperModel!.toJson());
stateCode = response.statusCode; stateCode = response.statusCode;
print('body i got is ${needVisitHelperModel?.toJson()}'); print('body i got is ${needVisitHelperModel?.toJson()}');
print('response i got is ${response.body}'); print('response i got is ${response.body}');
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body));
updateCurrentWorkOrder(currentWorkOrder);
notifyListeners();
isLoading = false;
return response.statusCode;
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -322,16 +305,37 @@ class RequestDetailProvider extends ChangeNotifier {
Future<int> engineerMarkAsFixed({required int workOrderId, required String feedback}) async { Future<int> engineerMarkAsFixed({required int workOrderId, required String feedback}) async {
Response response; Response response;
try { try {
Map<String, dynamic> body = {'workOrderId': workOrderId, 'feedback': feedback};
isLoading = true; isLoading = true;
notifyListeners();
Map<String, dynamic> body = {'workOrderId': workOrderId, 'feedback': feedback};
response = await ApiManager.instance.post(URLs.engineerMarkAsFixUrl, body: body); response = await ApiManager.instance.post(URLs.engineerMarkAsFixUrl, body: body);
stateCode = response.statusCode; stateCode = response.statusCode;
print('engineer mark as fixed response is ${response.body}'); print('engineer mark as fixed response is ${response.body}');
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body));
notifyListeners(); }
isLoading = false; isLoading = false;
notifyListeners();
return response.statusCode; return response.statusCode;
} catch (e) {
log("engineer mark as fixed [error] : $e");
isLoading = false;
notifyListeners();
return -1;
}
}
Future<int> reOrderActivities({required int workOrderId, required List<Map<String, dynamic>> reOrderActivityDTOs}) async {
Response response;
try {
isLoading = true;
notifyListeners();
Map<String, dynamic> body = {'workOrderId': workOrderId, 'reOrderActivityDTOs': reOrderActivityDTOs};
response = await ApiManager.instance.post(URLs.reOrderActivity, body: body);
stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body));
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -350,13 +354,11 @@ class RequestDetailProvider extends ChangeNotifier {
try { try {
Map<String, dynamic> body = {"workOrderId": workOrderId, "verificationTypeId": verificationTypeId, "photoInfo": photoInfo, "otp": otp, "assetNumber": assetNo}; Map<String, dynamic> body = {"workOrderId": workOrderId, "verificationTypeId": verificationTypeId, "photoInfo": photoInfo, "otp": otp, "assetNumber": assetNo};
isLoading = true; isLoading = true;
notifyListeners();
response = await ApiManager.instance.post(URLs.engineerConfirmArriveUrl, body: body); response = await ApiManager.instance.post(URLs.engineerConfirmArriveUrl, body: body);
stateCode = response.statusCode; stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
print('response of Engineer confirm arrival ${response.body}'); // print('response of Engineer confirm arrival ${response.body}');
notifyListeners();
isLoading = false;
return response.statusCode;
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -372,22 +374,18 @@ class RequestDetailProvider extends ChangeNotifier {
//assignEngineerToWorkOrder...... //assignEngineerToWorkOrder......
Future<CommonResponseModel> assignEngineerWorkOrder({required String workOrderId, required String engineerId}) async { Future<CommonResponseModel> assignEngineerWorkOrder({required String workOrderId, required String engineerId}) async {
try { try {
final body = { final body = {"workOrderId": workOrderId, "assignedEngineerId": engineerId};
"workOrderId": workOrderId,
"assignedEngineerId": engineerId,
};
isLoading = true; isLoading = true;
notifyListeners();
final response = await ApiManager.instance.post(URLs.assignEngineerToWorkOrderUrl, body: body); final response = await ApiManager.instance.post(URLs.assignEngineerToWorkOrderUrl, body: body);
stateCode = response.statusCode; stateCode = response.statusCode;
CommonResponseModel commonResponseModel = CommonResponseModel();
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
CommonResponseModel commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body)); commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body));
notifyListeners();
isLoading = false;
return commonResponseModel;
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
return CommonResponseModel(); return commonResponseModel;
} catch (e) { } catch (e) {
log("engineer accept [error] : $e"); log("engineer accept [error] : $e");
isLoading = false; isLoading = false;
@ -398,41 +396,37 @@ class RequestDetailProvider extends ChangeNotifier {
//engineerUpdateWorkOrder...... //engineerUpdateWorkOrder......
Future<void> engineerUpdateWorkOrder() async { Future<void> engineerUpdateWorkOrder() async {
// try { try {
isLoading = true; isLoading = true;
notifyListeners();
final response = await ApiManager.instance.post(URLs.engineerUpdateWorkOrderUrl, body: engineerUpdateWorkOrderHelperModel!.toJson()); final response = await ApiManager.instance.post(URLs.engineerUpdateWorkOrderUrl, body: engineerUpdateWorkOrderHelperModel!.toJson());
stateCode = response.statusCode; stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body));
updateCurrentWorkOrder(currentWorkOrder);
notifyListeners();
isLoading = false;
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
// } } catch (e) {
// catch (e) { log("engineer update workorder [error] : $e");
// log("engineer update workorder [error] : $e"); isLoading = false;
// isLoading = false; notifyListeners();
// notifyListeners(); }
// }
} }
//Nurse confirm reopen //Nurse confirm reopen
Future<CommonResponseModel> nurseReject() async { Future<CommonResponseModel> nurseReject() async {
try { try {
isLoading = true; isLoading = true;
notifyListeners();
final response = await ApiManager.instance.post(URLs.nurseRejectUrl, body: nurseActionHelperModel!.toJson()); final response = await ApiManager.instance.post(URLs.nurseRejectUrl, body: nurseActionHelperModel!.toJson());
stateCode = response.statusCode; stateCode = response.statusCode;
CommonResponseModel commonResponseModel = CommonResponseModel();
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
CommonResponseModel commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body)); commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body));
notifyListeners();
isLoading = false;
return commonResponseModel;
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
return CommonResponseModel(); return commonResponseModel;
} catch (e) { } catch (e) {
log("engineer accept [error] : $e"); log("engineer accept [error] : $e");
isLoading = false; isLoading = false;
@ -445,19 +439,17 @@ class RequestDetailProvider extends ChangeNotifier {
Future<CommonResponseModel> nurseConfirm() async { Future<CommonResponseModel> nurseConfirm() async {
try { try {
isLoading = true; isLoading = true;
notifyListeners();
final response = await ApiManager.instance.post(URLs.nurseConfirmUrl, body: nurseActionHelperModel!.toJson()); final response = await ApiManager.instance.post(URLs.nurseConfirmUrl, body: nurseActionHelperModel!.toJson());
print('response i got is ${response.body}');
stateCode = response.statusCode; stateCode = response.statusCode;
CommonResponseModel commonResponseModel = CommonResponseModel();
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
CommonResponseModel commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body)); commonResponseModel = CommonResponseModel.fromJson(json.decode(response.body));
notifyListeners();
isLoading = false;
return commonResponseModel;
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
return CommonResponseModel(); return commonResponseModel;
} catch (e) { } catch (e) {
log("engineer accept [error] : $e"); log("engineer accept [error] : $e");
isLoading = false; isLoading = false;
@ -468,16 +460,13 @@ class RequestDetailProvider extends ChangeNotifier {
Future<int> updateActivitySparePart() async { Future<int> updateActivitySparePart() async {
isLoading = true; isLoading = true;
notifyListeners();
try { try {
final response = await ApiManager.instance.post( final response = await ApiManager.instance.post(URLs.updateActivitySparePartUrl, body: sparePartHelperModel!.toJson());
URLs.updateActivitySparePartUrl,
body: sparePartHelperModel!.toJson(),
);
stateCode = response.statusCode; stateCode = response.statusCode;
print('update response i got is ${response.body}'); print('update response i got is ${response.body}');
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
// request.engineerName = employee.name; // request.engineerName = employee.name;
notifyListeners();
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -491,16 +480,13 @@ class RequestDetailProvider extends ChangeNotifier {
Future<int> updateActivityMaintenance() async { Future<int> updateActivityMaintenance() async {
isLoading = true; isLoading = true;
notifyListeners();
try { try {
final response = await ApiManager.instance.put( final response = await ApiManager.instance.put(URLs.updateActivityMaintenanceUrl, body: activityMaintenanceHelperModel!.toJson());
URLs.updateActivityMaintenanceUrl,
body: activityMaintenanceHelperModel!.toJson(),
);
stateCode = response.statusCode; stateCode = response.statusCode;
print('update response i got is ${response.statusCode}');
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
// request.engineerName = employee.name; // request.engineerName = employee.name;
notifyListeners();
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -533,21 +519,16 @@ class RequestDetailProvider extends ChangeNotifier {
Future<int> deleteActivitySparePart({required int id, required int workOrderId}) async { Future<int> deleteActivitySparePart({required int id, required int workOrderId}) async {
isLoading = true; isLoading = true;
var body = { notifyListeners();
'id': id, var body = {'id': id, 'workOrderId': workOrderId};
'workOrderId': workOrderId,
};
try { try {
final response = await ApiManager.instance.post( final response = await ApiManager.instance.post(URLs.deleteActivitySparePartUrl, body: body);
URLs.deleteActivitySparePartUrl,
body: body,
);
stateCode = response.statusCode; stateCode = response.statusCode;
print('response of delete activity spare part is ${response.statusCode}'); print('response of delete activity spare part is ${response.statusCode}');
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
//map to the model... //map to the model...
notifyListeners(); // notifyListeners();
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -561,22 +542,17 @@ class RequestDetailProvider extends ChangeNotifier {
Future<int> deleteActivityMaintenance({required int id, required int workOrderId}) async { Future<int> deleteActivityMaintenance({required int id, required int workOrderId}) async {
isLoading = true; isLoading = true;
var body = { notifyListeners();
'id': id, var body = {'id': id, 'workOrderId': workOrderId};
'workOrderId': workOrderId,
};
try { try {
//TODO replace with delete model...
final response = await ApiManager.instance.delete( final response = await ApiManager.instance.delete(
URLs.deleteActivityMaintenanceUrl, URLs.deleteActivityMaintenanceUrl,
body: body, body: body,
); );
stateCode = response.statusCode; stateCode = response.statusCode;
print('response of delete activity spare part is ${response.body}');
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
//map to the model... //map to the model...
notifyListeners();
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -590,6 +566,7 @@ class RequestDetailProvider extends ChangeNotifier {
Future<int> createActivitySparePart() async { Future<int> createActivitySparePart() async {
isLoading = true; isLoading = true;
notifyListeners();
try { try {
final response = await ApiManager.instance.post( final response = await ApiManager.instance.post(
URLs.createActivitySparePartUrl, URLs.createActivitySparePartUrl,
@ -599,8 +576,8 @@ class RequestDetailProvider extends ChangeNotifier {
print('add sparepart activity response i got is ${response.body}'); print('add sparepart activity response i got is ${response.body}');
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
// currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); // currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body));
// updateCurrentWorkOrder(currentWorkOrder); // // updateCurrentWorkOrder(currentWorkOrder);
notifyListeners(); // notifyListeners();
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -614,7 +591,8 @@ class RequestDetailProvider extends ChangeNotifier {
Future<int> createActivityMaintenanceRequest() async { Future<int> createActivityMaintenanceRequest() async {
isLoading = true; isLoading = true;
// try { notifyListeners();
try {
final response = await ApiManager.instance.post( final response = await ApiManager.instance.post(
URLs.createActivityMaintenanceUrl, URLs.createActivityMaintenanceUrl,
body: activityMaintenanceHelperModel!.toJson(), body: activityMaintenanceHelperModel!.toJson(),
@ -624,33 +602,29 @@ class RequestDetailProvider extends ChangeNotifier {
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
// currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); // currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body));
// updateCurrentWorkOrder(currentWorkOrder); // updateCurrentWorkOrder(currentWorkOrder);
notifyListeners();
return response.statusCode;
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
return response.statusCode; return response.statusCode;
// } catch (error) { } catch (error) {
// isLoading = false; isLoading = false;
// notifyListeners(); notifyListeners();
// return -1; return -1;
// } }
} }
//create asset retired request.. //create asset retired request..
Future<int> createActivityAssetToBeRetired() async { Future<int> createActivityAssetToBeRetired() async {
isLoading = true; isLoading = true;
notifyListeners();
try { try {
final response = await ApiManager.instance.post( final response = await ApiManager.instance.post(
URLs.createActivityAssetToBeRetiredUrl, URLs.createActivityAssetToBeRetiredUrl,
body: assetRetiredHelperModel!.toJson(), body: assetRetiredHelperModel!.toJson(),
); );
stateCode = response.statusCode; stateCode = response.statusCode;
print('response of asset retired is ${response.body}');
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body)); currentWorkOrder = WorkOrderDetail.fromJson(json.decode(response.body));
updateCurrentWorkOrder(currentWorkOrder);
notifyListeners();
} }
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
@ -687,6 +661,7 @@ class RequestDetailProvider extends ChangeNotifier {
//send otp.. //send otp..
Future<int?> sendOtp({required int workOrderId}) async { Future<int?> sendOtp({required int workOrderId}) async {
isLoading = true; isLoading = true;
notifyListeners();
try { try {
final response = await ApiManager.instance.postWithOutBody( final response = await ApiManager.instance.postWithOutBody(
URLs.sendOtpUrl + "$workOrderId", URLs.sendOtpUrl + "$workOrderId",
@ -695,9 +670,7 @@ class RequestDetailProvider extends ChangeNotifier {
stateCode = response.statusCode; stateCode = response.statusCode;
print('response i got is ${response.body}'); print('response i got is ${response.body}');
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {}
notifyListeners();
}
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
return response.statusCode; return response.statusCode;
@ -711,15 +684,12 @@ class RequestDetailProvider extends ChangeNotifier {
//verify otp.. //verify otp..
Future<int> verifyOtp({required int workOrderId, required String otpCode}) async { Future<int> verifyOtp({required int workOrderId, required String otpCode}) async {
isLoading = true; isLoading = true;
notifyListeners();
try { try {
final response = await ApiManager.instance.postWithOutBody( final response = await ApiManager.instance.postWithOutBody(URLs.verifyOtpUrl + '$workOrderId&$otpCode');
URLs.verifyOtpUrl + '$workOrderId&$otpCode',
);
print('response i got is ${response.body}');
stateCode = response.statusCode; stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {}
notifyListeners();
}
isLoading = false; isLoading = false;
notifyListeners(); notifyListeners();
return response.statusCode; return response.statusCode;

@ -8,6 +8,7 @@ import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/enums/user_types.dart'; import 'package:test_sa/models/enums/user_types.dart';
import 'package:test_sa/models/enums/work_order_next_step.dart'; import 'package:test_sa/models/enums/work_order_next_step.dart';
import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart'; import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart';
import 'package:test_sa/models/new_models/work_order_detail_model.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/reject_reason_provider.dart'; import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart';
@ -29,9 +30,12 @@ class FooterActionButton {
); );
} }
static Widget requestDetailsFooterWidget({required WorkOrderNextStepEnum workOrderNextStepStatus, required BuildContext context, required UserProvider userProvider}) { static Widget requestDetailsFooterWidget(
{required WorkOrderNextStepEnum workOrderNextStepStatus, List<Activities> activities = const [], required BuildContext context, required UserProvider userProvider}) {
RequestDetailProvider requestDetailProvider = Provider.of<RequestDetailProvider>(context, listen: false); RequestDetailProvider requestDetailProvider = Provider.of<RequestDetailProvider>(context, listen: false);
bool showMarkAsFixedButton = activities.isEmpty ? true : activities.every((object) => object.activityStatus!.name!.toLowerCase() == "completed");
if (userProvider.user?.type == UsersTypes.engineer) { if (userProvider.user?.type == UsersTypes.engineer) {
switch (workOrderNextStepStatus) { switch (workOrderNextStepStatus) {
case WorkOrderNextStepEnum.onlyView: case WorkOrderNextStepEnum.onlyView:
@ -147,6 +151,7 @@ class FooterActionButton {
Navigator.push(context, MaterialPageRoute(builder: (context) => const ActivitiesListView())); Navigator.push(context, MaterialPageRoute(builder: (context) => const ActivitiesListView()));
}, },
), ),
if (showMarkAsFixedButton) ...[
8.height, 8.height,
AppFilledButton( AppFilledButton(
label: context.translation.markAsFixed, label: context.translation.markAsFixed,
@ -156,6 +161,7 @@ class FooterActionButton {
ServiceRequestBottomSheet.feedBackBottomSheet(context: context); ServiceRequestBottomSheet.feedBackBottomSheet(context: context);
}, },
), ),
]
], ],
)); ));
case WorkOrderNextStepEnum.endWorkFlow: case WorkOrderNextStepEnum.endWorkFlow:

@ -54,15 +54,15 @@ class _ActivitiesListViewState extends State<ActivitiesListView> {
List<Activities> reOrderActivities = []; List<Activities> reOrderActivities = [];
List<Activities> activities = [];
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
//TODO add the check for type of activity after completing maintenance activity flow.
List<Activities> activities = [];
UserProvider userProvider = Provider.of<UserProvider>(context); UserProvider userProvider = Provider.of<UserProvider>(context);
return Scaffold( return Scaffold(
appBar: DefaultAppBar( appBar: DefaultAppBar(
title: context.translation.activities, title: context.translation.activities,
actions: [if (!showReorderView) IconButton(onPressed: () => setState(() => showReorderView = true), icon: const Icon(Icons.reorder_rounded))], actions: [if (!showReorderView) IconButton(onPressed: () => activities.isEmpty ? null : setState(() => showReorderView = true), icon: const Icon(Icons.reorder_rounded))],
), ),
//backgroundColor: const Color(0xfff8f9fb), //backgroundColor: const Color(0xfff8f9fb),
body: Consumer<RequestDetailProvider>(builder: (context, RequestDetailProvider requestDetailProvider, child) { body: Consumer<RequestDetailProvider>(builder: (context, RequestDetailProvider requestDetailProvider, child) {
@ -126,8 +126,12 @@ class _ActivitiesListViewState extends State<ActivitiesListView> {
if (showReorderView) { if (showReorderView) {
requestDetailProvider.currentWorkOrder!.data!.activities = reOrderActivities; requestDetailProvider.currentWorkOrder!.data!.activities = reOrderActivities;
reOrderActivities = []; reOrderActivities = [];
List<Map<String, dynamic>> data = [];
for (int i = 0; i < reOrderActivities.length; i++) {
data.add({"id": reOrderActivities[i].id, "orderNo": i});
}
requestDetailProvider.reOrderActivities(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, reOrderActivityDTOs: data);
showReorderView = false; showReorderView = false;
setState(() {});
return; return;
} }
ServiceRequestBottomSheet.activityTypeBottomSheet(context: context); ServiceRequestBottomSheet.activityTypeBottomSheet(context: context);

@ -1,10 +1,9 @@
import 'dart:convert'; import 'dart:convert';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/app_strings/app_asset.dart'; import 'package:test_sa/app_strings/app_asset.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart';
@ -15,17 +14,14 @@ import 'package:test_sa/models/helper_data_models/maintenance_request/activity_m
import 'package:test_sa/models/helper_data_models/spare_part/activity_spare_part_model.dart'; import 'package:test_sa/models/helper_data_models/spare_part/activity_spare_part_model.dart';
import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.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/lookup.dart';
import 'package:test_sa/models/service_request/service_request.dart';
import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart'; import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart';
import 'package:test_sa/providers/service_request_providers/first_action_provider.dart';
import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart'; import 'package:test_sa/providers/service_request_providers/reject_reason_provider.dart';
import 'package:test_sa/providers/work_order/reason_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/forms/maintenance_request/maintenance_request_main.dart'; import 'package:test_sa/service_request_latest/views/forms/maintenance_request/maintenance_request_main.dart';
import 'package:test_sa/service_request_latest/views/forms/spare_part/spare_part_request.dart'; import 'package:test_sa/service_request_latest/views/forms/spare_part/spare_part_request.dart';
import 'package:test_sa/service_request_latest/views/components/verify_arrival_view.dart';
import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
import 'package:test_sa/views/widgets/e_signature/e_signature.dart'; import 'package:test_sa/views/widgets/e_signature/e_signature.dart';
import '../../../../controllers/providers/api/service_requests_provider.dart'; import '../../../../controllers/providers/api/service_requests_provider.dart';
import '../../../../new_views/app_style/app_color.dart'; import '../../../../new_views/app_style/app_color.dart';
import '../../../../new_views/common_widgets/app_filled_button.dart'; import '../../../../new_views/common_widgets/app_filled_button.dart';
@ -216,13 +212,11 @@ class ServiceRequestBottomSheet {
buttonColor: AppColor.green70, buttonColor: AppColor.green70,
loading: false, loading: false,
onPressed: () async { onPressed: () async {
requestDetailProvider.fixRemotelyHelperModel?.workOrderId = requestDetailProvider.currentWorkOrder?.data?.requestId; requestDetailProvider.fixRemotelyHelperModel?.workOrderId = requestDetailProvider.currentWorkOrder?.data?.requestId;
requestDetailProvider.engineerFixRemotely(); requestDetailProvider.engineerFixRemotely();
//TODO context issue to show message.. //TODO context issue to show message..
Navigator.pop(context); Navigator.pop(context);
// const SizedBox().flushBar(context: context, title: '', message: context.translation.youMarkedThisIssueAsFixedWaitingForTheRequesterToConfirm); // const SizedBox().flushBar(context: context, title: '', message: context.translation.youMarkedThisIssueAsFixedWaitingForTheRequesterToConfirm);
}, },
), ),
), ),
@ -468,7 +462,8 @@ class ServiceRequestBottomSheet {
SingleItemDropDownMenu<Lookup, RejectReasonProvider>( SingleItemDropDownMenu<Lookup, RejectReasonProvider>(
context: context, context: context,
title: context.translation.reason, title: context.translation.reason,
backgroundColor: AppColor.neutral100,showShadow: false, backgroundColor: AppColor.neutral100,
showShadow: false,
initialValue: requestDetailProvider.engineerRejectHelperModel?.rejectionReason, initialValue: requestDetailProvider.engineerRejectHelperModel?.rejectionReason,
onSelect: (value) { onSelect: (value) {
if (value != null) { if (value != null) {
@ -482,7 +477,8 @@ class ServiceRequestBottomSheet {
backgroundColor: AppColor.neutral100, backgroundColor: AppColor.neutral100,
labelText: context.translation.comments, labelText: context.translation.comments,
textInputType: TextInputType.multiline, textInputType: TextInputType.multiline,
alignLabelWithHint: true,showShadow: false, alignLabelWithHint: true,
showShadow: false,
labelStyle: AppTextStyles.textFieldLabelStyle, labelStyle: AppTextStyles.textFieldLabelStyle,
onChange: (text) { onChange: (text) {
requestDetailProvider.engineerRejectHelperModel?.feedback = text; requestDetailProvider.engineerRejectHelperModel?.feedback = text;
@ -713,7 +709,8 @@ class ServiceRequestBottomSheet {
static Future addAnotherSpareRequestBottomSheet({required BuildContext context}) { static Future addAnotherSpareRequestBottomSheet({required BuildContext context}) {
return buildBottomSheetParent( return buildBottomSheetParent(
context: context, context: context,
childWidget: Consumer<ServiceRequestsProvider>(builder: (context, serviceRequestProvider, child) { childWidget: Consumer<ServiceRequestsProvider>(
builder: (context, serviceRequestProvider, child) {
return Column( return Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
@ -721,7 +718,7 @@ class ServiceRequestBottomSheet {
8.height, 8.height,
Align( Align(
alignment: AlignmentDirectional.centerStart, alignment: AlignmentDirectional.centerStart,
child: context.translation.doYouWantToCreateAnotherSparePartRequest.heading6(context), child: context.translation.doYouWantToCreateAnotherSparePartRequest.bottomSheetHeadingTextStyle(context),
), ),
41.height, 41.height,
Row( Row(
@ -750,10 +747,13 @@ class ServiceRequestBottomSheet {
}, },
).expanded, ).expanded,
], ],
) ),
16.height,
], ],
); );
})); },
),
);
} }
static Future feedBackBottomSheet({required BuildContext context}) { static Future feedBackBottomSheet({required BuildContext context}) {

@ -50,7 +50,7 @@ class WorkOrderDetailView extends StatelessWidget {
), ),
).expanded, ).expanded,
FooterActionButton.requestDetailsFooterWidget( FooterActionButton.requestDetailsFooterWidget(
workOrderNextStepStatus: requestProvider.currentWorkOrder!.data!.nextStep!.workOrderNextStepEnum!, userProvider: _userProvider, context: context), workOrderNextStepStatus: requestProvider.currentWorkOrder!.data!.nextStep!.workOrderNextStepEnum!,activities:requestProvider.currentWorkOrder!.data?.activities??[], userProvider: _userProvider, context: context),
], ],
), ),
// const TimerWidget(), // const TimerWidget(),

@ -54,18 +54,13 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
super.initState(); super.initState();
} }
Future<void> getInitialData() async { Future<void> getFaultDescription() async {
_isLoading = true;
Provider.of<FaultDescriptionProvider>(context, listen: false).getFaultDescriptionList(assetId: _requestDetailProvider?.currentWorkOrder?.data?.asset?.id).then((List<FaultDescription>? data) { Provider.of<FaultDescriptionProvider>(context, listen: false).getFaultDescriptionList(assetId: _requestDetailProvider?.currentWorkOrder?.data?.asset?.id).then((List<FaultDescription>? data) {
if (data?.isNotEmpty ?? false) { if (data?.isNotEmpty ?? false) {
_faults = data!; _faults = data!;
setState(() {}); setState(() {});
} }
}); });
//TODO no need to create seprate models just write a method in workorder model...
_isLoading = false;
} }
@override @override
@ -93,7 +88,7 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
serviceType: currentWorkOrderData.serviceType, serviceType: currentWorkOrderData.serviceType,
); );
_requestDetailProvider?.updateEngineerUpdateWorkOrderHelperModel(_requestDetailProvider?.engineerUpdateWorkOrderHelperModel); _requestDetailProvider?.updateEngineerUpdateWorkOrderHelperModel(_requestDetailProvider?.engineerUpdateWorkOrderHelperModel);
getInitialData(); getFaultDescription();
} }
return Scaffold( return Scaffold(

Loading…
Cancel
Save