From 2d3f5bd96e0bc4bcd66ae9b7904999ef0c96ac45 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Mon, 3 Mar 2025 17:23:39 +0800 Subject: [PATCH] update --- .../arm64-v8a/configure_fingerprint.bin | 24 ++-- .../armeabi-v7a/configure_fingerprint.bin | 24 ++-- .../k6q1g3c4/x86/configure_fingerprint.bin | 24 ++-- .../k6q1g3c4/x86_64/configure_fingerprint.bin | 24 ++-- lib/pages/add_stock_page.dart | 134 +++++++++--------- lib/pages/delete_stock_page.dart | 56 ++++---- lib/pages/login_page.dart | 1 - lib/pages/register_page.dart | 1 - lib/tables/ref_medicines.dart | 9 ++ lib/widgets/dropdown_widget.dart | 6 + lib/widgets/textbox_widget.dart | 24 ++++ 11 files changed, 184 insertions(+), 143 deletions(-) create mode 100644 lib/widgets/textbox_widget.dart diff --git a/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/configure_fingerprint.bin b/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/configure_fingerprint.bin index 3ce49bc..c5b27fc 100644 --- a/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logz x v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2w +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2w u -s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/android_gradle_build.json  2 Ǖ2| +s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/android_gradle_build.json  2 Ǖ2| z -x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/android_gradle_build_mini.json  2 򕂎2i +x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/android_gradle_build_mini.json  2 򕂎2i g -e/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build.ninja  2 2m +e/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build.ninja  2 2m k -i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build.ninja.txt  2r +i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build.ninja.txt  2r p -n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build_file_index.txt  2 ^ 2s +n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/build_file_index.txt  2 ^ 2s q -o/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/compile_commands.json  2w +o/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/compile_commands.json  2w u -s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/compile_commands.json.bin  2 } +s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/compile_commands.json.bin  2 } { -y/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/metadata_generation_command.txt  2 +y/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/metadata_generation_command.txt  2  2p n -l/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/prefab_config.json  2  ( 2u +l/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/prefab_config.json  2  ( 2u s -q/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/symbol_folder_index.txt  2  h 2b +q/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/symbol_folder_index.txt  2  h 2b ` -^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file +^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/configure_fingerprint.bin b/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/configure_fingerprint.bin index 250d412..5841681 100644 --- a/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Log| z x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2y +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2y w -u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/android_gradle_build.json  2 2~ +u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/android_gradle_build.json  2 2~ | -z/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/android_gradle_build_mini.json  2 2k +z/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/android_gradle_build_mini.json  2 2k i -g/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build.ninja  2 2o +g/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build.ninja  2 2o m -k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build.ninja.txt  2t +k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build.ninja.txt  2t r -p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build_file_index.txt  2 ^ 2u +p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/build_file_index.txt  2 ^ 2u s -q/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/compile_commands.json  2y +q/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/compile_commands.json  2y w -u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/compile_commands.json.bin  2  +u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/compile_commands.json.bin  2  } -{/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/metadata_generation_command.txt  2 +{/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/metadata_generation_command.txt  2  2r p -n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/prefab_config.json  2  ( 2w +n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/prefab_config.json  2  ( 2w u -s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/symbol_folder_index.txt  2  j 2b +s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/symbol_folder_index.txt  2  j 2b ` -^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file +^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/k6q1g3c4/x86/configure_fingerprint.bin b/android/app/.cxx/Debug/k6q1g3c4/x86/configure_fingerprint.bin index b8a4e5a..8f06f9d 100644 --- a/android/app/.cxx/Debug/k6q1g3c4/x86/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/k6q1g3c4/x86/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logt r p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2q +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2q o -m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build.json  2 2v +m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build.json  2 2v t -r/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build_mini.json  2 2c +r/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/android_gradle_build_mini.json  2 2c a -_/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja  2 2g +_/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja  2 2g e -c/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja.txt  2l +c/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build.ninja.txt  2l j -h/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build_file_index.txt  2 ^ 2m +h/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/build_file_index.txt  2 ^ 2m k -i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json  2q +i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json  2q o -m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json.bin  2 w +m/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/compile_commands.json.bin  2 w u -s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/metadata_generation_command.txt  2 +s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/metadata_generation_command.txt  2  2j h -f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/prefab_config.json  2  ( 2o +f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/prefab_config.json  2  ( 2o m -k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/symbol_folder_index.txt  2  b 2b +k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/symbol_folder_index.txt  2  b 2b ` -^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file +^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file diff --git a/android/app/.cxx/Debug/k6q1g3c4/x86_64/configure_fingerprint.bin b/android/app/.cxx/Debug/k6q1g3c4/x86_64/configure_fingerprint.bin index 7d16616..2de1bb6 100644 --- a/android/app/.cxx/Debug/k6q1g3c4/x86_64/configure_fingerprint.bin +++ b/android/app/.cxx/Debug/k6q1g3c4/x86_64/configure_fingerprint.bin @@ -2,27 +2,27 @@ C/C++ Structured Logw u s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/additional_project_files.txtC A -?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  ҕ2  2t +?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint  2  2t r -p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/android_gradle_build.json  ҕ2 2y +p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/android_gradle_build.json  2 2y w -u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/android_gradle_build_mini.json  ҕ2 2f +u/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/android_gradle_build_mini.json  2 2f d -b/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build.ninja  ҕ2 2j +b/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build.ninja  2 2j h -f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build.ninja.txt  ҕ2o +f/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build.ninja.txt  2o m -k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build_file_index.txt  ӕ2 ^ 2p +k/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/build_file_index.txt  2 ^ 2p n -l/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/compile_commands.json  ӕ2t +l/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/compile_commands.json  2t r -p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/compile_commands.json.bin  ӕ2 z +p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/compile_commands.json.bin  2 z x -v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/metadata_generation_command.txt  ӕ2 +v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/metadata_generation_command.txt  2  2m k -i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/prefab_config.json  ӕ2  ( 2r +i/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/prefab_config.json  2  ( 2r p -n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/symbol_folder_index.txt  ӕ2  e 2b +n/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/symbol_folder_index.txt  2  e 2b ` -^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  ӕ2  ȼ2 \ No newline at end of file +^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt  2  ȼ2 \ No newline at end of file diff --git a/lib/pages/add_stock_page.dart b/lib/pages/add_stock_page.dart index c4b53c3..e95f068 100644 --- a/lib/pages/add_stock_page.dart +++ b/lib/pages/add_stock_page.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:internet_connection_checker/internet_connection_checker.dart'; @@ -14,6 +16,7 @@ import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; import 'package:pharmacy_mobile/widgets/text_widget.dart'; +import 'package:pharmacy_mobile/widgets/textbox_widget.dart'; import 'package:pharmacy_mobile/widgets/title_widget.dart'; import 'package:go_router/go_router.dart'; @@ -29,6 +32,7 @@ class _AddStockPageState extends State with WidgetsBindingObserver final _refMedicines = RefMedicines(); final _quantityController = TextEditingController(); final _dateController = TextEditingController(); + // final _barcodeController = TextEditingController(); final _stocks = Stocks(); late bool _isLoading = false; @@ -37,6 +41,8 @@ class _AddStockPageState extends State with WidgetsBindingObserver late DateTime selectedDate = DateTime.now(); late String barcode = ''; + final sampleBarcode = '8992185411017'; + void _getMedicines() async { _medicineList = await _refMedicines.getList(); @@ -89,21 +95,21 @@ class _AddStockPageState extends State with WidgetsBindingObserver Future _scanBarcode() async { final scannedBarcode = await barcodeScan(context); + final meds = await _getMedicineUsingBarcode(scannedBarcode); setState(() { - _updateMedicine(scannedBarcode); + barcode = meds; }); } - // Future _getMedicineUsingBarcode(String barcode) async { - // final encryptedBarcode = await _refMedicines.getBarcode(barcode); - // final barcode = decrypt(encryptedBarcode); - // return barcode; - // } + Future _getMedicineUsingBarcode(String barcode) async { + final medicine = await _refMedicines.getNameUsingBarcode(barcode); + return medicine; + } @override void initState() { - _getMedicines(); + autoRun(); super.initState(); } @@ -139,70 +145,70 @@ class _AddStockPageState extends State with WidgetsBindingObserver color: 'green', child: Form( key: _formKey, - child: Center( - child: DropdownWrapperMultiWidget( - list: _medicineList, - text: 'Data', - children: [ + child: DropdownWrapperMultiWidget( + list: _medicineList, + text: 'Data', + children: [ + if (barcode.isEmpty) DropDownWidget( label: 'Medicine Name', list: _medicineList, listTitle: 'medicine_name', onChanged: _updateMedicine, - // value: _selectedMedicine, - ), - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - GestureDetector( - onTap: _scanBarcode, - child: Container( - padding: const EdgeInsets.only(top: 8), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - // color: const Color.fromARGB(0, 36, 18, 58), - // boxShadow: [ - // BoxShadow( - // color: Colors.black26, - // blurRadius: 5.0, - // offset: Offset(0, 2), - // ), - // ], - ), - child: const Row( - children: [ - Icon( - Icons.qr_code_scanner, - color: Colors.white, - size: 22, - ), - Gap(8), - TextWidget( - text: 'Scan Barcode', - size: 14, - color: Colors.white, - ), - ], - ), + ) + else + TextboxWidget(text: barcode), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + GestureDetector( + onTap: _scanBarcode, + child: Container( + padding: const EdgeInsets.only(top: 8), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + // color: const Color.fromARGB(0, 36, 18, 58), + // boxShadow: [ + // BoxShadow( + // color: Colors.black26, + // blurRadius: 5.0, + // offset: Offset(0, 2), + // ), + // ], + ), + child: const Row( + children: [ + Icon( + Icons.qr_code_scanner, + color: Colors.white, + size: 22, + ), + Gap(8), + TextWidget( + text: 'Scan Barcode', + size: 14, + color: Colors.white, + ), + ], ), ), - ], - ), - const Gap(16), - InputWidget(label: 'Quantity', controller: _quantityController), - const Gap(16), - DatePickerWidget( - label: 'Date Expiration', - controller: _dateController, - value: selectedDate, - ), - const Gap(32), - if (_isLoading) - const Center(child: CircularProgressIndicator(color: Colors.white)) - else - ButtonWidget(text: 'Add Stock', onPressed: _saveStock), - ], - ), + ), + ], + ), + const Gap(16), + InputWidget(label: 'Quantity', controller: _quantityController), + const Gap(16), + DatePickerWidget( + label: 'Date Expiration', + controller: _dateController, + value: selectedDate, + ), + const Gap(32), + if (_isLoading) + const Center(child: CircularProgressIndicator(color: Colors.white)) + else + ButtonWidget(text: 'Add Stock', onPressed: _saveStock), + ], ), ), ) diff --git a/lib/pages/delete_stock_page.dart b/lib/pages/delete_stock_page.dart index 0982326..5c37d00 100644 --- a/lib/pages/delete_stock_page.dart +++ b/lib/pages/delete_stock_page.dart @@ -134,35 +134,33 @@ class _DeleteStockPageState extends State { color: 'red', child: Form( key: _formKey, - child: Center( - child: Column( - children: [ - DropdownWrapperMultiWidget(list: _stockList, text: 'Stocks', children: [ - DropDownWidget( - label: 'Stocks', - list: _stockList, - listTitle: 'medicine_name', - onChanged: _updateStock, - // value: _selectedStock, - ), - const Gap(16), - InputWidget(label: 'Quantity', controller: _quantityController, onChanged: _setQuantity), - const Gap(32), - if (_noStock) - const WarningWidget( - text: 'Removing Disabled', - warning: 'Quantity is above sssss', - ) - else if (_aboveQuantity) - const WarningWidget( - text: 'Removing Disabled', - warning: 'Quantity is above stocked', - ) - else - ButtonWidget(text: 'Remove Stock', onPressed: _saveDeletion) - ]) - ], - ), + child: Column( + children: [ + DropdownWrapperMultiWidget(list: _stockList, text: 'Stocks', children: [ + DropDownWidget( + label: 'Stocks', + list: _stockList, + listTitle: 'medicine_name', + onChanged: _updateStock, + // value: _selectedStock, + ), + const Gap(16), + InputWidget(label: 'Quantity', controller: _quantityController, onChanged: _setQuantity), + const Gap(32), + if (_noStock) + const WarningWidget( + text: 'Removing Disabled', + warning: 'Quantity is above sssss', + ) + else if (_aboveQuantity) + const WarningWidget( + text: 'Removing Disabled', + warning: 'Quantity is above stocked', + ) + else + ButtonWidget(text: 'Remove Stock', onPressed: _saveDeletion) + ]) + ], ))) ])))); } diff --git a/lib/pages/login_page.dart b/lib/pages/login_page.dart index 748652e..4d3b553 100644 --- a/lib/pages/login_page.dart +++ b/lib/pages/login_page.dart @@ -3,7 +3,6 @@ import 'package:flutter/services.dart'; import 'package:go_router/go_router.dart'; import 'package:gap/gap.dart'; import 'package:pharmacy_mobile/auth/auth_service.dart'; -import 'package:pharmacy_mobile/widgets/button_widget.dart'; import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; diff --git a/lib/pages/register_page.dart b/lib/pages/register_page.dart index acffed5..381ced4 100644 --- a/lib/pages/register_page.dart +++ b/lib/pages/register_page.dart @@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; import 'package:gap/gap.dart'; import 'package:internet_connection_checker/internet_connection_checker.dart'; import 'package:pharmacy_mobile/auth/auth_service.dart'; -import 'package:pharmacy_mobile/widgets/button_widget.dart'; import 'package:pharmacy_mobile/widgets/buttonwithprogress_widget.dart'; import 'package:pharmacy_mobile/widgets/input_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; diff --git a/lib/tables/ref_medicines.dart b/lib/tables/ref_medicines.dart index cb5c86e..f35e119 100644 --- a/lib/tables/ref_medicines.dart +++ b/lib/tables/ref_medicines.dart @@ -45,6 +45,15 @@ class RefMedicines { } } + Future getNameUsingBarcode(String barcode) async { + try { + final data = await _supabase.from('ref_medicines').select('medicine_name').eq('barcode', barcode); + return data.first['medicine_name']; + } catch (e) { + return ''; + } + } + Future postMedicine(String uuid, String name, String muuid, String guuid, String tuuid, String barcode) async { final medicine = { 'ref_medicines_uuid': uuid, diff --git a/lib/widgets/dropdown_widget.dart b/lib/widgets/dropdown_widget.dart index bd52297..3677092 100644 --- a/lib/widgets/dropdown_widget.dart +++ b/lib/widgets/dropdown_widget.dart @@ -48,6 +48,12 @@ class DropDownWidget extends StatelessWidget { GoogleFonts.inter(fontSize: 16, fontWeight: FontWeight.w500)))), ], onSelected: onChanged, + trailingIcon: Icon( + Icons.arrow_drop_down_sharp, + size: 24, + color: Colors.white, + ), + selectedTrailingIcon: Icon(Icons.arrow_drop_up_sharp, size: 24, color: Colors.white), width: MediaQuery.of(context).size.width * 0.9, menuHeight: MediaQuery.of(context).size.height * 0.8, textStyle: GoogleFonts.inter( diff --git a/lib/widgets/textbox_widget.dart b/lib/widgets/textbox_widget.dart new file mode 100644 index 0000000..d2dcae8 --- /dev/null +++ b/lib/widgets/textbox_widget.dart @@ -0,0 +1,24 @@ +import 'package:flutter/material.dart'; +import 'package:pharmacy_mobile/widgets/text_widget.dart'; + +class TextboxWidget extends StatelessWidget { + final String text; + + const TextboxWidget({super.key, required this.text}); + + @override + Widget build(BuildContext context) { + return Container( + width: MediaQuery.of(context).size.width, + decoration: BoxDecoration( + border: Border.all(color: const Color.fromRGBO(255, 255, 255, 1)), + borderRadius: BorderRadius.circular(4), + ), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 16), // Optional: Adds padding inside the container + child: TextWidget( + text: text, + size: 16, + ), + ); + } +}