| 48197743e3d78b3769f70bac9a76e7e0 | |||||
| 440505e9ea1eee7043d2cbfeb318f6bc |
| import 'package:farm_tpf/data/api/app_exception.dart'; | import 'package:farm_tpf/data/api/app_exception.dart'; | ||||
| import 'package:farm_tpf/data/repository/repository.dart'; | import 'package:farm_tpf/data/repository/repository.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_field_time_picker.dart'; | |||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | ||||
| TextEditingController _descriptionController = TextEditingController(); | TextEditingController _descriptionController = TextEditingController(); | ||||
| final _executeByController = TextEditingController(); | final _executeByController = TextEditingController(); | ||||
| String executeTimeView; | |||||
| DateTime executeTime = DateTime.now(); | DateTime executeTime = DateTime.now(); | ||||
| List<String> filePaths = List<String>(); | List<String> filePaths = List<String>(); | ||||
| var changeFileController = Get.put(ChangeFileController()); | var changeFileController = Get.put(ChangeFileController()); | ||||
| super.initState(); | super.initState(); | ||||
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _cropStatus.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _cropStatus.cropId = widget.cropId; | _cropStatus.cropId = widget.cropId; | ||||
| } | } | ||||
| } | } | ||||
| Widget _btnExecuteTimePicker() { | Widget _btnExecuteTimePicker() { | ||||
| return FlatButton( | |||||
| padding: EdgeInsets.only(top: 0.0, right: 0.0, bottom: 0.0, left: 0.0), | |||||
| onPressed: () { | |||||
| DatePicker.showDateTimePicker(context, | |||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | |||||
| setState(() { | |||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _cropStatus.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| }); | |||||
| }, currentTime: executeTime, locale: LocaleType.vi); | |||||
| }, | |||||
| child: Container( | |||||
| padding: | |||||
| EdgeInsets.only(top: 0.0, right: 0.0, bottom: 10.5, left: 0.0), | |||||
| decoration: BoxDecoration( | |||||
| border: kBorderTextField, | |||||
| ), | |||||
| child: Row( | |||||
| children: [ | |||||
| Expanded( | |||||
| child: Text( | |||||
| //TODO: check condition | |||||
| executeTimeView == null ? "$executeTime" : executeTimeView, | |||||
| style: TextStyle(fontSize: 14.0, color: Colors.black87), | |||||
| )), | |||||
| Icon( | |||||
| Icons.date_range, | |||||
| color: Colors.blue, | |||||
| ), | |||||
| ], | |||||
| ))); | |||||
| return WidgetFieldDateTimePicker( | |||||
| initDateTime: executeTime, | |||||
| onUpdateDateTime: (selectedDate) { | |||||
| _cropStatus.executeDate = | |||||
| selectedDate.convertLocalDateTimeToStringUtcDateTime(); | |||||
| }); | |||||
| } | } | ||||
| Widget _cropRateField() { | Widget _cropRateField() { | ||||
| _executeByController.text = | _executeByController.text = | ||||
| _cropStatus.executeBy ?? ""; | _cropStatus.executeBy ?? ""; | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_cropStatus.executeDate); | |||||
| } catch (_) {} | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| Get.find<ChangeDateTimePicker>().change(_cropStatus | |||||
| .executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime()); | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty( | if (Validators.stringNotNullOrEmpty( | ||||
| _cropStatus.media)) { | _cropStatus.media)) { |
| import 'package:farm_tpf/data/api/app_exception.dart'; | import 'package:farm_tpf/data/api/app_exception.dart'; | ||||
| import 'package:farm_tpf/data/repository/repository.dart'; | import 'package:farm_tpf/data/repository/repository.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_field_time_picker.dart'; | |||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | ||||
| TextEditingController _descriptionController = TextEditingController(); | TextEditingController _descriptionController = TextEditingController(); | ||||
| final _executeByController = TextEditingController(); | final _executeByController = TextEditingController(); | ||||
| String executeTimeView; | |||||
| DateTime executeTime = DateTime.now(); | DateTime executeTime = DateTime.now(); | ||||
| List<String> filePaths = List<String>(); | List<String> filePaths = List<String>(); | ||||
| var changeFileController = Get.put(ChangeFileController()); | var changeFileController = Get.put(ChangeFileController()); | ||||
| super.initState(); | super.initState(); | ||||
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _disease.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _disease.cropId = widget.cropId; | _disease.cropId = widget.cropId; | ||||
| } | } | ||||
| } | } | ||||
| Widget _btnExecuteTimePicker() { | Widget _btnExecuteTimePicker() { | ||||
| return FlatButton( | |||||
| padding: EdgeInsets.only(top: 0.0, right: 0.0, bottom: 0.0, left: 0.0), | |||||
| onPressed: () { | |||||
| DatePicker.showDateTimePicker(context, | |||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | |||||
| setState(() { | |||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _disease.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| }); | |||||
| }, currentTime: executeTime, locale: LocaleType.vi); | |||||
| }, | |||||
| child: Container( | |||||
| padding: | |||||
| EdgeInsets.only(top: 0.0, right: 0.0, bottom: 10.5, left: 0.0), | |||||
| decoration: BoxDecoration( | |||||
| border: kBorderTextField, | |||||
| ), | |||||
| child: Row( | |||||
| children: [ | |||||
| Expanded( | |||||
| child: Text( | |||||
| //TODO: check condition | |||||
| executeTimeView == null ? "$executeTime" : executeTimeView, | |||||
| style: TextStyle(fontSize: 14.0, color: Colors.black87), | |||||
| )), | |||||
| Icon( | |||||
| Icons.date_range, | |||||
| color: Colors.blue, | |||||
| ), | |||||
| ], | |||||
| ))); | |||||
| return WidgetFieldDateTimePicker( | |||||
| initDateTime: executeTime, | |||||
| onUpdateDateTime: (selectedDate) { | |||||
| _disease.executeDate = | |||||
| selectedDate.convertLocalDateTimeToStringUtcDateTime(); | |||||
| }); | |||||
| } | } | ||||
| Widget _typeOfPestField() { | Widget _typeOfPestField() { | ||||
| _disease.description ?? ""; | _disease.description ?? ""; | ||||
| _executeByController.text = _disease.executeBy; | _executeByController.text = _disease.executeBy; | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_disease.executeDate); | |||||
| } catch (_) {} | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| Get.find<ChangeDateTimePicker>().change(_disease | |||||
| .executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime()); | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty( | if (Validators.stringNotNullOrEmpty( | ||||
| _disease.media)) { | _disease.media)) { |
| import 'package:farm_tpf/data/api/app_exception.dart'; | import 'package:farm_tpf/data/api/app_exception.dart'; | ||||
| import 'package:farm_tpf/data/repository/repository.dart'; | import 'package:farm_tpf/data/repository/repository.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_field_time_picker.dart'; | |||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | ||||
| final _quarantinePeriodController = TextEditingController(); | final _quarantinePeriodController = TextEditingController(); | ||||
| List<SuppliesUsing> suppliesUsing = new List<SuppliesUsing>(); | List<SuppliesUsing> suppliesUsing = new List<SuppliesUsing>(); | ||||
| String executeTimeView; | |||||
| DateTime executeTime = DateTime.now(); | DateTime executeTime = DateTime.now(); | ||||
| List<String> filePaths = List<String>(); | List<String> filePaths = List<String>(); | ||||
| var changeFileController = Get.put(ChangeFileController()); | var changeFileController = Get.put(ChangeFileController()); | ||||
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| _dung.suppliesUsing = new List<SuppliesUsing>(); | _dung.suppliesUsing = new List<SuppliesUsing>(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _dung.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _dung.cropId = widget.cropId; | _dung.cropId = widget.cropId; | ||||
| } | } | ||||
| } | } | ||||
| Widget _btnExecuteTimePicker() { | Widget _btnExecuteTimePicker() { | ||||
| return FlatButton( | |||||
| padding: EdgeInsets.only(top: 0.0, right: 0.0, bottom: 0.0, left: 0.0), | |||||
| onPressed: () { | |||||
| DatePicker.showDateTimePicker(context, | |||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | |||||
| setState(() { | |||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _dung.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| }); | |||||
| }, currentTime: executeTime, locale: LocaleType.vi); | |||||
| }, | |||||
| child: Container( | |||||
| padding: | |||||
| EdgeInsets.only(top: 0.0, right: 0.0, bottom: 10.5, left: 0.0), | |||||
| decoration: BoxDecoration( | |||||
| border: kBorderTextField, | |||||
| ), | |||||
| child: Row( | |||||
| children: [ | |||||
| Expanded( | |||||
| child: Text( | |||||
| //TODO: check condition | |||||
| executeTimeView == null ? "$executeTime" : executeTimeView, | |||||
| style: TextStyle(fontSize: 14.0, color: Colors.black87), | |||||
| )), | |||||
| Icon( | |||||
| Icons.date_range, | |||||
| color: Colors.blue, | |||||
| ), | |||||
| ], | |||||
| ))); | |||||
| return WidgetFieldDateTimePicker( | |||||
| initDateTime: executeTime, | |||||
| onUpdateDateTime: (selectedDate) { | |||||
| _dung.executeDate = | |||||
| selectedDate.convertLocalDateTimeToStringUtcDateTime(); | |||||
| }); | |||||
| } | } | ||||
| Widget _purposeField() { | Widget _purposeField() { | ||||
| _descriptionController.text = | _descriptionController.text = | ||||
| _dung.description; | _dung.description; | ||||
| _executeByController.text = _dung.executeBy; | _executeByController.text = _dung.executeBy; | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_dung.executeDate); | |||||
| } catch (_) {} | |||||
| executeTimeView = | |||||
| DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| Get.find<ChangeDateTimePicker>().change(_dung | |||||
| .executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime()); | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty( | if (Validators.stringNotNullOrEmpty( | ||||
| _dung.media)) { | _dung.media)) { |
| import 'package:farm_tpf/data/api/app_exception.dart'; | import 'package:farm_tpf/data/api/app_exception.dart'; | ||||
| import 'package:farm_tpf/data/repository/repository.dart'; | import 'package:farm_tpf/data/repository/repository.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_field_time_picker.dart'; | |||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_utils.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_utils.dart'; | ||||
| import 'package:get/get.dart'; | import 'package:get/get.dart'; | ||||
| import 'package:intl/intl.dart'; | import 'package:intl/intl.dart'; | ||||
| import 'package:keyboard_dismisser/keyboard_dismisser.dart'; | import 'package:keyboard_dismisser/keyboard_dismisser.dart'; | ||||
| import 'package:farm_tpf/utils/formatter.dart'; | |||||
| import '../util_action.dart'; | import '../util_action.dart'; | ||||
| final _executeByController = TextEditingController(); | final _executeByController = TextEditingController(); | ||||
| var pref = LocalPref(); | var pref = LocalPref(); | ||||
| String executeTimeView; | |||||
| DateTime executeTime = DateTime.now(); | DateTime executeTime = DateTime.now(); | ||||
| List<String> filePaths = List<String>(); | List<String> filePaths = List<String>(); | ||||
| var changeFileController = Get.put(ChangeFileController()); | var changeFileController = Get.put(ChangeFileController()); | ||||
| super.initState(); | super.initState(); | ||||
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _end.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _end.cropId = widget.cropId; | _end.cropId = widget.cropId; | ||||
| } | } | ||||
| } | } | ||||
| Widget _btnExecuteTimePicker() { | Widget _btnExecuteTimePicker() { | ||||
| return FlatButton( | |||||
| padding: EdgeInsets.only(top: 0.0, right: 0.0, bottom: 0.0, left: 0.0), | |||||
| onPressed: () { | |||||
| DatePicker.showDateTimePicker(context, | |||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | |||||
| setState(() { | |||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _end.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| }); | |||||
| }, currentTime: executeTime, locale: LocaleType.vi); | |||||
| }, | |||||
| child: Container( | |||||
| padding: | |||||
| EdgeInsets.only(top: 0.0, right: 0.0, bottom: 10.5, left: 0.0), | |||||
| decoration: BoxDecoration( | |||||
| border: kBorderTextField, | |||||
| ), | |||||
| child: Row( | |||||
| children: [ | |||||
| Expanded( | |||||
| child: Text( | |||||
| //TODO: check condition | |||||
| executeTimeView == null ? "$executeTime" : executeTimeView, | |||||
| style: TextStyle(fontSize: 14.0, color: Colors.black87), | |||||
| )), | |||||
| Icon( | |||||
| Icons.date_range, | |||||
| color: Colors.blue, | |||||
| ), | |||||
| ], | |||||
| ))); | |||||
| return WidgetFieldDateTimePicker( | |||||
| initDateTime: executeTime, | |||||
| onUpdateDateTime: (selectedDate) { | |||||
| _end.executeDate = | |||||
| selectedDate.convertLocalDateTimeToStringUtcDateTime(); | |||||
| }); | |||||
| } | } | ||||
| _actionAppBar() { | _actionAppBar() { | ||||
| _end.description ?? ""; | _end.description ?? ""; | ||||
| _executeByController.text = _end.createdByName; | _executeByController.text = _end.createdByName; | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_end.executeDate); | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| } catch (_) {} | |||||
| Get.find<ChangeDateTimePicker>().change(_end | |||||
| .executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime()); | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty(_end.media)) { | if (Validators.stringNotNullOrEmpty(_end.media)) { | ||||
| BlocProvider.of<MediaHelperBloc>(context).add( | BlocProvider.of<MediaHelperBloc>(context).add( |
| import 'package:farm_tpf/data/api/app_exception.dart'; | import 'package:farm_tpf/data/api/app_exception.dart'; | ||||
| import 'package:farm_tpf/data/repository/repository.dart'; | import 'package:farm_tpf/data/repository/repository.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_field_time_picker.dart'; | |||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | ||||
| TextEditingController _llnController = TextEditingController(); | TextEditingController _llnController = TextEditingController(); | ||||
| final _executeByController = TextEditingController(); | final _executeByController = TextEditingController(); | ||||
| String executeTimeView; | |||||
| DateTime executeTime = DateTime.now(); | DateTime executeTime = DateTime.now(); | ||||
| List<String> filePaths = List<String>(); | List<String> filePaths = List<String>(); | ||||
| var changeFileController = Get.put(ChangeFileController()); | var changeFileController = Get.put(ChangeFileController()); | ||||
| super.initState(); | super.initState(); | ||||
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _environment.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _environment.cropId = widget.cropId; | _environment.cropId = widget.cropId; | ||||
| } | } | ||||
| } | } | ||||
| Widget _btnExecuteTimePicker() { | Widget _btnExecuteTimePicker() { | ||||
| return FlatButton( | |||||
| padding: EdgeInsets.only(top: 0.0, right: 0.0, bottom: 0.0, left: 0.0), | |||||
| onPressed: () { | |||||
| DatePicker.showDateTimePicker(context, | |||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | |||||
| setState(() { | |||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _environment.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| }); | |||||
| }, currentTime: executeTime, locale: LocaleType.vi); | |||||
| }, | |||||
| child: Container( | |||||
| padding: | |||||
| EdgeInsets.only(top: 0.0, right: 0.0, bottom: 10.5, left: 0.0), | |||||
| decoration: BoxDecoration( | |||||
| border: kBorderTextField, | |||||
| ), | |||||
| child: Row( | |||||
| children: [ | |||||
| Expanded( | |||||
| child: Text( | |||||
| //TODO: check condition | |||||
| executeTimeView == null ? "$executeTime" : executeTimeView, | |||||
| style: TextStyle(fontSize: 14.0, color: Colors.black87), | |||||
| )), | |||||
| Icon( | |||||
| Icons.date_range, | |||||
| color: Colors.blue, | |||||
| ), | |||||
| ], | |||||
| ))); | |||||
| return WidgetFieldDateTimePicker( | |||||
| initDateTime: executeTime, | |||||
| onUpdateDateTime: (selectedDate) { | |||||
| _environment.executeDate = | |||||
| selectedDate.convertLocalDateTimeToStringUtcDateTime(); | |||||
| }); | |||||
| } | } | ||||
| Widget _ecField() { | Widget _ecField() { | ||||
| _environment.lln.formatStringToStringDecimal(); | _environment.lln.formatStringToStringDecimal(); | ||||
| _executeByController.text = _environment.executeBy; | _executeByController.text = _environment.executeBy; | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_environment.executeDate); | |||||
| } catch (_) {} | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| Get.find<ChangeDateTimePicker>().change(_environment | |||||
| .executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime()); | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty( | if (Validators.stringNotNullOrEmpty( | ||||
| _environment.media)) { | _environment.media)) { |
| import 'package:farm_tpf/data/api/app_exception.dart'; | import 'package:farm_tpf/data/api/app_exception.dart'; | ||||
| import 'package:farm_tpf/data/repository/repository.dart'; | import 'package:farm_tpf/data/repository/repository.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_field_time_picker.dart'; | |||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | ||||
| final _executeByController = TextEditingController(); | final _executeByController = TextEditingController(); | ||||
| var pref = LocalPref(); | var pref = LocalPref(); | ||||
| String executeTimeView; | |||||
| DateTime executeTime = DateTime.now(); | DateTime executeTime = DateTime.now(); | ||||
| List<String> filePaths = List<String>(); | List<String> filePaths = List<String>(); | ||||
| var changeFileController = Get.put(ChangeFileController()); | var changeFileController = Get.put(ChangeFileController()); | ||||
| super.initState(); | super.initState(); | ||||
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _harvest.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _harvest.cropId = widget.cropId; | _harvest.cropId = widget.cropId; | ||||
| } | } | ||||
| } | } | ||||
| Widget _btnExecuteTimePicker() { | Widget _btnExecuteTimePicker() { | ||||
| return FlatButton( | |||||
| padding: EdgeInsets.only(top: 0.0, right: 0.0, bottom: 0.0, left: 0.0), | |||||
| onPressed: () { | |||||
| DatePicker.showDateTimePicker(context, | |||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | |||||
| setState(() { | |||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _harvest.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| }); | |||||
| }, currentTime: executeTime, locale: LocaleType.vi); | |||||
| }, | |||||
| child: Container( | |||||
| padding: | |||||
| EdgeInsets.only(top: 0.0, right: 0.0, bottom: 10.5, left: 0.0), | |||||
| decoration: BoxDecoration( | |||||
| border: kBorderTextField, | |||||
| ), | |||||
| child: Row( | |||||
| children: [ | |||||
| Expanded( | |||||
| child: Text( | |||||
| //TODO: check condition | |||||
| executeTimeView == null ? "$executeTime" : executeTimeView, | |||||
| style: TextStyle(fontSize: 14.0, color: Colors.black87), | |||||
| )), | |||||
| Icon( | |||||
| Icons.date_range, | |||||
| color: Colors.blue, | |||||
| ), | |||||
| ], | |||||
| ))); | |||||
| return WidgetFieldDateTimePicker( | |||||
| initDateTime: executeTime, | |||||
| onUpdateDateTime: (selectedDate) { | |||||
| _harvest.executeDate = | |||||
| selectedDate.convertLocalDateTimeToStringUtcDateTime(); | |||||
| }); | |||||
| } | } | ||||
| Widget _l1Field() { | Widget _l1Field() { | ||||
| _harvest.description ?? ""; | _harvest.description ?? ""; | ||||
| _executeByController.text = _harvest.executeBy; | _executeByController.text = _harvest.executeBy; | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_harvest.executeDate); | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| } catch (_) {} | |||||
| Get.find<ChangeDateTimePicker>().change(_harvest | |||||
| .executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime()); | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty( | if (Validators.stringNotNullOrEmpty( | ||||
| _harvest.media)) { | _harvest.media)) { |
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| _harvestProcess.suppliesUsing = new List<SuppliesUsing>(); | _harvestProcess.suppliesUsing = new List<SuppliesUsing>(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _harvestProcess.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _harvestProcess.executeDate = | |||||
| executeTime.convertLocalDateTimeToStringUtcDateTime(); | |||||
| executeTimeView = executeTime.displayDateTime_DDMMYYYY_HHmm(); | |||||
| _harvestProcess.cropId = widget.cropId; | _harvestProcess.cropId = widget.cropId; | ||||
| if (!widget.isEdit) { | if (!widget.isEdit) { | ||||
| DatePicker.showDateTimePicker(context, | DatePicker.showDateTimePicker(context, | ||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | ||||
| setState(() { | setState(() { | ||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _harvestProcess.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| executeTime = date; | |||||
| _harvestProcess.executeDate = | |||||
| executeTime.convertLocalDateTimeToStringUtcDateTime(); | |||||
| executeTimeView = executeTime.displayDateTime_DDMMYYYY_HHmm(); | |||||
| }); | }); | ||||
| }, currentTime: executeTime, locale: LocaleType.vi); | }, currentTime: executeTime, locale: LocaleType.vi); | ||||
| }, | }, | ||||
| } | } | ||||
| }, (err) {}); | }, (err) {}); | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_harvestProcess.executeDate); | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| } catch (_) {} | |||||
| executeTime = _harvestProcess.executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime(); | |||||
| executeTimeView = | |||||
| executeTime.displayDateTime_DDMMYYYY_HHmm(); | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty( | if (Validators.stringNotNullOrEmpty( | ||||
| _harvestProcess.media)) { | _harvestProcess.media)) { |
| import 'package:farm_tpf/data/api/app_exception.dart'; | import 'package:farm_tpf/data/api/app_exception.dart'; | ||||
| import 'package:farm_tpf/data/repository/repository.dart'; | import 'package:farm_tpf/data/repository/repository.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_field_time_picker.dart'; | |||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | ||||
| TextEditingController _workerNameController = TextEditingController(); | TextEditingController _workerNameController = TextEditingController(); | ||||
| TextEditingController _trayNumberController = TextEditingController(); | TextEditingController _trayNumberController = TextEditingController(); | ||||
| final _executeByController = TextEditingController(); | final _executeByController = TextEditingController(); | ||||
| String executeTimeView; | |||||
| DateTime executeTime = DateTime.now(); | DateTime executeTime = DateTime.now(); | ||||
| List<NurseryDetail> currentNurseryDetail = List<NurseryDetail>(); | List<NurseryDetail> currentNurseryDetail = List<NurseryDetail>(); | ||||
| int currentIndexUpdate = -1; | int currentIndexUpdate = -1; | ||||
| changeSupply.initValue(); | changeSupply.initValue(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| _nursery.nurseryDetail = new List<NurseryDetail>(); | _nursery.nurseryDetail = new List<NurseryDetail>(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _nursery.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _nursery.cropId = widget.cropId; | _nursery.cropId = widget.cropId; | ||||
| } | } | ||||
| } | } | ||||
| Widget _btnExecuteTimePicker() { | Widget _btnExecuteTimePicker() { | ||||
| return FlatButton( | |||||
| padding: EdgeInsets.only(top: 0.0, right: 0.0, bottom: 0.0, left: 0.0), | |||||
| onPressed: () { | |||||
| DatePicker.showDateTimePicker(context, | |||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | |||||
| setState(() { | |||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _nursery.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| }); | |||||
| }, currentTime: executeTime, locale: LocaleType.vi); | |||||
| }, | |||||
| child: Container( | |||||
| padding: | |||||
| EdgeInsets.only(top: 0.0, right: 0.0, bottom: 10.5, left: 0.0), | |||||
| decoration: BoxDecoration( | |||||
| border: kBorderTextField, | |||||
| ), | |||||
| child: Row( | |||||
| children: [ | |||||
| Expanded( | |||||
| child: Text( | |||||
| //TODO: check condition | |||||
| executeTimeView == null ? "$executeTime" : executeTimeView, | |||||
| style: TextStyle(fontSize: 14.0, color: Colors.black87), | |||||
| )), | |||||
| Icon( | |||||
| Icons.date_range, | |||||
| color: Colors.blue, | |||||
| ), | |||||
| ], | |||||
| ))); | |||||
| return WidgetFieldDateTimePicker( | |||||
| initDateTime: executeTime, | |||||
| onUpdateDateTime: (selectedDate) { | |||||
| _nursery.executeDate = | |||||
| selectedDate.convertLocalDateTimeToStringUtcDateTime(); | |||||
| }); | |||||
| } | } | ||||
| Widget _btnSelectSubstrates() { | Widget _btnSelectSubstrates() { | ||||
| _nursery.description; | _nursery.description; | ||||
| _executeByController.text = | _executeByController.text = | ||||
| _nursery.executeBy; | _nursery.executeBy; | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_nursery.executeDate); | |||||
| } catch (_) {} | |||||
| executeTimeView = | |||||
| DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| Get.find<ChangeDateTimePicker>().change(_nursery | |||||
| .executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime()); | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty( | if (Validators.stringNotNullOrEmpty( | ||||
| _nursery.media)) { | _nursery.media)) { |
| import 'package:farm_tpf/data/repository/repository.dart'; | import 'package:farm_tpf/data/repository/repository.dart'; | ||||
| import 'package:farm_tpf/models/index.dart'; | import 'package:farm_tpf/models/index.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_field_time_picker.dart'; | |||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_utils.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_utils.dart'; | ||||
| import 'package:get/get.dart'; | import 'package:get/get.dart'; | ||||
| import 'package:intl/intl.dart'; | import 'package:intl/intl.dart'; | ||||
| import 'package:keyboard_dismisser/keyboard_dismisser.dart'; | import 'package:keyboard_dismisser/keyboard_dismisser.dart'; | ||||
| import 'package:farm_tpf/utils/formatter.dart'; | |||||
| import '../util_action.dart'; | import '../util_action.dart'; | ||||
| List<ActionType> _actionTypes = List<ActionType>(); | List<ActionType> _actionTypes = List<ActionType>(); | ||||
| ActionType _actionType; | ActionType _actionType; | ||||
| String executeTimeView; | |||||
| DateTime executeTime = DateTime.now(); | DateTime executeTime = DateTime.now(); | ||||
| List<String> filePaths = List<String>(); | List<String> filePaths = List<String>(); | ||||
| var changeFileController = Get.put(ChangeFileController()); | var changeFileController = Get.put(ChangeFileController()); | ||||
| super.initState(); | super.initState(); | ||||
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _other.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _other.cropId = widget.cropId; | _other.cropId = widget.cropId; | ||||
| if (!widget.isEdit) { | if (!widget.isEdit) { | ||||
| } | } | ||||
| Widget _btnExecuteTimePicker() { | Widget _btnExecuteTimePicker() { | ||||
| return FlatButton( | |||||
| padding: EdgeInsets.only(top: 0.0, right: 0.0, bottom: 0.0, left: 0.0), | |||||
| onPressed: () { | |||||
| DatePicker.showDateTimePicker(context, | |||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | |||||
| setState(() { | |||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _other.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| }); | |||||
| }, currentTime: executeTime, locale: LocaleType.vi); | |||||
| }, | |||||
| child: Container( | |||||
| padding: | |||||
| EdgeInsets.only(top: 0.0, right: 0.0, bottom: 10.5, left: 0.0), | |||||
| decoration: BoxDecoration( | |||||
| border: kBorderTextField, | |||||
| ), | |||||
| child: Row( | |||||
| children: [ | |||||
| Expanded( | |||||
| child: Text( | |||||
| //TODO: check condition | |||||
| executeTimeView == null ? "$executeTime" : executeTimeView, | |||||
| style: TextStyle(fontSize: 14.0, color: Colors.black87), | |||||
| )), | |||||
| Icon( | |||||
| Icons.date_range, | |||||
| color: Colors.blue, | |||||
| ), | |||||
| ], | |||||
| ))); | |||||
| return WidgetFieldDateTimePicker( | |||||
| initDateTime: executeTime, | |||||
| onUpdateDateTime: (selectedDate) { | |||||
| _other.executeDate = | |||||
| selectedDate.convertLocalDateTimeToStringUtcDateTime(); | |||||
| }); | |||||
| } | } | ||||
| List<DropdownMenuItem<ActionType>> _buildDropMenu(List<ActionType> actions) { | List<DropdownMenuItem<ActionType>> _buildDropMenu(List<ActionType> actions) { | ||||
| } | } | ||||
| } | } | ||||
| }, (err) {}); | }, (err) {}); | ||||
| Get.find<ChangeDateTimePicker>().change(_other | |||||
| .executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime()); | |||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_other.executeDate); | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| } catch (_) {} | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty(_other.media)) { | if (Validators.stringNotNullOrEmpty(_other.media)) { | ||||
| BlocProvider.of<MediaHelperBloc>(context).add( | BlocProvider.of<MediaHelperBloc>(context).add( |
| super.initState(); | super.initState(); | ||||
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _packing.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _packing.executeDate = | |||||
| executeTime.convertLocalDateTimeToStringUtcDateTime(); | |||||
| executeTimeView = executeTime.displayDateTime_DDMMYYYY_HHmm(); | |||||
| _packing.cropId = widget.cropId; | _packing.cropId = widget.cropId; | ||||
| if (!widget.isEdit) { | if (!widget.isEdit) { | ||||
| DatePicker.showDateTimePicker(context, | DatePicker.showDateTimePicker(context, | ||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | ||||
| setState(() { | setState(() { | ||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _packing.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| executeTime = date; | |||||
| _packing.executeDate = | |||||
| executeTime.convertLocalDateTimeToStringUtcDateTime(); | |||||
| executeTimeView = executeTime.displayDateTime_DDMMYYYY_HHmm(); | |||||
| }); | }); | ||||
| }, currentTime: executeTime, locale: LocaleType.vi); | }, currentTime: executeTime, locale: LocaleType.vi); | ||||
| }, | }, | ||||
| } | } | ||||
| }, (err) {}); | }, (err) {}); | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_packing.executeDate); | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| } catch (_) {} | |||||
| executeTime = _packing.executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime(); | |||||
| executeTimeView = | |||||
| executeTime.displayDateTime_DDMMYYYY_HHmm(); | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty( | if (Validators.stringNotNullOrEmpty( | ||||
| _packing.media)) { | _packing.media)) { |
| import 'package:farm_tpf/data/api/app_exception.dart'; | import 'package:farm_tpf/data/api/app_exception.dart'; | ||||
| import 'package:farm_tpf/data/repository/repository.dart'; | import 'package:farm_tpf/data/repository/repository.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_field_time_picker.dart'; | |||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | ||||
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| _plant.suppliesUsing = new List<SuppliesUsing>(); | _plant.suppliesUsing = new List<SuppliesUsing>(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _plant.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _plant.cropId = widget.cropId; | _plant.cropId = widget.cropId; | ||||
| } | } | ||||
| } | } | ||||
| Widget _btnExecuteTimePicker() { | Widget _btnExecuteTimePicker() { | ||||
| return FlatButton( | |||||
| padding: EdgeInsets.only(top: 0.0, right: 0.0, bottom: 0.0, left: 0.0), | |||||
| onPressed: () { | |||||
| DatePicker.showDateTimePicker(context, | |||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | |||||
| setState(() { | |||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _plant.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| }); | |||||
| }, currentTime: executeTime, locale: LocaleType.vi); | |||||
| }, | |||||
| child: Container( | |||||
| padding: | |||||
| EdgeInsets.only(top: 0.0, right: 0.0, bottom: 10.5, left: 0.0), | |||||
| decoration: BoxDecoration( | |||||
| border: kBorderTextField, | |||||
| ), | |||||
| child: Row( | |||||
| children: [ | |||||
| Expanded( | |||||
| child: Text( | |||||
| //TODO: check condition | |||||
| executeTimeView == null ? "$executeTime" : executeTimeView, | |||||
| style: TextStyle(fontSize: 14.0, color: Colors.black87), | |||||
| )), | |||||
| Icon( | |||||
| Icons.date_range, | |||||
| color: Colors.blue, | |||||
| ), | |||||
| ], | |||||
| ))); | |||||
| return WidgetFieldDateTimePicker( | |||||
| initDateTime: executeTime, | |||||
| onUpdateDateTime: (selectedDate) { | |||||
| _plant.executeDate = | |||||
| selectedDate.convertLocalDateTimeToStringUtcDateTime(); | |||||
| }); | |||||
| } | } | ||||
| Widget _quantityField() { | Widget _quantityField() { | ||||
| _descriptionController.text = | _descriptionController.text = | ||||
| _plant.description; | _plant.description; | ||||
| _executeByController.text = _plant.executeBy; | _executeByController.text = _plant.executeBy; | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_plant.executeDate); | |||||
| } catch (_) {} | |||||
| executeTimeView = | |||||
| DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| Get.find<ChangeDateTimePicker>().change(_plant | |||||
| .executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime()); | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty( | if (Validators.stringNotNullOrEmpty( | ||||
| _plant.media)) { | _plant.media)) { |
| super.initState(); | super.initState(); | ||||
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _sell.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _sell.executeDate = executeTime.convertLocalDateTimeToStringUtcDateTime(); | |||||
| executeTimeView = executeTime.displayDateTime_DDMMYYYY_HHmm(); | |||||
| _sell.cropId = widget.cropId; | _sell.cropId = widget.cropId; | ||||
| if (!widget.isEdit) { | if (!widget.isEdit) { | ||||
| DatePicker.showDateTimePicker(context, | DatePicker.showDateTimePicker(context, | ||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | ||||
| setState(() { | setState(() { | ||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _sell.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| executeTime = date; | |||||
| _sell.executeDate = | |||||
| executeTime.convertLocalDateTimeToStringUtcDateTime(); | |||||
| executeTimeView = executeTime.displayDateTime_DDMMYYYY_HHmm(); | |||||
| }); | }); | ||||
| }, currentTime: executeTime, locale: LocaleType.vi); | }, currentTime: executeTime, locale: LocaleType.vi); | ||||
| }, | }, | ||||
| } | } | ||||
| }, (err) {}); | }, (err) {}); | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_sell.executeDate); | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| } catch (_) {} | |||||
| executeTime = _sell.executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime(); | |||||
| executeTimeView = | |||||
| executeTime.displayDateTime_DDMMYYYY_HHmm(); | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty(_sell.media)) { | if (Validators.stringNotNullOrEmpty(_sell.media)) { | ||||
| BlocProvider.of<MediaHelperBloc>(context).add( | BlocProvider.of<MediaHelperBloc>(context).add( |
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| _spraying.suppliesUsing = new List<SuppliesUsing>(); | _spraying.suppliesUsing = new List<SuppliesUsing>(); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _spraying.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _spraying.executeDate = | |||||
| executeTime.convertLocalDateTimeToStringUtcDateTime(); | |||||
| executeTimeView = executeTime.displayDateTime_DDMMYYYY_HHmm(); | |||||
| _spraying.cropId = widget.cropId; | _spraying.cropId = widget.cropId; | ||||
| } | } | ||||
| message: label_execute_date_must_after_result_time); | message: label_execute_date_must_after_result_time); | ||||
| } else { | } else { | ||||
| executeTime = date; | executeTime = date; | ||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _spraying.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| _spraying.executeDate = | |||||
| executeTime.convertLocalDateTimeToStringUtcDateTime(); | |||||
| executeTimeView = executeTime.displayDateTime_DDMMYYYY_HHmm(); | |||||
| } | } | ||||
| }); | }); | ||||
| }, currentTime: executeTime, locale: LocaleType.vi); | }, currentTime: executeTime, locale: LocaleType.vi); | ||||
| message: label_execute_date_must_after_result_time); | message: label_execute_date_must_after_result_time); | ||||
| } else { | } else { | ||||
| resultAtTime = date; | resultAtTime = date; | ||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _spraying.resultAt = "$parsedDate"; | |||||
| resultAtView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| _spraying.resultAt = | |||||
| resultAtTime.convertLocalDateTimeToStringUtcDateTime(); | |||||
| resultAtView = resultAtTime.displayDateTime_DDMMYYYY_HHmm(); | |||||
| } | } | ||||
| }); | }); | ||||
| }, currentTime: resultAtTime, locale: LocaleType.vi); | }, currentTime: resultAtTime, locale: LocaleType.vi); | ||||
| _spraying.description; | _spraying.description; | ||||
| _executeByController.text = | _executeByController.text = | ||||
| _spraying.executeBy; | _spraying.executeBy; | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_spraying.executeDate); | |||||
| executeTimeView = | |||||
| DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| } catch (_) {} | |||||
| try { | |||||
| resultAtTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_spraying.resultAt); | |||||
| resultAtView = | |||||
| DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(resultAtTime); | |||||
| } catch (_) {} | |||||
| executeTime = _spraying.executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime(); | |||||
| executeTimeView = executeTime | |||||
| .displayDateTime_DDMMYYYY_HHmm(); | |||||
| resultAtTime = _spraying.resultAt | |||||
| .convertStringServerDateTimeToLocalDateTime(); | |||||
| resultAtView = resultAtTime | |||||
| .displayDateTime_DDMMYYYY_HHmm(); | |||||
| //Show media | //Show media | ||||
| if (Validators.stringNotNullOrEmpty( | if (Validators.stringNotNullOrEmpty( |
| import 'package:farm_tpf/data/api/app_exception.dart'; | import 'package:farm_tpf/data/api/app_exception.dart'; | ||||
| import 'package:farm_tpf/data/repository/repository.dart'; | import 'package:farm_tpf/data/repository/repository.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | import 'package:farm_tpf/presentation/custom_widgets/bloc/media_helper_bloc.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_field_time_picker.dart'; | |||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_loading.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_media_picker.dart'; | ||||
| import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | import 'package:farm_tpf/presentation/custom_widgets/widget_text_form_field.dart'; | ||||
| import 'package:farm_tpf/presentation/screens/actions/state_management_helper/change_file_controller.dart'; | import 'package:farm_tpf/presentation/screens/actions/state_management_helper/change_file_controller.dart'; | ||||
| import 'package:farm_tpf/utils/const_common.dart'; | import 'package:farm_tpf/utils/const_common.dart'; | ||||
| import 'package:farm_tpf/utils/const_string.dart'; | import 'package:farm_tpf/utils/const_string.dart'; | ||||
| import 'package:farm_tpf/utils/const_style.dart'; | |||||
| import 'package:farm_tpf/utils/pref.dart'; | import 'package:farm_tpf/utils/pref.dart'; | ||||
| import 'package:farm_tpf/utils/validators.dart'; | import 'package:farm_tpf/utils/validators.dart'; | ||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
| import 'package:flutter_bloc/flutter_bloc.dart'; | import 'package:flutter_bloc/flutter_bloc.dart'; | ||||
| import 'package:flutter_datetime_picker/flutter_datetime_picker.dart'; | |||||
| import 'package:get/get.dart'; | import 'package:get/get.dart'; | ||||
| import 'package:intl/intl.dart'; | |||||
| import 'package:keyboard_dismisser/keyboard_dismisser.dart'; | import 'package:keyboard_dismisser/keyboard_dismisser.dart'; | ||||
| import 'package:pattern_formatter/pattern_formatter.dart'; | |||||
| import 'package:farm_tpf/utils/formatter.dart'; | import 'package:farm_tpf/utils/formatter.dart'; | ||||
| import '../util_action.dart'; | import '../util_action.dart'; | ||||
| TextEditingController _descriptionController = TextEditingController(); | TextEditingController _descriptionController = TextEditingController(); | ||||
| final _executeByController = TextEditingController(); | final _executeByController = TextEditingController(); | ||||
| String executeTimeView; | |||||
| DateTime executeTime = DateTime.now(); | DateTime executeTime = DateTime.now(); | ||||
| List<String> filePaths = List<String>(); | List<String> filePaths = List<String>(); | ||||
| var changeFileController = Get.put(ChangeFileController()); | var changeFileController = Get.put(ChangeFileController()); | ||||
| getSharedPrefs(); | getSharedPrefs(); | ||||
| changeFileController.initValue(); | changeFileController.initValue(); | ||||
| changeRadio.init(widget.isEdit); | changeRadio.init(widget.isEdit); | ||||
| var parsedExecuteDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(executeTime); | |||||
| _useWater.executeDate = "$parsedExecuteDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(executeTime); | |||||
| _useWater.cropId = widget.cropId; | _useWater.cropId = widget.cropId; | ||||
| } | } | ||||
| } | } | ||||
| Widget _btnExecuteTimePicker() { | Widget _btnExecuteTimePicker() { | ||||
| return FlatButton( | |||||
| padding: EdgeInsets.only(top: 0.0, right: 0.0, bottom: 0.0, left: 0.0), | |||||
| onPressed: () { | |||||
| DatePicker.showDateTimePicker(context, | |||||
| showTitleActions: true, onChanged: (date) {}, onConfirm: (date) { | |||||
| setState(() { | |||||
| var parsedDate = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").format(date); | |||||
| _useWater.executeDate = "$parsedDate"; | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm").format(date); | |||||
| }); | |||||
| }, currentTime: executeTime, locale: LocaleType.vi); | |||||
| }, | |||||
| child: Container( | |||||
| padding: | |||||
| EdgeInsets.only(top: 0.0, right: 0.0, bottom: 10.5, left: 0.0), | |||||
| decoration: BoxDecoration( | |||||
| border: kBorderTextField, | |||||
| ), | |||||
| child: Row( | |||||
| children: [ | |||||
| Expanded( | |||||
| child: Text( | |||||
| //TODO: check condition | |||||
| executeTimeView == null ? "$executeTime" : executeTimeView, | |||||
| style: TextStyle(fontSize: 14.0, color: Colors.black87), | |||||
| )), | |||||
| Icon( | |||||
| Icons.date_range, | |||||
| color: Colors.blue, | |||||
| ), | |||||
| ], | |||||
| ))); | |||||
| return WidgetFieldDateTimePicker( | |||||
| initDateTime: executeTime, | |||||
| onUpdateDateTime: (selectedDate) { | |||||
| _useWater.executeDate = | |||||
| selectedDate.convertLocalDateTimeToStringUtcDateTime(); | |||||
| }); | |||||
| } | } | ||||
| Widget _amountField() { | Widget _amountField() { | ||||
| _useWater.description ?? ""; | _useWater.description ?? ""; | ||||
| _executeByController.text = _useWater.executeBy; | _executeByController.text = _useWater.executeBy; | ||||
| try { | |||||
| executeTime = | |||||
| DateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") | |||||
| .parse(_useWater.executeDate); | |||||
| executeTimeView = DateFormat("dd/MM/yyyy HH:mm") | |||||
| .format(executeTime); | |||||
| } catch (_) {} | |||||
| Get.find<ChangeDateTimePicker>().change(_useWater | |||||
| .executeDate | |||||
| .convertStringServerDateTimeToLocalDateTime()); | |||||
| changeRadio | changeRadio | ||||
| .initWithSelectedByName(_useWater.waterType); | .initWithSelectedByName(_useWater.waterType); |
| description: A new Flutter project. | description: A new Flutter project. | ||||
| publish_to: 'none' | publish_to: 'none' | ||||
| version: 0.8.0+1 | |||||
| version: 0.9.0+1 | |||||
| environment: | environment: | ||||
| sdk: ">=2.7.0 <3.0.0" | sdk: ">=2.7.0 <3.0.0" |