diff --git a/lib/new_views/pages/land_page/my_request/all_requests_filter_page.dart b/lib/new_views/pages/land_page/my_request/all_requests_filter_page.dart index 684eb99d..ac7c3b92 100644 --- a/lib/new_views/pages/land_page/my_request/all_requests_filter_page.dart +++ b/lib/new_views/pages/land_page/my_request/all_requests_filter_page.dart @@ -161,25 +161,25 @@ class _AllRequestsFilterPageState extends State { ], ), 16.height, - "Archived WO".heading5(context), - // 8.height, - Row( - children: [ - Checkbox( - value: search?.isArchived ?? false, - activeColor: AppColor.blueStatus(context), - onChanged: (value) { - if (search?.isArchived != value) { - search?.isArchived = value!; - } - if (mounted) setState(() {}); - }), - "View Archived Requests".bodyText(context).expanded, - ], - ).onPress(() { - search?.isArchived = !search!.isArchived; - setState(() {}); - }), + // "Archived WO".heading5(context), + // // 8.height, + // Row( + // children: [ + // Checkbox( + // value: search?.isArchived ?? false, + // activeColor: AppColor.blueStatus(context), + // onChanged: (value) { + // if (search?.isArchived != value) { + // search?.isArchived = value!; + // } + // if (mounted) setState(() {}); + // }), + // "View Archived Requests".bodyText(context).expanded, + // ], + // ).onPress(() { + // search?.isArchived = !search!.isArchived; + // setState(() {}); + // }), ], ).paddingOnly(start: 16, end: 16), ).expanded, diff --git a/lib/service_request_latest/views/forms/maintenance_request/components/assistant_employee_list.dart b/lib/service_request_latest/views/forms/maintenance_request/components/assistant_employee_list.dart new file mode 100644 index 00000000..0b102c0f --- /dev/null +++ b/lib/service_request_latest/views/forms/maintenance_request/components/assistant_employee_list.dart @@ -0,0 +1,546 @@ +// // import 'package:flutter/material.dart'; +// // import 'package:fluttertoast/fluttertoast.dart'; +// // import 'package:provider/provider.dart'; +// // import 'package:test_sa/controllers/providers/api/user_provider.dart'; +// // import 'package:test_sa/extensions/context_extension.dart'; +// // import 'package:test_sa/extensions/int_extensions.dart'; +// // import 'package:test_sa/extensions/string_extensions.dart'; +// // import 'package:test_sa/extensions/text_extensions.dart'; +// // import 'package:test_sa/extensions/widget_extensions.dart'; +// // import 'package:test_sa/models/lookup.dart'; +// // import 'package:test_sa/models/plan_preventive_visit/plan_preventive_visit_model.dart'; +// // import 'package:test_sa/models/ppm/ppm_calibration_tools.dart'; +// // import 'package:test_sa/models/service_request/supplier_details.dart'; +// // import 'package:test_sa/new_views/common_widgets/app_filled_button.dart'; +// // import 'package:test_sa/new_views/common_widgets/app_text_form_field.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/ppm_service_provider.dart'; +// // import 'package:test_sa/providers/work_order/vendor_provider.dart'; +// // import 'package:test_sa/service_request_latest/utilities/service_request_utils.dart'; +// // import 'package:test_sa/views/widgets/pentry/calibration_tool_asset_picker.dart'; +// // +// // import '../../../../../new_views/app_style/app_color.dart'; +// // import '../../../../widgets/date_and_time/date_picker.dart'; +// // +// // class AssistantEmployeeList extends StatefulWidget { +// // final List? models; +// // +// // const AssistantEmployeeList({Key? key, this.models = const []}) : super(key: key); +// // +// // @override +// // State createState() => _AssistantEmployeeListState(); +// // } +// // +// // class _AssistantEmployeeListState extends State { +// // final TextEditingController _workingHoursController = TextEditingController(); +// // +// // @override +// // Widget build(BuildContext context) { +// // return ListView.builder( +// // itemCount: widget.models!.length + 1, +// // padding: const EdgeInsets.only(left: 16, right: 16, top: 8, bottom: 16), +// // itemBuilder: (context, index) { +// // if (index == widget.models!.length) { +// // return AppFilledButton( +// // label: "Add More External Details".addTranslation, +// // maxWidth: true, +// // textColor: AppColor.black10, +// // buttonColor: context.isDark ? AppColor.neutral60 : AppColor.white10, +// // icon: Icon(Icons.add_circle, color: AppColor.blueStatus(context)), +// // showIcon: true, +// // onPressed: () async { +// // // if (widget.models?.isNotEmpty ?? false) { +// // // if (widget.models!.last.assetId == null) { +// // // await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.assetNumber}"); +// // // return; +// // // } +// // // if (widget.models!.last.calibrationDateOfTesters == null) { +// // // await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.date}"); +// // // return; +// // // } +// // // } +// // // widget.models!.add(PpmCalibrationTools(id: 0)); +// // // setState(() {}); +// // }, +// // ); +// // } +// // final model = widget.models![index]; +// // // _workingHoursController.text = model.workingHours != null ? model.workingHours.toString() : ''; +// // return Container( +// // padding: const EdgeInsets.all(16), +// // margin: EdgeInsets.only(bottom: 16.toScreenHeight), +// // decoration: BoxDecoration( +// // color: AppColor.background(context), +// // borderRadius: BorderRadius.circular(20), +// // boxShadow: [BoxShadow(color: Colors.black.withOpacity(0.03), blurRadius: 14)], +// // ), +// // child: Column( +// // crossAxisAlignment: CrossAxisAlignment.start, +// // children: [ +// // Row( +// // mainAxisAlignment: MainAxisAlignment.spaceBetween, +// // children: [ +// // (index == 0 ? "1 /4 . External Details" : "").heading5(context), +// // "trash".toSvgAsset(height: 20, width: 15).onPress(() { +// // widget.models!.remove(model); +// // +// // setState(() {}); +// // }), +// // ], +// // ), +// // 16.height, +// // SingleItemDropDownMenu( +// // context: context, +// // title: context.translation.supplier, +// // initialValue: model.supplier, +// // backgroundColor: AppColor.neutral100, +// // showAsBottomSheet: true, +// // onSelect: (supplier) { +// // if (supplier != null) { +// // model.supplier = supplier; +// // print('supplier dtails is ${supplier.toJson()}'); +// // setState(() {}); +// // } +// // }, +// // ), +// // 8.height, +// // SingleItemDropDownMenu( +// // context: context, +// // title: context.translation.supplierEngineer, +// // enabled: model.suppPerson != null, +// // backgroundColor: AppColor.neutral100, +// // initialValue: model.suppPerson, +// // staticData: model.supplier?.suppPersons, +// // showAsBottomSheet: true, +// // onSelect: (suppPerson) { +// // if (suppPerson != null) { +// // model.suppPerson = suppPerson; +// // print('supply person is ${model.suppPerson?.toJson()}'); +// // } +// // }, +// // ), +// // 8.height, +// // AppTextFormField( +// // labelText: "Telephone", +// // initialValue: model.supplier?.telephones != null && model.supplier!.telephones!.isNotEmpty ? (model.supplier?.telephones?[0].telephone ?? "").toString() : '', +// // textAlign: TextAlign.center, +// // backgroundColor: AppColor.neutral100, +// // style: Theme.of(context).textTheme.titleMedium, +// // textInputType: TextInputType.number, +// // onChange: (value) { +// // model.supplier?.telephones?[0].telephone = value; +// // }, +// // ), +// // 8.height, +// // Row( +// // mainAxisSize: MainAxisSize.min, +// // children: [ +// // ADatePicker( +// // label: context.translation.startTime, +// // hideShadow: true, +// // backgroundColor: AppColor.neutral100, +// // date: model.startDateTime, +// // 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, +// // ); +// // setState(() { +// // model.startDateTime = selectedDateTime; +// // }); +// // model.endDateTime = null; +// // _workingHoursController.clear(); +// // ServiceRequestUtils.calculateAndAssignWorkingHours( +// // startTime: model.startDateTime, +// // endTime: model.endDateTime, +// // workingHoursController: _workingHoursController, +// // updateModel: (hours) { +// // model.workingHours = hours; +// // }, +// // ); +// // } +// // }); +// // }, +// // ).expanded, +// // 8.width, +// // ADatePicker( +// // label: context.translation.endTime, +// // hideShadow: true, +// // backgroundColor: AppColor.neutral100, +// // date: model.endDateTime, +// // 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 (model.startDateTime != null && selectedDateTime.isBefore(model.startDateTime!)) { +// // "End Date time must be greater then start date".showToast; +// // return; +// // } +// // model.endDateTime = selectedDateTime; +// // setState(() {}); +// // ServiceRequestUtils.calculateAndAssignWorkingHours( +// // startTime: model.startDateTime, +// // endTime: model.endDateTime, +// // workingHoursController: _workingHoursController, +// // updateModel: (hours) { +// // model.workingHours = hours; +// // }, +// // ); +// // } +// // }); +// // }, +// // ).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: model.workingHours != null ? model.workingHours.toString() : '', +// // textAlign: TextAlign.center, +// // labelStyle: AppTextStyles.textFieldLabelStyle, +// // enable: false, +// // showShadow: false, +// // style: Theme.of(context).textTheme.titleMedium, +// // ), +// // 8.height, +// // ], +// // ), +// // ); +// // }, +// // ); +// // } +// // } +// +// import 'package:flutter/material.dart'; +// import 'package:provider/provider.dart'; +// import 'package:test_sa/controllers/providers/api/ppm_provider.dart'; +// import 'package:test_sa/controllers/providers/api/user_provider.dart'; +// import 'package:test_sa/extensions/context_extension.dart'; +// import 'package:test_sa/extensions/int_extensions.dart'; +// import 'package:test_sa/extensions/string_extensions.dart'; +// import 'package:test_sa/extensions/text_extensions.dart'; +// import 'package:test_sa/extensions/widget_extensions.dart'; +// import 'package:test_sa/models/new_models/assistant_employee.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/common_widgets/app_filled_button.dart'; +// import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart'; +// import 'package:test_sa/service_request_latest/service_request_detail_provider.dart'; +// import 'package:test_sa/service_request_latest/utilities/service_request_utils.dart'; +// import 'package:test_sa/views/widgets/date_and_time/date_picker.dart'; +// import 'package:test_sa/views/widgets/status/report/service_report_assistant_employee_menu.dart'; +// +// class AssistantEmployeeList extends StatefulWidget { +// final List? models; +// +// const AssistantEmployeeList({Key? key, this.models = const []}) : super(key: key); +// +// @override +// State createState() => _AssistantEmployeeListState(); +// } +// +// class _AssistantEmployeeListState extends State { +// bool isLoading = false; +// +// //TODO add loader when adding or deleting item.. +// +// void _addNewEntry() { +// setState(() { +// // isLoading = true; +// widget.models!.add(ActivityMaintenanceAssistantEmployees()); +// // Future.delayed(Duration(seconds: 1)).whenComplete(() { +// // setState(() { +// // isLoading = false; +// // }); +// // }); +// }); +// } +// +// void _removeEntry(int index) { +// setState(() { +// isLoading = true; +// widget.models!.removeAt(index); +// // isLoading = false; +// }); +// } +// +// @override +// Widget build(BuildContext context) { +// final ppmProvider = Provider.of(context, listen: false); +// return ListView.builder( +// itemCount: widget.models!.length + 1, +// padding: const EdgeInsets.all(16), +// itemBuilder: (context, index) { +// if (index == widget.models!.length) { +// return Visibility( +// visible: !ppmProvider.isReadOnly, +// child: AppFilledButton( +// label: "Add More Assistant Employees".addTranslation, +// maxWidth: true, +// textColor: AppColor.black10, +// buttonColor: context.isDark ? AppColor.neutral60 : AppColor.white10, +// icon: Icon(Icons.add_circle, color: AppColor.blueStatus(context)), +// showIcon: true, +// onPressed: _addNewEntry, +// ), +// ); +// } +// // return !isLoading +// // ? +// return AssistantEmployeeItem( +// model: widget.models![index], +// // index: index, +// // onRemove: () => _removeEntry(index), +// ); +// // : const ALoading(); +// }, +// ); +// } +// } +// class AssistantEmployeeItem extends StatefulWidget { +// final ActivityMaintenanceAssistantEmployees model; +// const AssistantEmployeeItem({required this.model,super.key}); +// +// @override +// State createState() => _AssistantEmployeeItemState(); +// } +// +// class _AssistantEmployeeItemState extends State { +// bool status = false; +// final TextEditingController _workingHoursController = TextEditingController(text: ''); +// bool isCurrentUserIsAssistantEmp = false; +// bool isExpanded = false; +// +// @override +// void initState() { +// // TODO: implement initState +// WidgetsBinding.instance.addPostFrameCallback((_) { +// getInitialData(); +// }); +// super.initState(); +// } +// +// Future getInitialData() async { +// final user = Provider.of(context, listen: false).user!; +// ServiceRequestDetailProvider requestDetailProvider = Provider.of(context, listen: false); +// if( requestDetailProvider.isReadOnlyRequest){ +// isExpanded = true; +// setState(() { +// }); +// } +// isCurrentUserIsAssistantEmp = (user.userID != requestDetailProvider.currentWorkOrder?.data?.assignedEmployee?.userId); +// +// // if (isCurrentUserIsAssistantEmp) { +// // // _subWorkOrders.assistantEmployees = [widget.workOrder.assistantEmployees?.first?.copyWith(id: 0)]; +// // } +// } +// +// @override +// void dispose() { +// // TODO: implement dispose +// _workingHoursController.dispose(); +// super.dispose(); +// } +// +// @override +// Widget build(BuildContext context) { +// return Consumer(builder: (context, requestDetailProvider, child) { +// return Column( +// children: [ +// SizedBox( +// height: 56.toScreenHeight, +// child: Row( +// mainAxisAlignment: MainAxisAlignment.spaceBetween, +// children: [ +// context.translation.assistantEmployee.bodyText(context).custom(color: AppColor.black20), +// Icon(isExpanded ? Icons.arrow_drop_up_outlined : Icons.arrow_drop_down), +// ], +// ), +// ).onPress(() { +// setState(() { +// isExpanded = !isExpanded; +// }); +// }), +// isExpanded +// ? Column( +// crossAxisAlignment: CrossAxisAlignment.stretch, +// children: [ +// ServiceReportAssistantEmployeeMenu( +// title: context.translation.select, +// backgroundColor: AppColor.neutral100, +// assetId: requestDetailProvider.currentWorkOrder!.data!.asset!.id!, +// initialValue: widget.model., +// onSelect: (employee) { +// if (employee == null) { +// requestDetailProvider.activityMaintenanceHelperModel?.assistantEmployees = []; +// } else { +// widget.model = [employee.copyWith(id: 0)]; +// // requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.user = AssignedEmployee(userId: employee.user?.id, userName: employee.user?.name); +// } +// }, +// ), +// 8.height, +// Row( +// mainAxisSize: MainAxisSize.min, +// children: [ +// ADatePicker( +// label: context.translation.startTime, +// hideShadow: true, +// backgroundColor: AppColor.neutral100, +// date: requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate, +// 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?.modelAssistantEmployees?.startDate = selectedDateTime; +// requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); +// ServiceRequestUtils.calculateAndAssignWorkingHours( +// startTime: requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate, +// endTime: requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate, +// workingHoursController: _workingHoursController, +// updateModel: (hours){ +// requestDetailProvider.activityMaintenanceHelperModel!.modelAssistantEmployees!.workingHours=hours; +// }); +// } +// }); +// }, +// ).expanded, +// 8.width, +// ADatePicker( +// label: context.translation.endTime, +// hideShadow: true, +// backgroundColor: AppColor.neutral100, +// date: requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate, +// 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?.modelAssistantEmployees?.startDate != null && +// selectedDateTime.isBefore(requestDetailProvider.activityMaintenanceHelperModel!.modelAssistantEmployees!.startDate!)) { +// "End Date time must be greater then start date".showToast; +// return; +// } +// requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate = selectedDateTime; +// requestDetailProvider.updateActivityMaintenanceHelperModel(requestDetailProvider.activityMaintenanceHelperModel); +// ServiceRequestUtils.calculateAndAssignWorkingHours( +// startTime: requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate, +// endTime: requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate, +// workingHoursController: _workingHoursController, +// updateModel: (hours){ +// requestDetailProvider.activityMaintenanceHelperModel!.modelAssistantEmployees!.workingHours=hours; +// }); +// } +// }); +// }, +// ).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?.modelAssistantEmployees?.workingHours != null +// ? requestDetailProvider.activityMaintenanceHelperModel!.modelAssistantEmployees!.workingHours.toString() +// : '', +// textAlign: TextAlign.center, +// labelStyle: AppTextStyles.textFieldLabelStyle, +// enable: false, +// showShadow: false, +// style: Theme.of(context).textTheme.titleMedium, +// ), +// 8.height, +// AppTextFormField( +// initialValue: requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.technicalComment, +// labelText: context.translation.technicalComment, +// backgroundColor: AppColor.neutral100, +// showShadow: false, +// labelStyle: AppTextStyles.textFieldLabelStyle, +// alignLabelWithHint: true, +// textInputType: TextInputType.multiline, +// onChange: (value) { +// requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.technicalComment = value; +// }, +// onSaved: (value) { +// requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.technicalComment = value; +// }, +// ), +// 8.height, +// ], +// ) +// : const SizedBox(), +// ], +// ); +// }); +// } +// +// // //TODO move this to some common place....@waseem +// // double calculateWorkingHours(DateTime? startTime, DateTime? endTime) { +// // if (startTime != null && endTime != null) { +// // Duration difference = endTime.difference(startTime); +// // int hours = difference.inHours; +// // int minutes = difference.inMinutes % 60; +// // return hours.toDouble(); +// // } else { +// // return -1; +// // } +// // } +// // +// // assignWorkingHours({required RequestDetailProvider requestDetailProvider}) { +// // double hours = calculateWorkingHours( +// // requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.startDate, requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.endDate); +// // if (hours != -1) { +// // _workingHoursController.text = hours.toString(); +// // requestDetailProvider.activityMaintenanceHelperModel?.modelAssistantEmployees?.workingHours = hours; +// // } +// // } +// } +// diff --git a/lib/views/widgets/equipment/commissioning_status_buttons.dart b/lib/views/widgets/equipment/commissioning_status_buttons.dart index 67931dc8..ba6e59fe 100644 --- a/lib/views/widgets/equipment/commissioning_status_buttons.dart +++ b/lib/views/widgets/equipment/commissioning_status_buttons.dart @@ -54,7 +54,7 @@ class _CommissioningStatusButtonsState extends State return Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - context.translation.equipmentStatus.heading5(context).paddingOnly(start: 16, end: 16), + context.translation.assetStatus.heading5(context).paddingOnly(start: 16, end: 16), 8.height, Consumer( builder: (context, snapshot, _) {