diff --git a/lib/l10n/app_ar.arb b/lib/l10n/app_ar.arb index 9fabaed..de1578a 100644 --- a/lib/l10n/app_ar.arb +++ b/lib/l10n/app_ar.arb @@ -289,6 +289,7 @@ "searchByDesc" : "إبحث بأي من المعايير التالية", "location" : "الموقع", "supplier" : "المزود", + "supplierEngineer" : "Supplier Engineer", "md": "تعريف النموذج", "snNumber" : "الرقم التسلسلي", "snNo" : "الرقم التسلسلي", diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 6a226a1..4679fa8 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -294,6 +294,7 @@ "searchByDesc" : "Search by any of the following criteria", "location" : "Location", "supplier" : "Supplier", + "supplierEngineer" : "Supplier Engineer", "md": "MD", "snNumber" : "SN Number", "snNo" : "SN No.", diff --git a/lib/views/pages/sub_workorder/create_sub_workorder_page.dart b/lib/views/pages/sub_workorder/create_sub_workorder_page.dart index 62e6c11..5fd63c5 100644 --- a/lib/views/pages/sub_workorder/create_sub_workorder_page.dart +++ b/lib/views/pages/sub_workorder/create_sub_workorder_page.dart @@ -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/loan_availability_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/images/multi_image_picker.dart'; import 'package:test_sa/views/widgets/loaders/app_loading.dart'; @@ -216,6 +217,15 @@ class _CreateSubWorkOrderPageState extends State { enabled: _subWorkOrders?.timer?.endAt == null, onChange: (timer) async { _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; }, ), @@ -257,7 +267,10 @@ class _CreateSubWorkOrderPageState extends State { title: context.translation.equipmentStatus, initialValue: _subWorkOrders.equipmentStatus, onSelect: (value) { - _subWorkOrders.equipmentStatus = value; + if(value!=null) { + _subWorkOrders.equipmentStatus = value; + } + }, ), 8.height, @@ -295,7 +308,7 @@ class _CreateSubWorkOrderPageState extends State { if (_showVendorFields) SingleItemDropDownMenu( context: context, - title: context.translation.vendorEng, + title: context.translation.supplier, initialValue: _subWorkOrders.supplier ?? initialSupplier, onSelect: (supplier) { if (supplier != null) { @@ -309,7 +322,7 @@ class _CreateSubWorkOrderPageState extends State { if (_showVendorFields) SingleItemDropDownMenu( context: context, - title: context.translation.vendorName, + title: context.translation.supplierEngineer, enabled: _subWorkOrders?.supplier?.suppPersons?.isNotEmpty ?? false, staticData: _subWorkOrders?.supplier?.suppPersons, onSelect: (suppPerson) { @@ -328,16 +341,16 @@ class _CreateSubWorkOrderPageState extends State { 8.height, ServiceReportFaultDescription( requestId: widget.workOrder?.callRequest?.id?.toString(), - initialValue: _serviceReport.faultDescription, + initialValue: _subWorkOrders.faultDescription, onSelect: (status) { - _serviceReport.faultDescription = status; - _workPreformedController?.text = _serviceReport.faultDescription?.workPerformed; + _subWorkOrders.faultDescription = status; + _workPreformedController?.text = _subWorkOrders.faultDescription?.workPerformed; }, ), 8.height, AppTextFormField( labelText: context.translation.solution, - initialValue: _serviceReport?.faultDescription?.workPerformed, + initialValue: _subWorkOrders?.faultDescription?.workPerformed, textAlign: TextAlign.center, enable: false, controller: _workPreformedController, @@ -405,9 +418,9 @@ class _CreateSubWorkOrderPageState extends State { PartNoButton( controller: _partQtyController, spareParts: _spareParts, - initialList: _serviceReport.sparePartsWorkOrders, + initialList: _subWorkOrders.sparePartsWorkOrders, onChange: (parts) { - _serviceReport.sparePartsWorkOrders = parts; + _subWorkOrders.sparePartsWorkOrders = parts; }, ), 8.height, @@ -415,31 +428,72 @@ class _CreateSubWorkOrderPageState extends State { 8.height, AppTextFormField( labelText: context.translation.travelingExpense, - initialValue: _serviceReport?.travelingExpenses?.toString(), + initialValue: _subWorkOrders?.travelingExpenses?.toString(), textInputType: TextInputType.number, onSaved: (value) { - _serviceReport.travelingExpenses = int.tryParse(value) ?? 0; + _subWorkOrders.travelingExpenses = int.tryParse(value) ?? 0; }, ), 8.height, AppTextFormField( labelText: context.translation.travelingHours, - initialValue: _serviceReport?.travelingHours?.toString(), + initialValue: _subWorkOrders?.travelingHours?.toString(), textInputType: TextInputType.number, onSaved: (value) { - _serviceReport.travelingHours = int.tryParse(value) ?? 0; + _subWorkOrders.travelingHours = int.tryParse(value) ?? 0; }, ), 8.height, AppTextFormField( - initialValue: _serviceReport?.comment, + initialValue: _subWorkOrders?.comment, labelText: context.translation.technicalComment, alignLabelWithHint: true, textInputType: TextInputType.multiline, 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 { Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.callLastSituation}"); return false; } 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; } 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; } else if (_subWorkOrders.calllastSituation.value == 12 && (_subWorkOrders.sparePartsWorkOrders == null || _subWorkOrders.sparePartsWorkOrders.isEmpty)) { Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.partNo}"); diff --git a/lib/views/pages/user/gas_refill/request_gas_refill.dart b/lib/views/pages/user/gas_refill/request_gas_refill.dart index b50ced3..1c1bba8 100644 --- a/lib/views/pages/user/gas_refill/request_gas_refill.dart +++ b/lib/views/pages/user/gas_refill/request_gas_refill.dart @@ -274,7 +274,7 @@ class _RequestGasRefillState extends State { _engineerSignature = signature; if (signature == null || signature.isEmpty) return; _formModel.engSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"; - base64Encode(signature); + //base64Encode(signature); }, ), 8.height, @@ -286,7 +286,7 @@ class _RequestGasRefillState extends State { _nurseSignature = signature; if (signature == null || signature.isEmpty) return; _formModel.nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"; - base64Encode(signature); + //base64Encode(signature); }, ), ], diff --git a/lib/views/pages/user/requests/work_order/create_service_report.dart b/lib/views/pages/user/requests/work_order/create_service_report.dart index b9dc379..480da01 100644 --- a/lib/views/pages/user/requests/work_order/create_service_report.dart +++ b/lib/views/pages/user/requests/work_order/create_service_report.dart @@ -246,7 +246,6 @@ class _CreateServiceReportState extends State with TickerPr title: context.translation.serviceType, initialValue: _serviceReport.serviceType, onSelect: (value) { - print("ServiceTypeProvider:${value.toJson()}"); _serviceReport.serviceType = value; }, ), @@ -376,6 +375,7 @@ class _CreateServiceReportState extends State with TickerPr // setState(() {}); // return; // } + if (signature == null || signature.isEmpty) return; _serviceReport.localEngSignature = signature; _serviceReport.engSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null; }, @@ -390,6 +390,7 @@ class _CreateServiceReportState extends State with TickerPr // setState(() {}); // return; // } + if (signature == null || signature.isEmpty) return; _serviceReport.localNurseSignature = signature; _serviceReport.nurseSignature = signature != null ? "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}" : null; },