activity status on sparepart activity added.

design_3.0_latest
muhammad.abbasi 1 year ago
parent f65d5168de
commit 8550fb98bf

@ -1,3 +1,4 @@
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/service_request/spare_parts.dart';
class SparePartHelperModel {
@ -6,6 +7,7 @@ class SparePartHelperModel {
int? partCatalogItemId;
int? activityStatusId;
SparePart? sparePart;
Lookup? activityStatus;
num? quantity;
String? comment;
List<SparePartAttachments>? sparePartAttachments;
@ -17,6 +19,7 @@ class SparePartHelperModel {
this.quantity,
this.sparePart,
this.activityStatusId,
this.activityStatus,
this.comment,this.sparePartAttachments,
});
@ -27,7 +30,9 @@ class SparePartHelperModel {
data['workOrderId'] = workOrderId;
data['partCatalogItemId'] = sparePart?.id;
data['quantity'] = quantity;
data['activityStatusId'] = activityStatusId;
if(activityStatus!=null){
data['activityStatusId'] = activityStatus?.id;
}
data['comment'] = comment;
if (sparePartAttachments != null) {
data['acitiySparePartAttachments'] =

@ -164,6 +164,7 @@ class _ActivitiesListViewState extends State<ActivitiesListView> {
workOrderId: requestDetailProvider.currentWorkOrder?.data?.requestId,
comment: activity.activitySparePart?.comment,
sparePartAttachments: activity.activitySparePart?.acitiySparePartAttachments ?? [],
activityStatus: activity.activityStatus,
sparePart: SparePart(
id: activity.activitySparePart?.partCatalogItem?.id,
partName: activity.activitySparePart?.partCatalogItem?.partName,
@ -171,8 +172,6 @@ class _ActivitiesListViewState extends State<ActivitiesListView> {
oracleCode: activity.activitySparePart?.partCatalogItem?.oracleCode),
quantity: activity.activitySparePart?.quantity,
activityStatusId: activity.activityStatus?.id,
//TODO commets are missing in api response..
// comment: activity.activitySparePart?.description,
);
requestDetailProvider.updateSparePartHelperModel(requestDetailProvider.sparePartHelperModel);

@ -204,7 +204,6 @@ class ServiceRequestBottomSheet {
buttonColor: AppColor.green70,
loading: false,
onPressed: () async {
requestDetailProvider.fixRemotelyHelperModel?.workOrderId = requestDetailProvider.currentWorkOrder?.data?.requestId;
requestDetailProvider.engineerFixRemotely();
//TODO context issue to show message..

@ -142,6 +142,9 @@ class _VerifyArrivalViewState extends State<VerifyArrivalView> {
) as String?;
if (result != null) {
try {
//TODO show loader.
// showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
status = await requestDetailProvider.engineerConfirmArrival(
workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!,
verificationTypeId: 1,
@ -151,12 +154,15 @@ class _VerifyArrivalViewState extends State<VerifyArrivalView> {
print('status i got is $status');
if (status == 200) {
requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!);
//Navigator.pop(context);
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => RequestDetailMain(requestId: requestDetailProvider.currentWorkOrder!.data!.requestId!)));
}
else {
// Navigator.pop(context);
//show some message.
}
} catch (e) {
// Navigator.pop(context);
print('error i got is $e');
}
}
@ -165,7 +171,11 @@ class _VerifyArrivalViewState extends State<VerifyArrivalView> {
Fluttertoast.showToast(msg: 'Under process...' ?? "", toastLength: Toast.LENGTH_LONG);
break;
case 2:
//TODO add loader.
// showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
requestDetailProvider.sendOtp(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!);
//Navigator.pop(context);
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => const VerifyOtpView()),
@ -177,22 +187,28 @@ class _VerifyArrivalViewState extends State<VerifyArrivalView> {
var fileObj = ("${pickedFile.path.split("/").last}|${base64Encode(File(pickedFile.path).readAsBytesSync())}");
int? status;
try{
//TODO add loader
// showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
status = await requestDetailProvider.engineerConfirmArrival(
workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!,
verificationTypeId: 1,
photoInfo: fileObj,
otp: '',
assetNo: requestDetailProvider.currentWorkOrder!.data!.asset?.assetNumber);
print('status i got is $status');
if (status == 200) {
requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!);
// Navigator.pop(context);
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => RequestDetailMain(requestId: requestDetailProvider.currentWorkOrder!.data!.requestId!)));
}
else{
//show some message.
// Navigator.pop(context);
}
}catch(e){
print('error i got is $e');
// Navigator.pop(context);
}
}

@ -53,12 +53,15 @@ class VerifyOtpView extends StatelessWidget {
debugPrint('pin i got is $pin');
RequestDetailProvider requestDetailProvider = Provider.of<RequestDetailProvider>(context, listen: false);
int? status;
//TODO add loader..
// showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
status = await requestDetailProvider.verifyOtp(workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, otpCode: pin);
print('status i got is $status');
if (status == 200) {
await requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!);
await requestDetailProvider.engineerConfirmArrival(
workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!, verificationTypeId: 3, photoInfo: '', otp: pin, assetNo: '');
// Navigator.pop(context);
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context) => RequestDetailMain(requestId: requestDetailProvider.currentWorkOrder!.data!.requestId!)));
}
},

@ -14,6 +14,7 @@ import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_mo
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/common_widgets/app_filled_button.dart';
import 'package:test_sa/new_views/common_widgets/app_lazy_loading.dart';
import 'package:test_sa/new_views/common_widgets/single_item_drop_down_menu.dart';
import 'package:test_sa/providers/loading_list_notifier.dart';
import 'package:test_sa/providers/service_request_providers/equipment_status_provider.dart';
@ -223,7 +224,10 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
label: context.translation.verify_asset_details,
buttonColor: AppColor.primary10,
onPressed: () async {
await requestDetailProvider.engineerUpdateWorkOrder();
//TODO add loader
// showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
requestDetailProvider.engineerUpdateWorkOrder();
// Navigator.pop(context);
Navigator.pop(context);
},
),

@ -10,10 +10,12 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/helper_data_models/spare_part/activity_spare_part_model.dart';
import 'package:test_sa/models/lookup.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/single_item_drop_down_menu.dart';
import 'package:test_sa/providers/loading_list_notifier.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/views/components/action_button/footer_action_button.dart';
import 'package:test_sa/service_request_latest/views/components/bottom_sheets/service_request_bottomsheet.dart';
@ -59,6 +61,7 @@ class _SparePartRequestState extends State<SparePartRequest> with TickerProvider
sparePart: _requestDetailProvider?.sparePartHelperModel?.sparePart ?? SparePart(),
quantity: _requestDetailProvider?.sparePartHelperModel?.quantity,
activityStatusId: _requestDetailProvider?.sparePartHelperModel?.activityStatusId,
activityStatus: _requestDetailProvider?.sparePartHelperModel?.activityStatus,
comment: _requestDetailProvider?.sparePartHelperModel?.comment ?? '',
);
_partQtyController.text = _requestDetailProvider?.sparePartHelperModel?.quantity != null ? _requestDetailProvider!.sparePartHelperModel!.quantity.toString() : '';
@ -118,6 +121,18 @@ class _SparePartRequestState extends State<SparePartRequest> with TickerProvider
children: [
context.translation.sparePartDetails.heading5(context),
12.height,
SingleItemDropDownMenu<Lookup, ActivityStatusProvider>(
context: context,
height: 56.toScreenHeight,
title: context.translation.activityStatus,
showShadow: false,
backgroundColor: AppColor.neutral100,
initialValue: requestDetailProvider.sparePartHelperModel?.activityStatus,
onSelect: (status) {
requestDetailProvider.sparePartHelperModel?.activityStatus = status;
},
),
12.height,
SingleItemDropDownMenu<SparePart, NullableLoadingProvider>(
context: context,
title: context.translation.partNo,
@ -206,7 +221,6 @@ class _SparePartRequestState extends State<SparePartRequest> with TickerProvider
_isLocalUrl(pickerObject.file.path) ? ("${pickerObject.file.path.split("/").last}|${base64Encode(File(pickerObject.file.path).readAsBytesSync())}") : pickerObject.file.path;
requestDetailProvider.sparePartHelperModel?.sparePartAttachments?.add(SparePartAttachments(id: pickerObject.id, name: fileData));
}
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
int status = -1;
if (_requestDetailProvider?.sparePartHelperModel?.id == 0) {

Loading…
Cancel
Save