|
|
|
@ -23,7 +23,6 @@ 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/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/equipment/pick_asset.dart';
|
|
|
|
import 'package:test_sa/views/widgets/equipment/pick_asset.dart';
|
|
|
|
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import '../../../../../../models/lookup.dart';
|
|
|
|
import '../../../../../../models/lookup.dart';
|
|
|
|
import '../../../../../../new_views/common_widgets/default_app_bar.dart';
|
|
|
|
import '../../../../../../new_views/common_widgets/default_app_bar.dart';
|
|
|
|
@ -53,28 +52,35 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
|
|
|
|
@override
|
|
|
|
@override
|
|
|
|
void initState() {
|
|
|
|
void initState() {
|
|
|
|
super.initState();
|
|
|
|
super.initState();
|
|
|
|
scheduleMicrotask(() async {
|
|
|
|
|
|
|
|
await getInitialData();
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
// WidgetsBinding.instance.addPostFrameCallback((_) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// });
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Future<void> getInitialData() async {
|
|
|
|
Future<void> getInitialData() async {
|
|
|
|
//TODO ask skinder how to called getdata methods automatically...
|
|
|
|
|
|
|
|
_isLoading = true;
|
|
|
|
_isLoading = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Provider.of<FaultDescriptionProvider>(context, listen: false).getFaultDescriptionList(assetId: _requestDetailProvider?.currentWorkOrder?.data?.asset?.id).then((List<FaultDescription>? data) {
|
|
|
|
|
|
|
|
if (data?.isNotEmpty ?? false) {
|
|
|
|
|
|
|
|
_faults = data!;
|
|
|
|
|
|
|
|
setState(() {});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//TODO no need to create seprate models just write a method in workorder model...
|
|
|
|
|
|
|
|
_isLoading = false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
|
|
|
if (_requestDetailProvider == null) {
|
|
|
|
_requestDetailProvider = Provider.of<RequestDetailProvider>(context, listen: false);
|
|
|
|
_requestDetailProvider = Provider.of<RequestDetailProvider>(context, listen: false);
|
|
|
|
_reasonProvider = Provider.of<ReasonProvider>(context, listen: false);
|
|
|
|
_reasonProvider = Provider.of<ReasonProvider>(context, listen: false);
|
|
|
|
_faultDescriptionProvider = Provider.of<ServiceRequestFaultDescriptionProvider>(context, listen: false);
|
|
|
|
_reasonProvider!.reset();
|
|
|
|
_loanAvailabilityProvider = Provider.of<LoanAvailabilityProvider>(context, listen: false);
|
|
|
|
_loanAvailabilityProvider = Provider.of<LoanAvailabilityProvider>(context, listen: false);
|
|
|
|
|
|
|
|
_loanAvailabilityProvider!.reset();
|
|
|
|
|
|
|
|
_faultDescriptionProvider = Provider.of<ServiceRequestFaultDescriptionProvider>(context, listen: false);
|
|
|
|
_equipmentStatusProvider = Provider.of<EquipmentStatusProvider>(context, listen: false);
|
|
|
|
_equipmentStatusProvider = Provider.of<EquipmentStatusProvider>(context, listen: false);
|
|
|
|
|
|
|
|
_equipmentStatusProvider!.reset();
|
|
|
|
|
|
|
|
_equipmentStatusProvider!.getDate();
|
|
|
|
_reasonProvider?.serviceRequestId = _requestDetailProvider?.currentWorkOrder!.data!.requestId.toString();
|
|
|
|
_reasonProvider?.serviceRequestId = _requestDetailProvider?.currentWorkOrder!.data!.requestId.toString();
|
|
|
|
_faults = await Provider.of<FaultDescriptionProvider>(context, listen: false).getFaultDescriptionList(assetId: _requestDetailProvider?.currentWorkOrder?.data?.asset?.id);
|
|
|
|
|
|
|
|
_reasonProvider?.getDate();
|
|
|
|
|
|
|
|
_equipmentStatusProvider?.getDate();
|
|
|
|
|
|
|
|
_loanAvailabilityProvider?.getDate();
|
|
|
|
|
|
|
|
//TODO no need to create seprate models just write a method in workorder model...
|
|
|
|
|
|
|
|
WorkOrderData currentWorkOrderData = _requestDetailProvider!.currentWorkOrder!.data!;
|
|
|
|
WorkOrderData currentWorkOrderData = _requestDetailProvider!.currentWorkOrder!.data!;
|
|
|
|
_requestDetailProvider?.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel(
|
|
|
|
_requestDetailProvider?.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel(
|
|
|
|
workOrderId: currentWorkOrderData.requestId,
|
|
|
|
workOrderId: currentWorkOrderData.requestId,
|
|
|
|
@ -87,32 +93,22 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
|
|
|
|
serviceType: currentWorkOrderData.serviceType,
|
|
|
|
serviceType: currentWorkOrderData.serviceType,
|
|
|
|
);
|
|
|
|
);
|
|
|
|
_requestDetailProvider?.updateEngineerUpdateWorkOrderHelperModel(_requestDetailProvider?.engineerUpdateWorkOrderHelperModel);
|
|
|
|
_requestDetailProvider?.updateEngineerUpdateWorkOrderHelperModel(_requestDetailProvider?.engineerUpdateWorkOrderHelperModel);
|
|
|
|
_isLoading = false;
|
|
|
|
getInitialData();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
|
|
|
return Scaffold(
|
|
|
|
return Scaffold(
|
|
|
|
key: _scaffoldKey,
|
|
|
|
key: _scaffoldKey,
|
|
|
|
appBar: DefaultAppBar(title: context.translation.verify_asset_details),
|
|
|
|
appBar: DefaultAppBar(title: context.translation.verify_asset_details),
|
|
|
|
body: Consumer<RequestDetailProvider>(builder: (context, RequestDetailProvider requestDetailProvider, child) {
|
|
|
|
body: Consumer<RequestDetailProvider>(builder: (context, RequestDetailProvider requestDetailProvider, child) {
|
|
|
|
return SafeArea(
|
|
|
|
return Column(
|
|
|
|
child: LoadingManager(
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
isLoading: _isLoading,
|
|
|
|
|
|
|
|
isFailedLoading: false,
|
|
|
|
|
|
|
|
stateCode: 200,
|
|
|
|
|
|
|
|
onRefresh: () async {},
|
|
|
|
|
|
|
|
child: Form(
|
|
|
|
|
|
|
|
key: _formKey,
|
|
|
|
|
|
|
|
child: Column(
|
|
|
|
|
|
|
|
children: [
|
|
|
|
children: [
|
|
|
|
SingleChildScrollView(
|
|
|
|
Column(
|
|
|
|
child: Card(
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
child: Column(
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
|
|
|
|
|
|
children: [
|
|
|
|
children: [
|
|
|
|
equipmentStatusWidget(context: context, workOrderData: requestDetailProvider.engineerUpdateWorkOrderHelperModel!),
|
|
|
|
equipmentStatusWidget(context: context, workOrderData: requestDetailProvider.engineerUpdateWorkOrderHelperModel!),
|
|
|
|
24.height,
|
|
|
|
12.height,
|
|
|
|
ADatePicker(
|
|
|
|
ADatePicker(
|
|
|
|
label: context.translation.returnToService,
|
|
|
|
label: context.translation.returnToService,
|
|
|
|
hideShadow: true,
|
|
|
|
hideShadow: true,
|
|
|
|
@ -161,7 +157,7 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
|
|
|
|
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAssetId = null;
|
|
|
|
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAssetId = null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
setState(() {});
|
|
|
|
// setState(() {});
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability?.value == 1) 8.height,
|
|
|
|
if (requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAvailability?.value == 1) 8.height,
|
|
|
|
@ -171,9 +167,9 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
|
|
|
|
cardColor: AppColor.neutral100,
|
|
|
|
cardColor: AppColor.neutral100,
|
|
|
|
onPickAsset: (asset) {
|
|
|
|
onPickAsset: (asset) {
|
|
|
|
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAssetId = asset.id;
|
|
|
|
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.loanAssetId = asset.id;
|
|
|
|
setState(() {
|
|
|
|
//setState(() {
|
|
|
|
loanAvailabilityAsset = asset;
|
|
|
|
loanAvailabilityAsset = asset;
|
|
|
|
});
|
|
|
|
// });
|
|
|
|
},
|
|
|
|
},
|
|
|
|
),
|
|
|
|
),
|
|
|
|
12.height,
|
|
|
|
12.height,
|
|
|
|
@ -213,9 +209,7 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
|
|
|
|
? requestDetailProvider.engineerUpdateWorkOrderHelperModel!.solution!.bodyText2(context).custom(color: AppColor.neutral120)
|
|
|
|
? requestDetailProvider.engineerUpdateWorkOrderHelperModel!.solution!.bodyText2(context).custom(color: AppColor.neutral120)
|
|
|
|
: const SizedBox(),
|
|
|
|
: const SizedBox(),
|
|
|
|
],
|
|
|
|
],
|
|
|
|
).paddingOnly(start: 13, end: 13, top: 16, bottom: 16),
|
|
|
|
).toShadowContainer(context).paddingAll(16),
|
|
|
|
).paddingOnly(top: 17, start: 14, end: 14),
|
|
|
|
|
|
|
|
).expanded,
|
|
|
|
|
|
|
|
Container(
|
|
|
|
Container(
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth, vertical: 16.toScreenHeight),
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth, vertical: 16.toScreenHeight),
|
|
|
|
color: AppColor.white10,
|
|
|
|
color: AppColor.white10,
|
|
|
|
@ -229,9 +223,6 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
],
|
|
|
|
),
|
|
|
|
|
|
|
|
),
|
|
|
|
|
|
|
|
),
|
|
|
|
|
|
|
|
);
|
|
|
|
);
|
|
|
|
}),
|
|
|
|
}),
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|