diff --git a/lib/modules/medical_gas_inspection/create_medical_gas_request_page.dart b/lib/modules/medical_gas_inspection/create_medical_gas_request_page.dart index 0bbd9e66..0e0dbb53 100644 --- a/lib/modules/medical_gas_inspection/create_medical_gas_request_page.dart +++ b/lib/modules/medical_gas_inspection/create_medical_gas_request_page.dart @@ -1,7 +1,7 @@ - import 'package:flutter/material.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:provider/provider.dart'; +import 'package:test_sa/controllers/providers/api/all_requests_provider.dart'; import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart'; @@ -145,25 +145,6 @@ class _CreateMedicalGasRequestPageState extends State( - // context: context, - // title: context.translation.department, - // showShadow: false, - // validator: (value) { - // if (value == null) return "Please select a department"; - // return null; - // }, - // showAsBottomSheet: true, - // initialValue: _medicalGasFormModel.department, - // requestById: context.userProvider.user?.clientId, - // backgroundColor: AppColor.fieldBgColor(context), - // onSelect: (value) { - // _medicalGasFormModel.department = value; - // setState(() {}); - // }, - // ), - // 8.height, SingleItemDropDownMenu( context: context, title: context.translation.supplier, @@ -171,6 +152,10 @@ class _CreateMedicalGasRequestPageState extends State _update({bool isSubmitted = false}) async { + if (!_formKey.currentState!.validate()) return; + _formKey.currentState?.save(); if (medicalGasInfo != null && medicalGasInfo!.attributeInfo!.isNotEmpty) { _medicalGasFormModel.gasRequestDetail = []; for (var item in medicalGasInfo!.attributeInfo!) { @@ -284,15 +285,19 @@ class _CreateMedicalGasRequestPageState extends State const AppLazyLoading()); await medicalGasInspectionProvider.saveMedicalGas(model: _medicalGasFormModel).then((status) async { Navigator.pop(context); if (status) { Navigator.pop(context, true); + AllRequestsProvider allRequestsProvider = Provider.of(context, listen: false); + allRequestsProvider.reset(); + await allRequestsProvider.getAllRequests(context, typeTransaction: 14); } else { //This should be handled from backend. - Fluttertoast.showToast(msg: 'No gas available for selected site', toastLength: Toast.LENGTH_LONG); + Fluttertoast.showToast(msg: 'Something went wrong', toastLength: Toast.LENGTH_LONG); } }); } diff --git a/lib/modules/medical_gas_inspection/update_delivery_notes_page.dart b/lib/modules/medical_gas_inspection/update_delivery_notes_page.dart index 925f5193..9d12a0e6 100644 --- a/lib/modules/medical_gas_inspection/update_delivery_notes_page.dart +++ b/lib/modules/medical_gas_inspection/update_delivery_notes_page.dart @@ -340,6 +340,22 @@ class _UpdateDeliveryNotesState extends State { right: TextFormField( keyboardType: TextInputType.number, initialValue: model.deliveredQuantity != null ? model.deliveredQuantity?.toStringAsFixed(0) : '', + validator: (value) { + if (value == null || value.trim().isEmpty) { + return "This field is required"; + } + + final intVal = int.tryParse(value); + if (intVal == null) { + return "Enter a valid number"; + } + + if (intVal <= 0) { + return "Value must be greater than 0"; + } + + return null; + }, decoration: InputDecoration( contentPadding: EdgeInsets.symmetric(horizontal: 5.toScreenWidth), filled: true,