|
|
|
|
@ -7,6 +7,7 @@ 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/plan_preventive_visit/plan_preventive_visit_model.dart';
|
|
|
|
|
import 'package:test_sa/models/service_request/supp_engineer_work_orders.dart';
|
|
|
|
|
import 'package:test_sa/models/service_request/supplier_details.dart';
|
|
|
|
|
import 'package:test_sa/modules/cm_module/utilities/service_request_utils.dart';
|
|
|
|
|
import 'package:test_sa/new_views/app_style/app_color.dart';
|
|
|
|
|
@ -15,6 +16,7 @@ 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/work_order/vendor_provider.dart';
|
|
|
|
|
import 'package:test_sa/views/pages/user/requests/add_supplier_engineer_bottom_sheet.dart';
|
|
|
|
|
import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
|
|
|
|
|
|
|
|
|
|
class PpmExternalDetailsForm extends StatefulWidget {
|
|
|
|
|
@ -160,20 +162,49 @@ class _ExternalDetailItemState extends State<ExternalDetailItem> {
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
SingleItemDropDownMenu<SuppPersons, NullableLoadingProvider>(
|
|
|
|
|
context: context,
|
|
|
|
|
title: context.translation.supplierEngineer,
|
|
|
|
|
enabled: widget.model.supplier != null,
|
|
|
|
|
backgroundColor: AppColor.neutral100,
|
|
|
|
|
initialValue: widget.model.suppPerson,
|
|
|
|
|
staticData: widget.model.supplier?.suppPersons,
|
|
|
|
|
showAsBottomSheet: true,
|
|
|
|
|
showShadow: false,
|
|
|
|
|
onSelect: (suppPerson) {
|
|
|
|
|
if (suppPerson != null) {
|
|
|
|
|
widget.model.suppPerson = suppPerson;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
SingleItemDropDownMenu<SuppPersons, NullableLoadingProvider>(
|
|
|
|
|
context: context,
|
|
|
|
|
title: context.translation.supplierEngineer,
|
|
|
|
|
enabled: widget.model.supplier != null,
|
|
|
|
|
backgroundColor: AppColor.neutral100,
|
|
|
|
|
initialValue: widget.model.suppPerson,
|
|
|
|
|
staticData: widget.model.supplier?.suppPersons,
|
|
|
|
|
showAsBottomSheet: true,
|
|
|
|
|
showShadow: false,
|
|
|
|
|
onSelect: (suppPerson) {
|
|
|
|
|
if (suppPerson != null) {
|
|
|
|
|
widget.model.suppPerson = suppPerson;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
).expanded,
|
|
|
|
|
8.width,
|
|
|
|
|
Container(
|
|
|
|
|
height: 56.toScreenHeight,
|
|
|
|
|
width: 60.toScreenWidth,
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
color: 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(() async {
|
|
|
|
|
SuppEngineerWorkOrders? suppEngineer = (await showModalBottomSheet(
|
|
|
|
|
context: context,
|
|
|
|
|
useSafeArea: true,
|
|
|
|
|
isScrollControlled: true,
|
|
|
|
|
backgroundColor: Colors.transparent,
|
|
|
|
|
builder: (context) => AddSupplierEngineerBottomSheet(widget.model.supplier!.id!.toInt()),
|
|
|
|
|
)) as SuppEngineerWorkOrders?;
|
|
|
|
|
if (suppEngineer == null) return;
|
|
|
|
|
widget.model.supplier?.suppPersons ??= [];
|
|
|
|
|
widget.model.supplier?.suppPersons!.add(SuppPersons.fromJson(suppEngineer.toJson()));
|
|
|
|
|
// requestDetailProvider.activityMaintenanceHelperModel?.supplier?.suppPersons?.add(SuppPersons.fromJson(suppEngineer.toJson()));
|
|
|
|
|
widget.model.suppPerson = SuppPersons.fromJson(suppEngineer.toJson());
|
|
|
|
|
setState(() {});
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
8.height,
|
|
|
|
|
Row(
|
|
|
|
|
@ -193,7 +224,8 @@ class _ExternalDetailItemState extends State<ExternalDetailItem> {
|
|
|
|
|
).then((selectedTime) {
|
|
|
|
|
if (selectedTime != null) {
|
|
|
|
|
DateTime selectedDateTime = DateTime(selectedDate.year, selectedDate.month, selectedDate.day, selectedTime.hour, selectedTime.minute);
|
|
|
|
|
if (DateTime.tryParse(_ppmProvider?.planPreventiveVisit?.createdDate ?? '') != null && selectedDateTime.isBefore(DateTime.tryParse(_ppmProvider?.planPreventiveVisit?.createdDate ?? '')!)) {
|
|
|
|
|
if (DateTime.tryParse(_ppmProvider?.planPreventiveVisit?.createdDate ?? '') != null &&
|
|
|
|
|
selectedDateTime.isBefore(DateTime.tryParse(_ppmProvider?.planPreventiveVisit?.createdDate ?? '')!)) {
|
|
|
|
|
"Start time is before the request time.".showToast;
|
|
|
|
|
selectedTime = null;
|
|
|
|
|
return;
|
|
|
|
|
|