diff --git a/lib/controllers/providers/api/device_transfer_provider.dart b/lib/controllers/providers/api/device_transfer_provider.dart index ace715d4..f9ed081d 100644 --- a/lib/controllers/providers/api/device_transfer_provider.dart +++ b/lib/controllers/providers/api/device_transfer_provider.dart @@ -48,6 +48,8 @@ class DeviceTransferProvider extends ChangeNotifier { Floors floor; Departments department; String room; + DateTime startDate; + DateTime endDate; /// return -2 if request in progress /// return -1 if error happen when sending request @@ -207,8 +209,6 @@ class DeviceTransferProvider extends ChangeNotifier { }); } - print(body["senderWorkingHours"]); - body.addAll(newModel.toJson(isSender)); print(body); Response response; @@ -237,4 +237,5 @@ class DeviceTransferProvider extends ChangeNotifier { return -1; } } + } diff --git a/lib/views/pages/device_transfer/update_device_transfer.dart b/lib/views/pages/device_transfer/update_device_transfer.dart index ce0f827c..eaaafded 100644 --- a/lib/views/pages/device_transfer/update_device_transfer.dart +++ b/lib/views/pages/device_transfer/update_device_transfer.dart @@ -19,6 +19,8 @@ import 'package:test_sa/views/widgets/status/gas_refill/gas_status.dart'; import 'package:test_sa/views/widgets/titles/app_sub_title.dart'; import '../../../../controllers/localization/localization.dart'; +import '../../../controllers/validator/validator.dart'; +import '../../widgets/date_and_time/time_picker.dart'; class UpdateDeviceTransfer extends StatefulWidget { final DeviceTransfer model; @@ -66,10 +68,10 @@ class _UpdateDeviceTransferState extends State { } } - @override - void setState(VoidCallback fn) { - if (!mounted) super.setState(() {}); - } + // @override + // void setState(VoidCallback fn) { + // if (!mounted) super.setState(() {}); + // } @override void initState() { @@ -147,21 +149,82 @@ class _UpdateDeviceTransferState extends State { }, ), const SizedBox( - height: 8, + height: 16, ), - ASubTitle(_subtitle.workingHours), - const SizedBox( - height: 4, + Row( + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const ASubTitle("Start of Work"), + SizedBox( + height: 8 * AppStyle.getScaleFactor(context), + ), + ADateTimePicker( + date: _deviceTransferProvider.startDate, + from: DateTime.now().subtract(const Duration(days: 365)), + to: DateTime.now().add(const Duration(days: 365)), + onDateTimePicker: (date) { + _deviceTransferProvider.startDate = date; + _formModel.workingHours=((_deviceTransferProvider.endDate?.difference(_deviceTransferProvider.startDate)?.inMinutes ?? 0) / 60)?.toStringAsFixed(2)?.toString() ?? 0; + setState(() {}); + }, + ), + ], + ), + ), + const SizedBox(width: 8), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + const ASubTitle("End of Work"), + SizedBox( + height: 8 * AppStyle.getScaleFactor(context), + ), + ADateTimePicker( + date: _deviceTransferProvider.endDate, + from: DateTime.now().subtract(const Duration(days: 365)), + to: DateTime.now().add(const Duration(days: 365)), + onDateTimePicker: (date) { + _deviceTransferProvider.endDate = date; + _formModel.workingHours=((_deviceTransferProvider.endDate?.difference(_deviceTransferProvider.startDate)?.inMinutes ?? 0) / 60)?.toStringAsFixed(2)?.toString() ?? 0; + setState(() {}); + }, + ), + ], + ), + ), + ], ), ATextFormField( - initialValue: _formModel?.workingHours, + initialValue: null, textAlign: TextAlign.center, + hintText: _deviceTransferProvider.startDate == null + ? "0" + : ((_deviceTransferProvider.endDate?.difference(_deviceTransferProvider.startDate)?.inMinutes ?? 0) / 60)?.toStringAsFixed(2)?.toString() ?? "0", + enable: false, style: Theme.of(context).textTheme.subtitle1, + //validator: (value) => Validator.isNumeric(value) ? null : _subtitle.requiredWord, textInputType: TextInputType.number, onSaved: (value) { - _formModel.workingHours = value; + // _serviceReport.workHours = value; }, ), + // ASubTitle(_subtitle.workingHours), + // const SizedBox( + // height: 4, + // ), + // ATextFormField( + // initialValue: _formModel?.workingHours, + // textAlign: TextAlign.center, + // style: Theme.of(context).textTheme.subtitle1, + // textInputType: TextInputType.number, + // onSaved: (value) { + // _formModel.workingHours = value; + // }, + // ), // const SizedBox(height: 8,), // const ASubTitle("Sender Department"), // if(_validate && _formModel.senderDepartment == null)