From ae71e5a53ded3501cdbe4b46cc02617adc4e82a3 Mon Sep 17 00:00:00 2001 From: nextwo <1234> Date: Wed, 15 Nov 2023 13:45:42 +0300 Subject: [PATCH] Add timer in gas refill update & also nurse & engineer signatures should be added. --- .../providers/api/gas_refill_provider.dart | 12 +++---- .../user/gas_refill/request_gas_refill.dart | 36 +++++++++++++++++-- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/lib/controllers/providers/api/gas_refill_provider.dart b/lib/controllers/providers/api/gas_refill_provider.dart index 3f2118a3..968293cf 100644 --- a/lib/controllers/providers/api/gas_refill_provider.dart +++ b/lib/controllers/providers/api/gas_refill_provider.dart @@ -149,12 +149,12 @@ class GasRefillProvider extends ChangeNotifier { "status": newModel.status.toJson(), //"expectedDate": newModel.expectedDate?.toIso8601String(), "expectedTime": newModel.expectedDate, - if (timer?.startAt != null) "startDate": timer.startAt.toIso8601String(), - if (timer?.startAt != null) "startTime": timer.startAt.toIso8601String(), - if (timer?.endAt != null) "endDate": timer.endAt.toIso8601String(), - if (timer?.endAt != null) "endTime": timer.endAt.toIso8601String(), + if (newModel.timer?.startAt != null) "startDate": newModel.timer.startAt.toIso8601String(), + if (newModel.timer?.startAt != null) "startTime": newModel.timer.startAt.toIso8601String(), + if (newModel.timer?.endAt != null) "endDate": newModel.timer.endAt.toIso8601String(), + if (newModel.timer?.endAt != null) "endTime": newModel.timer.endAt.toIso8601String(), // "workingHours": ((endDate?.difference(startDate)?.inMinutes ?? 0) / 60), - 'workingHours': timer.durationInSecond != null ? timer.durationInSecond / 60 / 60 : newModel.workingHours, + 'workingHours': newModel.timer.durationInSecond != null ? newModel.timer.durationInSecond / 60 / 60 : newModel.workingHours, "assignedEmployee": oldModel?.assignedEmployee?.id == null ? null : oldModel?.assignedEmployee?.toJson(), "site": hospital?.toMap(), "building": building?.toJson(includeFloors: false), @@ -198,5 +198,5 @@ class GasRefillProvider extends ChangeNotifier { Floors floor; Departments department; DateTime expectedDateTime; - TimerModel timer; + //TimerModel timer; } 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 587aab03..94d64b01 100644 --- a/lib/views/pages/user/gas_refill/request_gas_refill.dart +++ b/lib/views/pages/user/gas_refill/request_gas_refill.dart @@ -1,4 +1,7 @@ +import 'dart:convert'; + import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/controllers/api_routes/http_status_manger.dart'; @@ -21,6 +24,7 @@ import '../../../../new_views/common_widgets/app_text_form_field.dart'; import '../../../../new_views/common_widgets/default_app_bar.dart'; import '../../../../new_views/common_widgets/single_item_drop_down_menu.dart'; import '../../../../providers/gas_request_providers/gas_status_provider.dart'; +import '../../../widgets/e_signature/e_signature.dart'; import '../../../widgets/timer/app_timer.dart'; class RequestGasRefill extends StatefulWidget { @@ -36,6 +40,9 @@ class RequestGasRefill extends StatefulWidget { class _RequestGasRefillState extends State { bool _isLoading = false; bool _validate = false; + Uint8List _engineerSignature; + Uint8List _nurseSignature; + UserProvider _userProvider; SettingProvider _settingProvider; @@ -78,6 +85,7 @@ class _RequestGasRefillState extends State { } setState(() {}); + _formKey.currentState.save(); int status = widget.gasRefillModel == null ? null /*await _gasRefillProvider.createModel( @@ -150,10 +158,10 @@ class _RequestGasRefillState extends State { if (widget.gasRefillModel != null) { //_formModel.status = widget.gasRefillModel?.status ?? Lookup(value: 0); _gasRefillProvider.expectedDateTime = DateTime.tryParse(_formModel.expectedDate ?? ""); - _gasRefillProvider.timer = TimerModel(startAt: DateTime.tryParse(widget.gasRefillModel?.startDate ?? ""), endAt: DateTime.tryParse(widget.gasRefillModel?.endDate ?? "")); + _formModel.timer = TimerModel(startAt: DateTime.tryParse(widget.gasRefillModel?.startDate ?? ""), endAt: DateTime.tryParse(widget.gasRefillModel?.endDate ?? "")); _clientName = _formModel.site.custName; } else { - _gasRefillProvider.timer = null; + _formModel.timer = null; _clientName = _userProvider.user?.clientName; } @@ -236,6 +244,30 @@ class _RequestGasRefillState extends State { controller: _commentController, onSaved: (value) {}, ), + 8.height, + ESignature( + title: "Engineer Signature", + oldSignature: widget.gasRefillModel.engSignature, + newSignature: _engineerSignature, + onSaved: (signature) { + _engineerSignature = signature; + if (signature == null || signature.isEmpty) return; + _formModel.engSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"; + base64Encode(signature); + }, + ), + 8.height, + ESignature( + title: "Nurse Signature", + oldSignature: widget.gasRefillModel.nurseSignature, + newSignature: _nurseSignature, + onSaved: (signature) { + _nurseSignature = signature; + if (signature == null || signature.isEmpty) return; + _formModel.nurseSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}"; + base64Encode(signature); + }, + ), ], ).toShadowContainer(context).paddingAll(16), ).expanded,