|
|
|
|
@ -25,7 +25,7 @@ import '../../../../new_views/common_widgets/app_filled_button.dart';
|
|
|
|
|
import '../../../../new_views/common_widgets/app_text_form_field.dart';
|
|
|
|
|
|
|
|
|
|
class ServiceRequestBottomSheet {
|
|
|
|
|
static Future fixRemotelyBottomSheet({@required BuildContext context}) {
|
|
|
|
|
static Future fixRemotelyBottomSheet({required BuildContext context}) {
|
|
|
|
|
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
|
|
|
|
return showModalBottomSheet(
|
|
|
|
|
context: context,
|
|
|
|
|
@ -60,7 +60,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
hideShadow: true,
|
|
|
|
|
height: 80.toScreenHeight,
|
|
|
|
|
backgroundColor: AppColor.neutral100,
|
|
|
|
|
date: DateTime.tryParse(serviceRequestProvider.currentSelectedRequest.startDate ?? ""),
|
|
|
|
|
date: DateTime.tryParse(serviceRequestProvider.currentSelectedRequest?.startDate ?? ""),
|
|
|
|
|
formatDateWithTime: true,
|
|
|
|
|
onDatePicker: (selectedDate) {
|
|
|
|
|
if (selectedDate != null) {
|
|
|
|
|
@ -77,17 +77,16 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
selectedTime.hour,
|
|
|
|
|
selectedTime.minute,
|
|
|
|
|
);
|
|
|
|
|
if (selectedDateTime != null) {
|
|
|
|
|
if (selectedDateTime.isBefore(DateTime.parse(serviceRequestProvider.currentSelectedRequest.date))) {
|
|
|
|
|
//serviceRequestProvider.currentSelectedRequest?.date
|
|
|
|
|
if (selectedDateTime.isBefore(DateTime.parse(serviceRequestProvider.currentSelectedRequest!.date!))) {
|
|
|
|
|
"Visit Date time must be greater then request date".showToast;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setState(() {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.startDate = selectedDateTime?.toIso8601String();
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.startDate = selectedDateTime.toIso8601String();
|
|
|
|
|
});
|
|
|
|
|
print('start date i got is ${serviceRequestProvider.currentSelectedRequest.startDate}');
|
|
|
|
|
}
|
|
|
|
|
print('start date i got is ${serviceRequestProvider.currentSelectedRequest?.startDate}');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
@ -123,10 +122,10 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral100,
|
|
|
|
|
alignLabelWithHint: true,
|
|
|
|
|
onChange: (text) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.comments = text;
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.comments = text;
|
|
|
|
|
},
|
|
|
|
|
onSaved: (text) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.comments = text;
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.comments = text;
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
16.height,
|
|
|
|
|
@ -169,7 +168,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static Future initialVisitBottomSheet({@required BuildContext context}) {
|
|
|
|
|
static Future initialVisitBottomSheet({required BuildContext context}) {
|
|
|
|
|
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
|
|
|
|
return showModalBottomSheet(
|
|
|
|
|
context: context,
|
|
|
|
|
@ -194,7 +193,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
hideShadow: true,
|
|
|
|
|
backgroundColor: AppColor.neutral100,
|
|
|
|
|
height: 70.toScreenHeight,
|
|
|
|
|
date: DateTime.tryParse(serviceRequestProvider.currentSelectedRequest.visitDate ?? ""),
|
|
|
|
|
date: DateTime.tryParse(serviceRequestProvider.currentSelectedRequest?.visitDate ?? ""),
|
|
|
|
|
formatDateWithTime: true,
|
|
|
|
|
onDatePicker: (selectedDate) {
|
|
|
|
|
if (selectedDate != null) {
|
|
|
|
|
@ -211,25 +210,23 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
selectedTime.hour,
|
|
|
|
|
selectedTime.minute,
|
|
|
|
|
);
|
|
|
|
|
if (selectedDateTime != null) {
|
|
|
|
|
if (selectedDateTime.isBefore(DateTime.parse(serviceRequestProvider.currentSelectedRequest.date))) {
|
|
|
|
|
if (selectedDateTime.isBefore(DateTime.parse(serviceRequestProvider.currentSelectedRequest!.date!))) {
|
|
|
|
|
"Visit Date time must be greater then request date".showToast;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.visitDate = selectedDateTime?.toIso8601String();
|
|
|
|
|
}
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.visitDate = selectedDateTime?.toIso8601String();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
if (serviceRequestProvider.currentSelectedRequest.firstAction?.id == 404 && Provider.of<SettingProvider>(context, listen: false).assetGroup.id == 1) ...[
|
|
|
|
|
if (serviceRequestProvider.currentSelectedRequest?.firstAction?.id == 404 && Provider.of<SettingProvider>(context, listen: false).assetGroup?.id == 1) ...[
|
|
|
|
|
8.height,
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
ADatePicker(
|
|
|
|
|
label: context.translation.startDate,
|
|
|
|
|
date: DateTime.tryParse(serviceRequestProvider.currentSelectedRequest.startDate ?? ""),
|
|
|
|
|
date: DateTime.tryParse(serviceRequestProvider.currentSelectedRequest?.startDate ?? ""),
|
|
|
|
|
formatDateWithTime: true,
|
|
|
|
|
onDatePicker: (selectedDate) {
|
|
|
|
|
if (selectedDate != null) {
|
|
|
|
|
@ -247,7 +244,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
selectedTime.minute,
|
|
|
|
|
);
|
|
|
|
|
if (selectedDateTime != null) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.startDate = selectedDateTime?.toIso8601String();
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.startDate = selectedDateTime?.toIso8601String();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
@ -257,7 +254,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
8.width,
|
|
|
|
|
ADatePicker(
|
|
|
|
|
label: context.translation.endDate,
|
|
|
|
|
date: DateTime.tryParse(serviceRequestProvider.currentSelectedRequest.endDate ?? ""),
|
|
|
|
|
date: DateTime.tryParse(serviceRequestProvider.currentSelectedRequest?.endDate ?? ""),
|
|
|
|
|
formatDateWithTime: true,
|
|
|
|
|
onDatePicker: (selectedDate) {
|
|
|
|
|
if (selectedDate != null) {
|
|
|
|
|
@ -275,9 +272,9 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
selectedTime.minute,
|
|
|
|
|
);
|
|
|
|
|
if (selectedDateTime != null) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.endDate = selectedDateTime?.toIso8601String();
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.workingHours = (((DateTime.parse(serviceRequestProvider.currentSelectedRequest.endDate)
|
|
|
|
|
.difference(DateTime.parse(serviceRequestProvider.currentSelectedRequest.startDate))
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.endDate = selectedDateTime?.toIso8601String();
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.workingHours = (((DateTime.parse(serviceRequestProvider.currentSelectedRequest!.endDate!)
|
|
|
|
|
.difference(DateTime.parse(serviceRequestProvider.currentSelectedRequest!.startDate!))
|
|
|
|
|
.inSeconds ??
|
|
|
|
|
0) /
|
|
|
|
|
60) /
|
|
|
|
|
@ -300,10 +297,10 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
textInputType: TextInputType.multiline,
|
|
|
|
|
alignLabelWithHint: true,
|
|
|
|
|
onChange: (text) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.comments = text;
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.comments = text;
|
|
|
|
|
},
|
|
|
|
|
onSaved: (text) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.comments = text;
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.comments = text;
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
12.height,
|
|
|
|
|
@ -313,7 +310,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
|
|
|
|
|
loading: serviceRequestProvider.isLoading ?? false,
|
|
|
|
|
onPressed: () async {
|
|
|
|
|
_formKey.currentState.save();
|
|
|
|
|
_formKey.currentState?.save();
|
|
|
|
|
|
|
|
|
|
// await snapshot.updateRequest(user: userProvider.user, request: serviceRequestProvider.serviceRequest);
|
|
|
|
|
// Navigator.pop(context, true);
|
|
|
|
|
@ -328,7 +325,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static Future rejectRequestBottomSheet({@required BuildContext context}) {
|
|
|
|
|
static Future rejectRequestBottomSheet({required BuildContext context}) {
|
|
|
|
|
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
|
|
|
|
return showModalBottomSheet(
|
|
|
|
|
context: context,
|
|
|
|
|
@ -352,11 +349,11 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
backgroundColor: AppColor.neutral100,
|
|
|
|
|
height: 70.toScreenHeight,
|
|
|
|
|
title: context.translation.rejectionReason,
|
|
|
|
|
initialValue: serviceRequestProvider.currentSelectedRequest.firstAction, //_serviceRequest.firstAction,
|
|
|
|
|
initialValue: serviceRequestProvider.currentSelectedRequest?.firstAction, //_serviceRequest.firstAction,
|
|
|
|
|
onSelect: (value) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.firstAction = value;
|
|
|
|
|
if (serviceRequestProvider.currentSelectedRequest.firstAction.value != 2) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.visitDate = null;
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.firstAction = value;
|
|
|
|
|
if (serviceRequestProvider.currentSelectedRequest?.firstAction?.value != 2) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.visitDate = null;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
@ -367,10 +364,10 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
textInputType: TextInputType.multiline,
|
|
|
|
|
alignLabelWithHint: true,
|
|
|
|
|
onChange: (text) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.comments = text;
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.comments = text;
|
|
|
|
|
},
|
|
|
|
|
onSaved: (text) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.comments = text;
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.comments = text;
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
16.height,
|
|
|
|
|
@ -383,7 +380,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
showBorder: true,
|
|
|
|
|
loading: snapshot.isLoading ?? false,
|
|
|
|
|
onPressed: () async {
|
|
|
|
|
_formKey.currentState.save();
|
|
|
|
|
_formKey.currentState?.save();
|
|
|
|
|
//Todo implement backend logic..
|
|
|
|
|
// serviceRequestProvider.serviceRequest.device = asset;
|
|
|
|
|
// await snapshot.updateRequest(user: userProvider.user, request: serviceRequestProvider.currentSelectedRequest);
|
|
|
|
|
@ -399,12 +396,12 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static Future activityTypeBottomSheet({@required BuildContext context}) {
|
|
|
|
|
static Future activityTypeBottomSheet({required BuildContext context}) {
|
|
|
|
|
final List<Map<String, String>> items = [
|
|
|
|
|
{'heading': context.translation.sparePartRequest, 'subHeading': context.translation.sparePartRequestDetail, 'icon': AppAsset.sparePartIcon},
|
|
|
|
|
{'heading': context.translation.maintenanceRequest, 'subHeading': context.translation.sparePartRequestDetail, 'icon': AppAsset.maintenanceIcon},
|
|
|
|
|
];
|
|
|
|
|
Widget listItem({@required BuildContext context, @required String icon, @required String heading, @required String subHeading, @required VoidCallback onTap}) {
|
|
|
|
|
Widget listItem({required BuildContext context, required String icon, required String heading, required String subHeading, required VoidCallback onTap}) {
|
|
|
|
|
return Card(
|
|
|
|
|
color: AppColor.neutral80,
|
|
|
|
|
shape: RoundedRectangleBorder(
|
|
|
|
|
@ -430,7 +427,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void onItemTap({@required int index, @required ServiceRequest serviceRequest, @required BuildContext context}) {
|
|
|
|
|
void onItemTap({required int index, required ServiceRequest serviceRequest, required BuildContext context}) {
|
|
|
|
|
switch (index) {
|
|
|
|
|
case 0:
|
|
|
|
|
Navigator.of(context).push(MaterialPageRoute(builder: (_) => const SparePartRequest()));
|
|
|
|
|
@ -493,12 +490,12 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
itemBuilder: (context, index) {
|
|
|
|
|
final item = items[index];
|
|
|
|
|
return listItem(
|
|
|
|
|
icon: item['icon'],
|
|
|
|
|
heading: item['heading'],
|
|
|
|
|
subHeading: item['subHeading'],
|
|
|
|
|
icon: item['icon']!,
|
|
|
|
|
heading: item['heading']!,
|
|
|
|
|
subHeading: item['subHeading']!,
|
|
|
|
|
context: context,
|
|
|
|
|
onTap: () {
|
|
|
|
|
onItemTap(serviceRequest: serviceRequestProvider.currentSelectedRequest, index: index, context: context);
|
|
|
|
|
onItemTap(serviceRequest: serviceRequestProvider.currentSelectedRequest!, index: index, context: context);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
@ -508,7 +505,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static Future actionBottomSheet({@required BuildContext context, @required String title, String button1Text, String button2Text, VoidCallback button1Tap, VoidCallback button2Tap}) {
|
|
|
|
|
static Future actionBottomSheet({required BuildContext context, required String title, String? button1Text, String ?button2Text, VoidCallback ?button1Tap, VoidCallback ?button2Tap}) {
|
|
|
|
|
return showModalBottomSheet(
|
|
|
|
|
context: context,
|
|
|
|
|
useSafeArea: true,
|
|
|
|
|
@ -562,7 +559,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
);
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
static Future feedBackBottomSheet({@required BuildContext context}) {
|
|
|
|
|
static Future feedBackBottomSheet({required BuildContext context}) {
|
|
|
|
|
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
|
|
|
|
return showModalBottomSheet(
|
|
|
|
|
context: context,
|
|
|
|
|
@ -599,10 +596,10 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral100,
|
|
|
|
|
alignLabelWithHint: true,
|
|
|
|
|
onChange: (text) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.comments = text;
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.comments = text;
|
|
|
|
|
},
|
|
|
|
|
onSaved: (text) {
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest.comments = text;
|
|
|
|
|
serviceRequestProvider.currentSelectedRequest?.comments = text;
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
16.height,
|
|
|
|
|
@ -620,7 +617,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
);
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
static Future nurseTakeActionBottomSheet({@required BuildContext context}) {
|
|
|
|
|
static Future nurseTakeActionBottomSheet({required BuildContext context}) {
|
|
|
|
|
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
|
|
|
|
return showModalBottomSheet(
|
|
|
|
|
context: context,
|
|
|
|
|
@ -633,7 +630,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
child: SingleChildScrollView(
|
|
|
|
|
child: StatefulBuilder(builder: (context, setState) {
|
|
|
|
|
bool acknowledge = false;
|
|
|
|
|
Uint8List newSignature;
|
|
|
|
|
Uint8List ?newSignature;
|
|
|
|
|
return Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
|
children: [
|
|
|
|
|
@ -647,11 +644,11 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
Checkbox(
|
|
|
|
|
value: serviceRequestProvider.ackhnowledge,
|
|
|
|
|
value: acknowledge,
|
|
|
|
|
activeColor: AppColor.blueStatus(context),
|
|
|
|
|
onChanged: (value) {
|
|
|
|
|
setState(() {
|
|
|
|
|
acknowledge = !value;
|
|
|
|
|
acknowledge = !value!;
|
|
|
|
|
});
|
|
|
|
|
print('acknowledge value is $acknowledge');
|
|
|
|
|
|
|
|
|
|
@ -663,7 +660,7 @@ class ServiceRequestBottomSheet {
|
|
|
|
|
ESignature(
|
|
|
|
|
title: '',
|
|
|
|
|
oldSignature: '',
|
|
|
|
|
newSignature: newSignature,
|
|
|
|
|
newSignature: newSignature,
|
|
|
|
|
backgroundColor: AppColor.neutral100,
|
|
|
|
|
showShadow: false,
|
|
|
|
|
onSaved: (signature) {
|
|
|
|
|
|