create sub workorder multiple fix

main_design2.0
Sikander Saleem 8 months ago
parent 3b812a6952
commit 1e514493de

@ -289,6 +289,7 @@
"searchByDesc" : "إبحث بأي من المعايير التالية", "searchByDesc" : "إبحث بأي من المعايير التالية",
"location" : "الموقع", "location" : "الموقع",
"supplier" : "المزود", "supplier" : "المزود",
"supplierEngineer" : "Supplier Engineer",
"md": "تعريف النموذج", "md": "تعريف النموذج",
"snNumber" : "الرقم التسلسلي", "snNumber" : "الرقم التسلسلي",
"snNo" : "الرقم التسلسلي", "snNo" : "الرقم التسلسلي",

@ -294,6 +294,7 @@
"searchByDesc" : "Search by any of the following criteria", "searchByDesc" : "Search by any of the following criteria",
"location" : "Location", "location" : "Location",
"supplier" : "Supplier", "supplier" : "Supplier",
"supplierEngineer" : "Supplier Engineer",
"md": "MD", "md": "MD",
"snNumber" : "SN Number", "snNumber" : "SN Number",
"snNo" : "SN No.", "snNo" : "SN No.",

@ -23,6 +23,7 @@ import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
import 'package:test_sa/providers/service_request_providers/equipment_status_provider.dart'; import 'package:test_sa/providers/service_request_providers/equipment_status_provider.dart';
import 'package:test_sa/providers/service_request_providers/loan_availability_provider.dart'; import 'package:test_sa/providers/service_request_providers/loan_availability_provider.dart';
import 'package:test_sa/providers/work_order/vendor_provider.dart'; import 'package:test_sa/providers/work_order/vendor_provider.dart';
import 'package:test_sa/views/widgets/e_signature/e_signature.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/images/multi_image_picker.dart'; import 'package:test_sa/views/widgets/images/multi_image_picker.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart'; import 'package:test_sa/views/widgets/loaders/app_loading.dart';
@ -216,6 +217,15 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
enabled: _subWorkOrders?.timer?.endAt == null, enabled: _subWorkOrders?.timer?.endAt == null,
onChange: (timer) async { onChange: (timer) async {
_subWorkOrders.timer = timer; _subWorkOrders.timer = timer;
if (timer?.startAt != null && timer?.endAt != null) {
if (timer?.durationInSecond != 0) {
_subWorkOrders.workingHours = num.tryParse((((timer?.durationInSecond ?? 0) / 60) / 60)?.toStringAsFixed(2) ?? "0");
} else {
timer.durationInSecond = (timer.endAt.difference(timer.startAt))?.inSeconds;
String workingHours = (((timer.durationInSecond ?? 0) / 60) / 60).toStringAsFixed(2);
_subWorkOrders.workingHours = num.tryParse(workingHours ?? "0");
}
}
return true; return true;
}, },
), ),
@ -257,7 +267,10 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
title: context.translation.equipmentStatus, title: context.translation.equipmentStatus,
initialValue: _subWorkOrders.equipmentStatus, initialValue: _subWorkOrders.equipmentStatus,
onSelect: (value) { onSelect: (value) {
_subWorkOrders.equipmentStatus = value; if(value!=null) {
_subWorkOrders.equipmentStatus = value;
}
}, },
), ),
8.height, 8.height,
@ -295,7 +308,7 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
if (_showVendorFields) if (_showVendorFields)
SingleItemDropDownMenu<SupplierDetails, VendorProvider>( SingleItemDropDownMenu<SupplierDetails, VendorProvider>(
context: context, context: context,
title: context.translation.vendorEng, title: context.translation.supplier,
initialValue: _subWorkOrders.supplier ?? initialSupplier, initialValue: _subWorkOrders.supplier ?? initialSupplier,
onSelect: (supplier) { onSelect: (supplier) {
if (supplier != null) { if (supplier != null) {
@ -309,7 +322,7 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
if (_showVendorFields) if (_showVendorFields)
SingleItemDropDownMenu<SuppPersons, NullableLoadingProvider>( SingleItemDropDownMenu<SuppPersons, NullableLoadingProvider>(
context: context, context: context,
title: context.translation.vendorName, title: context.translation.supplierEngineer,
enabled: _subWorkOrders?.supplier?.suppPersons?.isNotEmpty ?? false, enabled: _subWorkOrders?.supplier?.suppPersons?.isNotEmpty ?? false,
staticData: _subWorkOrders?.supplier?.suppPersons, staticData: _subWorkOrders?.supplier?.suppPersons,
onSelect: (suppPerson) { onSelect: (suppPerson) {
@ -328,16 +341,16 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
8.height, 8.height,
ServiceReportFaultDescription( ServiceReportFaultDescription(
requestId: widget.workOrder?.callRequest?.id?.toString(), requestId: widget.workOrder?.callRequest?.id?.toString(),
initialValue: _serviceReport.faultDescription, initialValue: _subWorkOrders.faultDescription,
onSelect: (status) { onSelect: (status) {
_serviceReport.faultDescription = status; _subWorkOrders.faultDescription = status;
_workPreformedController?.text = _serviceReport.faultDescription?.workPerformed; _workPreformedController?.text = _subWorkOrders.faultDescription?.workPerformed;
}, },
), ),
8.height, 8.height,
AppTextFormField( AppTextFormField(
labelText: context.translation.solution, labelText: context.translation.solution,
initialValue: _serviceReport?.faultDescription?.workPerformed, initialValue: _subWorkOrders?.faultDescription?.workPerformed,
textAlign: TextAlign.center, textAlign: TextAlign.center,
enable: false, enable: false,
controller: _workPreformedController, controller: _workPreformedController,
@ -405,9 +418,9 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
PartNoButton( PartNoButton(
controller: _partQtyController, controller: _partQtyController,
spareParts: _spareParts, spareParts: _spareParts,
initialList: _serviceReport.sparePartsWorkOrders, initialList: _subWorkOrders.sparePartsWorkOrders,
onChange: (parts) { onChange: (parts) {
_serviceReport.sparePartsWorkOrders = parts; _subWorkOrders.sparePartsWorkOrders = parts;
}, },
), ),
8.height, 8.height,
@ -415,31 +428,72 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
8.height, 8.height,
AppTextFormField( AppTextFormField(
labelText: context.translation.travelingExpense, labelText: context.translation.travelingExpense,
initialValue: _serviceReport?.travelingExpenses?.toString(), initialValue: _subWorkOrders?.travelingExpenses?.toString(),
textInputType: TextInputType.number, textInputType: TextInputType.number,
onSaved: (value) { onSaved: (value) {
_serviceReport.travelingExpenses = int.tryParse(value) ?? 0; _subWorkOrders.travelingExpenses = int.tryParse(value) ?? 0;
}, },
), ),
8.height, 8.height,
AppTextFormField( AppTextFormField(
labelText: context.translation.travelingHours, labelText: context.translation.travelingHours,
initialValue: _serviceReport?.travelingHours?.toString(), initialValue: _subWorkOrders?.travelingHours?.toString(),
textInputType: TextInputType.number, textInputType: TextInputType.number,
onSaved: (value) { onSaved: (value) {
_serviceReport.travelingHours = int.tryParse(value) ?? 0; _subWorkOrders.travelingHours = int.tryParse(value) ?? 0;
}, },
), ),
8.height, 8.height,
AppTextFormField( AppTextFormField(
initialValue: _serviceReport?.comment, initialValue: _subWorkOrders?.comment,
labelText: context.translation.technicalComment, labelText: context.translation.technicalComment,
alignLabelWithHint: true, alignLabelWithHint: true,
textInputType: TextInputType.multiline, textInputType: TextInputType.multiline,
onSaved: (value) { onSaved: (value) {
_serviceReport.comment = value; _subWorkOrders.comment = value;
},
),
8.height,
ESignature(
title: context.translation.engSign,
oldSignature: _subWorkOrders.engSignature,
newSignature: _subWorkOrders.localEngSignature,
// onChange: (signature) {
// // if (signature == null || signature.isEmpty) {
// // setState(() {});
// // return;
// // }
// if (signature == null || signature.isEmpty) return;
// _subWorkOrders.localEngSignature = signature;
// _subWorkOrders.engSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null;
// print("_serviceReport.engSignature:${_serviceReport.engSignature}");
// },
onSaved: (signature) {
if (signature == null || signature.isEmpty) {
setState(() {});
return;
}
if (signature == null || signature.isEmpty) return;
_subWorkOrders.localEngSignature = signature;
_subWorkOrders.engSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null;
},
),
8.height,
ESignature(
title: context.translation.nurseSignature,
oldSignature: _subWorkOrders.nurseSignature,
newSignature: _subWorkOrders.localNurseSignature,
onSaved: (signature) {
// if (signature == null || signature.isEmpty) {
// setState(() {});
// return;
// }
if (signature == null || signature.isEmpty) return;
_subWorkOrders.localNurseSignature = signature;
_subWorkOrders.nurseSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null;
}, },
), ),
16.height,
], ],
), ),
), ),
@ -503,10 +557,10 @@ class _CreateSubWorkOrderPageState extends State<CreateSubWorkOrderPage> {
Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.callLastSituation}"); Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.callLastSituation}");
return false; return false;
} else if (_showVendorFields && _subWorkOrders.suppEngineerWorkOrders == null) { } else if (_showVendorFields && _subWorkOrders.suppEngineerWorkOrders == null) {
Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.vendorEng}"); Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.supplierEngineer}");
return false; return false;
} else if (_showVendorFields && (_subWorkOrders.supplier.suppliername == null || _subWorkOrders.supplier.suppliername.isEmpty)) { } else if (_showVendorFields && (_subWorkOrders.supplier.suppliername == null || _subWorkOrders.supplier.suppliername.isEmpty)) {
Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.vendorName}"); Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.supplier}");
return false; return false;
} else if (_subWorkOrders.calllastSituation.value == 12 && (_subWorkOrders.sparePartsWorkOrders == null || _subWorkOrders.sparePartsWorkOrders.isEmpty)) { } else if (_subWorkOrders.calllastSituation.value == 12 && (_subWorkOrders.sparePartsWorkOrders == null || _subWorkOrders.sparePartsWorkOrders.isEmpty)) {
Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.partNo}"); Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.partNo}");

@ -274,7 +274,7 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
_engineerSignature = signature; _engineerSignature = signature;
if (signature == null || signature.isEmpty) return; if (signature == null || signature.isEmpty) return;
_formModel.engSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"; _formModel.engSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
base64Encode(signature); //base64Encode(signature);
}, },
), ),
8.height, 8.height,
@ -286,7 +286,7 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
_nurseSignature = signature; _nurseSignature = signature;
if (signature == null || signature.isEmpty) return; if (signature == null || signature.isEmpty) return;
_formModel.nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"; _formModel.nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
base64Encode(signature); //base64Encode(signature);
}, },
), ),
], ],

@ -246,7 +246,6 @@ class _CreateServiceReportState extends State<CreateServiceReport> with TickerPr
title: context.translation.serviceType, title: context.translation.serviceType,
initialValue: _serviceReport.serviceType, initialValue: _serviceReport.serviceType,
onSelect: (value) { onSelect: (value) {
print("ServiceTypeProvider:${value.toJson()}");
_serviceReport.serviceType = value; _serviceReport.serviceType = value;
}, },
), ),
@ -376,6 +375,7 @@ class _CreateServiceReportState extends State<CreateServiceReport> with TickerPr
// setState(() {}); // setState(() {});
// return; // return;
// } // }
if (signature == null || signature.isEmpty) return;
_serviceReport.localEngSignature = signature; _serviceReport.localEngSignature = signature;
_serviceReport.engSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null; _serviceReport.engSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null;
}, },
@ -390,6 +390,7 @@ class _CreateServiceReportState extends State<CreateServiceReport> with TickerPr
// setState(() {}); // setState(() {});
// return; // return;
// } // }
if (signature == null || signature.isEmpty) return;
_serviceReport.localNurseSignature = signature; _serviceReport.localNurseSignature = signature;
_serviceReport.nurseSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null; _serviceReport.nurseSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null;
}, },

Loading…
Cancel
Save