From c24fe473ff0f888f8c021812ae269fdf0866d9e3 Mon Sep 17 00:00:00 2001 From: zaid_daoud Date: Mon, 12 Jun 2023 14:46:04 +0300 Subject: [PATCH] Add Delivered Quantity Field --- assets/subtitles/ar_subtitle.json | 4 ++- assets/subtitles/en_subtitle.json | 4 ++- lib/models/subtitle.dart | 6 +++++ .../user/gas_refill/request_gas_refill.dart | 25 ++++++++++++++++++- .../gas_refill_create_details_item.dart | 2 +- 5 files changed, 37 insertions(+), 4 deletions(-) diff --git a/assets/subtitles/ar_subtitle.json b/assets/subtitles/ar_subtitle.json index 9e86e092..74e890ad 100644 --- a/assets/subtitles/ar_subtitle.json +++ b/assets/subtitles/ar_subtitle.json @@ -200,5 +200,7 @@ "repairLocation" : "موقع الإصلاح", "travelingExpense" : "مصاريف التنقل", "startDate" : "وقت البدء", - "endDate" : "وقت الانتهاء" + "endDate" : "وقت الانتهاء", + "requestedQuantity" : "الكمية المطلوبة", + "deliveredQuantity" : "الكمية المسلّمة" } \ No newline at end of file diff --git a/assets/subtitles/en_subtitle.json b/assets/subtitles/en_subtitle.json index d66d2e7c..d94d4296 100644 --- a/assets/subtitles/en_subtitle.json +++ b/assets/subtitles/en_subtitle.json @@ -200,5 +200,7 @@ "repairLocation" : "Repair Location", "travelingExpense": "Traveling Expense", "startDate" : "Start Date", - "endDate" : "End Date" + "endDate" : "End Date", + "requestedQuantity" : "Requested Quantity", + "deliveredQuantity" : "Delivered Quantity" } \ No newline at end of file diff --git a/lib/models/subtitle.dart b/lib/models/subtitle.dart index 47613fe2..8d3b4056 100644 --- a/lib/models/subtitle.dart +++ b/lib/models/subtitle.dart @@ -228,6 +228,8 @@ class Subtitle { String travelingExpense; String startDate; String endDate; + String requestedQuantity; + String deliveredQuantity; void setIssues(List issues) { issues.clear(); @@ -431,6 +433,8 @@ class Subtitle { @required this.travelingExpense, @required this.startDate, @required this.endDate, + @required this.requestedQuantity, + @required this.deliveredQuantity, }); factory Subtitle.fromJson(Map parsedJson) { @@ -627,6 +631,8 @@ class Subtitle { travelingExpense: parsedJson["travelingExpense"], startDate: parsedJson["startDate"], endDate: parsedJson["endDate"], + requestedQuantity: parsedJson["requestedQuantity"], + deliveredQuantity: parsedJson["deliveredQuantity"], ); } } 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 03a7255f..da419033 100644 --- a/lib/views/pages/user/gas_refill/request_gas_refill.dart +++ b/lib/views/pages/user/gas_refill/request_gas_refill.dart @@ -48,6 +48,7 @@ class _RequestGasRefillState extends State { GasRefillProvider _gasRefillProvider; GasRefillDetails _currentDetails = GasRefillDetails(); final TextEditingController _requestedQuantityController = TextEditingController(); + final TextEditingController _deliveredQuantityController = TextEditingController(); GasRefillModel _formModel = GasRefillModel(details: []); final GlobalKey _formKey = GlobalKey(); final GlobalKey _DetailsKey = GlobalKey(); @@ -125,6 +126,7 @@ class _RequestGasRefillState extends State { _validate = false; Scrollable.ensureVisible(_DetailsKey.currentContext); _requestedQuantityController.clear(); + _deliveredQuantityController.clear(); _currentDetails = GasRefillDetails(); setState(() {}); return true; @@ -133,6 +135,7 @@ class _RequestGasRefillState extends State { @override void dispose() { _requestedQuantityController.dispose(); + _deliveredQuantityController.dispose(); super.dispose(); } @@ -402,7 +405,7 @@ class _RequestGasRefillState extends State { const SizedBox( height: 8, ), - ASubTitle(_subtitle.quantity), + ASubTitle(_subtitle.requestedQuantity), if (_validate && _currentDetails?.requestedQuantity == null) ASubTitle( _subtitle.requiredWord, @@ -422,6 +425,26 @@ class _RequestGasRefillState extends State { _currentDetails?.requestedQuantity = double.tryParse(value); }, ), + if (widget.gasRefillModel != null) const SizedBox(height: 16), + if (widget.gasRefillModel != null) ASubTitle(_subtitle.deliveredQuantity), + if (widget.gasRefillModel != null && _validate && _currentDetails?.deliveredQuantity == null) + ASubTitle( + _subtitle.requiredWord, + color: Colors.red, + ), + if (widget.gasRefillModel != null) const SizedBox(height: 4), + if (widget.gasRefillModel != null) + ATextFormField( + initialValue: (_currentDetails?.deliveredQuantity ?? "").toString(), + textAlign: TextAlign.center, + controller: _deliveredQuantityController, + style: Theme.of(context).textTheme.subtitle1, + validator: (value) => Validator.isNumeric(value) ? null : "allow numbers only", + textInputType: TextInputType.number, + onChange: (value) { + _currentDetails?.deliveredQuantity = double.tryParse(value); + }, + ), const SizedBox(height: 16), AButton( text: _subtitle.add, diff --git a/lib/views/widgets/gas_refill/gas_refill_create_details_item.dart b/lib/views/widgets/gas_refill/gas_refill_create_details_item.dart index 41d0806f..8fef555f 100644 --- a/lib/views/widgets/gas_refill/gas_refill_create_details_item.dart +++ b/lib/views/widgets/gas_refill/gas_refill_create_details_item.dart @@ -27,7 +27,7 @@ class GasRefillCreateDetailsItem extends StatelessWidget { if (model.deliveredQuantity != null) Row( children: [ - const Text("Delivered Quantity"), + const Text("Delivered Quantity: "), Text(model.deliveredQuantity.toStringAsFixed(0)), ], ),