Merge branch 'master' into Haroon
# Conflicts: # android/app/src/main/AndroidManifest.xmlmerge-update-with-lab-changes
commit
22ef24c4ff
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
@ -1,310 +0,0 @@
|
|||||||
PODS:
|
|
||||||
- barcode_scan (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- MTBBarcodeScanner
|
|
||||||
- SwiftProtobuf
|
|
||||||
- connectivity (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- Reachability
|
|
||||||
- connectivity_for_web (0.1.0):
|
|
||||||
- Flutter
|
|
||||||
- connectivity_macos (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- device_info (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- Firebase/Core (6.23.0):
|
|
||||||
- Firebase/CoreOnly
|
|
||||||
- FirebaseAnalytics (= 6.4.2)
|
|
||||||
- Firebase/CoreOnly (6.23.0):
|
|
||||||
- FirebaseCore (= 6.6.7)
|
|
||||||
- Firebase/Messaging (6.23.0):
|
|
||||||
- Firebase/CoreOnly
|
|
||||||
- FirebaseMessaging (~> 4.3.1)
|
|
||||||
- firebase_messaging (0.0.1):
|
|
||||||
- Firebase/Core
|
|
||||||
- Firebase/Messaging
|
|
||||||
- Flutter
|
|
||||||
- FirebaseAnalytics (6.4.2):
|
|
||||||
- FirebaseCore (~> 6.6)
|
|
||||||
- FirebaseInstallations (~> 1.2)
|
|
||||||
- GoogleAppMeasurement (= 6.4.2)
|
|
||||||
- GoogleUtilities/AppDelegateSwizzler (~> 6.0)
|
|
||||||
- GoogleUtilities/MethodSwizzler (~> 6.0)
|
|
||||||
- GoogleUtilities/Network (~> 6.0)
|
|
||||||
- "GoogleUtilities/NSData+zlib (~> 6.0)"
|
|
||||||
- nanopb (= 0.3.9011)
|
|
||||||
- FirebaseAnalyticsInterop (1.5.0)
|
|
||||||
- FirebaseCore (6.6.7):
|
|
||||||
- FirebaseCoreDiagnostics (~> 1.2)
|
|
||||||
- FirebaseCoreDiagnosticsInterop (~> 1.2)
|
|
||||||
- GoogleUtilities/Environment (~> 6.5)
|
|
||||||
- GoogleUtilities/Logger (~> 6.5)
|
|
||||||
- FirebaseCoreDiagnostics (1.2.4):
|
|
||||||
- FirebaseCoreDiagnosticsInterop (~> 1.2)
|
|
||||||
- GoogleDataTransportCCTSupport (~> 3.0)
|
|
||||||
- GoogleUtilities/Environment (~> 6.5)
|
|
||||||
- GoogleUtilities/Logger (~> 6.5)
|
|
||||||
- nanopb (~> 0.3.901)
|
|
||||||
- FirebaseCoreDiagnosticsInterop (1.2.0)
|
|
||||||
- FirebaseInstallations (1.2.0):
|
|
||||||
- FirebaseCore (~> 6.6)
|
|
||||||
- GoogleUtilities/Environment (~> 6.6)
|
|
||||||
- GoogleUtilities/UserDefaults (~> 6.6)
|
|
||||||
- PromisesObjC (~> 1.2)
|
|
||||||
- FirebaseInstanceID (4.3.4):
|
|
||||||
- FirebaseCore (~> 6.6)
|
|
||||||
- FirebaseInstallations (~> 1.0)
|
|
||||||
- GoogleUtilities/Environment (~> 6.5)
|
|
||||||
- GoogleUtilities/UserDefaults (~> 6.5)
|
|
||||||
- FirebaseMessaging (4.3.1):
|
|
||||||
- FirebaseAnalyticsInterop (~> 1.5)
|
|
||||||
- FirebaseCore (~> 6.6)
|
|
||||||
- FirebaseInstanceID (~> 4.3)
|
|
||||||
- GoogleUtilities/AppDelegateSwizzler (~> 6.5)
|
|
||||||
- GoogleUtilities/Environment (~> 6.5)
|
|
||||||
- GoogleUtilities/Reachability (~> 6.5)
|
|
||||||
- GoogleUtilities/UserDefaults (~> 6.5)
|
|
||||||
- Protobuf (>= 3.9.2, ~> 3.9)
|
|
||||||
- Flutter (1.0.0)
|
|
||||||
- flutter_flexible_toast (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- flutter_inappwebview (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- flutter_local_notifications (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- flutter_plugin_android_lifecycle (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- GoogleAppMeasurement (6.4.2):
|
|
||||||
- GoogleUtilities/AppDelegateSwizzler (~> 6.0)
|
|
||||||
- GoogleUtilities/MethodSwizzler (~> 6.0)
|
|
||||||
- GoogleUtilities/Network (~> 6.0)
|
|
||||||
- "GoogleUtilities/NSData+zlib (~> 6.0)"
|
|
||||||
- nanopb (= 0.3.9011)
|
|
||||||
- GoogleDataTransport (6.0.0)
|
|
||||||
- GoogleDataTransportCCTSupport (3.0.0):
|
|
||||||
- GoogleDataTransport (~> 6.0)
|
|
||||||
- nanopb (~> 0.3.901)
|
|
||||||
- GoogleUtilities/AppDelegateSwizzler (6.6.0):
|
|
||||||
- GoogleUtilities/Environment
|
|
||||||
- GoogleUtilities/Logger
|
|
||||||
- GoogleUtilities/Network
|
|
||||||
- GoogleUtilities/Environment (6.6.0):
|
|
||||||
- PromisesObjC (~> 1.2)
|
|
||||||
- GoogleUtilities/Logger (6.6.0):
|
|
||||||
- GoogleUtilities/Environment
|
|
||||||
- GoogleUtilities/MethodSwizzler (6.6.0):
|
|
||||||
- GoogleUtilities/Logger
|
|
||||||
- GoogleUtilities/Network (6.6.0):
|
|
||||||
- GoogleUtilities/Logger
|
|
||||||
- "GoogleUtilities/NSData+zlib"
|
|
||||||
- GoogleUtilities/Reachability
|
|
||||||
- "GoogleUtilities/NSData+zlib (6.6.0)"
|
|
||||||
- GoogleUtilities/Reachability (6.6.0):
|
|
||||||
- GoogleUtilities/Logger
|
|
||||||
- GoogleUtilities/UserDefaults (6.6.0):
|
|
||||||
- GoogleUtilities/Logger
|
|
||||||
- hexcolor (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- image_cropper (0.0.2):
|
|
||||||
- Flutter
|
|
||||||
- TOCropViewController (~> 2.5.2)
|
|
||||||
- image_picker (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- local_auth (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- manage_calendar_events (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- map_launcher (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- MTBBarcodeScanner (5.0.11)
|
|
||||||
- nanopb (0.3.9011):
|
|
||||||
- nanopb/decode (= 0.3.9011)
|
|
||||||
- nanopb/encode (= 0.3.9011)
|
|
||||||
- nanopb/decode (0.3.9011)
|
|
||||||
- nanopb/encode (0.3.9011)
|
|
||||||
- path_provider_linux (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- "permission_handler (5.0.1+1)":
|
|
||||||
- Flutter
|
|
||||||
- PromisesObjC (1.2.8)
|
|
||||||
- Protobuf (3.11.4)
|
|
||||||
- Reachability (3.2)
|
|
||||||
- shared_preferences (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- shared_preferences_linux (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- shared_preferences_macos (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- shared_preferences_web (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- SwiftProtobuf (1.10.2)
|
|
||||||
- TOCropViewController (2.5.4)
|
|
||||||
- url_launcher (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- url_launcher_linux (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- url_launcher_macos (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
- url_launcher_web (0.0.1):
|
|
||||||
- Flutter
|
|
||||||
|
|
||||||
DEPENDENCIES:
|
|
||||||
- barcode_scan (from `.symlinks/plugins/barcode_scan/ios`)
|
|
||||||
- connectivity (from `.symlinks/plugins/connectivity/ios`)
|
|
||||||
- connectivity_for_web (from `.symlinks/plugins/connectivity_for_web/ios`)
|
|
||||||
- connectivity_macos (from `.symlinks/plugins/connectivity_macos/ios`)
|
|
||||||
- device_info (from `.symlinks/plugins/device_info/ios`)
|
|
||||||
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
|
|
||||||
- Flutter (from `Flutter`)
|
|
||||||
- flutter_flexible_toast (from `.symlinks/plugins/flutter_flexible_toast/ios`)
|
|
||||||
- flutter_inappwebview (from `.symlinks/plugins/flutter_inappwebview/ios`)
|
|
||||||
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
|
|
||||||
- flutter_plugin_android_lifecycle (from `.symlinks/plugins/flutter_plugin_android_lifecycle/ios`)
|
|
||||||
- hexcolor (from `.symlinks/plugins/hexcolor/ios`)
|
|
||||||
- image_cropper (from `.symlinks/plugins/image_cropper/ios`)
|
|
||||||
- image_picker (from `.symlinks/plugins/image_picker/ios`)
|
|
||||||
- local_auth (from `.symlinks/plugins/local_auth/ios`)
|
|
||||||
- manage_calendar_events (from `.symlinks/plugins/manage_calendar_events/ios`)
|
|
||||||
- map_launcher (from `.symlinks/plugins/map_launcher/ios`)
|
|
||||||
- path_provider_linux (from `.symlinks/plugins/path_provider_linux/ios`)
|
|
||||||
- permission_handler (from `.symlinks/plugins/permission_handler/ios`)
|
|
||||||
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
|
|
||||||
- shared_preferences_linux (from `.symlinks/plugins/shared_preferences_linux/ios`)
|
|
||||||
- shared_preferences_macos (from `.symlinks/plugins/shared_preferences_macos/ios`)
|
|
||||||
- shared_preferences_web (from `.symlinks/plugins/shared_preferences_web/ios`)
|
|
||||||
- url_launcher (from `.symlinks/plugins/url_launcher/ios`)
|
|
||||||
- url_launcher_linux (from `.symlinks/plugins/url_launcher_linux/ios`)
|
|
||||||
- url_launcher_macos (from `.symlinks/plugins/url_launcher_macos/ios`)
|
|
||||||
- url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`)
|
|
||||||
|
|
||||||
SPEC REPOS:
|
|
||||||
trunk:
|
|
||||||
- Firebase
|
|
||||||
- FirebaseAnalytics
|
|
||||||
- FirebaseAnalyticsInterop
|
|
||||||
- FirebaseCore
|
|
||||||
- FirebaseCoreDiagnostics
|
|
||||||
- FirebaseCoreDiagnosticsInterop
|
|
||||||
- FirebaseInstallations
|
|
||||||
- FirebaseInstanceID
|
|
||||||
- FirebaseMessaging
|
|
||||||
- GoogleAppMeasurement
|
|
||||||
- GoogleDataTransport
|
|
||||||
- GoogleDataTransportCCTSupport
|
|
||||||
- GoogleUtilities
|
|
||||||
- MTBBarcodeScanner
|
|
||||||
- nanopb
|
|
||||||
- PromisesObjC
|
|
||||||
- Protobuf
|
|
||||||
- Reachability
|
|
||||||
- SwiftProtobuf
|
|
||||||
- TOCropViewController
|
|
||||||
|
|
||||||
EXTERNAL SOURCES:
|
|
||||||
barcode_scan:
|
|
||||||
:path: ".symlinks/plugins/barcode_scan/ios"
|
|
||||||
connectivity:
|
|
||||||
:path: ".symlinks/plugins/connectivity/ios"
|
|
||||||
connectivity_for_web:
|
|
||||||
:path: ".symlinks/plugins/connectivity_for_web/ios"
|
|
||||||
connectivity_macos:
|
|
||||||
:path: ".symlinks/plugins/connectivity_macos/ios"
|
|
||||||
device_info:
|
|
||||||
:path: ".symlinks/plugins/device_info/ios"
|
|
||||||
firebase_messaging:
|
|
||||||
:path: ".symlinks/plugins/firebase_messaging/ios"
|
|
||||||
Flutter:
|
|
||||||
:path: Flutter
|
|
||||||
flutter_flexible_toast:
|
|
||||||
:path: ".symlinks/plugins/flutter_flexible_toast/ios"
|
|
||||||
flutter_inappwebview:
|
|
||||||
:path: ".symlinks/plugins/flutter_inappwebview/ios"
|
|
||||||
flutter_local_notifications:
|
|
||||||
:path: ".symlinks/plugins/flutter_local_notifications/ios"
|
|
||||||
flutter_plugin_android_lifecycle:
|
|
||||||
:path: ".symlinks/plugins/flutter_plugin_android_lifecycle/ios"
|
|
||||||
hexcolor:
|
|
||||||
:path: ".symlinks/plugins/hexcolor/ios"
|
|
||||||
image_cropper:
|
|
||||||
:path: ".symlinks/plugins/image_cropper/ios"
|
|
||||||
image_picker:
|
|
||||||
:path: ".symlinks/plugins/image_picker/ios"
|
|
||||||
local_auth:
|
|
||||||
:path: ".symlinks/plugins/local_auth/ios"
|
|
||||||
manage_calendar_events:
|
|
||||||
:path: ".symlinks/plugins/manage_calendar_events/ios"
|
|
||||||
map_launcher:
|
|
||||||
:path: ".symlinks/plugins/map_launcher/ios"
|
|
||||||
path_provider_linux:
|
|
||||||
:path: ".symlinks/plugins/path_provider_linux/ios"
|
|
||||||
permission_handler:
|
|
||||||
:path: ".symlinks/plugins/permission_handler/ios"
|
|
||||||
shared_preferences:
|
|
||||||
:path: ".symlinks/plugins/shared_preferences/ios"
|
|
||||||
shared_preferences_linux:
|
|
||||||
:path: ".symlinks/plugins/shared_preferences_linux/ios"
|
|
||||||
shared_preferences_macos:
|
|
||||||
:path: ".symlinks/plugins/shared_preferences_macos/ios"
|
|
||||||
shared_preferences_web:
|
|
||||||
:path: ".symlinks/plugins/shared_preferences_web/ios"
|
|
||||||
url_launcher:
|
|
||||||
:path: ".symlinks/plugins/url_launcher/ios"
|
|
||||||
url_launcher_linux:
|
|
||||||
:path: ".symlinks/plugins/url_launcher_linux/ios"
|
|
||||||
url_launcher_macos:
|
|
||||||
:path: ".symlinks/plugins/url_launcher_macos/ios"
|
|
||||||
url_launcher_web:
|
|
||||||
:path: ".symlinks/plugins/url_launcher_web/ios"
|
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
|
||||||
barcode_scan: a5c27959edfafaa0c771905bad0b29d6d39e4479
|
|
||||||
connectivity: c4130b2985d4ef6fd26f9702e886bd5260681467
|
|
||||||
connectivity_for_web: 2b8584556930d4bd490d82b836bcf45067ce345b
|
|
||||||
connectivity_macos: e2e9731b6b22dda39eb1b128f6969d574460e191
|
|
||||||
device_info: d7d233b645a32c40dfdc212de5cf646ca482f175
|
|
||||||
Firebase: 585ae467b3edda6a5444e788fda6888f024d8d6f
|
|
||||||
firebase_messaging: 21344b3b3a7d9d325d63a70e3750c0c798fe1e03
|
|
||||||
FirebaseAnalytics: 558f7a03d19de451093032c806f39d5f9dff096e
|
|
||||||
FirebaseAnalyticsInterop: 3f86269c38ae41f47afeb43ebf32a001f58fcdae
|
|
||||||
FirebaseCore: a2788a0d5f6c1dff17b8f79b4a73654a8d4bfdbd
|
|
||||||
FirebaseCoreDiagnostics: b59c024493a409f8aecba02c99928d0d8431d159
|
|
||||||
FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850
|
|
||||||
FirebaseInstallations: 2119fb3e46b0a88bfdbf12562f855ee3252462fa
|
|
||||||
FirebaseInstanceID: cef67c4967c7cecb56ea65d8acbb4834825c587b
|
|
||||||
FirebaseMessaging: 828e66eb357a893e3cebd9ee0f6bc1941447cc94
|
|
||||||
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
|
|
||||||
flutter_flexible_toast: 0547e740cae0c33bb7c51bcd931233f4584e1143
|
|
||||||
flutter_inappwebview: 69dfbac46157b336ffbec19ca6dfd4638c7bf189
|
|
||||||
flutter_local_notifications: 9e4738ce2471c5af910d961a6b7eadcf57c50186
|
|
||||||
flutter_plugin_android_lifecycle: dc0b544e129eebb77a6bfb1239d4d1c673a60a35
|
|
||||||
GoogleAppMeasurement: 2253e99c1f22638cf234c059144660c338ad76c3
|
|
||||||
GoogleDataTransport: 061fe7d9b476710e3cd8ea51e8e07d8b67c2b420
|
|
||||||
GoogleDataTransportCCTSupport: 0f39025e8cf51f168711bd3fb773938d7e62ddb5
|
|
||||||
GoogleUtilities: 39530bc0ad980530298e9c4af8549e991fd033b1
|
|
||||||
hexcolor: fdfb9c4258ad96e949c2dbcdf790a62194b8aa89
|
|
||||||
image_cropper: 3c16d7651730ffe85897f5a1c4e2547e6b54989a
|
|
||||||
image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09
|
|
||||||
local_auth: 25938960984c3a7f6e3253e3f8d962fdd16852bd
|
|
||||||
manage_calendar_events: 0338d505ea26cdfd20cd883279bc28afa11eca34
|
|
||||||
map_launcher: e325db1261d029ff33e08e03baccffe09593ffea
|
|
||||||
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
|
|
||||||
nanopb: 18003b5e52dab79db540fe93fe9579f399bd1ccd
|
|
||||||
path_provider_linux: 4d630dc393e1f20364f3e3b4a2ff41d9674a84e4
|
|
||||||
permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6
|
|
||||||
PromisesObjC: c119f3cd559f50b7ae681fa59dc1acd19173b7e6
|
|
||||||
Protobuf: 176220c526ad8bd09ab1fb40a978eac3fef665f7
|
|
||||||
Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96
|
|
||||||
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
|
|
||||||
shared_preferences_linux: afefbfe8d921e207f01ede8b60373d9e3b566b78
|
|
||||||
shared_preferences_macos: f3f29b71ccbb56bf40c9dd6396c9acf15e214087
|
|
||||||
shared_preferences_web: 141cce0c3ed1a1c5bf2a0e44f52d31eeb66e5ea9
|
|
||||||
SwiftProtobuf: bec1ae7d686ff73dd09d79866154f4970b891410
|
|
||||||
TOCropViewController: 2a1ae1242600b1f2d996fd91a5268b2309a33b5c
|
|
||||||
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
|
|
||||||
url_launcher_linux: ac237cb7a8058736e4aae38bdbcc748a4b394cc0
|
|
||||||
url_launcher_macos: fd7894421cd39320dce5f292fc99ea9270b2a313
|
|
||||||
url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c
|
|
||||||
|
|
||||||
PODFILE CHECKSUM: 2609452b760cd11039b14039a86564367a3d8ab9
|
|
||||||
|
|
||||||
COCOAPODS: 1.9.1
|
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Workspace
|
||||||
|
version = "1.0">
|
||||||
|
<FileRef
|
||||||
|
location = "group:Runner.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
|
</Workspace>
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IDEDidComputeMac32BitWarning</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>PreviewsEnabled</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@ -0,0 +1,91 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "1020"
|
||||||
|
version = "1.3">
|
||||||
|
<BuildAction
|
||||||
|
parallelizeBuildables = "YES"
|
||||||
|
buildImplicitDependencies = "YES">
|
||||||
|
<BuildActionEntries>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
|
BuildableName = "Runner.app"
|
||||||
|
BlueprintName = "Runner"
|
||||||
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
</BuildActionEntries>
|
||||||
|
</BuildAction>
|
||||||
|
<TestAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||||
|
<Testables>
|
||||||
|
</Testables>
|
||||||
|
<MacroExpansion>
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
|
BuildableName = "Runner.app"
|
||||||
|
BlueprintName = "Runner"
|
||||||
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</MacroExpansion>
|
||||||
|
<AdditionalOptions>
|
||||||
|
</AdditionalOptions>
|
||||||
|
</TestAction>
|
||||||
|
<LaunchAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
launchStyle = "0"
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
|
debugDocumentVersioning = "YES"
|
||||||
|
debugServiceExtension = "internal"
|
||||||
|
allowLocationSimulation = "YES">
|
||||||
|
<BuildableProductRunnable
|
||||||
|
runnableDebuggingMode = "0">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
|
BuildableName = "Runner.app"
|
||||||
|
BlueprintName = "Runner"
|
||||||
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
<AdditionalOptions>
|
||||||
|
</AdditionalOptions>
|
||||||
|
</LaunchAction>
|
||||||
|
<ProfileAction
|
||||||
|
buildConfiguration = "Profile"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
savedToolIdentifier = ""
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
debugDocumentVersioning = "YES">
|
||||||
|
<BuildableProductRunnable
|
||||||
|
runnableDebuggingMode = "0">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||||
|
BuildableName = "Runner.app"
|
||||||
|
BlueprintName = "Runner"
|
||||||
|
ReferencedContainer = "container:Runner.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildableProductRunnable>
|
||||||
|
</ProfileAction>
|
||||||
|
<AnalyzeAction
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
</AnalyzeAction>
|
||||||
|
<ArchiveAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
revealArchiveInOrganizer = "YES">
|
||||||
|
</ArchiveAction>
|
||||||
|
</Scheme>
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>IDEDidComputeMac32BitWarning</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>PreviewsEnabled</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
import UIKit
|
||||||
|
import Flutter
|
||||||
|
import GoogleMaps
|
||||||
|
|
||||||
|
@UIApplicationMain
|
||||||
|
@objc class AppDelegate: FlutterAppDelegate {
|
||||||
|
override func application(
|
||||||
|
_ application: UIApplication,
|
||||||
|
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
|
||||||
|
) -> Bool {
|
||||||
|
GMSServices.provideAPIKey("AIzaSyCiiJiHkocPbcziHt9O8rGWavDrxHRQys8")
|
||||||
|
GeneratedPluginRegistrant.register(with: self)
|
||||||
|
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
#import "GeneratedPluginRegistrant.h"
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
class CMCGetItemsRequestModel {
|
||||||
|
double versionID;
|
||||||
|
int channel;
|
||||||
|
int languageID;
|
||||||
|
String iPAdress;
|
||||||
|
String generalid;
|
||||||
|
int patientOutSA;
|
||||||
|
String sessionID;
|
||||||
|
bool isDentalAllowedBackend;
|
||||||
|
int deviceTypeID;
|
||||||
|
int patientID;
|
||||||
|
String tokenID;
|
||||||
|
int patientTypeID;
|
||||||
|
int patientType;
|
||||||
|
int checkupType;
|
||||||
|
|
||||||
|
CMCGetItemsRequestModel(
|
||||||
|
{this.versionID,
|
||||||
|
this.channel,
|
||||||
|
this.languageID,
|
||||||
|
this.iPAdress,
|
||||||
|
this.generalid,
|
||||||
|
this.patientOutSA,
|
||||||
|
this.sessionID,
|
||||||
|
this.isDentalAllowedBackend,
|
||||||
|
this.deviceTypeID,
|
||||||
|
this.patientID,
|
||||||
|
this.tokenID,
|
||||||
|
this.patientTypeID,
|
||||||
|
this.patientType,
|
||||||
|
this.checkupType});
|
||||||
|
|
||||||
|
CMCGetItemsRequestModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
versionID = json['VersionID'];
|
||||||
|
channel = json['Channel'];
|
||||||
|
languageID = json['LanguageID'];
|
||||||
|
iPAdress = json['IPAdress'];
|
||||||
|
generalid = json['generalid'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
sessionID = json['SessionID'];
|
||||||
|
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||||
|
deviceTypeID = json['DeviceTypeID'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
tokenID = json['TokenID'];
|
||||||
|
patientTypeID = json['PatientTypeID'];
|
||||||
|
patientType = json['PatientType'];
|
||||||
|
checkupType = json['CheckupType'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['VersionID'] = this.versionID;
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['LanguageID'] = this.languageID;
|
||||||
|
data['IPAdress'] = this.iPAdress;
|
||||||
|
data['generalid'] = this.generalid;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
data['SessionID'] = this.sessionID;
|
||||||
|
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||||
|
data['DeviceTypeID'] = this.deviceTypeID;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['TokenID'] = this.tokenID;
|
||||||
|
data['PatientTypeID'] = this.patientTypeID;
|
||||||
|
data['PatientType'] = this.patientType;
|
||||||
|
data['CheckupType'] = this.checkupType;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,18 @@
|
|||||||
|
class CMCGetItemsResponseModel {
|
||||||
|
String itemDescription;
|
||||||
|
String itemName;
|
||||||
|
|
||||||
|
CMCGetItemsResponseModel({this.itemDescription, this.itemName});
|
||||||
|
|
||||||
|
CMCGetItemsResponseModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
itemDescription = json['ItemDescription'];
|
||||||
|
itemName = json['ItemName'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['ItemDescription'] = this.itemDescription;
|
||||||
|
data['ItemName'] = this.itemName;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,135 @@
|
|||||||
|
class CMCInsertPresOrderRequestModel {
|
||||||
|
double versionID;
|
||||||
|
int channel;
|
||||||
|
int languageID;
|
||||||
|
String iPAdress;
|
||||||
|
String generalid;
|
||||||
|
int patientOutSA;
|
||||||
|
String sessionID;
|
||||||
|
bool isDentalAllowedBackend;
|
||||||
|
int deviceTypeID;
|
||||||
|
int patientID;
|
||||||
|
String tokenID;
|
||||||
|
int patientTypeID;
|
||||||
|
int patientType;
|
||||||
|
double latitude;
|
||||||
|
double longitude;
|
||||||
|
int createdBy;
|
||||||
|
int orderServiceID;
|
||||||
|
List<PatientERCMCInsertServicesList> patientERCMCInsertServicesList;
|
||||||
|
|
||||||
|
CMCInsertPresOrderRequestModel(
|
||||||
|
{this.versionID,
|
||||||
|
this.channel,
|
||||||
|
this.languageID,
|
||||||
|
this.iPAdress,
|
||||||
|
this.generalid,
|
||||||
|
this.patientOutSA,
|
||||||
|
this.sessionID,
|
||||||
|
this.isDentalAllowedBackend,
|
||||||
|
this.deviceTypeID,
|
||||||
|
this.patientID,
|
||||||
|
this.tokenID,
|
||||||
|
this.patientTypeID,
|
||||||
|
this.patientType,
|
||||||
|
this.latitude,
|
||||||
|
this.longitude,
|
||||||
|
this.createdBy,
|
||||||
|
this.orderServiceID,
|
||||||
|
this.patientERCMCInsertServicesList});
|
||||||
|
|
||||||
|
CMCInsertPresOrderRequestModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
versionID = json['VersionID'];
|
||||||
|
channel = json['Channel'];
|
||||||
|
languageID = json['LanguageID'];
|
||||||
|
iPAdress = json['IPAdress'];
|
||||||
|
generalid = json['generalid'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
sessionID = json['SessionID'];
|
||||||
|
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||||
|
deviceTypeID = json['DeviceTypeID'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
tokenID = json['TokenID'];
|
||||||
|
patientTypeID = json['PatientTypeID'];
|
||||||
|
patientType = json['PatientType'];
|
||||||
|
latitude = json['Latitude'];
|
||||||
|
longitude = json['Longitude'];
|
||||||
|
createdBy = json['CreatedBy'];
|
||||||
|
orderServiceID = json['OrderServiceID'];
|
||||||
|
if (json['PatientER_CMC_InsertServicesList'] != null) {
|
||||||
|
patientERCMCInsertServicesList =
|
||||||
|
new List<PatientERCMCInsertServicesList>();
|
||||||
|
json['PatientER_CMC_InsertServicesList'].forEach((v) {
|
||||||
|
patientERCMCInsertServicesList
|
||||||
|
.add(new PatientERCMCInsertServicesList.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['VersionID'] = this.versionID;
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['LanguageID'] = this.languageID;
|
||||||
|
data['IPAdress'] = this.iPAdress;
|
||||||
|
data['generalid'] = this.generalid;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
data['SessionID'] = this.sessionID;
|
||||||
|
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||||
|
data['DeviceTypeID'] = this.deviceTypeID;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['TokenID'] = this.tokenID;
|
||||||
|
data['PatientTypeID'] = this.patientTypeID;
|
||||||
|
data['PatientType'] = this.patientType;
|
||||||
|
data['Latitude'] = this.latitude;
|
||||||
|
data['Longitude'] = this.longitude;
|
||||||
|
data['CreatedBy'] = this.createdBy;
|
||||||
|
data['OrderServiceID'] = this.orderServiceID;
|
||||||
|
if (this.patientERCMCInsertServicesList != null) {
|
||||||
|
data['PatientER_CMC_InsertServicesList'] =
|
||||||
|
this.patientERCMCInsertServicesList.map((v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class PatientERCMCInsertServicesList {
|
||||||
|
int recordID;
|
||||||
|
String serviceID;
|
||||||
|
String selectedServiceName;
|
||||||
|
String selectedServiceNameAR;
|
||||||
|
dynamic price;
|
||||||
|
dynamic vAT;
|
||||||
|
dynamic totalPrice;
|
||||||
|
|
||||||
|
PatientERCMCInsertServicesList(
|
||||||
|
{this.recordID,
|
||||||
|
this.serviceID,
|
||||||
|
this.selectedServiceName,
|
||||||
|
this.selectedServiceNameAR,
|
||||||
|
this.price,
|
||||||
|
this.vAT,
|
||||||
|
this.totalPrice});
|
||||||
|
|
||||||
|
PatientERCMCInsertServicesList.fromJson(Map<String, dynamic> json) {
|
||||||
|
recordID = json['RecordID'];
|
||||||
|
serviceID = json['ServiceID'];
|
||||||
|
selectedServiceName = json['selectedServiceName'];
|
||||||
|
selectedServiceNameAR = json['selectedServiceNameAR'];
|
||||||
|
price = json['Price'];
|
||||||
|
vAT = json['VAT'];
|
||||||
|
totalPrice = json['TotalPrice'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['RecordID'] = this.recordID;
|
||||||
|
data['ServiceID'] = this.serviceID;
|
||||||
|
data['selectedServiceName'] = this.selectedServiceName;
|
||||||
|
data['selectedServiceNameAR'] = this.selectedServiceNameAR;
|
||||||
|
data['Price'] = this.price;
|
||||||
|
data['VAT'] = this.vAT;
|
||||||
|
data['TotalPrice'] = this.totalPrice;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,72 @@
|
|||||||
|
class GetCMCServicesRequestModel {
|
||||||
|
int channel;
|
||||||
|
int deviceTypeID;
|
||||||
|
int genderID;
|
||||||
|
String generalid;
|
||||||
|
String identificationNo;
|
||||||
|
String iPAdress;
|
||||||
|
bool isDentalAllowedBackend;
|
||||||
|
int languageID;
|
||||||
|
int patientID;
|
||||||
|
int patientOutSA;
|
||||||
|
int patientType;
|
||||||
|
int patientTypeID;
|
||||||
|
String sessionID;
|
||||||
|
String tokenID;
|
||||||
|
double versionID;
|
||||||
|
|
||||||
|
GetCMCServicesRequestModel(
|
||||||
|
{this.channel,
|
||||||
|
this.deviceTypeID,
|
||||||
|
this.genderID,
|
||||||
|
this.generalid,
|
||||||
|
this.identificationNo,
|
||||||
|
this.iPAdress,
|
||||||
|
this.isDentalAllowedBackend,
|
||||||
|
this.languageID,
|
||||||
|
this.patientID,
|
||||||
|
this.patientOutSA,
|
||||||
|
this.patientType,
|
||||||
|
this.patientTypeID,
|
||||||
|
this.sessionID,
|
||||||
|
this.tokenID,
|
||||||
|
this.versionID});
|
||||||
|
|
||||||
|
GetCMCServicesRequestModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
channel = json['Channel'];
|
||||||
|
deviceTypeID = json['DeviceTypeID'];
|
||||||
|
genderID = json['GenderID'];
|
||||||
|
generalid = json['generalid'];
|
||||||
|
identificationNo = json['IdentificationNo'];
|
||||||
|
iPAdress = json['IPAdress'];
|
||||||
|
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||||
|
languageID = json['LanguageID'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
patientType = json['PatientType'];
|
||||||
|
patientTypeID = json['PatientTypeID'];
|
||||||
|
sessionID = json['SessionID'];
|
||||||
|
tokenID = json['TokenID'];
|
||||||
|
versionID = json['VersionID'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['DeviceTypeID'] = this.deviceTypeID;
|
||||||
|
data['GenderID'] = this.genderID;
|
||||||
|
data['generalid'] = this.generalid;
|
||||||
|
data['IdentificationNo'] = this.identificationNo;
|
||||||
|
data['IPAdress'] = this.iPAdress;
|
||||||
|
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||||
|
data['LanguageID'] = this.languageID;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
data['PatientType'] = this.patientType;
|
||||||
|
data['PatientTypeID'] = this.patientTypeID;
|
||||||
|
data['SessionID'] = this.sessionID;
|
||||||
|
data['TokenID'] = this.tokenID;
|
||||||
|
data['VersionID'] = this.versionID;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
class GetCMCServicesResponseModel {
|
||||||
|
String description;
|
||||||
|
String descriptionN;
|
||||||
|
int iD;
|
||||||
|
bool isActive;
|
||||||
|
dynamic price;
|
||||||
|
int serviceID;
|
||||||
|
dynamic totalPrice;
|
||||||
|
dynamic vAT;
|
||||||
|
|
||||||
|
GetCMCServicesResponseModel(
|
||||||
|
{this.description,
|
||||||
|
this.descriptionN,
|
||||||
|
this.iD,
|
||||||
|
this.isActive,
|
||||||
|
this.price,
|
||||||
|
this.serviceID,
|
||||||
|
this.totalPrice,
|
||||||
|
this.vAT});
|
||||||
|
|
||||||
|
GetCMCServicesResponseModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
description = json['Description'];
|
||||||
|
descriptionN = json['DescriptionN'];
|
||||||
|
iD = json['ID'];
|
||||||
|
isActive = json['IsActive'];
|
||||||
|
price = json['Price'];
|
||||||
|
serviceID = json['ServiceID'];
|
||||||
|
totalPrice = json['TotalPrice'];
|
||||||
|
vAT = json['VAT'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['Description'] = this.description;
|
||||||
|
data['DescriptionN'] = this.descriptionN;
|
||||||
|
data['ID'] = this.iD;
|
||||||
|
data['IsActive'] = this.isActive;
|
||||||
|
data['Price'] = this.price;
|
||||||
|
data['ServiceID'] = this.serviceID;
|
||||||
|
data['TotalPrice'] = this.totalPrice;
|
||||||
|
data['VAT'] = this.vAT;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,64 @@
|
|||||||
|
class HHCGetAllServicesRequestModel {
|
||||||
|
double versionID;
|
||||||
|
int channel;
|
||||||
|
int languageID;
|
||||||
|
String iPAdress;
|
||||||
|
String generalid;
|
||||||
|
int patientOutSA;
|
||||||
|
String sessionID;
|
||||||
|
bool isDentalAllowedBackend;
|
||||||
|
int deviceTypeID;
|
||||||
|
int patientID;
|
||||||
|
String tokenID;
|
||||||
|
int patientTypeID;
|
||||||
|
int patientType;
|
||||||
|
|
||||||
|
HHCGetAllServicesRequestModel(
|
||||||
|
{this.versionID,
|
||||||
|
this.channel,
|
||||||
|
this.languageID,
|
||||||
|
this.iPAdress,
|
||||||
|
this.generalid,
|
||||||
|
this.patientOutSA,
|
||||||
|
this.sessionID,
|
||||||
|
this.isDentalAllowedBackend,
|
||||||
|
this.deviceTypeID,
|
||||||
|
this.patientID,
|
||||||
|
this.tokenID,
|
||||||
|
this.patientTypeID,
|
||||||
|
this.patientType});
|
||||||
|
|
||||||
|
HHCGetAllServicesRequestModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
versionID = json['VersionID'];
|
||||||
|
channel = json['Channel'];
|
||||||
|
languageID = json['LanguageID'];
|
||||||
|
iPAdress = json['IPAdress'];
|
||||||
|
generalid = json['generalid'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
sessionID = json['SessionID'];
|
||||||
|
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||||
|
deviceTypeID = json['DeviceTypeID'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
tokenID = json['TokenID'];
|
||||||
|
patientTypeID = json['PatientTypeID'];
|
||||||
|
patientType = json['PatientType'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['VersionID'] = this.versionID;
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['LanguageID'] = this.languageID;
|
||||||
|
data['IPAdress'] = this.iPAdress;
|
||||||
|
data['generalid'] = this.generalid;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
data['SessionID'] = this.sessionID;
|
||||||
|
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||||
|
data['DeviceTypeID'] = this.deviceTypeID;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['TokenID'] = this.tokenID;
|
||||||
|
data['PatientTypeID'] = this.patientTypeID;
|
||||||
|
data['PatientType'] = this.patientType;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
class HHCGetAllServicesResponseModel {
|
||||||
|
int iD;
|
||||||
|
int serviceID;
|
||||||
|
String description;
|
||||||
|
String descriptionN;
|
||||||
|
bool isActive;
|
||||||
|
|
||||||
|
HHCGetAllServicesResponseModel(
|
||||||
|
{this.iD,
|
||||||
|
this.serviceID,
|
||||||
|
this.description,
|
||||||
|
this.descriptionN,
|
||||||
|
this.isActive});
|
||||||
|
|
||||||
|
HHCGetAllServicesResponseModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
iD = json['ID'];
|
||||||
|
serviceID = json['ServiceID'];
|
||||||
|
description = json['Description'];
|
||||||
|
descriptionN = json['DescriptionN'];
|
||||||
|
isActive = json['IsActive'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['ID'] = this.iD;
|
||||||
|
data['ServiceID'] = this.serviceID;
|
||||||
|
data['Description'] = this.description;
|
||||||
|
data['DescriptionN'] = this.descriptionN;
|
||||||
|
data['IsActive'] = this.isActive;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
class PatientERHHCInsertServicesList {
|
||||||
|
int recordID;
|
||||||
|
int serviceID;
|
||||||
|
String serviceName;
|
||||||
|
|
||||||
|
PatientERHHCInsertServicesList(
|
||||||
|
{this.recordID, this.serviceID, this.serviceName});
|
||||||
|
|
||||||
|
PatientERHHCInsertServicesList.fromJson(Map<String, dynamic> json) {
|
||||||
|
recordID = json['RecordID'];
|
||||||
|
serviceID = json['ServiceID'];
|
||||||
|
serviceName = json['ServiceName'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['RecordID'] = this.recordID;
|
||||||
|
data['ServiceID'] = this.serviceID;
|
||||||
|
data['ServiceName'] = this.serviceName;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,64 @@
|
|||||||
|
class GetHHCAllPresOrdersRequestModel {
|
||||||
|
double versionID;
|
||||||
|
int channel;
|
||||||
|
int languageID;
|
||||||
|
String iPAdress;
|
||||||
|
String generalid;
|
||||||
|
int patientOutSA;
|
||||||
|
String sessionID;
|
||||||
|
bool isDentalAllowedBackend;
|
||||||
|
int deviceTypeID;
|
||||||
|
int patientID;
|
||||||
|
String tokenID;
|
||||||
|
int patientTypeID;
|
||||||
|
int patientType;
|
||||||
|
|
||||||
|
GetHHCAllPresOrdersRequestModel(
|
||||||
|
{this.versionID,
|
||||||
|
this.channel,
|
||||||
|
this.languageID,
|
||||||
|
this.iPAdress,
|
||||||
|
this.generalid,
|
||||||
|
this.patientOutSA,
|
||||||
|
this.sessionID,
|
||||||
|
this.isDentalAllowedBackend,
|
||||||
|
this.deviceTypeID,
|
||||||
|
this.patientID,
|
||||||
|
this.tokenID,
|
||||||
|
this.patientTypeID,
|
||||||
|
this.patientType});
|
||||||
|
|
||||||
|
GetHHCAllPresOrdersRequestModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
versionID = json['VersionID'];
|
||||||
|
channel = json['Channel'];
|
||||||
|
languageID = json['LanguageID'];
|
||||||
|
iPAdress = json['IPAdress'];
|
||||||
|
generalid = json['generalid'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
sessionID = json['SessionID'];
|
||||||
|
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||||
|
deviceTypeID = json['DeviceTypeID'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
tokenID = json['TokenID'];
|
||||||
|
patientTypeID = json['PatientTypeID'];
|
||||||
|
patientType = json['PatientType'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['VersionID'] = this.versionID;
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['LanguageID'] = this.languageID;
|
||||||
|
data['IPAdress'] = this.iPAdress;
|
||||||
|
data['generalid'] = this.generalid;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
data['SessionID'] = this.sessionID;
|
||||||
|
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||||
|
data['DeviceTypeID'] = this.deviceTypeID;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['TokenID'] = this.tokenID;
|
||||||
|
data['PatientTypeID'] = this.patientTypeID;
|
||||||
|
data['PatientType'] = this.patientType;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,132 @@
|
|||||||
|
class GetHHCAllPresOrdersResponseModel {
|
||||||
|
int iD;
|
||||||
|
String patientID;
|
||||||
|
bool patientOutSA;
|
||||||
|
bool isOutPatient;
|
||||||
|
int projectID;
|
||||||
|
int nearestProjectID;
|
||||||
|
double longitude;
|
||||||
|
double latitude;
|
||||||
|
String appointmentNo;
|
||||||
|
String dischargeID;
|
||||||
|
int lineItemNo;
|
||||||
|
int status;
|
||||||
|
String description;
|
||||||
|
String descriptionN;
|
||||||
|
String createdOn;
|
||||||
|
int serviceID;
|
||||||
|
int createdBy;
|
||||||
|
String editedOn;
|
||||||
|
int editedBy;
|
||||||
|
int channel;
|
||||||
|
dynamic clientRequestID;
|
||||||
|
bool returnedToQueue;
|
||||||
|
dynamic pickupDateTime;
|
||||||
|
dynamic pickupLocationName;
|
||||||
|
dynamic dropoffLocationName;
|
||||||
|
int realRRTHaveTransactions;
|
||||||
|
String nearestProjectDescription;
|
||||||
|
String nearestProjectDescriptionN;
|
||||||
|
String projectDescription;
|
||||||
|
String projectDescriptionN;
|
||||||
|
|
||||||
|
GetHHCAllPresOrdersResponseModel(
|
||||||
|
{this.iD,
|
||||||
|
this.patientID,
|
||||||
|
this.patientOutSA,
|
||||||
|
this.isOutPatient,
|
||||||
|
this.projectID,
|
||||||
|
this.nearestProjectID,
|
||||||
|
this.longitude,
|
||||||
|
this.latitude,
|
||||||
|
this.appointmentNo,
|
||||||
|
this.dischargeID,
|
||||||
|
this.lineItemNo,
|
||||||
|
this.status,
|
||||||
|
this.description,
|
||||||
|
this.descriptionN,
|
||||||
|
this.createdOn,
|
||||||
|
this.serviceID,
|
||||||
|
this.createdBy,
|
||||||
|
this.editedOn,
|
||||||
|
this.editedBy,
|
||||||
|
this.channel,
|
||||||
|
this.clientRequestID,
|
||||||
|
this.returnedToQueue,
|
||||||
|
this.pickupDateTime,
|
||||||
|
this.pickupLocationName,
|
||||||
|
this.dropoffLocationName,
|
||||||
|
this.realRRTHaveTransactions,
|
||||||
|
this.nearestProjectDescription,
|
||||||
|
this.nearestProjectDescriptionN,
|
||||||
|
this.projectDescription,
|
||||||
|
this.projectDescriptionN});
|
||||||
|
|
||||||
|
GetHHCAllPresOrdersResponseModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
iD = json['ID'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
isOutPatient = json['IsOutPatient'];
|
||||||
|
projectID = json['ProjectID'];
|
||||||
|
nearestProjectID = json['NearestProjectID'];
|
||||||
|
longitude = json['Longitude'];
|
||||||
|
latitude = json['Latitude'];
|
||||||
|
appointmentNo = json['AppointmentNo'];
|
||||||
|
dischargeID = json['DischargeID'];
|
||||||
|
lineItemNo = json['LineItemNo'];
|
||||||
|
status = json['Status'];
|
||||||
|
description = json['Description'];
|
||||||
|
descriptionN = json['DescriptionN'];
|
||||||
|
createdOn = json['CreatedOn'];
|
||||||
|
serviceID = json['ServiceID'];
|
||||||
|
createdBy = json['CreatedBy'];
|
||||||
|
editedOn = json['EditedOn'];
|
||||||
|
editedBy = json['EditedBy'];
|
||||||
|
channel = json['Channel'];
|
||||||
|
clientRequestID = json['ClientRequestID'];
|
||||||
|
returnedToQueue = json['ReturnedToQueue'];
|
||||||
|
pickupDateTime = json['PickupDateTime'];
|
||||||
|
pickupLocationName = json['PickupLocationName'];
|
||||||
|
dropoffLocationName = json['DropoffLocationName'];
|
||||||
|
realRRTHaveTransactions = json['RealRRT_HaveTransactions'];
|
||||||
|
nearestProjectDescription = json['NearestProjectDescription'];
|
||||||
|
nearestProjectDescriptionN = json['NearestProjectDescriptionN'];
|
||||||
|
projectDescription = json['ProjectDescription'];
|
||||||
|
projectDescriptionN = json['ProjectDescriptionN'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['ID'] = this.iD;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
data['IsOutPatient'] = this.isOutPatient;
|
||||||
|
data['ProjectID'] = this.projectID;
|
||||||
|
data['NearestProjectID'] = this.nearestProjectID;
|
||||||
|
data['Longitude'] = this.longitude;
|
||||||
|
data['Latitude'] = this.latitude;
|
||||||
|
data['AppointmentNo'] = this.appointmentNo;
|
||||||
|
data['DischargeID'] = this.dischargeID;
|
||||||
|
data['LineItemNo'] = this.lineItemNo;
|
||||||
|
data['Status'] = this.status;
|
||||||
|
data['Description'] = this.description;
|
||||||
|
data['DescriptionN'] = this.descriptionN;
|
||||||
|
data['CreatedOn'] = this.createdOn;
|
||||||
|
data['ServiceID'] = this.serviceID;
|
||||||
|
data['CreatedBy'] = this.createdBy;
|
||||||
|
data['EditedOn'] = this.editedOn;
|
||||||
|
data['EditedBy'] = this.editedBy;
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['ClientRequestID'] = this.clientRequestID;
|
||||||
|
data['ReturnedToQueue'] = this.returnedToQueue;
|
||||||
|
data['PickupDateTime'] = this.pickupDateTime;
|
||||||
|
data['PickupLocationName'] = this.pickupLocationName;
|
||||||
|
data['DropoffLocationName'] = this.dropoffLocationName;
|
||||||
|
data['RealRRT_HaveTransactions'] = this.realRRTHaveTransactions;
|
||||||
|
data['NearestProjectDescription'] = this.nearestProjectDescription;
|
||||||
|
data['NearestProjectDescriptionN'] = this.nearestProjectDescriptionN;
|
||||||
|
data['ProjectDescription'] = this.projectDescription;
|
||||||
|
data['ProjectDescriptionN'] = this.projectDescriptionN;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
class GetOrderDetailByOrderIDRequestModel {
|
||||||
|
double versionID;
|
||||||
|
int channel;
|
||||||
|
int languageID;
|
||||||
|
String iPAdress;
|
||||||
|
String generalid;
|
||||||
|
int patientOutSA;
|
||||||
|
String sessionID;
|
||||||
|
bool isDentalAllowedBackend;
|
||||||
|
int deviceTypeID;
|
||||||
|
int patientID;
|
||||||
|
String tokenID;
|
||||||
|
int patientTypeID;
|
||||||
|
int patientType;
|
||||||
|
int presOrderID;
|
||||||
|
|
||||||
|
GetOrderDetailByOrderIDRequestModel(
|
||||||
|
{this.versionID,
|
||||||
|
this.channel,
|
||||||
|
this.languageID,
|
||||||
|
this.iPAdress,
|
||||||
|
this.generalid,
|
||||||
|
this.patientOutSA,
|
||||||
|
this.sessionID,
|
||||||
|
this.isDentalAllowedBackend,
|
||||||
|
this.deviceTypeID,
|
||||||
|
this.patientID,
|
||||||
|
this.tokenID,
|
||||||
|
this.patientTypeID,
|
||||||
|
this.patientType,
|
||||||
|
this.presOrderID});
|
||||||
|
|
||||||
|
GetOrderDetailByOrderIDRequestModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
versionID = json['VersionID'];
|
||||||
|
channel = json['Channel'];
|
||||||
|
languageID = json['LanguageID'];
|
||||||
|
iPAdress = json['IPAdress'];
|
||||||
|
generalid = json['generalid'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
sessionID = json['SessionID'];
|
||||||
|
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||||
|
deviceTypeID = json['DeviceTypeID'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
tokenID = json['TokenID'];
|
||||||
|
patientTypeID = json['PatientTypeID'];
|
||||||
|
patientType = json['PatientType'];
|
||||||
|
presOrderID = json['PresOrderID'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['VersionID'] = this.versionID;
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['LanguageID'] = this.languageID;
|
||||||
|
data['IPAdress'] = this.iPAdress;
|
||||||
|
data['generalid'] = this.generalid;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
data['SessionID'] = this.sessionID;
|
||||||
|
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||||
|
data['DeviceTypeID'] = this.deviceTypeID;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['TokenID'] = this.tokenID;
|
||||||
|
data['PatientTypeID'] = this.patientTypeID;
|
||||||
|
data['PatientType'] = this.patientType;
|
||||||
|
data['PresOrderID'] = this.presOrderID;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
class GetOrderDetailByOrderIDResponseModel {
|
||||||
|
int iD;
|
||||||
|
int presOrderID;
|
||||||
|
int hHCServiceID;
|
||||||
|
int createdBy;
|
||||||
|
String createdOn;
|
||||||
|
int editedBy;
|
||||||
|
String editedOn;
|
||||||
|
bool isActive;
|
||||||
|
String description;
|
||||||
|
String descriptionN;
|
||||||
|
|
||||||
|
GetOrderDetailByOrderIDResponseModel(
|
||||||
|
{this.iD,
|
||||||
|
this.presOrderID,
|
||||||
|
this.hHCServiceID,
|
||||||
|
this.createdBy,
|
||||||
|
this.createdOn,
|
||||||
|
this.editedBy,
|
||||||
|
this.editedOn,
|
||||||
|
this.isActive,
|
||||||
|
this.description,
|
||||||
|
this.descriptionN});
|
||||||
|
|
||||||
|
GetOrderDetailByOrderIDResponseModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
iD = json['ID'];
|
||||||
|
presOrderID = json['PresOrderID'];
|
||||||
|
hHCServiceID = json['HHC_ServiceID'];
|
||||||
|
createdBy = json['CreatedBy'];
|
||||||
|
createdOn = json['CreatedOn'];
|
||||||
|
editedBy = json['EditedBy'];
|
||||||
|
editedOn = json['EditedOn'];
|
||||||
|
isActive = json['IsActive'];
|
||||||
|
description = json['Description'];
|
||||||
|
descriptionN = json['DescriptionN'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['ID'] = this.iD;
|
||||||
|
data['PresOrderID'] = this.presOrderID;
|
||||||
|
data['HHC_ServiceID'] = this.hHCServiceID;
|
||||||
|
data['CreatedBy'] = this.createdBy;
|
||||||
|
data['CreatedOn'] = this.createdOn;
|
||||||
|
data['EditedBy'] = this.editedBy;
|
||||||
|
data['EditedOn'] = this.editedOn;
|
||||||
|
data['IsActive'] = this.isActive;
|
||||||
|
data['Description'] = this.description;
|
||||||
|
data['DescriptionN'] = this.descriptionN;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,96 @@
|
|||||||
|
import 'PatientERHHCInsertServicesList.dart';
|
||||||
|
|
||||||
|
class PatientERInsertPresOrderRequestModel {
|
||||||
|
double versionID;
|
||||||
|
int channel;
|
||||||
|
int languageID;
|
||||||
|
String iPAdress;
|
||||||
|
String generalid;
|
||||||
|
int patientOutSA;
|
||||||
|
String sessionID;
|
||||||
|
bool isDentalAllowedBackend;
|
||||||
|
int deviceTypeID;
|
||||||
|
int patientID;
|
||||||
|
String tokenID;
|
||||||
|
int patientTypeID;
|
||||||
|
int patientType;
|
||||||
|
double latitude;
|
||||||
|
double longitude;
|
||||||
|
int createdBy;
|
||||||
|
int orderServiceID;
|
||||||
|
List<PatientERHHCInsertServicesList> patientERHHCInsertServicesList =List();
|
||||||
|
|
||||||
|
PatientERInsertPresOrderRequestModel(
|
||||||
|
{this.versionID,
|
||||||
|
this.channel,
|
||||||
|
this.languageID,
|
||||||
|
this.iPAdress,
|
||||||
|
this.generalid,
|
||||||
|
this.patientOutSA,
|
||||||
|
this.sessionID,
|
||||||
|
this.isDentalAllowedBackend,
|
||||||
|
this.deviceTypeID,
|
||||||
|
this.patientID,
|
||||||
|
this.tokenID,
|
||||||
|
this.patientTypeID,
|
||||||
|
this.patientType,
|
||||||
|
this.latitude,
|
||||||
|
this.longitude,
|
||||||
|
this.createdBy,
|
||||||
|
this.orderServiceID,
|
||||||
|
});
|
||||||
|
|
||||||
|
PatientERInsertPresOrderRequestModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
versionID = json['VersionID'];
|
||||||
|
channel = json['Channel'];
|
||||||
|
languageID = json['LanguageID'];
|
||||||
|
iPAdress = json['IPAdress'];
|
||||||
|
generalid = json['generalid'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
sessionID = json['SessionID'];
|
||||||
|
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||||
|
deviceTypeID = json['DeviceTypeID'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
tokenID = json['TokenID'];
|
||||||
|
patientTypeID = json['PatientTypeID'];
|
||||||
|
patientType = json['PatientType'];
|
||||||
|
latitude = json['Latitude'];
|
||||||
|
longitude = json['Longitude'];
|
||||||
|
createdBy = json['CreatedBy'];
|
||||||
|
orderServiceID = json['OrderServiceID'];
|
||||||
|
if (json['PatientER_HHC_InsertServicesList'] != null) {
|
||||||
|
patientERHHCInsertServicesList =
|
||||||
|
new List<PatientERHHCInsertServicesList>();
|
||||||
|
json['PatientER_HHC_InsertServicesList'].forEach((v) {
|
||||||
|
patientERHHCInsertServicesList
|
||||||
|
.add(new PatientERHHCInsertServicesList.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['VersionID'] = this.versionID;
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['LanguageID'] = this.languageID;
|
||||||
|
data['IPAdress'] = this.iPAdress;
|
||||||
|
data['generalid'] = this.generalid;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
data['SessionID'] = this.sessionID;
|
||||||
|
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||||
|
data['DeviceTypeID'] = this.deviceTypeID;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['TokenID'] = this.tokenID;
|
||||||
|
data['PatientTypeID'] = this.patientTypeID;
|
||||||
|
data['PatientType'] = this.patientType;
|
||||||
|
data['Latitude'] = this.latitude;
|
||||||
|
data['Longitude'] = this.longitude;
|
||||||
|
data['CreatedBy'] = this.createdBy;
|
||||||
|
data['OrderServiceID'] = this.orderServiceID;
|
||||||
|
if (this.patientERHHCInsertServicesList != null) {
|
||||||
|
data['PatientER_HHC_InsertServicesList'] =
|
||||||
|
this.patientERHHCInsertServicesList.map((v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,80 @@
|
|||||||
|
class UpdatePresOrderRequestModel {
|
||||||
|
double versionID;
|
||||||
|
int channel;
|
||||||
|
int languageID;
|
||||||
|
String iPAdress;
|
||||||
|
String generalid;
|
||||||
|
int patientOutSA;
|
||||||
|
String sessionID;
|
||||||
|
bool isDentalAllowedBackend;
|
||||||
|
int deviceTypeID;
|
||||||
|
int patientID;
|
||||||
|
String tokenID;
|
||||||
|
int patientTypeID;
|
||||||
|
int patientType;
|
||||||
|
int presOrderID;
|
||||||
|
int presOrderStatus;
|
||||||
|
int editedBy;
|
||||||
|
String rejectionReason;
|
||||||
|
|
||||||
|
UpdatePresOrderRequestModel(
|
||||||
|
{this.versionID,
|
||||||
|
this.channel,
|
||||||
|
this.languageID,
|
||||||
|
this.iPAdress,
|
||||||
|
this.generalid,
|
||||||
|
this.patientOutSA,
|
||||||
|
this.sessionID,
|
||||||
|
this.isDentalAllowedBackend,
|
||||||
|
this.deviceTypeID,
|
||||||
|
this.patientID,
|
||||||
|
this.tokenID,
|
||||||
|
this.patientTypeID,
|
||||||
|
this.patientType,
|
||||||
|
this.presOrderID,
|
||||||
|
this.presOrderStatus,
|
||||||
|
this.editedBy,
|
||||||
|
this.rejectionReason});
|
||||||
|
|
||||||
|
UpdatePresOrderRequestModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
versionID = json['VersionID'];
|
||||||
|
channel = json['Channel'];
|
||||||
|
languageID = json['LanguageID'];
|
||||||
|
iPAdress = json['IPAdress'];
|
||||||
|
generalid = json['generalid'];
|
||||||
|
patientOutSA = json['PatientOutSA'];
|
||||||
|
sessionID = json['SessionID'];
|
||||||
|
isDentalAllowedBackend = json['isDentalAllowedBackend'];
|
||||||
|
deviceTypeID = json['DeviceTypeID'];
|
||||||
|
patientID = json['PatientID'];
|
||||||
|
tokenID = json['TokenID'];
|
||||||
|
patientTypeID = json['PatientTypeID'];
|
||||||
|
patientType = json['PatientType'];
|
||||||
|
presOrderID = json['PresOrderID'];
|
||||||
|
presOrderStatus = json['PresOrderStatus'];
|
||||||
|
editedBy = json['EditedBy'];
|
||||||
|
rejectionReason = json['RejectionReason'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['VersionID'] = this.versionID;
|
||||||
|
data['Channel'] = this.channel;
|
||||||
|
data['LanguageID'] = this.languageID;
|
||||||
|
data['IPAdress'] = this.iPAdress;
|
||||||
|
data['generalid'] = this.generalid;
|
||||||
|
data['PatientOutSA'] = this.patientOutSA;
|
||||||
|
data['SessionID'] = this.sessionID;
|
||||||
|
data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
|
||||||
|
data['DeviceTypeID'] = this.deviceTypeID;
|
||||||
|
data['PatientID'] = this.patientID;
|
||||||
|
data['TokenID'] = this.tokenID;
|
||||||
|
data['PatientTypeID'] = this.patientTypeID;
|
||||||
|
data['PatientType'] = this.patientType;
|
||||||
|
data['PresOrderID'] = this.presOrderID;
|
||||||
|
data['PresOrderStatus'] = this.presOrderStatus;
|
||||||
|
data['EditedBy'] = this.editedBy;
|
||||||
|
data['RejectionReason'] = this.rejectionReason;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,102 @@
|
|||||||
|
import 'package:diplomaticquarterapp/config/config.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hHC_all_pres_orders_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
|
||||||
|
|
||||||
|
import '../base_service.dart';
|
||||||
|
|
||||||
|
class CMCService extends BaseService {
|
||||||
|
List<GetCMCServicesResponseModel> cmcAllServicesList = List();
|
||||||
|
List<GetHHCAllPresOrdersResponseModel> cmcAllPresOrdersList = List();
|
||||||
|
|
||||||
|
List<GetOrderDetailByOrderIDResponseModel> cmcAllOrderDetail = List();
|
||||||
|
List<CMCGetItemsResponseModel> checkupItemsList = List();
|
||||||
|
|
||||||
|
bool isOrderUpdated;
|
||||||
|
|
||||||
|
Future getCMCAllServices() async {
|
||||||
|
|
||||||
|
|
||||||
|
GetCMCServicesRequestModel getCMCServicesRequestModel= new GetCMCServicesRequestModel(genderID: user.gender, identificationNo: user.patientIdentificationNo);
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(HHC_GET_ALL_CMC_SERVICES,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
cmcAllServicesList.clear();
|
||||||
|
response['PatientER_CMC_GetAllServicesList'].forEach((data) {
|
||||||
|
cmcAllServicesList.add(GetCMCServicesResponseModel.fromJson(data));
|
||||||
|
});
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: getCMCServicesRequestModel.toJson());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Future getCmcAllPresOrders() async {
|
||||||
|
|
||||||
|
GetHHCAllPresOrdersRequestModel getHHCAllPresOrdersRequestModel= GetHHCAllPresOrdersRequestModel();
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(GET_PATIENT_ALL_PRES_ORDERS,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
cmcAllPresOrdersList.clear();
|
||||||
|
response['PatientER_GetPatientAllPresOrdersList'].forEach((data) {
|
||||||
|
if (data['ServiceID'] == 3)
|
||||||
|
cmcAllPresOrdersList
|
||||||
|
.add(GetHHCAllPresOrdersResponseModel.fromJson(data));
|
||||||
|
});
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: getHHCAllPresOrdersRequestModel.toJson());
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getOrderDetailByOrderID(GetOrderDetailByOrderIDRequestModel getOrderDetailByOrderIDRequestModel) async {
|
||||||
|
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(GET_CMC_ORDER_DETAIL_BY_ID,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
cmcAllOrderDetail.clear();
|
||||||
|
response['PatientER_CMC_GetTransactionsForOrderList'].forEach((data) {
|
||||||
|
cmcAllOrderDetail.add(GetOrderDetailByOrderIDResponseModel.fromJson(data));
|
||||||
|
});
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: getOrderDetailByOrderIDRequestModel.toJson());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Future getCheckupItems(CMCGetItemsRequestModel cMCGetItemsRequestModel) async {
|
||||||
|
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(GET_CHECK_UP_ITEMS,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
checkupItemsList.clear();
|
||||||
|
response['GetCheckUpItemsList'].forEach((data) {
|
||||||
|
checkupItemsList.add(CMCGetItemsResponseModel.fromJson(data));
|
||||||
|
});
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: cMCGetItemsRequestModel.toJson());
|
||||||
|
}
|
||||||
|
|
||||||
|
Future updateCmcPresOrder(UpdatePresOrderRequestModel updatePresOrderRequestModel) async {
|
||||||
|
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(PATIENT_ER_UPDATE_PRES_ORDER,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
isOrderUpdated = true;
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: updatePresOrderRequestModel.toJson());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,82 @@
|
|||||||
|
import 'package:diplomaticquarterapp/config/config.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_request_modle.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hHC_all_pres_orders_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
|
||||||
|
|
||||||
|
import '../base_service.dart';
|
||||||
|
|
||||||
|
class HomeHealthCareService extends BaseService {
|
||||||
|
List<HHCGetAllServicesResponseModel> hhcAllServicesList = List();
|
||||||
|
List<GetHHCAllPresOrdersResponseModel> hhcAllPresOrdersList = List();
|
||||||
|
|
||||||
|
List<GetOrderDetailByOrderIDResponseModel> hhcAllOrderDetail = List();
|
||||||
|
|
||||||
|
bool isOrderUpdated;
|
||||||
|
|
||||||
|
Future getHHCAllServices(
|
||||||
|
HHCGetAllServicesRequestModel hHCGetAllServicesRequestModel) async {
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(HHC_GET_ALL_SERVICES,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
hhcAllServicesList.clear();
|
||||||
|
response['PatientER_HHC_GetAllServicesList'].forEach((data) {
|
||||||
|
hhcAllServicesList.add(HHCGetAllServicesResponseModel.fromJson(data));
|
||||||
|
});
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: hHCGetAllServicesRequestModel.toJson());
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getHHCAllPresOrders() async {
|
||||||
|
GetHHCAllPresOrdersRequestModel getHHCAllPresOrdersRequestModel =
|
||||||
|
GetHHCAllPresOrdersRequestModel();
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(GET_PATIENT_ALL_PRES_ORDERS,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
hhcAllPresOrdersList.clear();
|
||||||
|
response['PatientER_GetPatientAllPresOrdersList'].forEach((data) {
|
||||||
|
if (data['ServiceID'] == 2)
|
||||||
|
hhcAllPresOrdersList
|
||||||
|
.add(GetHHCAllPresOrdersResponseModel.fromJson(data));
|
||||||
|
});
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: getHHCAllPresOrdersRequestModel.toJson());
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getOrderDetailByOrderID(int presOrderID) async {
|
||||||
|
hasError = false;
|
||||||
|
Map<String, dynamic> body = Map();
|
||||||
|
body['PresOrderID'] = presOrderID;
|
||||||
|
body['isDentalAllowedBackend'] = false;
|
||||||
|
await baseAppClient.post(GET_ORDER_DETAIL_BY_ID,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
hhcAllOrderDetail.clear();
|
||||||
|
response['PatientER_HHC_GetTransactionsForOrderList'].forEach((data) {
|
||||||
|
hhcAllOrderDetail
|
||||||
|
.add(GetOrderDetailByOrderIDResponseModel.fromJson(data));
|
||||||
|
});
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: body);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future updateHHCPresOrder(
|
||||||
|
UpdatePresOrderRequestModel updatePresOrderRequestModel) async {
|
||||||
|
hasError = false;
|
||||||
|
await baseAppClient.post(PATIENT_ER_UPDATE_PRES_ORDER,
|
||||||
|
onSuccess: (dynamic response, int statusCode) {
|
||||||
|
isOrderUpdated = true;
|
||||||
|
}, onFailure: (String error, int statusCode) {
|
||||||
|
hasError = true;
|
||||||
|
super.error = error;
|
||||||
|
}, body: updatePresOrderRequestModel.toJson());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,92 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/get_cmc_service_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/cmc_service.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
|
||||||
|
|
||||||
|
import '../../../locator.dart';
|
||||||
|
|
||||||
|
class CMCViewModel extends BaseViewModel {
|
||||||
|
CMCService _cMCService =
|
||||||
|
locator<CMCService>();
|
||||||
|
|
||||||
|
List<GetCMCServicesResponseModel> get cmcAllServicesList =>
|
||||||
|
|
||||||
|
_cMCService.cmcAllServicesList;
|
||||||
|
|
||||||
|
List<GetHHCAllPresOrdersResponseModel> get cmcAllPresOrders =>
|
||||||
|
_cMCService.cmcAllPresOrdersList;
|
||||||
|
|
||||||
|
List<GetOrderDetailByOrderIDResponseModel> get cmcAllOrderDetail =>
|
||||||
|
_cMCService.cmcAllOrderDetail;
|
||||||
|
List<CMCGetItemsResponseModel> get checkupItems =>
|
||||||
|
_cMCService.checkupItemsList;
|
||||||
|
|
||||||
|
bool get isOrderUpdated => _cMCService.isOrderUpdated;
|
||||||
|
|
||||||
|
Future getCMCAllServices() async {
|
||||||
|
await _cMCService
|
||||||
|
.getCMCAllServices();
|
||||||
|
CMCGetItemsRequestModel cMCGetItemsRequestModel = new CMCGetItemsRequestModel(checkupType: cmcAllServicesList[0].iD);
|
||||||
|
|
||||||
|
await getCheckupItems(cMCGetItemsRequestModel);
|
||||||
|
if (_cMCService.hasError) {
|
||||||
|
error = _cMCService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else {
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Future getCheckupItems(CMCGetItemsRequestModel cMCGetItemsRequestModel) async {
|
||||||
|
await _cMCService
|
||||||
|
.getCheckupItems(cMCGetItemsRequestModel);
|
||||||
|
if (_cMCService.hasError) {
|
||||||
|
error = _cMCService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getCmcAllPresOrders() async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _cMCService.getCmcAllPresOrders();
|
||||||
|
if (_cMCService.hasError) {
|
||||||
|
error = _cMCService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else {
|
||||||
|
var pendingOrder = _cMCService.cmcAllPresOrdersList.firstWhere(
|
||||||
|
(element) => element.status == 1 || element.status == 2,
|
||||||
|
orElse: () => null);
|
||||||
|
if (pendingOrder != null) {
|
||||||
|
await getOrderDetailByOrderID(pendingOrder);
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
} else {
|
||||||
|
getCMCAllServices();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future updateCmcPresOrder(
|
||||||
|
UpdatePresOrderRequestModel updatePresOrderRequestModel) async {
|
||||||
|
setState(ViewState.BusyLocal);
|
||||||
|
await _cMCService.updateCmcPresOrder(
|
||||||
|
updatePresOrderRequestModel);
|
||||||
|
if (_cMCService.hasError) {
|
||||||
|
error = _cMCService.error;
|
||||||
|
setState(ViewState.ErrorLocal);
|
||||||
|
} else {
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getOrderDetailByOrderID(GetHHCAllPresOrdersResponseModel order) async {
|
||||||
|
GetOrderDetailByOrderIDRequestModel getOrderDetailByOrderIDRequestModel =
|
||||||
|
GetOrderDetailByOrderIDRequestModel(presOrderID: order.iD);
|
||||||
|
await _cMCService
|
||||||
|
.getOrderDetailByOrderID(getOrderDetailByOrderIDRequestModel);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,83 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_request_modle.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/HHC_get_all_services_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/PatientERHHCInsertServicesList.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/home_health_care_service.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
|
||||||
|
|
||||||
|
import '../../../locator.dart';
|
||||||
|
|
||||||
|
class HomeHealthCareViewModel extends BaseViewModel {
|
||||||
|
HomeHealthCareService _homeHealthCareService =
|
||||||
|
locator<HomeHealthCareService>();
|
||||||
|
|
||||||
|
List<HHCGetAllServicesResponseModel> get hhcAllServicesList =>
|
||||||
|
_homeHealthCareService.hhcAllServicesList;
|
||||||
|
|
||||||
|
List<GetHHCAllPresOrdersResponseModel> get hhcAllPresOrders =>
|
||||||
|
_homeHealthCareService.hhcAllPresOrdersList;
|
||||||
|
|
||||||
|
List<GetOrderDetailByOrderIDResponseModel> get hhcAllOrderDetail =>
|
||||||
|
_homeHealthCareService.hhcAllOrderDetail;
|
||||||
|
|
||||||
|
bool get isOrderUpdated => _homeHealthCareService.isOrderUpdated;
|
||||||
|
|
||||||
|
GetHHCAllPresOrdersResponseModel pendingOrder;
|
||||||
|
|
||||||
|
List<PatientERHHCInsertServicesList> patientERHHCInsertServicesList = List();
|
||||||
|
|
||||||
|
Future getHHCAllServices() async {
|
||||||
|
HHCGetAllServicesRequestModel hHCGetAllServicesRequestModel =
|
||||||
|
new HHCGetAllServicesRequestModel();
|
||||||
|
//setState(ViewState.Busy);
|
||||||
|
await _homeHealthCareService
|
||||||
|
.getHHCAllServices(hHCGetAllServicesRequestModel);
|
||||||
|
if (_homeHealthCareService.hasError) {
|
||||||
|
error = _homeHealthCareService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else {
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future getHHCAllPresOrders() async {
|
||||||
|
pendingOrder = null;
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _homeHealthCareService.getHHCAllPresOrders();
|
||||||
|
if (_homeHealthCareService.hasError) {
|
||||||
|
error = _homeHealthCareService.error;
|
||||||
|
setState(ViewState.Error);
|
||||||
|
} else {
|
||||||
|
pendingOrder = _homeHealthCareService.hhcAllPresOrdersList
|
||||||
|
.firstWhere((element) => element.status == 1 || element.status == 2,
|
||||||
|
orElse: () => null);
|
||||||
|
if (pendingOrder != null) {
|
||||||
|
await _homeHealthCareService.getOrderDetailByOrderID(pendingOrder.iD);
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
} else {
|
||||||
|
getHHCAllServices();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Future updateHHCPresOrder(
|
||||||
|
UpdatePresOrderRequestModel updatePresOrderRequestModel) async {
|
||||||
|
setState(ViewState.Busy);
|
||||||
|
await _homeHealthCareService.updateHHCPresOrder(
|
||||||
|
updatePresOrderRequestModel);
|
||||||
|
if (_homeHealthCareService.hasError) {
|
||||||
|
error = _homeHealthCareService.error;
|
||||||
|
setState(ViewState.ErrorLocal);
|
||||||
|
} else {
|
||||||
|
setState(ViewState.Idle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,104 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
// ignore: must_be_immutable
|
||||||
|
class ConfirmCancelOrderDialog extends StatefulWidget {
|
||||||
|
final CMCViewModel model;
|
||||||
|
final Function onTap;
|
||||||
|
|
||||||
|
|
||||||
|
ConfirmCancelOrderDialog(
|
||||||
|
{Key key, this.model, this.onTap});
|
||||||
|
|
||||||
|
@override
|
||||||
|
_ConfirmCancelOrderDialogState createState() => _ConfirmCancelOrderDialogState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _ConfirmCancelOrderDialogState extends State<ConfirmCancelOrderDialog> {
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return SimpleDialog(
|
||||||
|
contentPadding: EdgeInsets.fromLTRB(28.0, 24.0, 28.0, 0.0),
|
||||||
|
title: Center(
|
||||||
|
child: Texts(
|
||||||
|
"Confirm",
|
||||||
|
color: Colors.black,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
children: [
|
||||||
|
Column(
|
||||||
|
children: [
|
||||||
|
Divider(),
|
||||||
|
Center(
|
||||||
|
child: Texts(
|
||||||
|
"Are you sure!! want to cancel this order",
|
||||||
|
color: Colors.grey,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 5.0,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: <Widget>[
|
||||||
|
Expanded(
|
||||||
|
flex: 1,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () {
|
||||||
|
Navigator.pop(context);
|
||||||
|
},
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Container(
|
||||||
|
child: Center(
|
||||||
|
child: Texts(
|
||||||
|
TranslationBase.of(context).cancel.toUpperCase(),
|
||||||
|
color: Colors.red,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: 1,
|
||||||
|
height: 30,
|
||||||
|
color: Colors.grey[500],
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
flex: 1,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () async{
|
||||||
|
widget.onTap();
|
||||||
|
Navigator.pop(context);
|
||||||
|
},
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Center(
|
||||||
|
child: Texts(
|
||||||
|
TranslationBase.of(context).ok,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,314 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/ComprehensiveMedicalCheckup/Dialog/confirm_cancel_order_dialog.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/utils.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'new_cmc_step_one_page.dart';
|
||||||
|
|
||||||
|
class NewCMCPage extends StatefulWidget {
|
||||||
|
NewCMCPage({this.model});
|
||||||
|
|
||||||
|
final CMCViewModel model;
|
||||||
|
|
||||||
|
@override
|
||||||
|
_NewCMCPageState createState() =>
|
||||||
|
_NewCMCPageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _NewCMCPageState extends State<NewCMCPage>
|
||||||
|
with TickerProviderStateMixin {
|
||||||
|
PageController _controller;
|
||||||
|
int _currentIndex = 1;
|
||||||
|
int pageSelected = 2;
|
||||||
|
|
||||||
|
CMCInsertPresOrderRequestModel cMCInsertPresOrderRequestModel;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
PatientERCMCInsertServicesList patientERCMCInsertServicesList;
|
||||||
|
if (widget.model.cmcAllServicesList.length > 0) {
|
||||||
|
patientERCMCInsertServicesList = new PatientERCMCInsertServicesList(
|
||||||
|
price: widget.model.cmcAllServicesList[0].price,
|
||||||
|
serviceID: widget.model.cmcAllServicesList[0].serviceID.toString(),
|
||||||
|
selectedServiceName: widget.model.cmcAllServicesList[0].description,
|
||||||
|
selectedServiceNameAR: widget.model.cmcAllServicesList[0].description,
|
||||||
|
recordID: 1,
|
||||||
|
totalPrice: widget.model.cmcAllServicesList[0].totalPrice,
|
||||||
|
vAT: widget.model.cmcAllServicesList[0].vAT);
|
||||||
|
cMCInsertPresOrderRequestModel = new CMCInsertPresOrderRequestModel(
|
||||||
|
patientERCMCInsertServicesList: [patientERCMCInsertServicesList]);
|
||||||
|
}
|
||||||
|
|
||||||
|
cMCInsertPresOrderRequestModel = new CMCInsertPresOrderRequestModel(
|
||||||
|
patientERCMCInsertServicesList: patientERCMCInsertServicesList != null
|
||||||
|
? [patientERCMCInsertServicesList]
|
||||||
|
: []);
|
||||||
|
|
||||||
|
_controller = new PageController();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
changePageViewIndex(pageIndex) {
|
||||||
|
_controller.jumpToPage(pageIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
void showConfirmMessage(
|
||||||
|
CMCViewModel model, GetOrderDetailByOrderIDResponseModel order) {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
child: ConfirmCancelOrderDialog(
|
||||||
|
model: model,
|
||||||
|
onTap: () async {
|
||||||
|
UpdatePresOrderRequestModel updatePresOrderRequestModel =
|
||||||
|
UpdatePresOrderRequestModel(
|
||||||
|
presOrderID: order.presOrderID,
|
||||||
|
rejectionReason: "",
|
||||||
|
presOrderStatus: 4, editedBy: 3);
|
||||||
|
await model.updateCmcPresOrder(updatePresOrderRequestModel);
|
||||||
|
if (model.state == ViewState.ErrorLocal) {
|
||||||
|
Utils.showErrorToast(model.error);
|
||||||
|
} else {
|
||||||
|
AppToast.showSuccessToast(message: "Done Successfully");
|
||||||
|
await model.getCmcAllPresOrders();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
));
|
||||||
|
}
|
||||||
|
return Scaffold(
|
||||||
|
body: SafeArea(
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Container(
|
||||||
|
height: MediaQuery.of(context).size.height * 0.8,
|
||||||
|
child: PageView(
|
||||||
|
physics: NeverScrollableScrollPhysics(),
|
||||||
|
controller: _controller,
|
||||||
|
onPageChanged: (index) {
|
||||||
|
setState(() {
|
||||||
|
_currentIndex = index;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
scrollDirection: Axis.horizontal,
|
||||||
|
children: <Widget>[
|
||||||
|
widget.model.cmcAllOrderDetail.length != 0
|
||||||
|
? FractionallySizedBox(
|
||||||
|
heightFactor: 0.8,
|
||||||
|
widthFactor: 0.9,
|
||||||
|
child: Container(
|
||||||
|
width: double.infinity,
|
||||||
|
margin: EdgeInsets.only(top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border:
|
||||||
|
Border.all(color: Colors.grey, width: 1),
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Request ID",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
widget.model.cmcAllOrderDetail[0].iD.toString(),
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Status",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
"Pending",
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Pickup Date",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
DateUtil.getDayMonthYearDateFormatted(
|
||||||
|
DateUtil.convertStringToDate(
|
||||||
|
widget.model.cmcAllOrderDetail[0]
|
||||||
|
.createdOn)),
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Service Name",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
widget.model.cmcAllOrderDetail[0].description
|
||||||
|
.toString() ??
|
||||||
|
widget.model.cmcAllOrderDetail[0]
|
||||||
|
.descriptionN
|
||||||
|
.toString(),
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
Center(
|
||||||
|
child: Container(
|
||||||
|
width: MediaQuery
|
||||||
|
.of(context)
|
||||||
|
.size
|
||||||
|
.width *
|
||||||
|
0.85,
|
||||||
|
child: SecondaryButton(
|
||||||
|
label: "Cancel".toUpperCase(),
|
||||||
|
onTap: () {
|
||||||
|
showConfirmMessage(widget.model,
|
||||||
|
widget.model.cmcAllOrderDetail[0]);
|
||||||
|
}
|
||||||
|
,
|
||||||
|
color: Colors.red[800],
|
||||||
|
disabled: false,
|
||||||
|
textColor: Theme
|
||||||
|
.of(context)
|
||||||
|
.backgroundColor),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: NewCMCStepOnePage(
|
||||||
|
changePageViewIndex: changePageViewIndex,
|
||||||
|
cMCInsertPresOrderRequestModel:
|
||||||
|
cMCInsertPresOrderRequestModel,
|
||||||
|
model: widget.model,
|
||||||
|
),
|
||||||
|
// NewEReferralStepTowPage(
|
||||||
|
// changePageViewIndex: changePageViewIndex,
|
||||||
|
// patientERInsertPresOrderRequestModel: patientERInsertPresOrderRequestModel,
|
||||||
|
//
|
||||||
|
// ),
|
||||||
|
// NewEReferralStepThreePage(
|
||||||
|
// changePageViewIndex: changePageViewIndex,
|
||||||
|
// patientERInsertPresOrderRequestModel: patientERInsertPresOrderRequestModel,
|
||||||
|
//
|
||||||
|
// ),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,209 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_get_items_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/ComprehensiveMedicalCheckup/cmc_insert_pres_order_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class NewCMCStepOnePage extends StatefulWidget {
|
||||||
|
final CMCInsertPresOrderRequestModel cMCInsertPresOrderRequestModel;
|
||||||
|
final Function changePageViewIndex;
|
||||||
|
final CMCViewModel model;
|
||||||
|
|
||||||
|
const NewCMCStepOnePage(
|
||||||
|
{Key key,
|
||||||
|
this.cMCInsertPresOrderRequestModel,
|
||||||
|
this.model,
|
||||||
|
this.changePageViewIndex})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_NewCMCStepOnePageState createState() =>
|
||||||
|
_NewCMCStepOnePageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _NewCMCStepOnePageState
|
||||||
|
extends State<NewCMCStepOnePage> {
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
isShowAppBar: false,
|
||||||
|
baseViewModel: widget.model,
|
||||||
|
body: SingleChildScrollView(
|
||||||
|
physics: ScrollPhysics(),
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.all(12),
|
||||||
|
child: Center(
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
FractionallySizedBox(
|
||||||
|
widthFactor: 0.94,
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
height: 20,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
// TranslationBase.of(context).advancePaymentLabel,
|
||||||
|
"Select Home Health Care Services",
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
|
Column(
|
||||||
|
children: widget.model.cmcAllServicesList.map((
|
||||||
|
service) {
|
||||||
|
return Container(
|
||||||
|
margin: EdgeInsets.only(top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border:
|
||||||
|
Border.all(color: Colors.grey, width: 1),
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Radio(
|
||||||
|
value: service.serviceID,
|
||||||
|
activeColor: Colors.red[800],
|
||||||
|
onChanged: (newValue) async {
|
||||||
|
PatientERCMCInsertServicesList patientERCMCInsertServicesList =
|
||||||
|
new PatientERCMCInsertServicesList(
|
||||||
|
price: service.price,
|
||||||
|
serviceID: service.serviceID
|
||||||
|
.toString(),
|
||||||
|
selectedServiceName: service
|
||||||
|
.description,
|
||||||
|
selectedServiceNameAR:
|
||||||
|
service.description,
|
||||||
|
recordID: 1,
|
||||||
|
totalPrice: service.totalPrice,
|
||||||
|
vAT: service.vAT);
|
||||||
|
setState(() {
|
||||||
|
widget
|
||||||
|
.cMCInsertPresOrderRequestModel
|
||||||
|
.patientERCMCInsertServicesList =
|
||||||
|
[patientERCMCInsertServicesList];
|
||||||
|
});
|
||||||
|
CMCGetItemsRequestModel cMCGetItemsRequestModel = new CMCGetItemsRequestModel (checkupType:newValue );
|
||||||
|
await widget.model.getCheckupItems(cMCGetItemsRequestModel);
|
||||||
|
},
|
||||||
|
groupValue: widget
|
||||||
|
.cMCInsertPresOrderRequestModel
|
||||||
|
.patientERCMCInsertServicesList.length >0?int.parse(widget
|
||||||
|
.cMCInsertPresOrderRequestModel
|
||||||
|
.patientERCMCInsertServicesList[0]
|
||||||
|
.serviceID):1),
|
||||||
|
Expanded(
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(20.0),
|
||||||
|
child: Texts(
|
||||||
|
service.description,
|
||||||
|
fontSize: 15,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: 30,),
|
||||||
|
Container(
|
||||||
|
color: Colors.white,
|
||||||
|
width: double.infinity,
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: widget.model.checkupItems.map((item) {
|
||||||
|
return Center(
|
||||||
|
child: FractionallySizedBox(
|
||||||
|
widthFactor: 0.8,
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.only(top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border:
|
||||||
|
Border.all(color: Colors.grey, width: 1),
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 5, top: 5),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
// border: Border(
|
||||||
|
// bottom: BorderSide(
|
||||||
|
// color: Colors.grey,
|
||||||
|
// width: 1.0,
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
item.itemName,
|
||||||
|
fontSize: 15,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}).toList()),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
bottomSheet:Container(
|
||||||
|
height: MediaQuery.of(context).size.height * 0.10,
|
||||||
|
width: double.infinity,
|
||||||
|
child: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
width: MediaQuery
|
||||||
|
.of(context)
|
||||||
|
.size
|
||||||
|
.width * 0.9,
|
||||||
|
child: SecondaryButton(
|
||||||
|
label: "Next",
|
||||||
|
// disabled: this.widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.length ==0,
|
||||||
|
textColor: Theme
|
||||||
|
.of(context)
|
||||||
|
.backgroundColor),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hexcolor/hexcolor.dart';
|
||||||
|
import 'cmc_page.dart';
|
||||||
|
|
||||||
|
class CMCIndexPage extends StatelessWidget {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
isShowAppBar: true,
|
||||||
|
appBarTitle: TranslationBase.of(context).serviceInformation,
|
||||||
|
body: SingleChildScrollView(
|
||||||
|
padding: EdgeInsets.all(12),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
Texts(
|
||||||
|
"CMC",
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
fontSize: 25,
|
||||||
|
color: Color(0xff60686b),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
"This service is designed to help you to set drinking water goals and track the volume of water you are drinking on a daily basis. This service allows for schedule reminders and offers a basic statistical analysis of the amount of what you have consumed over the course of a day, week or month.",
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
fontSize: 17,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 22,
|
||||||
|
),
|
||||||
|
Center(
|
||||||
|
child: Image.asset(
|
||||||
|
'assets/images/AlHabibMedicalService/Wifi-AR.png')),
|
||||||
|
SizedBox(
|
||||||
|
height: 77,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)),
|
||||||
|
bottomSheet: Container(
|
||||||
|
height: MediaQuery.of(context).size.height * 0.10,
|
||||||
|
width: double.infinity,
|
||||||
|
child: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
width: MediaQuery.of(context).size.width * 0.9,
|
||||||
|
child: SecondaryButton(
|
||||||
|
onTap: () => Navigator.push(
|
||||||
|
context,
|
||||||
|
FadePage(
|
||||||
|
page: CMCPage(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
label: "CMC",
|
||||||
|
textColor: Theme.of(context).backgroundColor),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,130 @@
|
|||||||
|
import 'dart:ui';
|
||||||
|
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'NewCMC/new_cmc_page.dart';
|
||||||
|
import 'orders_log_details_page.dart';
|
||||||
|
|
||||||
|
class CMCPage extends StatefulWidget {
|
||||||
|
@override
|
||||||
|
_CMCPageState createState() => _CMCPageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _CMCPageState extends State<CMCPage>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
|
TabController _tabController;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_tabController = TabController(length: 2, vsync: this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
super.dispose();
|
||||||
|
_tabController.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return BaseView<CMCViewModel>(
|
||||||
|
onModelReady: (model){
|
||||||
|
model.getCmcAllPresOrders();
|
||||||
|
},
|
||||||
|
builder: (_, model, widget) => AppScaffold(
|
||||||
|
isShowAppBar: true,
|
||||||
|
appBarTitle: TranslationBase.of(context).homeHealthCare,
|
||||||
|
body: Scaffold(
|
||||||
|
extendBodyBehindAppBar: true,
|
||||||
|
appBar: PreferredSize(
|
||||||
|
preferredSize: Size.fromHeight(65.0),
|
||||||
|
child: Stack(
|
||||||
|
children: <Widget>[
|
||||||
|
Positioned(
|
||||||
|
bottom: 1,
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
|
child: BackdropFilter(
|
||||||
|
filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
|
||||||
|
child: Container(
|
||||||
|
color: Theme.of(context)
|
||||||
|
.scaffoldBackgroundColor
|
||||||
|
.withOpacity(0.8),
|
||||||
|
height: 70.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Center(
|
||||||
|
child: Container(
|
||||||
|
height: 60.0,
|
||||||
|
margin: EdgeInsets.only(top: 10.0),
|
||||||
|
width: MediaQuery.of(context).size.width * 0.9,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Theme.of(context).dividerColor,
|
||||||
|
width: 0.7),
|
||||||
|
),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Center(
|
||||||
|
child: TabBar(
|
||||||
|
isScrollable: true,
|
||||||
|
controller: _tabController,
|
||||||
|
indicatorWeight: 5.0,
|
||||||
|
indicatorSize: TabBarIndicatorSize.label,
|
||||||
|
indicatorColor: Colors.red[800],
|
||||||
|
labelColor: Theme.of(context).primaryColor,
|
||||||
|
labelPadding:
|
||||||
|
EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0),
|
||||||
|
unselectedLabelColor: Colors.grey[800],
|
||||||
|
tabs: [
|
||||||
|
Container(
|
||||||
|
width: MediaQuery.of(context).size.width * 0.37,
|
||||||
|
child: Center(
|
||||||
|
child: Texts("CMC Service"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: MediaQuery.of(context).size.width * 0.37,
|
||||||
|
child: Center(
|
||||||
|
child: Texts(TranslationBase.of(context).orderLog),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
body: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Expanded(
|
||||||
|
child: TabBarView(
|
||||||
|
physics: BouncingScrollPhysics(),
|
||||||
|
controller: _tabController,
|
||||||
|
children: <Widget>[
|
||||||
|
NewCMCPage(
|
||||||
|
model: model,
|
||||||
|
),
|
||||||
|
OrdersLogDetailsPage(
|
||||||
|
model: model,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,250 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/cmc_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/utils.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'Dialog/confirm_cancel_order_dialog.dart';
|
||||||
|
|
||||||
|
class OrdersLogDetailsPage extends StatelessWidget {
|
||||||
|
final CMCViewModel model;
|
||||||
|
|
||||||
|
const OrdersLogDetailsPage({Key key, this.model}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
void showConfirmMessage(
|
||||||
|
CMCViewModel model, GetHHCAllPresOrdersResponseModel order) {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
child: ConfirmCancelOrderDialog(
|
||||||
|
model: model,
|
||||||
|
onTap: () async {
|
||||||
|
UpdatePresOrderRequestModel updatePresOrderRequestModel =
|
||||||
|
UpdatePresOrderRequestModel(
|
||||||
|
presOrderID: order.iD,
|
||||||
|
rejectionReason: "",
|
||||||
|
presOrderStatus: 4, editedBy: 3);
|
||||||
|
await model.updateCmcPresOrder(updatePresOrderRequestModel);
|
||||||
|
if(model.state == ViewState.ErrorLocal) {
|
||||||
|
Utils.showErrorToast(model.error);
|
||||||
|
} else {
|
||||||
|
AppToast.showSuccessToast(message: "Done Successfully");
|
||||||
|
await model.getCmcAllPresOrders();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
return AppScaffold(
|
||||||
|
isShowAppBar: false,
|
||||||
|
baseViewModel: model,
|
||||||
|
body: SingleChildScrollView(
|
||||||
|
physics: ScrollPhysics(),
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.all(12),
|
||||||
|
child: Center(
|
||||||
|
child: FractionallySizedBox(
|
||||||
|
widthFactor: 0.94,
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
height: 50,
|
||||||
|
),
|
||||||
|
Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: model.cmcAllPresOrders.map((order) {
|
||||||
|
return Container(
|
||||||
|
width: double.infinity,
|
||||||
|
margin: EdgeInsets.only(top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border:
|
||||||
|
Border.all(color: Colors.grey, width: 1),
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Request ID",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
order.iD.toString(),
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Status",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
order.description,
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Pickup Date",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
DateUtil.getDayMonthYearDateFormatted(
|
||||||
|
DateUtil.convertStringToDate(
|
||||||
|
order.createdOn)),
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Location",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
order.nearestProjectDescription
|
||||||
|
.toString() ??
|
||||||
|
order.nearestProjectDescriptionN
|
||||||
|
.toString(),
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
if (order.status == 1 ||order.status == 2 )
|
||||||
|
Center(
|
||||||
|
child: Container(
|
||||||
|
width: MediaQuery
|
||||||
|
.of(context)
|
||||||
|
.size
|
||||||
|
.width *
|
||||||
|
0.85,
|
||||||
|
child: SecondaryButton(
|
||||||
|
label: "Cancel".toUpperCase(),
|
||||||
|
onTap: () {
|
||||||
|
showConfirmMessage(model, order);
|
||||||
|
}
|
||||||
|
,
|
||||||
|
color: Colors.red[800],
|
||||||
|
disabled: false,
|
||||||
|
textColor: Theme
|
||||||
|
.of(context)
|
||||||
|
.backgroundColor),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}).toList())
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,103 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
// ignore: must_be_immutable
|
||||||
|
class ConfirmCancelOrderDialog extends StatefulWidget {
|
||||||
|
final HomeHealthCareViewModel model;
|
||||||
|
final Function onTap;
|
||||||
|
|
||||||
|
|
||||||
|
ConfirmCancelOrderDialog(
|
||||||
|
{Key key, this.model, this.onTap});
|
||||||
|
|
||||||
|
@override
|
||||||
|
_ConfirmCancelOrderDialogState createState() => _ConfirmCancelOrderDialogState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _ConfirmCancelOrderDialogState extends State<ConfirmCancelOrderDialog> {
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return SimpleDialog(
|
||||||
|
contentPadding: EdgeInsets.fromLTRB(28.0, 24.0, 28.0, 0.0),
|
||||||
|
title: Center(
|
||||||
|
child: Texts(
|
||||||
|
"Confirm",
|
||||||
|
color: Colors.black,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
children: [
|
||||||
|
Column(
|
||||||
|
children: [
|
||||||
|
Divider(),
|
||||||
|
Center(
|
||||||
|
child: Texts(
|
||||||
|
"Are you sure!! want to cancel this order",
|
||||||
|
color: Colors.grey,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 5.0,
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: <Widget>[
|
||||||
|
Expanded(
|
||||||
|
flex: 1,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () {
|
||||||
|
Navigator.pop(context);
|
||||||
|
},
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Container(
|
||||||
|
child: Center(
|
||||||
|
child: Texts(
|
||||||
|
TranslationBase.of(context).cancel.toUpperCase(),
|
||||||
|
color: Colors.red,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: 1,
|
||||||
|
height: 30,
|
||||||
|
color: Colors.grey[500],
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
flex: 1,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () async{
|
||||||
|
widget.onTap();
|
||||||
|
Navigator.pop(context);
|
||||||
|
},
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(8.0),
|
||||||
|
child: Center(
|
||||||
|
child: Texts(
|
||||||
|
TranslationBase.of(context).ok,
|
||||||
|
fontWeight: FontWeight.w400,
|
||||||
|
)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
)
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,161 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/PatientERHHCInsertServicesList.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class NewHomeHealthCareStepOnePage extends StatefulWidget {
|
||||||
|
final PatientERInsertPresOrderRequestModel
|
||||||
|
patientERInsertPresOrderRequestModel;
|
||||||
|
final Function changePageViewIndex;
|
||||||
|
final HomeHealthCareViewModel model;
|
||||||
|
|
||||||
|
const NewHomeHealthCareStepOnePage(
|
||||||
|
{Key key,
|
||||||
|
this.patientERInsertPresOrderRequestModel,
|
||||||
|
this.model,
|
||||||
|
this.changePageViewIndex})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_NewHomeHealthCareStepOnePageState createState() =>
|
||||||
|
_NewHomeHealthCareStepOnePageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _NewHomeHealthCareStepOnePageState
|
||||||
|
extends State<NewHomeHealthCareStepOnePage> {
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
if(widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList==null)
|
||||||
|
widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList = [];
|
||||||
|
|
||||||
|
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
isShowAppBar: false,
|
||||||
|
baseViewModel: widget.model,
|
||||||
|
body: SingleChildScrollView(
|
||||||
|
physics: ScrollPhysics(),
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.only(
|
||||||
|
left: MediaQuery.of(context).size.width * 0.05,
|
||||||
|
right: MediaQuery.of(context).size.width * 0.05),
|
||||||
|
child: Center(
|
||||||
|
child: FractionallySizedBox(
|
||||||
|
widthFactor: 1,
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
"Select Home Health Care Services",
|
||||||
|
textAlign: TextAlign.center,
|
||||||
|
),
|
||||||
|
Column(
|
||||||
|
children: widget.model.hhcAllServicesList.map((service) {
|
||||||
|
return Container(
|
||||||
|
margin: EdgeInsets.only(top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border.all(color: Colors.grey, width: 1),
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
children: [
|
||||||
|
Checkbox(
|
||||||
|
value: isServiceSelected(
|
||||||
|
service.serviceID),
|
||||||
|
activeColor: Colors.black38,
|
||||||
|
onChanged: (bool newValue) {
|
||||||
|
setState(() {
|
||||||
|
if(!isServiceSelected(service.serviceID))
|
||||||
|
widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.add( PatientERHHCInsertServicesList(
|
||||||
|
recordID:widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.length,
|
||||||
|
serviceID: service.serviceID,
|
||||||
|
serviceName: service.description));
|
||||||
|
else
|
||||||
|
removeSelected(service.serviceID);
|
||||||
|
// widget.patientERInsertPresOrderRequestModel
|
||||||
|
// isPatientInsured = newValue;
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
Expanded(
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(20.0),
|
||||||
|
child: Texts(
|
||||||
|
service.description,
|
||||||
|
fontSize: 15,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}).toList(),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
bottomSheet: Container(
|
||||||
|
height: MediaQuery.of(context).size.height * 0.10,
|
||||||
|
width: double.infinity,
|
||||||
|
child: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
width: MediaQuery.of(context).size.width * 0.9,
|
||||||
|
child: SecondaryButton(
|
||||||
|
label: "Next",
|
||||||
|
disabled: this
|
||||||
|
.widget
|
||||||
|
.patientERInsertPresOrderRequestModel
|
||||||
|
.patientERHHCInsertServicesList
|
||||||
|
.length ==
|
||||||
|
0,
|
||||||
|
textColor: Theme.of(context).backgroundColor),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
isServiceSelected(int serviceId) {
|
||||||
|
Iterable <PatientERHHCInsertServicesList> patientERHHCInsertServicesList = widget
|
||||||
|
.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList
|
||||||
|
.where((element) => serviceId == element.serviceID);
|
||||||
|
if(patientERHHCInsertServicesList.length > 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
removeSelected(int serviceId){
|
||||||
|
Iterable <PatientERHHCInsertServicesList> patientERHHCInsertServicesList = widget
|
||||||
|
.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList
|
||||||
|
.where((element) => serviceId == element.serviceID);
|
||||||
|
|
||||||
|
if(patientERHHCInsertServicesList.length > 0)
|
||||||
|
setState(() {
|
||||||
|
widget.patientERInsertPresOrderRequestModel.patientERHHCInsertServicesList.remove(patientERHHCInsertServicesList);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,299 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_order_detail_by_order_iD_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/patient_er_insert_pres_order_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/HomeHealthCare/Dialog/confirm_cancel_order_dialog.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/utils.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import '../StepsWidget.dart';
|
||||||
|
import 'new_Home_health_care_step_one_page.dart';
|
||||||
|
|
||||||
|
class NewHomeHealthCarePage extends StatefulWidget {
|
||||||
|
NewHomeHealthCarePage({this.model});
|
||||||
|
|
||||||
|
final HomeHealthCareViewModel model;
|
||||||
|
|
||||||
|
@override
|
||||||
|
_NewHomeHealthCarePageState createState() => _NewHomeHealthCarePageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _NewHomeHealthCarePageState extends State<NewHomeHealthCarePage>
|
||||||
|
with TickerProviderStateMixin {
|
||||||
|
PageController _controller;
|
||||||
|
int _currentIndex = 1;
|
||||||
|
int pageSelected = 2;
|
||||||
|
|
||||||
|
PatientERInsertPresOrderRequestModel patientERInsertPresOrderRequestModel =
|
||||||
|
new PatientERInsertPresOrderRequestModel();
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_controller = new PageController();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
_changeCurrentTab(int tab) {
|
||||||
|
setState(() {
|
||||||
|
_currentIndex = tab;
|
||||||
|
});
|
||||||
|
_controller.animateToPage(tab,
|
||||||
|
duration: Duration(milliseconds: 800), curve: Curves.easeOutQuart);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
void showConfirmMessage(HomeHealthCareViewModel model,
|
||||||
|
GetOrderDetailByOrderIDResponseModel order) {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
child: ConfirmCancelOrderDialog(
|
||||||
|
model: model,
|
||||||
|
onTap: () async {
|
||||||
|
UpdatePresOrderRequestModel updatePresOrderRequestModel =
|
||||||
|
UpdatePresOrderRequestModel(
|
||||||
|
presOrderID: order.presOrderID,
|
||||||
|
rejectionReason: "",
|
||||||
|
presOrderStatus: 4,
|
||||||
|
editedBy: 3);
|
||||||
|
await model.updateHHCPresOrder(updatePresOrderRequestModel);
|
||||||
|
if (model.state == ViewState.ErrorLocal) {
|
||||||
|
Utils.showErrorToast(model.error);
|
||||||
|
} else {
|
||||||
|
AppToast.showSuccessToast(message: "Done Successfully");
|
||||||
|
await model.getHHCAllPresOrders();
|
||||||
|
// await model.getHHCAllServices();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
return Scaffold(
|
||||||
|
body: SafeArea(
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Container(
|
||||||
|
height: MediaQuery.of(context).size.height * 0.8,
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
|
||||||
|
Container(
|
||||||
|
margin: EdgeInsets.only(left: MediaQuery.of(context).size.width*0.05, right: MediaQuery.of(context).size.width*0.05),
|
||||||
|
child: StepsWidget(
|
||||||
|
index: _currentIndex,
|
||||||
|
changeCurrentTab: _changeCurrentTab,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: PageView(
|
||||||
|
physics: NeverScrollableScrollPhysics(),
|
||||||
|
controller: _controller,
|
||||||
|
onPageChanged: (index) {
|
||||||
|
setState(() {
|
||||||
|
_currentIndex = index;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
scrollDirection: Axis.horizontal,
|
||||||
|
children: <Widget>[
|
||||||
|
widget.model.pendingOrder != null
|
||||||
|
? FractionallySizedBox(
|
||||||
|
widthFactor: 0.9,
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Container(
|
||||||
|
width: double.infinity,
|
||||||
|
margin: EdgeInsets.only(top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border.all(color: Colors.grey, width: 1),
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Request ID",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
widget.model.pendingOrder.iD.toString(),
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Status",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
widget.model.pendingOrder.description,
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Pickup Date",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
DateUtil.getDayMonthYearDateFormatted(
|
||||||
|
DateUtil.convertStringToDate(widget
|
||||||
|
.model.pendingOrder.createdOn)),
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
...List.generate(
|
||||||
|
widget.model.hhcAllOrderDetail.length,
|
||||||
|
(index) => Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Service Name",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
widget.model.hhcAllOrderDetail[index]
|
||||||
|
.description,
|
||||||
|
fontSize: 22,
|
||||||
|
bold: true,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
Center(
|
||||||
|
child: Container(
|
||||||
|
width:
|
||||||
|
MediaQuery.of(context).size.width * 0.85,
|
||||||
|
child: SecondaryButton(
|
||||||
|
label: "Cancel".toUpperCase(),
|
||||||
|
onTap: () {
|
||||||
|
showConfirmMessage(widget.model,
|
||||||
|
widget.model.hhcAllOrderDetail[0]);
|
||||||
|
},
|
||||||
|
color: Colors.red[800],
|
||||||
|
disabled: false,
|
||||||
|
textColor:
|
||||||
|
Theme.of(context).backgroundColor),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: NewHomeHealthCareStepOnePage(
|
||||||
|
changePageViewIndex: _changeCurrentTab,
|
||||||
|
patientERInsertPresOrderRequestModel: patientERInsertPresOrderRequestModel,
|
||||||
|
model: widget.model,
|
||||||
|
),
|
||||||
|
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,181 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class StepsWidget extends StatelessWidget {
|
||||||
|
final int index;
|
||||||
|
final Function changeCurrentTab;
|
||||||
|
|
||||||
|
StepsWidget({Key key, this.index, this.changeCurrentTab});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
ProjectViewModel projectViewModel = Provider.of(context);
|
||||||
|
return projectViewModel.isArabic? Stack(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
height: 50,
|
||||||
|
width: MediaQuery.of(context).size.width,
|
||||||
|
color: Colors.transparent,
|
||||||
|
child: Center(
|
||||||
|
child: Divider(
|
||||||
|
color: Colors.grey,
|
||||||
|
height: 0.75,
|
||||||
|
thickness: 0.75,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Positioned(
|
||||||
|
top: 10,
|
||||||
|
left: 0,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () => changeCurrentTab(0),
|
||||||
|
child: Container(
|
||||||
|
width: 35,
|
||||||
|
height: 35,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: index > 0 ? null:Border.all(color: Colors.black,width: 0.75),
|
||||||
|
shape: BoxShape.circle,
|
||||||
|
color: index == 0 ? Colors.grey[800] : index > 0 ?Colors.green: Colors.white,
|
||||||
|
),
|
||||||
|
child: Center(
|
||||||
|
child: Texts(
|
||||||
|
'1',
|
||||||
|
color: index == 0 ? Colors.white : index > 0 ?Colors.white: Colors.grey[800],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Positioned(
|
||||||
|
top: 10,
|
||||||
|
left: MediaQuery.of(context).size.width * 0.42,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () => index >= 2 ? changeCurrentTab(1) : null,
|
||||||
|
child: Container(
|
||||||
|
width: 35,
|
||||||
|
height: 35,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: index > 1 ? null:Border.all(color: Colors.black,width: 0.75),
|
||||||
|
shape: BoxShape.circle,
|
||||||
|
color: index == 1 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
|
||||||
|
),
|
||||||
|
child: Center(
|
||||||
|
child: Texts(
|
||||||
|
'2',
|
||||||
|
color: index == 1? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Positioned(
|
||||||
|
top: 10,
|
||||||
|
right: 0,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () => index == 2 ?changeCurrentTab(3) : null,
|
||||||
|
child: Container(
|
||||||
|
width: 35,
|
||||||
|
height: 35,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
shape: BoxShape.circle,
|
||||||
|
border: Border.all(color: Colors.black,width: 0.75),
|
||||||
|
color: index == 2 ? Colors.grey[800] : Colors.white,
|
||||||
|
),
|
||||||
|
child: Center(
|
||||||
|
child: Texts(
|
||||||
|
'3',
|
||||||
|
color: index == 2 ? Colors.white : Colors.grey[800],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
|
],
|
||||||
|
):Stack(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
height: 50,
|
||||||
|
width: MediaQuery.of(context).size.width,
|
||||||
|
color: Colors.transparent,
|
||||||
|
child: Center(
|
||||||
|
child: Divider(
|
||||||
|
color: Colors.grey,
|
||||||
|
height: 0.75,
|
||||||
|
thickness: 0.75,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Positioned(
|
||||||
|
top: 10,
|
||||||
|
right: 0,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () => changeCurrentTab(0),
|
||||||
|
child: Container(
|
||||||
|
width: 35,
|
||||||
|
height: 35,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: index > 0 ? null:Border.all(color: Colors.black,width: 0.75),
|
||||||
|
shape: BoxShape.circle,
|
||||||
|
color: index == 0 ? Colors.grey[800] : index > 0 ?Colors.green: Colors.white,
|
||||||
|
),
|
||||||
|
child: Center(
|
||||||
|
child: Texts(
|
||||||
|
'1',
|
||||||
|
color: index == 0 ? Colors.white : index > 0 ?Colors.white: Colors.grey[800],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Positioned(
|
||||||
|
top: 10,
|
||||||
|
left: MediaQuery.of(context).size.width * 0.42,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () => index >= 2 ? changeCurrentTab(1) : null,
|
||||||
|
child: Container(
|
||||||
|
width: 35,
|
||||||
|
height: 35,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: index > 1 ? null:Border.all(color: Colors.black,width: 0.75),
|
||||||
|
shape: BoxShape.circle,
|
||||||
|
color: index == 1 ? Colors.grey[800] : index > 1 ?Colors.green: Colors.white,
|
||||||
|
),
|
||||||
|
child: Center(
|
||||||
|
child: Texts(
|
||||||
|
'2',
|
||||||
|
color: index == 1? Colors.white : index > 1 ?Colors.white: Colors.grey[800],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Positioned(
|
||||||
|
top: 10,
|
||||||
|
left: 0,
|
||||||
|
child: InkWell(
|
||||||
|
onTap: () => index == 2 ?changeCurrentTab(3) : null,
|
||||||
|
child: Container(
|
||||||
|
width: 35,
|
||||||
|
height: 35,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
shape: BoxShape.circle,
|
||||||
|
border: Border.all(color: Colors.black,width: 0.75),
|
||||||
|
color: index == 2 ? Colors.grey[800] : Colors.white,
|
||||||
|
),
|
||||||
|
child: Center(
|
||||||
|
child: Texts(
|
||||||
|
'3',
|
||||||
|
color: index == 2 ? Colors.white : Colors.grey[800],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,69 @@
|
|||||||
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hexcolor/hexcolor.dart';
|
||||||
|
|
||||||
|
import 'home_health_care_page.dart';
|
||||||
|
|
||||||
|
class HomeHealthCareIndexPage extends StatelessWidget {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return AppScaffold(
|
||||||
|
isShowAppBar: true,
|
||||||
|
appBarTitle: TranslationBase.of(context).serviceInformation,
|
||||||
|
body: SingleChildScrollView(
|
||||||
|
padding: EdgeInsets.all(12),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: <Widget>[
|
||||||
|
Texts(
|
||||||
|
TranslationBase.of(context).homeHealthCare,
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
fontSize: 25,
|
||||||
|
color: Color(0xff60686b),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
TranslationBase.of(context).homeHealthCareText,
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
fontSize: 17,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 22,
|
||||||
|
),
|
||||||
|
Center(
|
||||||
|
child: Image.asset(
|
||||||
|
'assets/images/AlHabibMedicalService/Wifi-AR.png')),
|
||||||
|
SizedBox(
|
||||||
|
height: 77,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
)),
|
||||||
|
bottomSheet: Container(
|
||||||
|
height: MediaQuery.of(context).size.height * 0.10,
|
||||||
|
width: double.infinity,
|
||||||
|
child: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Container(
|
||||||
|
width: MediaQuery.of(context).size.width * 0.9,
|
||||||
|
child: SecondaryButton(
|
||||||
|
onTap: () => Navigator.push(
|
||||||
|
context,
|
||||||
|
FadePage(
|
||||||
|
page: HomeHealthCarePage(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
label: TranslationBase.of(context).loginRegister,
|
||||||
|
textColor: Theme.of(context).backgroundColor),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,132 @@
|
|||||||
|
import 'dart:ui';
|
||||||
|
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/all_habib_medical_services/e_referral_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'NewHomeHealthCare/new_home_health_care_page.dart';
|
||||||
|
import 'orders_log_details_page.dart';
|
||||||
|
|
||||||
|
class HomeHealthCarePage extends StatefulWidget {
|
||||||
|
@override
|
||||||
|
_HomeHealthCarePageState createState() => _HomeHealthCarePageState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _HomeHealthCarePageState extends State<HomeHealthCarePage>
|
||||||
|
with SingleTickerProviderStateMixin {
|
||||||
|
TabController _tabController;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_tabController = TabController(length: 2, vsync: this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
super.dispose();
|
||||||
|
_tabController.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return BaseView<HomeHealthCareViewModel>(
|
||||||
|
onModelReady: (model){
|
||||||
|
// model.getHHCAllServices();
|
||||||
|
model.getHHCAllPresOrders();
|
||||||
|
},
|
||||||
|
builder: (_, model, widget) => AppScaffold(
|
||||||
|
isShowAppBar: true,
|
||||||
|
appBarTitle: TranslationBase.of(context).homeHealthCare,
|
||||||
|
body: Scaffold(
|
||||||
|
extendBodyBehindAppBar: true,
|
||||||
|
appBar: PreferredSize(
|
||||||
|
preferredSize: Size.fromHeight(65.0),
|
||||||
|
child: Stack(
|
||||||
|
children: <Widget>[
|
||||||
|
Positioned(
|
||||||
|
bottom: 1,
|
||||||
|
left: 0,
|
||||||
|
right: 0,
|
||||||
|
child: BackdropFilter(
|
||||||
|
filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10),
|
||||||
|
child: Container(
|
||||||
|
color: Theme.of(context)
|
||||||
|
.scaffoldBackgroundColor
|
||||||
|
.withOpacity(0.8),
|
||||||
|
height: 70.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Center(
|
||||||
|
child: Container(
|
||||||
|
height: 60.0,
|
||||||
|
margin: EdgeInsets.only(top: 10.0),
|
||||||
|
width: MediaQuery.of(context).size.width * 0.9,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Theme.of(context).dividerColor,
|
||||||
|
width: 0.7),
|
||||||
|
),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Center(
|
||||||
|
child: TabBar(
|
||||||
|
isScrollable: true,
|
||||||
|
controller: _tabController,
|
||||||
|
indicatorWeight: 5.0,
|
||||||
|
indicatorSize: TabBarIndicatorSize.label,
|
||||||
|
indicatorColor: Colors.red[800],
|
||||||
|
labelColor: Theme.of(context).primaryColor,
|
||||||
|
labelPadding:
|
||||||
|
EdgeInsets.only(top: 4.0, left: 18.0, right: 18.0),
|
||||||
|
unselectedLabelColor: Colors.grey[800],
|
||||||
|
tabs: [
|
||||||
|
Container(
|
||||||
|
width: MediaQuery.of(context).size.width * 0.37,
|
||||||
|
child: Center(
|
||||||
|
child: Texts(TranslationBase.of(context).homeHealthCare),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: MediaQuery.of(context).size.width * 0.37,
|
||||||
|
child: Center(
|
||||||
|
child: Texts(TranslationBase.of(context).orderLog),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
body: Column(
|
||||||
|
children: <Widget>[
|
||||||
|
Expanded(
|
||||||
|
child: TabBarView(
|
||||||
|
physics: BouncingScrollPhysics(),
|
||||||
|
controller: _tabController,
|
||||||
|
children: <Widget>[
|
||||||
|
NewHomeHealthCarePage(
|
||||||
|
model: model,
|
||||||
|
),
|
||||||
|
OrdersLogDetailsPage(
|
||||||
|
model: model,
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,251 @@
|
|||||||
|
import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/get_hhc_all_pres_orders_response_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/model/AlHabibMedicalService/HomeHealthCare/update_pres_oreder_request_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/home_health_care_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/utils.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
import 'Dialog/confirm_cancel_order_dialog.dart';
|
||||||
|
|
||||||
|
class OrdersLogDetailsPage extends StatelessWidget {
|
||||||
|
final HomeHealthCareViewModel model;
|
||||||
|
|
||||||
|
const OrdersLogDetailsPage({Key key, this.model}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
void showConfirmMessage(
|
||||||
|
HomeHealthCareViewModel model, GetHHCAllPresOrdersResponseModel order) {
|
||||||
|
showDialog(
|
||||||
|
context: context,
|
||||||
|
child: ConfirmCancelOrderDialog(
|
||||||
|
model: model,
|
||||||
|
onTap: () async {
|
||||||
|
UpdatePresOrderRequestModel updatePresOrderRequestModel =
|
||||||
|
UpdatePresOrderRequestModel(
|
||||||
|
presOrderID: order.iD,
|
||||||
|
rejectionReason: "",
|
||||||
|
presOrderStatus: 4, editedBy: 3);
|
||||||
|
await model.updateHHCPresOrder(updatePresOrderRequestModel);
|
||||||
|
if(model.state == ViewState.ErrorLocal) {
|
||||||
|
Utils.showErrorToast(model.error);
|
||||||
|
} else {
|
||||||
|
AppToast.showSuccessToast(message: "Done Successfully");
|
||||||
|
await model.getHHCAllPresOrders();
|
||||||
|
// await model.getHHCAllServices();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
return AppScaffold(
|
||||||
|
isShowAppBar: false,
|
||||||
|
baseViewModel: model,
|
||||||
|
body: SingleChildScrollView(
|
||||||
|
physics: ScrollPhysics(),
|
||||||
|
child: Container(
|
||||||
|
margin: EdgeInsets.all(12),
|
||||||
|
child: Center(
|
||||||
|
child: FractionallySizedBox(
|
||||||
|
widthFactor: 0.94,
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
height: 50,
|
||||||
|
),
|
||||||
|
Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: model.hhcAllPresOrders.map((order) {
|
||||||
|
return Container(
|
||||||
|
width: double.infinity,
|
||||||
|
margin: EdgeInsets.only(top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border:
|
||||||
|
Border.all(color: Colors.grey, width: 1),
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Request ID",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
order.iD.toString(),
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Status",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
order.description,
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Pickup Date",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
DateUtil.getDayMonthYearDateFormatted(
|
||||||
|
DateUtil.convertStringToDate(
|
||||||
|
order.createdOn)),
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Container(
|
||||||
|
width: double.infinity,
|
||||||
|
padding: EdgeInsets.only(
|
||||||
|
left: 15, bottom: 15, top: 15),
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
border: Border(
|
||||||
|
bottom: BorderSide(
|
||||||
|
color: Colors.grey,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// borderRadius: BorderRadius.circular(12),
|
||||||
|
color: Colors.white),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment:
|
||||||
|
CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Texts(
|
||||||
|
"Location",
|
||||||
|
bold: false,
|
||||||
|
fontSize: 13,
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 4,
|
||||||
|
),
|
||||||
|
Texts(
|
||||||
|
order.nearestProjectDescription
|
||||||
|
.toString() ??
|
||||||
|
order.nearestProjectDescriptionN
|
||||||
|
.toString(),
|
||||||
|
fontSize: 22,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
if (order.status == 1 ||order.status == 2 )
|
||||||
|
Center(
|
||||||
|
child: Container(
|
||||||
|
width: MediaQuery
|
||||||
|
.of(context)
|
||||||
|
.size
|
||||||
|
.width *
|
||||||
|
0.85,
|
||||||
|
child: SecondaryButton(
|
||||||
|
label: "Cancel".toUpperCase(),
|
||||||
|
onTap: () {
|
||||||
|
showConfirmMessage(model, order);
|
||||||
|
}
|
||||||
|
,
|
||||||
|
color: Colors.red[800],
|
||||||
|
disabled: false,
|
||||||
|
textColor: Theme
|
||||||
|
.of(context)
|
||||||
|
.backgroundColor),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: 12,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}).toList())
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,77 @@
|
|||||||
|
import 'package:diplomaticquarterapp/config/config.dart';
|
||||||
|
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
|
||||||
|
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart';
|
||||||
|
import 'package:diplomaticquarterapp/widgets/others/close_back.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:google_maps_place_picker/google_maps_place_picker.dart';
|
||||||
|
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
|
class PickupLocationFromMap extends StatelessWidget {
|
||||||
|
final Function(PickResult) onPick;
|
||||||
|
final double latitude;
|
||||||
|
final double longitude;
|
||||||
|
|
||||||
|
const PickupLocationFromMap({Key key, this.onPick, this.latitude, this.longitude})
|
||||||
|
: super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
ProjectViewModel projectViewModel = Provider.of(context);
|
||||||
|
return Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
elevation: 0,
|
||||||
|
textTheme: TextTheme(
|
||||||
|
headline6:
|
||||||
|
TextStyle(color: Colors.white, fontWeight: FontWeight.bold),
|
||||||
|
),
|
||||||
|
title: Text('Location'),
|
||||||
|
leading: CloseBack(),
|
||||||
|
centerTitle: true,
|
||||||
|
),
|
||||||
|
body: PlacePicker(
|
||||||
|
apiKey: GOOGLE_API_KEY,
|
||||||
|
enableMyLocationButton: true,
|
||||||
|
|
||||||
|
autocompleteLanguage: projectViewModel.currentLanguage,
|
||||||
|
enableMapTypeButton: true,
|
||||||
|
onPlacePicked: (PickResult result) {
|
||||||
|
print(result.adrAddress);
|
||||||
|
onPick(result);
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
|
selectedPlaceWidgetBuilder:
|
||||||
|
(_, selectedPlace, state, isSearchBarFocused) {
|
||||||
|
print("state: $state, isSearchBarFocused: $isSearchBarFocused");
|
||||||
|
return isSearchBarFocused
|
||||||
|
? Container()
|
||||||
|
: FloatingCard(
|
||||||
|
bottomPosition: 0.0,
|
||||||
|
leftPosition: 0.0,
|
||||||
|
rightPosition: 0.0,
|
||||||
|
width: 500,
|
||||||
|
borderRadius: BorderRadius.circular(12.0),
|
||||||
|
child: state == SearchingState.Searching
|
||||||
|
? Center(child: CircularProgressIndicator())
|
||||||
|
: Container(
|
||||||
|
margin: EdgeInsets.all(12),
|
||||||
|
child: SecondaryButton(
|
||||||
|
color: Colors.grey[800],
|
||||||
|
textColor: Colors.white,
|
||||||
|
onTap: () {
|
||||||
|
onPick(selectedPlace);
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
|
label: TranslationBase.of(context).next,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
},
|
||||||
|
initialPosition: LatLng(latitude, longitude),
|
||||||
|
useCurrentLocation: true,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue