|
|
|
|
@ -1,4 +1,3 @@
|
|
|
|
|
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
import 'package:test_sa/controllers/providers/api/parts_provider.dart';
|
|
|
|
|
@ -42,208 +41,213 @@ class ExternalMaintenanceRequest extends StatefulWidget {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class _ExternalMaintenanceRequestState extends State<ExternalMaintenanceRequest> with TickerProviderStateMixin {
|
|
|
|
|
|
|
|
|
|
ServiceReport ?_serviceReport;
|
|
|
|
|
ServiceReport? _serviceReport;
|
|
|
|
|
final TextEditingController _workingHoursController = TextEditingController();
|
|
|
|
|
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
void initState() {
|
|
|
|
|
getInitialData();
|
|
|
|
|
super.initState();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void getInitialData() {
|
|
|
|
|
RequestDetailProvider requestDetailProvider = Provider.of<RequestDetailProvider>(context, listen: false);
|
|
|
|
|
_workingHoursController.text =
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supplierWorkingHour != null ? requestDetailProvider.activityMaintenanceHelperModel!.supplierWorkingHour.toString() : '';
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
|
|
|
|
|
return Consumer<RequestDetailProvider>(
|
|
|
|
|
builder: (context, RequestDetailProvider requestDetailProvider,child) {
|
|
|
|
|
return Column(
|
|
|
|
|
children: [
|
|
|
|
|
Form(
|
|
|
|
|
key: _formKey,
|
|
|
|
|
child: Column(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
children: [
|
|
|
|
|
SingleItemDropDownMenu<SupplierDetails, VendorProvider>(
|
|
|
|
|
context: context,
|
|
|
|
|
title: context.translation.supplier,
|
|
|
|
|
backgroundColor: AppColor.neutral100,
|
|
|
|
|
initialValue: requestDetailProvider.activityMaintenanceHelperModel?.supplier,
|
|
|
|
|
showAsBottomSheet: true,
|
|
|
|
|
onSelect: (supplier) {
|
|
|
|
|
if (supplier != null) {
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supplier=supplier;
|
|
|
|
|
print('engineer is ${supplier.suppPersons?.length}');
|
|
|
|
|
// _subWorkOrders.supplier = supplier;
|
|
|
|
|
// log(_subWorkOrders.supplier?.suppPersons?.map((e) => e.personName)?.toString());
|
|
|
|
|
setState(() {});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
SingleItemDropDownMenu<SuppPersons, NullableLoadingProvider>(
|
|
|
|
|
context: context,
|
|
|
|
|
backgroundColor: requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppliername == null ? AppColor.neutral40 : AppColor.neutral100,
|
|
|
|
|
title: context.translation.supplierEngineer,
|
|
|
|
|
enabled: requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppPersons?.isNotEmpty ?? false,
|
|
|
|
|
staticData:requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppPersons,
|
|
|
|
|
showAsBottomSheet: true,
|
|
|
|
|
initialValue: requestDetailProvider.activityMaintenanceHelperModel?.supEngineer == null ? null : SuppPersons.fromJson(requestDetailProvider.activityMaintenanceHelperModel?.supEngineer?.toJson()),
|
|
|
|
|
onSelect: (suppPerson) {
|
|
|
|
|
print(suppPerson?.toJson());
|
|
|
|
|
if (suppPerson != null) {
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supEngineer = SuppEngineerWorkOrders.fromJson(suppPerson.toJson());
|
|
|
|
|
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
|
|
|
|
|
// engineer = SuppEngineerWorkOrders(
|
|
|
|
|
// id: suppPerson?.supplierId,
|
|
|
|
|
// supplierContactId: suppPerson?.id,
|
|
|
|
|
// personName: suppPerson?.personName,
|
|
|
|
|
// contact: suppPerson?.contact,
|
|
|
|
|
// externalEngCode: suppPerson?.externalEngCode,
|
|
|
|
|
// email: suppPerson?.email,
|
|
|
|
|
// );
|
|
|
|
|
return Consumer<RequestDetailProvider>(builder: (context, RequestDetailProvider requestDetailProvider, child) {
|
|
|
|
|
return Column(
|
|
|
|
|
children: [
|
|
|
|
|
Form(
|
|
|
|
|
key: _formKey,
|
|
|
|
|
child: Column(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
children: [
|
|
|
|
|
SingleItemDropDownMenu<SupplierDetails, VendorProvider>(
|
|
|
|
|
context: context,
|
|
|
|
|
title: context.translation.supplier,
|
|
|
|
|
backgroundColor: AppColor.neutral100,
|
|
|
|
|
initialValue: requestDetailProvider.activityMaintenanceHelperModel?.supplier,
|
|
|
|
|
showAsBottomSheet: true,
|
|
|
|
|
onSelect: (supplier) {
|
|
|
|
|
if (supplier != null) {
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supplier = supplier;
|
|
|
|
|
// _subWorkOrders.supplier = supplier;
|
|
|
|
|
// log(_subWorkOrders.supplier?.suppPersons?.map((e) => e.personName)?.toString());
|
|
|
|
|
setState(() {});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
SingleItemDropDownMenu<SuppPersons, NullableLoadingProvider>(
|
|
|
|
|
context: context,
|
|
|
|
|
backgroundColor: requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppliername == null ? AppColor.neutral40 : AppColor.neutral100,
|
|
|
|
|
title: context.translation.supplierEngineer,
|
|
|
|
|
enabled: requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppPersons?.isNotEmpty ?? false,
|
|
|
|
|
staticData: requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppPersons,
|
|
|
|
|
showAsBottomSheet: true,
|
|
|
|
|
initialValue: requestDetailProvider.activityMaintenanceHelperModel?.supEngineer == null
|
|
|
|
|
? null
|
|
|
|
|
: SuppPersons.fromJson(requestDetailProvider.activityMaintenanceHelperModel?.supEngineer?.toJson()),
|
|
|
|
|
onSelect: (suppPerson) {
|
|
|
|
|
print(suppPerson?.toJson());
|
|
|
|
|
if (suppPerson != null) {
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supEngineer = SuppEngineerWorkOrders.fromJson(suppPerson.toJson());
|
|
|
|
|
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
|
|
|
|
|
// engineer = SuppEngineerWorkOrders(
|
|
|
|
|
// id: suppPerson?.supplierId,
|
|
|
|
|
// supplierContactId: suppPerson?.id,
|
|
|
|
|
// personName: suppPerson?.personName,
|
|
|
|
|
// contact: suppPerson?.contact,
|
|
|
|
|
// externalEngCode: suppPerson?.externalEngCode,
|
|
|
|
|
// email: suppPerson?.email,
|
|
|
|
|
// );
|
|
|
|
|
setState(() {});
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
).expanded,
|
|
|
|
|
8.width,
|
|
|
|
|
Container(
|
|
|
|
|
height: 56.toScreenHeight,
|
|
|
|
|
width: 60.toScreenWidth,
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
color: requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppliername == null ? AppColor.neutral40 : AppColor.neutral100,
|
|
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
|
|
boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 10)],
|
|
|
|
|
),
|
|
|
|
|
child: Icon(
|
|
|
|
|
Icons.add,
|
|
|
|
|
color: context.isDark ? null : AppColor.neutral60,
|
|
|
|
|
),
|
|
|
|
|
).onPress(requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppliername == null
|
|
|
|
|
? null
|
|
|
|
|
: () async {
|
|
|
|
|
SuppEngineerWorkOrders suppEngineer = (await showModalBottomSheet(
|
|
|
|
|
context: context,
|
|
|
|
|
useSafeArea: true,
|
|
|
|
|
isScrollControlled: true,
|
|
|
|
|
backgroundColor: Colors.transparent,
|
|
|
|
|
builder: (context) => AddSupplierEngineerBottomSheet(requestDetailProvider.activityMaintenanceHelperModel!.supplier!.id!.toInt()),
|
|
|
|
|
)) as SuppEngineerWorkOrders;
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppPersons ??= [];
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppPersons?.add(SuppPersons.fromJson(suppEngineer.toJson()));
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supEngineer = suppEngineer;
|
|
|
|
|
setState(() {});
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
children: [
|
|
|
|
|
ADatePicker(
|
|
|
|
|
label: context.translation.startTime,
|
|
|
|
|
hideShadow: true,
|
|
|
|
|
backgroundColor: AppColor.neutral100,
|
|
|
|
|
date: requestDetailProvider.activityMaintenanceHelperModel?.supplierStartTime,
|
|
|
|
|
formatDateWithTime: true,
|
|
|
|
|
onDatePicker: (selectedDate) {
|
|
|
|
|
showTimePicker(
|
|
|
|
|
context: context,
|
|
|
|
|
initialTime: TimeOfDay.now(),
|
|
|
|
|
).then((selectedTime) {
|
|
|
|
|
// Handle the selected date and time here.
|
|
|
|
|
if (selectedTime != null) {
|
|
|
|
|
DateTime selectedDateTime = DateTime(
|
|
|
|
|
selectedDate.year,
|
|
|
|
|
selectedDate.month,
|
|
|
|
|
selectedDate.day,
|
|
|
|
|
selectedTime.hour,
|
|
|
|
|
selectedTime.minute,
|
|
|
|
|
);
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supplierStartTime = selectedDateTime;
|
|
|
|
|
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
|
|
|
|
|
assignWorkingHours(requestDetailProvider: requestDetailProvider);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
).expanded,
|
|
|
|
|
8.width,
|
|
|
|
|
Container(
|
|
|
|
|
height: 56.toScreenHeight,
|
|
|
|
|
width: 60.toScreenWidth,
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
color: requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppliername == null ? AppColor.neutral40 : AppColor.neutral100,
|
|
|
|
|
borderRadius: BorderRadius.circular(10),
|
|
|
|
|
boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.05), blurRadius: 10)],
|
|
|
|
|
),
|
|
|
|
|
child: Icon(
|
|
|
|
|
Icons.add,
|
|
|
|
|
color: context.isDark ? null : AppColor.neutral60,
|
|
|
|
|
),
|
|
|
|
|
).onPress(requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppliername == null
|
|
|
|
|
? null
|
|
|
|
|
: () async {
|
|
|
|
|
SuppEngineerWorkOrders suppEngineer = (await showModalBottomSheet(
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
).expanded,
|
|
|
|
|
8.width,
|
|
|
|
|
ADatePicker(
|
|
|
|
|
label: context.translation.endTime,
|
|
|
|
|
hideShadow: true,
|
|
|
|
|
backgroundColor: AppColor.neutral100,
|
|
|
|
|
date: requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime,
|
|
|
|
|
formatDateWithTime: true,
|
|
|
|
|
onDatePicker: (selectedDate) {
|
|
|
|
|
showTimePicker(
|
|
|
|
|
context: context,
|
|
|
|
|
useSafeArea: true,
|
|
|
|
|
isScrollControlled: true,
|
|
|
|
|
backgroundColor: Colors.transparent,
|
|
|
|
|
builder: (context) => AddSupplierEngineerBottomSheet(requestDetailProvider.activityMaintenanceHelperModel!.supplier!.id!.toInt()),
|
|
|
|
|
)) as SuppEngineerWorkOrders;
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppPersons ??= [];
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppPersons?.add(SuppPersons.fromJson(suppEngineer.toJson()));
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supEngineer = suppEngineer;
|
|
|
|
|
setState(() {});
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
|
children: [
|
|
|
|
|
ADatePicker(
|
|
|
|
|
label: context.translation.startTime,
|
|
|
|
|
hideShadow: true,
|
|
|
|
|
backgroundColor: AppColor.neutral100,
|
|
|
|
|
date: requestDetailProvider.activityMaintenanceHelperModel?.supplierStartTime,
|
|
|
|
|
formatDateWithTime: true,
|
|
|
|
|
onDatePicker: (selectedDate) {
|
|
|
|
|
showTimePicker(
|
|
|
|
|
context: context,
|
|
|
|
|
initialTime: TimeOfDay.now(),
|
|
|
|
|
).then((selectedTime) {
|
|
|
|
|
// Handle the selected date and time here.
|
|
|
|
|
if (selectedTime != null) {
|
|
|
|
|
DateTime selectedDateTime = DateTime(
|
|
|
|
|
selectedDate.year,
|
|
|
|
|
selectedDate.month,
|
|
|
|
|
selectedDate.day,
|
|
|
|
|
selectedTime.hour,
|
|
|
|
|
selectedTime.minute,
|
|
|
|
|
);
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supplierStartTime = selectedDateTime;
|
|
|
|
|
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
|
|
|
|
|
assignWorkingHours(requestDetailProvider: requestDetailProvider);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
).expanded,
|
|
|
|
|
8.width,
|
|
|
|
|
ADatePicker(
|
|
|
|
|
label: context.translation.endTime,
|
|
|
|
|
hideShadow: true,
|
|
|
|
|
backgroundColor: AppColor.neutral100,
|
|
|
|
|
date: requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime,
|
|
|
|
|
formatDateWithTime: true,
|
|
|
|
|
onDatePicker: (selectedDate) {
|
|
|
|
|
showTimePicker(
|
|
|
|
|
context: context,
|
|
|
|
|
initialTime: TimeOfDay.now(),
|
|
|
|
|
).then((selectedTime) {
|
|
|
|
|
// Handle the selected date and time here.
|
|
|
|
|
if (selectedTime != null) {
|
|
|
|
|
DateTime selectedDateTime = DateTime(
|
|
|
|
|
selectedDate.year,
|
|
|
|
|
selectedDate.month,
|
|
|
|
|
selectedDate.day,
|
|
|
|
|
selectedTime.hour,
|
|
|
|
|
selectedTime.minute,
|
|
|
|
|
);
|
|
|
|
|
if (requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime!=null&&selectedDateTime.isBefore(requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime!)) {
|
|
|
|
|
"End Date time must be greater then start date".showToast;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime = selectedDateTime;
|
|
|
|
|
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
|
|
|
|
|
assignWorkingHours(requestDetailProvider: requestDetailProvider);
|
|
|
|
|
|
|
|
|
|
initialTime: TimeOfDay.now(),
|
|
|
|
|
).then((selectedTime) {
|
|
|
|
|
// Handle the selected date and time here.
|
|
|
|
|
if (selectedTime != null) {
|
|
|
|
|
DateTime selectedDateTime = DateTime(
|
|
|
|
|
selectedDate.year,
|
|
|
|
|
selectedDate.month,
|
|
|
|
|
selectedDate.day,
|
|
|
|
|
selectedTime.hour,
|
|
|
|
|
selectedTime.minute,
|
|
|
|
|
);
|
|
|
|
|
if (requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime != null &&
|
|
|
|
|
selectedDateTime.isBefore(requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime!)) {
|
|
|
|
|
"End Date time must be greater then start date".showToast;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
).expanded,
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
AppTextFormField(
|
|
|
|
|
labelText: context.translation.workingHours,
|
|
|
|
|
backgroundColor: AppColor.neutral80,
|
|
|
|
|
controller: _workingHoursController,
|
|
|
|
|
suffixIcon: "clock".toSvgAsset(width: 20, color: context.isDark ? AppColor.neutral10 : null).paddingOnly(end: 16),
|
|
|
|
|
initialValue:requestDetailProvider.activityMaintenanceHelperModel?.supplierWorkingHour!=null? requestDetailProvider.activityMaintenanceHelperModel?.supplierWorkingHour.toString():'',
|
|
|
|
|
textAlign: TextAlign.center,
|
|
|
|
|
labelStyle: AppTextStyles.textFieldLabelStyle,
|
|
|
|
|
enable: false,
|
|
|
|
|
showShadow: false,
|
|
|
|
|
style: Theme.of(context).textTheme.titleMedium,
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
).toShadowContainer(context).paddingOnly(start: 16, end: 16, top: 12),
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supplierEndTime = selectedDateTime;
|
|
|
|
|
requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel);
|
|
|
|
|
assignWorkingHours(requestDetailProvider: requestDetailProvider);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
).expanded,
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
AppTextFormField(
|
|
|
|
|
labelText: context.translation.workingHours,
|
|
|
|
|
backgroundColor: AppColor.neutral80,
|
|
|
|
|
controller: _workingHoursController,
|
|
|
|
|
suffixIcon: "clock".toSvgAsset(width: 20, color: context.isDark ? AppColor.neutral10 : null).paddingOnly(end: 16),
|
|
|
|
|
initialValue:
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel?.supplierWorkingHour != null ? requestDetailProvider.activityMaintenanceHelperModel?.supplierWorkingHour.toString() : '',
|
|
|
|
|
textAlign: TextAlign.center,
|
|
|
|
|
labelStyle: AppTextStyles.textFieldLabelStyle,
|
|
|
|
|
enable: false,
|
|
|
|
|
showShadow: false,
|
|
|
|
|
style: Theme.of(context).textTheme.titleMedium,
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
).toShadowContainer(context).paddingOnly(start: 16, end: 16, top: 12),
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int calculateWorkingHours(DateTime? startTime, DateTime? endTime) {
|
|
|
|
|
if(startTime!=null&&endTime!=null){
|
|
|
|
|
if (startTime != null && endTime != null) {
|
|
|
|
|
Duration difference = endTime.difference(startTime);
|
|
|
|
|
int hours = difference.inHours;
|
|
|
|
|
int minutes = difference.inMinutes % 60;
|
|
|
|
|
return hours;
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
assignWorkingHours({required RequestDetailProvider requestDetailProvider}){
|
|
|
|
|
int hours = calculateWorkingHours(requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime,requestDetailProvider.activityMaintenanceHelperModel!.supplierEndTime);
|
|
|
|
|
if(hours!=-1){
|
|
|
|
|
assignWorkingHours({required RequestDetailProvider requestDetailProvider}) {
|
|
|
|
|
int hours = calculateWorkingHours(requestDetailProvider.activityMaintenanceHelperModel!.supplierStartTime, requestDetailProvider.activityMaintenanceHelperModel!.supplierEndTime);
|
|
|
|
|
if (hours != -1) {
|
|
|
|
|
_workingHoursController.text = hours.toString();
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel!.workingHour=hours;
|
|
|
|
|
requestDetailProvider.activityMaintenanceHelperModel!.workingHour = hours;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|