update
This commit is contained in:
parent
2931621069
commit
27f00e43a7
15 changed files with 252 additions and 104 deletions
|
|
@ -2,27 +2,27 @@ C/C++ Structured Logz
|
||||||
x
|
x
|
||||||
v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/additional_project_files.txtC
|
v/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/arm64-v8a/additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ϳ£²Ô2 ž•‚ŽÑ2w
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ß¶§ÕÔ2 ž•‚ŽÑ2w
|
||||||
u
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
à ô•‚ŽÑ2p
|
||||||
n
|
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
|
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
¤ ˆÈ¼<C388>Ñ2
|
^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt à¶§ÕÔ2
¤ ˆÈ¼<C388>Ñ2
|
||||||
|
|
@ -2,27 +2,27 @@ C/C++ Structured Log|
|
||||||
z
|
z
|
||||||
x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/additional_project_files.txtC
|
x/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/armeabi-v7a/additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint «´£²Ô2 ÅÑ2y
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ÷§ÕÔ2 ÅÑ2y
|
||||||
w
|
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
|
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
|
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
|
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
|
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
|
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
|
Í ÈÑ2r
|
||||||
p
|
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
|
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
¤ ˆÈ¼<C388>Ñ2
|
^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt Ä·§ÕÔ2
¤ ˆÈ¼<C388>Ñ2
|
||||||
|
|
@ -2,27 +2,27 @@ C/C++ Structured Logt
|
||||||
r
|
r
|
||||||
p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/additional_project_files.txtC
|
p/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86/additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint î´£²Ô2 –ð‚ŽÑ2q
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint €¸§ÕÔ2 –ð‚ŽÑ2q
|
||||||
o
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
¥ ›ð‚ŽÑ2j
|
||||||
h
|
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
|
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
¤ ˆÈ¼<C388>Ñ2
|
^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt €¸§ÕÔ2
¤ ˆÈ¼<C388>Ñ2
|
||||||
|
|
@ -2,27 +2,27 @@ C/C++ Structured Logw
|
||||||
u
|
u
|
||||||
s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/additional_project_files.txtC
|
s/home/patrick/Documents/WebApps/pharmacy_mobile/android/app/.cxx/Debug/k6q1g3c4/x86_64/additional_project_files.txtC
|
||||||
A
|
A
|
||||||
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint ½µ£²Ô2 ßñ‚ŽÑ2t
|
?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint Џ§ÕÔ2 ßñ‚ŽÑ2t
|
||||||
r
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
´ âñ‚ŽÑ2m
|
||||||
k
|
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
|
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
¤ ˆÈ¼<C388>Ñ2
|
^/home/patrick/fvm/versions/3.29.0/packages/flutter_tools/gradle/src/main/groovy/CMakeLists.txt Џ§ÕÔ2
¤ ˆÈ¼<C388>Ñ2
|
||||||
|
|
@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:pharmacy_mobile/auth/auth_gate.dart';
|
import 'package:pharmacy_mobile/auth/auth_gate.dart';
|
||||||
import 'package:pharmacy_mobile/pages/add_category_page.dart';
|
import 'package:pharmacy_mobile/pages/add_category_page.dart';
|
||||||
import 'package:pharmacy_mobile/pages/add_generics_page.dart';
|
import 'package:pharmacy_mobile/pages/add_generics_page.dart';
|
||||||
|
import 'package:pharmacy_mobile/pages/add_manufactorer.dart';
|
||||||
import 'package:pharmacy_mobile/pages/add_medicine_page.dart';
|
import 'package:pharmacy_mobile/pages/add_medicine_page.dart';
|
||||||
import 'package:pharmacy_mobile/pages/add_stock_page.dart';
|
import 'package:pharmacy_mobile/pages/add_stock_page.dart';
|
||||||
import 'package:pharmacy_mobile/pages/add_type_page.dart';
|
import 'package:pharmacy_mobile/pages/add_type_page.dart';
|
||||||
|
|
@ -53,6 +54,11 @@ final _router = GoRouter(
|
||||||
path: '/main',
|
path: '/main',
|
||||||
builder: (context, state) => const MainPage(),
|
builder: (context, state) => const MainPage(),
|
||||||
),
|
),
|
||||||
|
GoRoute(
|
||||||
|
name: 'addmanufactorer',
|
||||||
|
path: '/addmanufactorer',
|
||||||
|
builder: (context, state) => const AddManufactorerPage(),
|
||||||
|
),
|
||||||
GoRoute(
|
GoRoute(
|
||||||
name: 'addmedicines',
|
name: 'addmedicines',
|
||||||
path: '/addmedicines',
|
path: '/addmedicines',
|
||||||
|
|
|
||||||
|
|
@ -29,16 +29,20 @@ class _AddCategoryPageState extends State<AddCategoryPage> {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (await InternetConnectionChecker.instance.hasConnection) {
|
if (await InternetConnectionChecker.instance.hasConnection) {
|
||||||
await _refCategories.postCategory(_categoryController.text.toUpperCase());
|
final post = await _refCategories.postCategory(_categoryController.text.toUpperCase());
|
||||||
|
|
||||||
if (mounted) {
|
if (post && mounted) {
|
||||||
showNotification(context, 'Category Saved', true);
|
showNotification(context, 'Category saved', true);
|
||||||
|
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
context.push('/main');
|
context.push('/main');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
if (mounted) {
|
||||||
|
showNotification(context, 'Category not saved', false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,5 @@
|
||||||
|
import 'dart:developer';
|
||||||
|
|
||||||
import 'package:gap/gap.dart';
|
import 'package:gap/gap.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:internet_connection_checker/internet_connection_checker.dart';
|
import 'package:internet_connection_checker/internet_connection_checker.dart';
|
||||||
|
|
@ -51,6 +53,11 @@ class _AddGenericsPageState extends State<AddGenericsPage> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<bool> _checkExisting() async {
|
||||||
|
final uuid = await _refGenericNames.getUUID(_nameController.text);
|
||||||
|
return uuid.isNotEmpty;
|
||||||
|
}
|
||||||
|
|
||||||
void autoRun() async {
|
void autoRun() async {
|
||||||
if (await InternetConnectionChecker.instance.hasConnection) {
|
if (await InternetConnectionChecker.instance.hasConnection) {
|
||||||
_getList();
|
_getList();
|
||||||
|
|
@ -76,18 +83,31 @@ class _AddGenericsPageState extends State<AddGenericsPage> {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (await InternetConnectionChecker.instance.hasConnection) {
|
if (await InternetConnectionChecker.instance.hasConnection) {
|
||||||
|
final existing = await _checkExisting();
|
||||||
|
|
||||||
|
if (existing && mounted) {
|
||||||
|
showNotification(context, 'Generic Name already existing', false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
_categoryUUID = await _refCategories.getUUID(_selectedCategory);
|
_categoryUUID = await _refCategories.getUUID(_selectedCategory);
|
||||||
|
log('_selectedCategory: $_selectedCategory');
|
||||||
|
log('_categoryUUID: $_categoryUUID');
|
||||||
|
|
||||||
await _refGenericNames.postGeneric(_nameController.text, _categoryUUID);
|
final post = await _refGenericNames.postGeneric(_nameController.text, _categoryUUID);
|
||||||
|
|
||||||
if (mounted) {
|
if (post && mounted) {
|
||||||
showNotification(context, 'Generic Name Saved', true);
|
showNotification(context, 'Generic name saved', true);
|
||||||
|
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
context.push('/main');
|
context.push('/main');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
if (mounted) {
|
||||||
|
showNotification(context, 'Generic name not saved', false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
|
|
@ -172,7 +192,7 @@ class _AddGenericsPageState extends State<AddGenericsPage> {
|
||||||
list: _categoryList,
|
list: _categoryList,
|
||||||
listTitle: 'category_name',
|
listTitle: 'category_name',
|
||||||
onChanged: _updateCategory,
|
onChanged: _updateCategory,
|
||||||
value: _selectedCategory,
|
// value: _selectedCategory,
|
||||||
),
|
),
|
||||||
const Gap(32),
|
const Gap(32),
|
||||||
if (_isLoading)
|
if (_isLoading)
|
||||||
|
|
|
||||||
82
lib/pages/add_manufactorer.dart
Normal file
82
lib/pages/add_manufactorer.dart
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:gap/gap.dart';
|
||||||
|
import 'package:internet_connection_checker/internet_connection_checker.dart';
|
||||||
|
import 'package:pharmacy_mobile/widgets/button_widget.dart';
|
||||||
|
import 'package:pharmacy_mobile/widgets/form_border_widget2.dart';
|
||||||
|
import 'package:pharmacy_mobile/widgets/input_widget.dart';
|
||||||
|
import 'package:pharmacy_mobile/widgets/page_background_widget.dart';
|
||||||
|
import 'package:pharmacy_mobile/widgets/text_widget.dart';
|
||||||
|
import 'package:pharmacy_mobile/widgets/title_widget.dart';
|
||||||
|
|
||||||
|
class AddManufactorerPage extends StatefulWidget {
|
||||||
|
const AddManufactorerPage({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<AddManufactorerPage> createState() => _AddManufactorerPageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _AddManufactorerPageState extends State<AddManufactorerPage> {
|
||||||
|
final _formKey = GlobalKey<FormState>();
|
||||||
|
final _nameController = TextEditingController();
|
||||||
|
final _addressController = TextEditingController();
|
||||||
|
|
||||||
|
late bool _isLoading = false;
|
||||||
|
|
||||||
|
void saveManufactorer() async {
|
||||||
|
setState(() => _isLoading = true);
|
||||||
|
|
||||||
|
if (await InternetConnectionChecker.instance.hasConnection) {
|
||||||
|
// final existing = await _checkExisting();
|
||||||
|
}
|
||||||
|
|
||||||
|
setState(() => _isLoading = false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
_nameController.dispose();
|
||||||
|
_addressController.dispose();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
body: PageBackgroundWidget(
|
||||||
|
child: Center(
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
const Gap(96),
|
||||||
|
const TitleWidget(
|
||||||
|
firstTextSize: 14,
|
||||||
|
secondTextSize: 24,
|
||||||
|
logoSize: 90,
|
||||||
|
),
|
||||||
|
const Gap(32),
|
||||||
|
const TextWidget(
|
||||||
|
text: 'Add Manufactorer',
|
||||||
|
title: true,
|
||||||
|
),
|
||||||
|
const Gap(16),
|
||||||
|
FormBorderWidget2(
|
||||||
|
color: 'blue',
|
||||||
|
child: Form(
|
||||||
|
key: _formKey,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
InputWidget(label: 'Name', controller: _nameController),
|
||||||
|
const Gap(16),
|
||||||
|
InputWidget(label: 'Address', controller: _addressController),
|
||||||
|
const Gap(32),
|
||||||
|
if (_isLoading)
|
||||||
|
const Center(child: CircularProgressIndicator(color: Colors.white))
|
||||||
|
else
|
||||||
|
ButtonWidget(text: 'Add', onPressed: saveManufactorer)
|
||||||
|
],
|
||||||
|
)))
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -284,7 +284,7 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
|
||||||
list: _genericNameList,
|
list: _genericNameList,
|
||||||
listTitle: 'generic_name',
|
listTitle: 'generic_name',
|
||||||
onChanged: _updateGeneric,
|
onChanged: _updateGeneric,
|
||||||
value: _selectedGeneric,
|
// value: _selectedGeneric,
|
||||||
),
|
),
|
||||||
const Gap(8),
|
const Gap(8),
|
||||||
Padding(
|
Padding(
|
||||||
|
|
@ -297,7 +297,7 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
|
||||||
list: _typeList,
|
list: _typeList,
|
||||||
listTitle: 'type_name',
|
listTitle: 'type_name',
|
||||||
onChanged: _updateType,
|
onChanged: _updateType,
|
||||||
value: _selectedType,
|
// value: _selectedType,
|
||||||
),
|
),
|
||||||
const Gap(16),
|
const Gap(16),
|
||||||
DropDownWidget(
|
DropDownWidget(
|
||||||
|
|
@ -305,7 +305,7 @@ class _AddMedicinePageState extends State<AddMedicinePage> {
|
||||||
list: _manufactorerList,
|
list: _manufactorerList,
|
||||||
listTitle: 'manufactorer_name',
|
listTitle: 'manufactorer_name',
|
||||||
onChanged: _updateManufactorer,
|
onChanged: _updateManufactorer,
|
||||||
value: _selectedManufactorer,
|
// value: _selectedManufactorer,
|
||||||
),
|
),
|
||||||
const Gap(16),
|
const Gap(16),
|
||||||
InputWidget(label: 'Barcode', controller: _barcodeController),
|
InputWidget(label: 'Barcode', controller: _barcodeController),
|
||||||
|
|
|
||||||
|
|
@ -140,7 +140,7 @@ class _AddStockPageState extends State<AddStockPage> with WidgetsBindingObserver
|
||||||
list: _medicineList,
|
list: _medicineList,
|
||||||
listTitle: 'medicine_name',
|
listTitle: 'medicine_name',
|
||||||
onChanged: _updateMedicine,
|
onChanged: _updateMedicine,
|
||||||
value: _selectedMedicine,
|
// value: _selectedMedicine,
|
||||||
),
|
),
|
||||||
Row(
|
Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,7 @@ class _DeleteStockPageState extends State<DeleteStockPage> {
|
||||||
list: _stockList,
|
list: _stockList,
|
||||||
listTitle: 'medicine_name',
|
listTitle: 'medicine_name',
|
||||||
onChanged: _updateStock,
|
onChanged: _updateStock,
|
||||||
value: _selectedStock,
|
// value: _selectedStock,
|
||||||
),
|
),
|
||||||
const Gap(16),
|
const Gap(16),
|
||||||
InputWidget(label: 'Quantity', controller: _quantityController, onChanged: _setQuantity),
|
InputWidget(label: 'Quantity', controller: _quantityController, onChanged: _setQuantity),
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ class _MainPageState extends State<MainPage> {
|
||||||
resizeToAvoidBottomInset: false,
|
resizeToAvoidBottomInset: false,
|
||||||
body: SingleChildScrollView(
|
body: SingleChildScrollView(
|
||||||
child: PageBackgroundWidget(
|
child: PageBackgroundWidget(
|
||||||
height: MediaQuery.of(context).size.height + 400,
|
height: MediaQuery.of(context).size.height + 500,
|
||||||
page: 'menu',
|
page: 'menu',
|
||||||
child: Center(
|
child: Center(
|
||||||
child: Column(
|
child: Column(
|
||||||
|
|
@ -50,6 +50,14 @@ class _MainPageState extends State<MainPage> {
|
||||||
title: true,
|
title: true,
|
||||||
),
|
),
|
||||||
const Gap(16),
|
const Gap(16),
|
||||||
|
MenuWidget(
|
||||||
|
icon: FontAwesomeIcons.circlePlus,
|
||||||
|
text: 'Add Manufactorer',
|
||||||
|
description: 'Add Manufactorer to the record',
|
||||||
|
onPressed: () => {context.push('/addmanufactorer')},
|
||||||
|
color: 'blue',
|
||||||
|
),
|
||||||
|
const Gap(16),
|
||||||
MenuWidget(
|
MenuWidget(
|
||||||
icon: FontAwesomeIcons.circlePlus,
|
icon: FontAwesomeIcons.circlePlus,
|
||||||
text: 'Add Type',
|
text: 'Add Type',
|
||||||
|
|
|
||||||
|
|
@ -5,22 +5,40 @@ class RefCategories {
|
||||||
final SupabaseClient _supabase = Supabase.instance.client;
|
final SupabaseClient _supabase = Supabase.instance.client;
|
||||||
|
|
||||||
Future<List> getList() async {
|
Future<List> getList() async {
|
||||||
final data = await _supabase.from('ref_categories').select('category_name').order('category_name', ascending: true);
|
try {
|
||||||
|
final data =
|
||||||
|
await _supabase.from('ref_categories').select('category_name').order('category_name', ascending: true);
|
||||||
return data.toList();
|
return data.toList();
|
||||||
|
} catch (e) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String> getUUID(String name) async {
|
Future<String> getUUID(String name) async {
|
||||||
|
try {
|
||||||
final data = await _supabase.from('ref_categories').select('ref_categories_uuid').eq('category_name', name);
|
final data = await _supabase.from('ref_categories').select('ref_categories_uuid').eq('category_name', name);
|
||||||
return data.first['ref_categories_uuid'];
|
return data.first['ref_categories_uuid'];
|
||||||
|
} catch (e) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String> getName(String uuid) async {
|
Future<String> getName(String uuid) async {
|
||||||
|
try {
|
||||||
final data = await _supabase.from('ref_categories').select('category_name').eq('ref_categories_uuid', uuid);
|
final data = await _supabase.from('ref_categories').select('category_name').eq('ref_categories_uuid', uuid);
|
||||||
return data.first['category_name'];
|
return data.first['category_name'];
|
||||||
|
} catch (e) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> postCategory(String name) async {
|
Future<bool> postCategory(String name) async {
|
||||||
|
try {
|
||||||
final categoryUUID = Uuid().v4();
|
final categoryUUID = Uuid().v4();
|
||||||
await _supabase.from('ref_categories').insert({'ref_categories_uuid': categoryUUID, 'category_name': name});
|
await _supabase.from('ref_categories').insert({'ref_categories_uuid': categoryUUID, 'category_name': name});
|
||||||
|
return true;
|
||||||
|
} catch (e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,42 +5,52 @@ class RefGenericNames {
|
||||||
final SupabaseClient _supabase = Supabase.instance.client;
|
final SupabaseClient _supabase = Supabase.instance.client;
|
||||||
|
|
||||||
Future<List> getList() async {
|
Future<List> getList() async {
|
||||||
|
try {
|
||||||
final data =
|
final data =
|
||||||
await _supabase.from('ref_generic_names').select('generic_name').order('generic_name', ascending: true);
|
await _supabase.from('ref_generic_names').select('generic_name').order('generic_name', ascending: true);
|
||||||
return data.toList();
|
return data.toList();
|
||||||
|
} catch (e) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String> getCategoryUUID(name) async {
|
Future<String> getCategoryUUID(name) async {
|
||||||
|
try {
|
||||||
final data = await _supabase.from('ref_generic_names').select('ref_categories_uuid').eq('generic_name', name);
|
final data = await _supabase.from('ref_generic_names').select('ref_categories_uuid').eq('generic_name', name);
|
||||||
return data.first['ref_categories_uuid'].toString();
|
return data.first['ref_categories_uuid'].toString();
|
||||||
|
} catch (e) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<String> getUUID(name) async {
|
Future<String> getUUID(name) async {
|
||||||
|
try {
|
||||||
final data = await _supabase.from('ref_generic_names').select('ref_generic_names_uuid').eq('generic_name', name);
|
final data = await _supabase.from('ref_generic_names').select('ref_generic_names_uuid').eq('generic_name', name);
|
||||||
return data.first['ref_generic_names_uuid'].toString();
|
return data.first['ref_generic_names_uuid'].toString();
|
||||||
|
} catch (e) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> postGeneric(String name, String uuid) async {
|
Future<bool> postGeneric(String name, String uuid) async {
|
||||||
|
try {
|
||||||
final genericUUID = Uuid().v4();
|
final genericUUID = Uuid().v4();
|
||||||
|
|
||||||
await _supabase
|
await _supabase
|
||||||
.from('ref_generic_names')
|
.from('ref_generic_names')
|
||||||
.insert({'ref_generic_names_uuid': genericUUID, 'generic_name': name, 'ref_categories_uuid': uuid});
|
.insert({'ref_generic_names_uuid': genericUUID, 'generic_name': name, 'ref_categories_uuid': uuid});
|
||||||
|
return true;
|
||||||
|
} catch (e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List> getSample() async {
|
Future<List> getSample() async {
|
||||||
|
try {
|
||||||
final data = await _supabase.from('ref_generic_names').select('''generic_name, ref_categories(category_name)''');
|
final data = await _supabase.from('ref_generic_names').select('''generic_name, ref_categories(category_name)''');
|
||||||
return data.toList();
|
return data.toList();
|
||||||
|
} catch (e) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// let { data: ref_generic_names, error } = await supabase
|
|
||||||
// .from('ref_generic_names')
|
|
||||||
// .select(`
|
|
||||||
// some_column,
|
|
||||||
// other_table (
|
|
||||||
// foreign_key
|
|
||||||
// )
|
|
||||||
// `)
|
|
||||||
|
|
||||||
|
|
@ -9,15 +9,15 @@ class DropDownWidget extends StatelessWidget {
|
||||||
final List list;
|
final List list;
|
||||||
final String listTitle;
|
final String listTitle;
|
||||||
final OnChangedCallback onChanged;
|
final OnChangedCallback onChanged;
|
||||||
final String value;
|
// final String value;
|
||||||
|
|
||||||
const DropDownWidget(
|
const DropDownWidget({
|
||||||
{super.key,
|
super.key,
|
||||||
required this.label,
|
required this.label,
|
||||||
required this.list,
|
required this.list,
|
||||||
required this.listTitle,
|
required this.listTitle,
|
||||||
required this.onChanged,
|
required this.onChanged,
|
||||||
required this.value});
|
});
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Column(
|
return Column(
|
||||||
|
|
@ -41,7 +41,7 @@ class DropDownWidget extends StatelessWidget {
|
||||||
for (var item in list)
|
for (var item in list)
|
||||||
DropdownMenuEntry(
|
DropdownMenuEntry(
|
||||||
label: item[listTitle].toString(),
|
label: item[listTitle].toString(),
|
||||||
value: value,
|
value: item[listTitle].toString(),
|
||||||
style: ButtonStyle(
|
style: ButtonStyle(
|
||||||
foregroundColor: WidgetStateProperty.all<Color>(const Color.fromRGBO(10, 10, 10, 1)),
|
foregroundColor: WidgetStateProperty.all<Color>(const Color.fromRGBO(10, 10, 10, 1)),
|
||||||
textStyle: WidgetStateProperty.all<TextStyle>(
|
textStyle: WidgetStateProperty.all<TextStyle>(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue