diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index 14a82cb..abe468a 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"connectivity_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"file_picker","path":"/home/venba/.pub-cache/hosted/pub.dev/file_picker-10.3.7/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"firebase_auth","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_auth-6.1.2/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"firebase_core","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_core-4.2.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"firebase_messaging","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_messaging-16.0.4/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/home/venba/.pub-cache/hosted/pub.dev/fluttertoast-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"google_sign_in_ios","path":"/home/venba/.pub-cache/hosted/pub.dev/google_sign_in_ios-6.2.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"local_auth_darwin","path":"/home/venba/.pub-cache/hosted/pub.dev/local_auth_darwin-1.6.0/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"open_file_ios","path":"/home/venba/.pub-cache/hosted/pub.dev/open_file_ios-1.0.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/home/venba/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.2/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"pdf_render","path":"/home/venba/.pub-cache/hosted/pub.dev/pdf_render-1.4.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_foundation","path":"/home/venba/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"syncfusion_flutter_pdfviewer","path":"/home/venba/.pub-cache/hosted/pub.dev/syncfusion_flutter_pdfviewer-31.1.19/","native_build":true,"dependencies":["device_info_plus"],"dev_dependency":false},{"name":"url_launcher_ios","path":"/home/venba/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.4/","native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"connectivity_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"file_picker","path":"/home/venba/.pub-cache/hosted/pub.dev/file_picker-10.3.7/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"firebase_auth","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_auth-6.1.2/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"firebase_core","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_core-4.2.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"firebase_messaging","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_messaging-16.0.4/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.31/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/home/venba/.pub-cache/hosted/pub.dev/fluttertoast-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"google_sign_in_android","path":"/home/venba/.pub-cache/hosted/pub.dev/google_sign_in_android-7.2.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"local_auth_android","path":"/home/venba/.pub-cache/hosted/pub.dev/local_auth_android-1.0.52/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"open_file_android","path":"/home/venba/.pub-cache/hosted/pub.dev/open_file_android-1.0.6/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/home/venba/.pub-cache/hosted/pub.dev/path_provider_android-2.2.19/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"pdf_render","path":"/home/venba/.pub-cache/hosted/pub.dev/pdf_render-1.4.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_android","path":"/home/venba/.pub-cache/hosted/pub.dev/shared_preferences_android-2.4.13/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"syncfusion_flutter_pdfviewer","path":"/home/venba/.pub-cache/hosted/pub.dev/syncfusion_flutter_pdfviewer-31.1.19/","native_build":true,"dependencies":["device_info_plus"],"dev_dependency":false},{"name":"url_launcher_android","path":"/home/venba/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.20/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"connectivity_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"file_picker","path":"/home/venba/.pub-cache/hosted/pub.dev/file_picker-10.3.7/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"firebase_auth","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_auth-6.1.2/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"firebase_core","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_core-4.2.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"firebase_messaging","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_messaging-16.0.4/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"flutter_secure_storage_macos","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"google_sign_in_ios","path":"/home/venba/.pub-cache/hosted/pub.dev/google_sign_in_ios-6.2.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"local_auth_darwin","path":"/home/venba/.pub-cache/hosted/pub.dev/local_auth_darwin-1.6.0/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"open_file_mac","path":"/home/venba/.pub-cache/hosted/pub.dev/open_file_mac-1.0.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/home/venba/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.2/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"pdf_render","path":"/home/venba/.pub-cache/hosted/pub.dev/pdf_render-1.4.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_foundation","path":"/home/venba/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"syncfusion_pdfviewer_macos","path":"/home/venba/.pub-cache/hosted/pub.dev/syncfusion_pdfviewer_macos-31.1.19/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_macos","path":"/home/venba/.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.3/","native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"connectivity_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"file_picker","path":"/home/venba/.pub-cache/hosted/pub.dev/file_picker-10.3.7/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_linux","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"open_file_linux","path":"/home/venba/.pub-cache/hosted/pub.dev/open_file_linux-0.0.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/home/venba/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_linux","path":"/home/venba/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/","native_build":false,"dependencies":["path_provider_linux"],"dev_dependency":false},{"name":"syncfusion_pdfviewer_linux","path":"/home/venba/.pub-cache/hosted/pub.dev/syncfusion_pdfviewer_linux-31.1.19/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_linux","path":"/home/venba/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.2/","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"connectivity_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"file_picker","path":"/home/venba/.pub-cache/hosted/pub.dev/file_picker-10.3.7/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"firebase_auth","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_auth-6.1.2/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"firebase_core","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_core-4.2.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"local_auth_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/local_auth_windows-1.0.11/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"open_file_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/open_file_windows-0.0.3/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/","native_build":false,"dependencies":["path_provider_windows"],"dev_dependency":false},{"name":"syncfusion_pdfviewer_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/syncfusion_pdfviewer_windows-31.1.19/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.5/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"connectivity_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/","dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/","dependencies":[],"dev_dependency":false},{"name":"file_picker","path":"/home/venba/.pub-cache/hosted/pub.dev/file_picker-10.3.7/","dependencies":[],"dev_dependency":false},{"name":"firebase_auth_web","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_auth_web-6.1.0/","dependencies":["firebase_core_web"],"dev_dependency":false},{"name":"firebase_core_web","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_core_web-3.3.0/","dependencies":[],"dev_dependency":false},{"name":"firebase_messaging_web","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_messaging_web-4.1.0/","dependencies":["firebase_core_web"],"dev_dependency":false},{"name":"flutter_secure_storage_web","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/","dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/home/venba/.pub-cache/hosted/pub.dev/fluttertoast-9.0.0/","dependencies":[],"dev_dependency":false},{"name":"google_sign_in_web","path":"/home/venba/.pub-cache/hosted/pub.dev/google_sign_in_web-1.1.0/","dependencies":[],"dev_dependency":false},{"name":"open_file_web","path":"/home/venba/.pub-cache/hosted/pub.dev/open_file_web-0.0.4/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/","dependencies":[],"dev_dependency":false},{"name":"pdf_render","path":"/home/venba/.pub-cache/hosted/pub.dev/pdf_render-1.4.12/","dependencies":[],"dev_dependency":false},{"name":"shared_preferences_web","path":"/home/venba/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.3/","dependencies":[],"dev_dependency":false},{"name":"syncfusion_pdfviewer_web","path":"/home/venba/.pub-cache/hosted/pub.dev/syncfusion_pdfviewer_web-31.1.19/","dependencies":[],"dev_dependency":false},{"name":"url_launcher_web","path":"/home/venba/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.1/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"connectivity_plus","dependencies":[]},{"name":"device_info_plus","dependencies":[]},{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"firebase_auth","dependencies":["firebase_auth_web","firebase_core"]},{"name":"firebase_auth_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"firebase_core","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","dependencies":[]},{"name":"firebase_messaging","dependencies":["firebase_core","firebase_messaging_web"]},{"name":"firebase_messaging_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":["path_provider"]},{"name":"fluttertoast","dependencies":[]},{"name":"google_sign_in","dependencies":["google_sign_in_android","google_sign_in_ios","google_sign_in_web"]},{"name":"google_sign_in_android","dependencies":[]},{"name":"google_sign_in_ios","dependencies":[]},{"name":"google_sign_in_web","dependencies":[]},{"name":"local_auth","dependencies":["local_auth_android","local_auth_darwin","local_auth_windows"]},{"name":"local_auth_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"local_auth_darwin","dependencies":[]},{"name":"local_auth_windows","dependencies":[]},{"name":"open_file","dependencies":["open_file_android","open_file_web","open_file_ios","open_file_mac","open_file_windows","open_file_linux"]},{"name":"open_file_android","dependencies":[]},{"name":"open_file_ios","dependencies":[]},{"name":"open_file_linux","dependencies":[]},{"name":"open_file_mac","dependencies":[]},{"name":"open_file_web","dependencies":[]},{"name":"open_file_windows","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"pdf_render","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"syncfusion_flutter_pdfviewer","dependencies":["url_launcher","device_info_plus","syncfusion_pdfviewer_web","syncfusion_pdfviewer_macos","syncfusion_pdfviewer_windows","syncfusion_pdfviewer_linux"]},{"name":"syncfusion_pdfviewer_linux","dependencies":[]},{"name":"syncfusion_pdfviewer_macos","dependencies":[]},{"name":"syncfusion_pdfviewer_web","dependencies":[]},{"name":"syncfusion_pdfviewer_windows","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2026-01-03 15:15:25.227888","version":"3.32.1","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"connectivity_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"file_picker","path":"/home/venba/.pub-cache/hosted/pub.dev/file_picker-10.3.7/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"firebase_auth","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_auth-6.1.2/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"firebase_core","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_core-4.2.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"firebase_messaging","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_messaging-16.0.4/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/home/venba/.pub-cache/hosted/pub.dev/fluttertoast-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"google_sign_in_ios","path":"/home/venba/.pub-cache/hosted/pub.dev/google_sign_in_ios-6.2.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"local_auth_darwin","path":"/home/venba/.pub-cache/hosted/pub.dev/local_auth_darwin-1.6.0/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"open_file_ios","path":"/home/venba/.pub-cache/hosted/pub.dev/open_file_ios-1.0.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/home/venba/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.2/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"pdf_render","path":"/home/venba/.pub-cache/hosted/pub.dev/pdf_render-1.4.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_foundation","path":"/home/venba/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"syncfusion_flutter_pdfviewer","path":"/home/venba/.pub-cache/hosted/pub.dev/syncfusion_flutter_pdfviewer-31.1.19/","native_build":true,"dependencies":["device_info_plus"],"dev_dependency":false},{"name":"url_launcher_ios","path":"/home/venba/.pub-cache/hosted/pub.dev/url_launcher_ios-6.3.4/","native_build":true,"dependencies":[],"dev_dependency":false}],"android":[{"name":"connectivity_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"file_picker","path":"/home/venba/.pub-cache/hosted/pub.dev/file_picker-10.3.7/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"firebase_auth","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_auth-6.1.2/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"firebase_core","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_core-4.2.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"firebase_messaging","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_messaging-16.0.4/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"flutter_plugin_android_lifecycle","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_plugin_android_lifecycle-2.0.31/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_secure_storage-9.2.4/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/home/venba/.pub-cache/hosted/pub.dev/fluttertoast-9.0.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"google_sign_in_android","path":"/home/venba/.pub-cache/hosted/pub.dev/google_sign_in_android-7.2.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"local_auth_android","path":"/home/venba/.pub-cache/hosted/pub.dev/local_auth_android-1.0.52/","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"],"dev_dependency":false},{"name":"open_file_android","path":"/home/venba/.pub-cache/hosted/pub.dev/open_file_android-1.0.6/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_android","path":"/home/venba/.pub-cache/hosted/pub.dev/path_provider_android-2.2.19/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"pdf_render","path":"/home/venba/.pub-cache/hosted/pub.dev/pdf_render-1.4.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_android","path":"/home/venba/.pub-cache/hosted/pub.dev/shared_preferences_android-2.4.13/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"syncfusion_flutter_pdfviewer","path":"/home/venba/.pub-cache/hosted/pub.dev/syncfusion_flutter_pdfviewer-31.1.19/","native_build":true,"dependencies":["device_info_plus"],"dev_dependency":false},{"name":"url_launcher_android","path":"/home/venba/.pub-cache/hosted/pub.dev/url_launcher_android-6.3.20/","native_build":true,"dependencies":[],"dev_dependency":false}],"macos":[{"name":"connectivity_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"file_picker","path":"/home/venba/.pub-cache/hosted/pub.dev/file_picker-10.3.7/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"firebase_auth","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_auth-6.1.2/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"firebase_core","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_core-4.2.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"firebase_messaging","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_messaging-16.0.4/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"flutter_secure_storage_macos","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_secure_storage_macos-3.1.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"google_sign_in_ios","path":"/home/venba/.pub-cache/hosted/pub.dev/google_sign_in_ios-6.2.1/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"local_auth_darwin","path":"/home/venba/.pub-cache/hosted/pub.dev/local_auth_darwin-1.6.0/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"open_file_mac","path":"/home/venba/.pub-cache/hosted/pub.dev/open_file_mac-1.0.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"path_provider_foundation","path":"/home/venba/.pub-cache/hosted/pub.dev/path_provider_foundation-2.4.2/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"pdf_render","path":"/home/venba/.pub-cache/hosted/pub.dev/pdf_render-1.4.12/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_foundation","path":"/home/venba/.pub-cache/hosted/pub.dev/shared_preferences_foundation-2.5.4/","shared_darwin_source":true,"native_build":true,"dependencies":[],"dev_dependency":false},{"name":"syncfusion_pdfviewer_macos","path":"/home/venba/.pub-cache/hosted/pub.dev/syncfusion_pdfviewer_macos-31.1.19/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_macos","path":"/home/venba/.pub-cache/hosted/pub.dev/url_launcher_macos-3.2.3/","native_build":true,"dependencies":[],"dev_dependency":false}],"linux":[{"name":"connectivity_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"file_picker","path":"/home/venba/.pub-cache/hosted/pub.dev/file_picker-10.3.7/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_linux","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_secure_storage_linux-1.2.3/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"open_file_linux","path":"/home/venba/.pub-cache/hosted/pub.dev/open_file_linux-0.0.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_linux","path":"/home/venba/.pub-cache/hosted/pub.dev/path_provider_linux-2.2.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_linux","path":"/home/venba/.pub-cache/hosted/pub.dev/shared_preferences_linux-2.4.1/","native_build":false,"dependencies":["path_provider_linux"],"dev_dependency":false},{"name":"syncfusion_pdfviewer_linux","path":"/home/venba/.pub-cache/hosted/pub.dev/syncfusion_pdfviewer_linux-31.1.19/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_linux","path":"/home/venba/.pub-cache/hosted/pub.dev/url_launcher_linux-3.2.2/","native_build":true,"dependencies":[],"dev_dependency":false}],"windows":[{"name":"connectivity_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"file_picker","path":"/home/venba/.pub-cache/hosted/pub.dev/file_picker-10.3.7/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"firebase_auth","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_auth-6.1.2/","native_build":true,"dependencies":["firebase_core"],"dev_dependency":false},{"name":"firebase_core","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_core-4.2.1/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"flutter_secure_storage_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_secure_storage_windows-3.1.2/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"local_auth_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/local_auth_windows-1.0.11/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"open_file_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/open_file_windows-0.0.3/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"path_provider_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/path_provider_windows-2.3.0/","native_build":false,"dependencies":[],"dev_dependency":false},{"name":"shared_preferences_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/shared_preferences_windows-2.4.1/","native_build":false,"dependencies":["path_provider_windows"],"dev_dependency":false},{"name":"syncfusion_pdfviewer_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/syncfusion_pdfviewer_windows-31.1.19/","native_build":true,"dependencies":[],"dev_dependency":false},{"name":"url_launcher_windows","path":"/home/venba/.pub-cache/hosted/pub.dev/url_launcher_windows-3.1.5/","native_build":true,"dependencies":[],"dev_dependency":false}],"web":[{"name":"connectivity_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/connectivity_plus-6.1.5/","dependencies":[],"dev_dependency":false},{"name":"device_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/device_info_plus-11.5.0/","dependencies":[],"dev_dependency":false},{"name":"file_picker","path":"/home/venba/.pub-cache/hosted/pub.dev/file_picker-10.3.7/","dependencies":[],"dev_dependency":false},{"name":"firebase_auth_web","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_auth_web-6.1.0/","dependencies":["firebase_core_web"],"dev_dependency":false},{"name":"firebase_core_web","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_core_web-3.3.0/","dependencies":[],"dev_dependency":false},{"name":"firebase_messaging_web","path":"/home/venba/.pub-cache/hosted/pub.dev/firebase_messaging_web-4.1.0/","dependencies":["firebase_core_web"],"dev_dependency":false},{"name":"flutter_secure_storage_web","path":"/home/venba/.pub-cache/hosted/pub.dev/flutter_secure_storage_web-1.2.1/","dependencies":[],"dev_dependency":false},{"name":"fluttertoast","path":"/home/venba/.pub-cache/hosted/pub.dev/fluttertoast-9.0.0/","dependencies":[],"dev_dependency":false},{"name":"google_sign_in_web","path":"/home/venba/.pub-cache/hosted/pub.dev/google_sign_in_web-1.1.0/","dependencies":[],"dev_dependency":false},{"name":"open_file_web","path":"/home/venba/.pub-cache/hosted/pub.dev/open_file_web-0.0.4/","dependencies":[],"dev_dependency":false},{"name":"package_info_plus","path":"/home/venba/.pub-cache/hosted/pub.dev/package_info_plus-8.3.1/","dependencies":[],"dev_dependency":false},{"name":"pdf_render","path":"/home/venba/.pub-cache/hosted/pub.dev/pdf_render-1.4.12/","dependencies":[],"dev_dependency":false},{"name":"shared_preferences_web","path":"/home/venba/.pub-cache/hosted/pub.dev/shared_preferences_web-2.4.3/","dependencies":[],"dev_dependency":false},{"name":"syncfusion_pdfviewer_web","path":"/home/venba/.pub-cache/hosted/pub.dev/syncfusion_pdfviewer_web-31.1.19/","dependencies":[],"dev_dependency":false},{"name":"url_launcher_web","path":"/home/venba/.pub-cache/hosted/pub.dev/url_launcher_web-2.4.1/","dependencies":[],"dev_dependency":false}]},"dependencyGraph":[{"name":"connectivity_plus","dependencies":[]},{"name":"device_info_plus","dependencies":[]},{"name":"file_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"firebase_auth","dependencies":["firebase_auth_web","firebase_core"]},{"name":"firebase_auth_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"firebase_core","dependencies":["firebase_core_web"]},{"name":"firebase_core_web","dependencies":[]},{"name":"firebase_messaging","dependencies":["firebase_core","firebase_messaging_web"]},{"name":"firebase_messaging_web","dependencies":["firebase_core","firebase_core_web"]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":["path_provider"]},{"name":"fluttertoast","dependencies":[]},{"name":"google_sign_in","dependencies":["google_sign_in_android","google_sign_in_ios","google_sign_in_web"]},{"name":"google_sign_in_android","dependencies":[]},{"name":"google_sign_in_ios","dependencies":[]},{"name":"google_sign_in_web","dependencies":[]},{"name":"local_auth","dependencies":["local_auth_android","local_auth_darwin","local_auth_windows"]},{"name":"local_auth_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"local_auth_darwin","dependencies":[]},{"name":"local_auth_windows","dependencies":[]},{"name":"open_file","dependencies":["open_file_android","open_file_web","open_file_ios","open_file_mac","open_file_windows","open_file_linux"]},{"name":"open_file_android","dependencies":[]},{"name":"open_file_ios","dependencies":[]},{"name":"open_file_linux","dependencies":[]},{"name":"open_file_mac","dependencies":[]},{"name":"open_file_web","dependencies":[]},{"name":"open_file_windows","dependencies":[]},{"name":"package_info_plus","dependencies":[]},{"name":"path_provider","dependencies":["path_provider_android","path_provider_foundation","path_provider_linux","path_provider_windows"]},{"name":"path_provider_android","dependencies":[]},{"name":"path_provider_foundation","dependencies":[]},{"name":"path_provider_linux","dependencies":[]},{"name":"path_provider_windows","dependencies":[]},{"name":"pdf_render","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_android","shared_preferences_foundation","shared_preferences_linux","shared_preferences_web","shared_preferences_windows"]},{"name":"shared_preferences_android","dependencies":[]},{"name":"shared_preferences_foundation","dependencies":[]},{"name":"shared_preferences_linux","dependencies":["path_provider_linux"]},{"name":"shared_preferences_web","dependencies":[]},{"name":"shared_preferences_windows","dependencies":["path_provider_windows"]},{"name":"syncfusion_flutter_pdfviewer","dependencies":["url_launcher","device_info_plus","syncfusion_pdfviewer_web","syncfusion_pdfviewer_macos","syncfusion_pdfviewer_windows","syncfusion_pdfviewer_linux"]},{"name":"syncfusion_pdfviewer_linux","dependencies":[]},{"name":"syncfusion_pdfviewer_macos","dependencies":[]},{"name":"syncfusion_pdfviewer_web","dependencies":[]},{"name":"syncfusion_pdfviewer_windows","dependencies":[]},{"name":"url_launcher","dependencies":["url_launcher_android","url_launcher_ios","url_launcher_linux","url_launcher_macos","url_launcher_web","url_launcher_windows"]},{"name":"url_launcher_android","dependencies":[]},{"name":"url_launcher_ios","dependencies":[]},{"name":"url_launcher_linux","dependencies":[]},{"name":"url_launcher_macos","dependencies":[]},{"name":"url_launcher_web","dependencies":[]},{"name":"url_launcher_windows","dependencies":[]}],"date_created":"2026-01-06 11:59:55.370415","version":"3.32.1","swift_package_manager_enabled":{"ios":false,"macos":false}} \ No newline at end of file diff --git a/lib/core/routing/app_router.dart b/lib/core/routing/app_router.dart index 7cacccf..eb028ed 100644 --- a/lib/core/routing/app_router.dart +++ b/lib/core/routing/app_router.dart @@ -15,6 +15,7 @@ import '../../presentation/screens/Enquiry/policy_claims_endros/claims.dart'; import '../../presentation/screens/Enquiry/policy_claims_endros/endrosment.dart'; import '../../presentation/screens/Masters/Brokers/brokerList.dart'; import '../../presentation/screens/Masters/EndorsementType/endorsementList.dart'; +import '../../presentation/screens/Masters/VehicleType/vehicleList.dart'; import '../../presentation/screens/StaffAttendance/attendanceAllDetails.dart'; import '../../presentation/screens/StaffAttendance/individual_Attendance.dart'; import '../../presentation/screens/UserManagement/Agent/agent.dart'; @@ -276,6 +277,10 @@ final GoRouter appRouter = GoRouter( path: AppRoutes.endorsementTypeLst, builder: (context, state) => const EndorsementTypeList(), ), + GoRoute( + path: AppRoutes.vehicleTypeLst, + builder: (context, state) => const VehicleTypeList(), + ), GoRoute( path: AppRoutes.paymentModeLst, builder: (context, state) => const PaymentLsit(), diff --git a/lib/core/routing/routes.dart b/lib/core/routing/routes.dart index ec745e8..1e7c83f 100644 --- a/lib/core/routing/routes.dart +++ b/lib/core/routing/routes.dart @@ -32,4 +32,5 @@ class AppRoutes { static const String brokerLst = '/brokerLst'; static const String paymentModeLst = '/paymentMode'; static const String endorsementTypeLst = '/endorsementTypeLst'; + static const String vehicleTypeLst = '/vehicleTypeLst'; } diff --git a/lib/core/services/api_service.dart b/lib/core/services/api_service.dart index 583eafa..5078b9a 100644 --- a/lib/core/services/api_service.dart +++ b/lib/core/services/api_service.dart @@ -730,6 +730,9 @@ class ApiService { else if (masterName == 'EndorsementType') { url = Uri.parse('${Env.apiUrl}master/updateEndorsementStatus/$id'); } + else if (masterName == 'VehicleType') { + url = Uri.parse('${Env.apiUrl}master/updateVehicleTypeStatus/$id'); + } else { url = Uri.parse('${Env.apiUrl}master/updatePaymentModeStatus/$id'); } @@ -812,7 +815,7 @@ class ApiService { ); // final url = Uri.parse( - // // 'http://localhost/nhance_partner_be/dashboard/partnerDashboard?manager_id=$id', + // 'http://localhost/nhance_partner_be/dashboard/partnerDashboard?manager_id=$id', // ); final headers = { diff --git a/lib/presentation/layouts/appheader.dart b/lib/presentation/layouts/appheader.dart index 20ed79c..3d212f4 100644 --- a/lib/presentation/layouts/appheader.dart +++ b/lib/presentation/layouts/appheader.dart @@ -229,6 +229,14 @@ class _AppHeaderState extends ConsumerState { context.go(AppRoutes.endorsementTypeLst); }, ), + _buildPopupItem( + label: "Vehicle Type", + onTap: () { + setState(() => _activeMenu = 'Masters'); + _hidePopup(); + context.go(AppRoutes.vehicleTypeLst); + }, + ), SizedBox(height: 2), _buildPopupItem( label: "Payment Mode", @@ -400,7 +408,8 @@ class _AppHeaderState extends ConsumerState { ), const SizedBox(width: 16), ], - if (role != 'Accounts') ...[ + // if (role != 'Accounts') ...[ + if (!['Accounts', 'agent'].contains(role)) ...[ // Proposal button Container( width: 36, diff --git a/lib/presentation/screens/Enquiry/enquiryList.dart b/lib/presentation/screens/Enquiry/enquiryList.dart index 0b8140f..ff11b8e 100644 --- a/lib/presentation/screens/Enquiry/enquiryList.dart +++ b/lib/presentation/screens/Enquiry/enquiryList.dart @@ -1080,7 +1080,7 @@ class EnquiryListState extends ConsumerState { // validator: (value) => Validators.requiredField(value, "date"), controller: controllers['startDate']!, onDateSelected: (date) { - print("Picked Date: $date"); + print("SPicked Date: $date"); controllers['startDate']?.text = DateFormat( 'dd-MM-yyyy', @@ -1124,7 +1124,7 @@ class EnquiryListState extends ConsumerState { controller: controllers['endDate']!, lastDate: DateTime.now(), onDateSelected: (date) { - print("Picked Date: $date"); + print("EPicked Date: $date"); controllers['endDate']?.text = DateFormat( 'dd-MM-yyyy', ).format(date); diff --git a/lib/presentation/screens/Masters/VehicleType/vehicleList.dart b/lib/presentation/screens/Masters/VehicleType/vehicleList.dart new file mode 100644 index 0000000..d6b3644 --- /dev/null +++ b/lib/presentation/screens/Masters/VehicleType/vehicleList.dart @@ -0,0 +1,472 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:go_router/go_router.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:nhance_partner/presentation/providers/userRoleProvider.dart'; +import 'package:nhance_partner/presentation/screens/Masters/VehicleType/vehicleType.dart'; + +import '../../../../core/routing/routes.dart'; +import '../../../../core/services/api_service.dart'; +import '../../../../data/utils/Pagination.dart'; +import '../../../layouts/main_layout.dart'; +import '../../../layouts/responsive_layout.dart'; +import '../../../providers/manager_provider.dart'; +import '../../../themes/indicators/export_btn.dart'; +import '../../../themes/indicators/filter_btn.dart'; +import '../../../themes/indicators/search_field_theme.dart'; +import '../../../themes/indicators/text_field_theme.dart'; +import '../../../widgets/custom_action_popup.dart'; + +class VehicleTypeList extends ConsumerStatefulWidget { + const VehicleTypeList({super.key}); + @override + ConsumerState createState() => VehicleTypeListState(); +} + +class VehicleTypeListState extends ConsumerState { + int currentPage = 1; + int itemsPerPage = 10; + late ApiService apiService; + dynamic managerId; + dynamic role; + dynamic prefid; + dynamic userId; + // List> dataVal = []; + List> getVehicleTypeData = []; + List> originalData = []; + List> filteredData = []; + bool isLoading = false; + + Map? selectedVehicleType; + dynamic selectedId; + + @override + void initState() { + super.initState(); + + apiService = ApiService(); + + Future.microtask(() { + final data1 = ref.read(managerIdProvider); + userId = ref.watch(userIdProvider); + // final data2 = ref.read(handlerIdProvider); + print("Edata1 => mId: $data1 -2 :"); + prefid = data1; + role = ref.read(userRoleProvider); + print("E43 => mId: $prefid"); + if (prefid != null && role != null) { + getVehicleType(); + } + }); + // getVehicleTypeList(); + } + + List get _paginatedData { + // Sort descending by id first + final sortedData = [...filteredData] + ..sort((a, b) => int.parse(b['id']) - int.parse(a['id'])); + + if (sortedData.isEmpty) return []; + + // Ensure currentPage is valid + final maxPage = (sortedData.length / itemsPerPage).ceil(); + final safePage = currentPage.clamp(1, maxPage); + + final startIndex = (safePage - 1) * itemsPerPage; + final endIndex = (startIndex + itemsPerPage).clamp(0, sortedData.length); + + return sortedData.sublist(startIndex, endIndex); + } + + void handleEdit(Map item) { + setState(() { + selectedId = item['id']; + selectedVehicleType = item; + }); + } + + void filterData(String query) { + setState(() { + final q = query.toLowerCase(); + + if (q.isEmpty) { + filteredData = getVehicleTypeData; + return; + } + + filteredData = getVehicleTypeData.where((item) { + final isActiveStatus = item['is_active'] == "1" ? "active" : "inactive"; + + return (item['vehicle_type'] ?? '').toString().toLowerCase().contains(q) || + isActiveStatus.contains(q); + }).toList(); + }); + } + + final TextEditingController _searchStaffController = TextEditingController(); + + Future getVehicleType() async { + print('getVehicleType called'); + setState(() { + isLoading = true; + }); + + try { + final response = await apiService.fetchMasterDropDown('vehicleType'); + + if (response['status'] == 200) { + print('getVehicleType - ${response['data']}'); + setState(() { + getVehicleTypeData = List>.from(response['data']); + print('API Data - $getVehicleTypeData'); + + filteredData = List.from(getVehicleTypeData); + print('originalData - $filteredData'); + }); + } else { + getVehicleTypeData = []; + filteredData = []; + } + } catch (e) { + print('Exception occurred: $e'); + } finally { + setState(() { + isLoading = false; + }); + } + } + + List _buildPopupMenuActions(BuildContext context, dynamic data) { + return [ + GestureDetector( + onTap: () { + Navigator.pop(context); + print('EDITStaff - ${data['id']}'); + dynamic id = data['id']; + context.go('/staff/$id'); + }, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.edit_sharp, color: Color(0xFF319718), size: 18), + SizedBox(width: 10), + Text('Edit'), + ], + ), + ), + ]; + } + + @override + Widget build(BuildContext context) { + managerId = ref.watch(managerIdProvider); + + return MainLayout( + title: "Vehicle Type", + body: Container( + // padding: EdgeInsets.all(8.0), + // margin: EdgeInsets.all(10.0), + + // color: Colors.yellow.shade50, + width: MediaQuery.of(context).size.width, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Container( + // height: 30, + // color: Colors.red.shade50, + width: MediaQuery.of(context).size.width, + child: GestureDetector( + onTap: () { + context.go(AppRoutes.dashboard); + }, + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text( + 'Vehicle Type', + style: GoogleFonts.poppins( + fontSize: 14, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + ), + + SizedBox(height: 5), + Expanded( + child: Container( + // color: Colors.green, + // color: Colors.green.shade50, + width: MediaQuery.of(context).size.width, + // margin: EdgeInsets.all(10.0), + decoration: BoxDecoration( + // color: Colors.white, + borderRadius: BorderRadius.circular(15.0), + ), + + padding: EdgeInsets.all(8.0), + child: Column( + children: [ + Container( + // height: 40, + // color: Colors.pink, + child: Row( + crossAxisAlignment: CrossAxisAlignment.end, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + VehicleType( + key: ValueKey(selectedId), + data: selectedVehicleType, + id: selectedId, + onSubmit: () { + getVehicleType(); + setState(() { + selectedVehicleType = null; + selectedId = null; + }); // reset after save + }, + ), + Spacer(), + ThemedSearchField( + hintText: 'Search', + // backgroundColor: Color(0xFFF6F8F8), + backgroundColor: Color(0xFFFFFFFF), + txtHeight: 30, + onChanged: filterData, + controller: _searchStaffController, + txtwidth: MediaQuery.of(context).size.width * 0.15, + ), + + SizedBox(width: 10), + ExportBtn( + sheetName: "VehicleType", + fileName: "vehicle_type_list", + txt: !ResponsiveLayout.isMobile(context) + ? true + : false, + data: filteredData, + displayHeaders: ['S.No.', 'Vehicle Type', 'Status'], + keys: ["sno", "vehicle_type", "is_active"], + ), + ], + ), + ), + SizedBox(height: 10), + Container( + decoration: BoxDecoration( + color: Color(0xFFF1F5F9), + + // color: Color(0xFFEDF6F5), + borderRadius: BorderRadius.circular(6), + ), + padding: const EdgeInsets.symmetric( + vertical: 8, + horizontal: 16, + ), + child: Row( + children: [ + Expanded( + flex: 1, + child: Text('S.No.', style: _headerStyle), + ), + Expanded( + flex: 5, + child: Text('Vehicle Type', style: _headerStyle), + ), + Expanded( + flex: 2, + child: Text('Status', style: _headerStyle), + ), + Expanded( + flex: 2, + child: Text('Action', style: _headerStyle), + ), + ], + ), + ), + Expanded( + child: Container( + color: Colors.white, + child: _buildDataTable(context), + ), + ), + ], + ), + ), + ), + + Container( + // height: 20, + width: MediaQuery.of(context).size.width, + // color: Colors.green.shade50, + child: PaginationControls( + currentPage: currentPage, + itemsPerPage: itemsPerPage, + // totalItems: dataVal.length, + totalItems: filteredData.length, + // activeColor: layoutColor, // your theme color + onPageChanged: (page) { + setState(() { + currentPage = page; + }); + }, + onItemsPerPageChanged: (items) { + setState(() { + itemsPerPage = items; + currentPage = 1; + }); + }, + ), + ), + ], + ), + ), + ); + } + + Widget _buildDataTable(BuildContext context) { + if (filteredData.isEmpty) { + return const SizedBox( + height: 50, + child: Center(child: Text('No available data')), + ); + } + + final sortedData = [..._paginatedData]; + + return ListView.builder( + // itemCount: filteredData.length + 1, // +1 for header, +1 for pagination + itemCount: sortedData.length + 1, // +1 for header, +1 for pagination + + itemBuilder: (context, index) { + if (index == 0) return _buildHeader(); + // if (index == dataVal.length + 1) + // return _buildPagination(context); + final startIndex = ((currentPage - 1) * itemsPerPage); + // final item = filteredData[index - 1]; + final item = sortedData[index - 1]; + final sno = startIndex + index; + return _buildDataRow(item, sno); + }, + ); + } + + Widget _buildHeader() { + return SizedBox.shrink(); + } + + Widget _buildDataRow(Map item, sno) { + return Container( + padding: const EdgeInsets.symmetric(vertical: 1, horizontal: 16), + // margin: const EdgeInsets.only(top: 10), + decoration: BoxDecoration( + color: Colors.white, + // color: Color(0xFFE0F7F9), + border: const Border( + bottom: BorderSide(color: Colors.blueGrey, width: 0.15), + ), + // borderRadius: BorderRadius.circular(8), + ), + child: Row( + children: [ + Expanded(flex: 1, child: Text('$sno' ?? '-', style: _dataBold)), + Expanded(flex: 5, child: Text(item['vehicle_type'] ?? '-', style: _dataBold)), + Expanded(flex: 2, + child: Row( + children: [ + Container( + // color: Colors.yellow.shade50, + child: Transform.scale( + scale: 0.4, // reduce size (0.7–0.9 works well) + child: Switch( + value: item['is_active'] == "1", + onChanged: (val) { + setState(() { + item['is_active'] = val ? "1" : "0"; + }); + final response = apiService.updateStatusMasters( + item['id'], + val ? "0" : "1", + 'VehicleType', + userId, + ); + print("Response - $response"); + }, + activeColor: Color(0xFF2E7D6E), // thumb when active + // activeColor: Color(0xFF425B5B), // thumb when active + activeTrackColor: Color(0xFFDCFCE7), // track when active + // activeTrackColor: Color(0xFFB2D8D3), // track when active + inactiveThumbColor: + Colors.grey.shade400, // thumb when inactive + inactiveTrackColor: + Colors.grey.shade300, // track when inactive + ), + ), + ), + ], + ), + ), + Expanded( + flex: 2, + child: Center( // Add Center wrapper + child: Row( + mainAxisSize: MainAxisSize.min, // Add this + children: [ + item['is_active'] == "1" + ? Tooltip( + message: 'Edit', + child: IconButton( + icon: Image.asset( + "assets/miscellaneous/Edit.png", + height: 12, + width: 15, + ), + onPressed: () { + handleEdit(item); + }, + splashRadius: 28, + hoverColor: Colors.black12, + padding: const EdgeInsets.all(8), + constraints: const BoxConstraints(), + ), + ) + : Padding( + padding: const EdgeInsets.all(8.0), // Match IconButton padding + child: Image.asset( + "assets/miscellaneous/Edit_muted.png", + height: 12, + width: 15, + ), + ), + ], + ), + ), + ), + ], + ), + ); + } + + static final _dataSub = GoogleFonts.inter( + fontSize: 10, + fontWeight: FontWeight.w300, + color: Color(0xFF585757), + ); + static final _dataBold = GoogleFonts.inter( + fontSize: 11.5, + fontWeight: FontWeight.w400, + color: Color(0xFF000000), + ); + + static final _headerStyle = GoogleFonts.poppins( + fontSize: 11.2, + fontWeight: FontWeight.w500, + color: Color(0xFF1E293B), + ); +} diff --git a/lib/presentation/screens/Masters/VehicleType/vehicleType.dart b/lib/presentation/screens/Masters/VehicleType/vehicleType.dart new file mode 100644 index 0000000..28154b7 --- /dev/null +++ b/lib/presentation/screens/Masters/VehicleType/vehicleType.dart @@ -0,0 +1,346 @@ +import 'dart:convert'; +// import 'dart:io' as html; +import 'dart:typed_data'; // Import for Uint8List +import 'package:dropdown_search/dropdown_search.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:go_router/go_router.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:http/http.dart' as http; +import 'package:nhance_partner/core/routing/routes.dart'; +import 'package:nhance_partner/data/utils/toastNotification.dart'; +import 'package:nhance_partner/presentation/themes/indicators/text_field_theme.dart'; +import 'package:nhance_partner/presentation/themes/indicators/text_field_theme_inline_editor.dart'; + +import '../../../../core/config/env.dart'; +import '../../../../core/services/api_service.dart'; +import '../../../../data/services/auth_service.dart'; +import '../../../../data/utils/validators.dart'; +import '../../../layouts/main_layout.dart'; +import '../../../layouts/responsive_layout.dart'; +import '../../../providers/manager_provider.dart'; + +import 'package:universal_html/html.dart' as html; + +import '../../../themes/indicators/input_field_decoration.dart'; + +class VehicleType extends ConsumerStatefulWidget { + final String? id; + final Map? data; + final VoidCallback onSubmit; + const VehicleType({super.key, this.id, this.data, required this.onSubmit}); + @override + ConsumerState createState() => VehicleTypeState(); +} + +class VehicleTypeState extends ConsumerState { + final _formKey = GlobalKey(); + late ApiService apiService; + + final GlobalKey>> dropDownKey = + GlobalKey>>(); + + final GlobalKey>> + dropDownKeyHandler = GlobalKey>>(); + + List tabHeader = ['vehicle_type']; + late String isActive = "1"; + + String? selectedFileNames; + + dynamic selectedId; + String? _token; + bool isLoading = false; + bool showHandler = false; + + String? selectedRole; + List> filteredRolesData = []; + List> getRolesData = []; + + List? selectedHandlerIds = []; + String? selectedHandler; + List> filteredHandlersData = []; + List> getHandlersData = []; + + Map controllers = {}; + + dynamic userId; + dynamic managerId; + + Map dataDetails() { + final data = { + "vehicle_type": controllers["vehicle_type"]?.text, + "is_active": isActive, + }; + return data; + } + + @override + void initState() { + super.initState(); + apiService = ApiService(); + for (String field in tabHeader) { + controllers[field] = TextEditingController(); + } + + _initializeToken(); + updateData(); + + Future.microtask(() { + managerId = ref.watch(managerIdProvider); + userId = ref.watch(userIdProvider); + if (managerId != null) { + print('hansles'); + // getHandlers(managerId); + } + }); + } + + Future _initializeToken() async { + _token = await AuthService.getToken(); + print("APISERTOKEN - $_token"); + } + + void updateData() async { + if (widget.data != null) { + dynamic id = widget.data?['id']; + final data = widget.data; + + if (data == null) return; + setState(() { + selectedId = id; + controllers['vehicle_type']?.text = data['vehicle_type'] ?? ''; + controllers["is_active"]?.text = data['is_active'].toString(); + }); + } + } + + Future handleSave() async { + if (controllers['vehicle_type'] == null || + controllers['vehicle_type']!.text.trim().isEmpty) { + ToastHelper.showWarningToast(context, "Vehicle Type is required"); + return; + } + + if (!_formKey.currentState!.validate()) return; + setState(() { + if (_formKey.currentState!.validate()) { + dataDetails(); + final dataSet = dataDetails(); + print("dataSetAgent - $dataSet"); + + print("TYPE of is_active → ${dataSet['is_active'].runtimeType}"); + print("TYPE of value → ${dataSet['value'].runtimeType}"); + createUserData(dataSet); + } else { + // isDisable = false; + } + }); + } + + // Future handleSave() async { + // // if (controllers['name'] != null && controllers['name'] != '') { + // // return; + // // } + // if (!_formKey.currentState!.validate()) return; + // setState(() { + // if (_formKey.currentState!.validate()) { + // dataDetails(); + // final dataSet = dataDetails(); + // print("dataSetAgent - $dataSet"); + // + // print("TYPE of is_active → ${dataSet['is_active'].runtimeType}"); + // print("TYPE of vehicle_type → ${dataSet['vehicle_type'].runtimeType}"); + // createUserData(dataSet); + // } else { + // // isDisable = false; + // } + // }); + // } + + void refresh() { + print('REfresj'); + widget.onSubmit(); + setState(() { + // clear all text controllers + for (var controller in controllers.values) { + controller.clear(); + } // 👈 clear selected agent + controllers['vehicle_type']?.clear(); + }); + } + + Future createUserData(data) async { + final bool isUpdating = selectedId != null; + final dynamic id = isUpdating ? int.tryParse(selectedId.toString()) : 0; + final String apiUrldata; + + print("TYPE of id → $id - ${id.runtimeType}"); + print("TYPE of id → $userId - ${userId.runtimeType}"); + + apiUrldata = isUpdating + ? '${Env.apiUrl}/master/updateVehicleType/$selectedId' + : '${Env.apiUrl}/master/createVehicleType'; + + // final token = await getToken(); // Fetch token + + if (_token == null) { + throw Exception('Token not found. Please log in.'); + } + + if (isUpdating) { + data['updated_by'] = userId.toString(); + } else { + data['created_by'] = userId.toString(); + } + + print("data------- $data}"); + + try { + final response = await http.post( + Uri.parse(apiUrldata), + headers: { + 'Authorization': 'Bearer $_token', + 'Content-Type': 'application/json', + 'app-signature': Env.App_Signature, + }, + body: jsonEncode(data), // Convert map to JSON + ); + + if (response.statusCode == 200) { + final responseBody = jsonDecode(response.body); + final message = responseBody['message']; + print("VehicleType submitted successfully!"); + print("Response: ${response.body}"); + + if (responseBody['status'] == 200) { + refresh(); + isUpdating + ? ToastHelper.showSuccessToast(context, message) + : ToastHelper.showSuccessToast(context, message); + } else { + print("Failed to submit plan. Status: ${response.statusCode}"); + print("Error: ${response.body}"); + + showDialog( + context: context, + builder: (BuildContext context) { + return AlertDialog( + title: Text("Vehicle Type Creation Failed"), + content: Text(message), + actions: [ + TextButton( + child: Text("OK"), + onPressed: () { + Navigator.of(context).pop(); + }, + ), + ], + ); + }, + ); + } + } else if (response.statusCode == 403) { + await apiService.clearLocalStorageAndRedirect(); + } + } catch (e) { + print(" Error submitting Staff: $e"); + } + } + + @override + void dispose() { + for (var controller in controllers.values) { + controller.dispose(); + } + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Container( + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + buildFormFields(), + SizedBox(width: 5), + InkWell( + onTap: () { + handleSave(); + }, + child: Container( + padding: EdgeInsets.symmetric(horizontal: 15.0, vertical: 6), + + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8.0), + color: Color(0xFF2E7D6E), + ), + child: Text( + 'Save', + style: GoogleFonts.inter(color: Colors.white, fontSize: 10), + ), + ), + ), + SizedBox(width: 5), + InkWell( + onTap: () { + refresh(); + }, + child: Container( + padding: EdgeInsets.all(6.0), + decoration: BoxDecoration( + color: const Color(0xFF2E7D6E), + borderRadius: BorderRadius.circular(5.0), + ), + child: Icon(Icons.refresh, size: 13, color: Colors.white), + ), + ), + ], + ), + ); + } + + Widget buildFormFields() { + return Form( + key: _formKey, + child: Row( + children: [buildVehicleTypeName()], + ), + ); + } + + Widget buildVehicleTypeName() { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text("Vehicle Type *", style: _textStyle), + SizedBox(width: 10), + SizedBox( + child: ThemedFormInlineField( + controller: controllers['vehicle_type']!, + validator: (value) => Validators.requiredField(value, "vehicle_type"), + txtwidth: MediaQuery.of(context).size.width * 0.15, + inputFormatters: [ + // This line now allows letters, numbers, hyphens, underscores, and spaces + FilteringTextInputFormatter.allow(RegExp(r'[a-zA-Z0-9\-_ ]')), + ], + borderColor: Color(0xFFE2E8F0), + highlightColor: Color(0xFF50A398), + // txtheight: 30, + isdense: true, + errFieldHgt: 0, + ), + ), + ], + ); + } + + + static final _textStyle = GoogleFonts.inter( + fontSize: 11, + fontWeight: FontWeight.w600, + ); +} diff --git a/lib/presentation/screens/UserManagement/Agent/agentList.dart b/lib/presentation/screens/UserManagement/Agent/agentList.dart index b62343e..e620ab3 100644 --- a/lib/presentation/screens/UserManagement/Agent/agentList.dart +++ b/lib/presentation/screens/UserManagement/Agent/agentList.dart @@ -323,20 +323,21 @@ class AgentListState extends ConsumerState { data: filteredData, displayHeaders: [ 'S.No.', + 'Partner Id', 'Partner Name', 'Email', 'Phone Number', - 'Id', + 'Retention Rate', 'Address', 'Status', ], keys: [ "sno", // handled internally as i + 1 + "agent_code", "name", "email", "mobile", - "agent_code", "retention_rate", "address", "is_active", @@ -404,6 +405,10 @@ class AgentListState extends ConsumerState { flex: 1, child: Text('S.No.', style: _headerStyle), ), + Expanded( + flex: 1, + child: Text('Partner Id', style: _headerStyle), + ), Expanded( flex: 2, child: Text('Partner Name', style: _headerStyle), @@ -416,10 +421,6 @@ class AgentListState extends ConsumerState { flex: 2, child: Text('Phone Number', style: _headerStyle), ), - Expanded( - flex: 1, - child: Text('Id', style: _headerStyle), - ), Expanded( flex: 1, child: Text( @@ -534,6 +535,7 @@ class AgentListState extends ConsumerState { child: Row( children: [ Expanded(flex: 1, child: Text('$sno' ?? '-', style: _dataBold)), + Expanded(flex: 1, child: Text(item['agent_code'] ?? '-', style: _dataBold)), Expanded(flex: 2, child: Text(item['name'] ?? '-', style: _dataBold)), Expanded( flex: 3, @@ -543,10 +545,6 @@ class AgentListState extends ConsumerState { flex: 2, child: Text(item['mobile'] ?? '-', style: _dataBold), ), - Expanded( - flex: 1, - child: Text(item['agent_code'] ?? '-', style: _dataBold), - ), Expanded( flex: 1, child: Text(item['retention_rate'] ?? '-', style: _dataBold), diff --git a/lib/presentation/screens/payout/payout_screen.dart b/lib/presentation/screens/payout/payout_screen.dart index 725c23b..adf8644 100644 --- a/lib/presentation/screens/payout/payout_screen.dart +++ b/lib/presentation/screens/payout/payout_screen.dart @@ -108,40 +108,44 @@ class _PayOutScreenState extends ConsumerState { for (String field in tabHeader) { controllers[field] = TextEditingController(); } - // invoiceNoController = TextEditingController(text: generateInvoiceNumber()); + + Future.microtask(() async { - managerId = ref.watch(managerIdProvider); - userId = ref.watch(userIdProvider); + managerId = ref.read(managerIdProvider); roleId = ref.read(userRoleProvider); + userId = ref.read(userIdProvider); + + print('PayOutScreen => managerId: $managerId'); + if (managerId != null) { getAgentList(managerId); getPosList(managerId); } + await getBroker(); + + // ✅ EDIT MODE (MUST be here) + if (widget.editItem != null) { + print('editItemID ${widget.editItem}'); + + final invoiceID = widget.editItem!['id']; + final brokerID = widget.editItem!['broker_id']; + + controllers['invoiceNo']?.text = + widget.editItem!['invoice_no']; + + controllers['invoiceDate']?.text = + widget.editItem!['invoice_date_ui_format']; + + controllers['invoiceStatus']?.text = + widget.editItem!['payout_status']; + + _loadEditData(invoiceID, brokerID, managerId); // ✅ managerId ready + } }); - - // 👉 CHECK EDIT MODE - if (widget.editItem != null) { - print('editItemID ${widget.editItem}'); - - final invoiceID = widget.editItem!['id']; - final brokerID = widget.editItem!['broker_id']; - - // Invoice No - controllers['invoiceNo']?.text = widget.editItem!['invoice_no']; - - // Invoice Date (UI format) - controllers['invoiceDate']?.text = - widget.editItem!['invoice_date_ui_format']; - - controllers['invoiceStatus']?.text = widget.editItem!['payout_status']; - - print('invoiceID $invoiceID'); - print('brokerID $brokerID'); - _loadEditData(invoiceID, brokerID,managerId); - } } + void filterPolicyData(String query) { final lowerQuery = query.toLowerCase(); @@ -182,7 +186,7 @@ class _PayOutScreenState extends ConsumerState { } Future getPosList(int id) async { - print('E104 => Fns called => $id'); + print('H104 => Fns called => $id'); final val = 'dropDown'; setState(() { @@ -232,13 +236,14 @@ class _PayOutScreenState extends ConsumerState { void _loadEditData(String invoiceID, brokerID, managerID) async { setState(() => isLoadingEditData = true); + print("H010 => r : $roleId | mId: $managerID | ParmMID: $managerID | uId: $userId "); print('_loadEditData'); final jsondata = { // "id": invoiceID, "invoice_id": invoiceID, "broker_id": int.tryParse(brokerID ?? ''), - "manager_id": managerID + "manager_id": managerId // "issued_date": formattedTillDate, }; @@ -468,6 +473,7 @@ class _PayOutScreenState extends ConsumerState { // Load policies (simulate API) Future loadPolicies() async { print('loadPolicies'); + print("H13 => r : $roleId | mId: $managerId | uId: $userId "); try { final List agentIds = (selectedAgentId ?? []) .map((e) => int.parse(e)) diff --git a/lib/presentation/screens/staff/Enquiry/enquiry_inline_list.dart b/lib/presentation/screens/staff/Enquiry/enquiry_inline_list.dart index 811691b..3134cd9 100644 --- a/lib/presentation/screens/staff/Enquiry/enquiry_inline_list.dart +++ b/lib/presentation/screens/staff/Enquiry/enquiry_inline_list.dart @@ -53,7 +53,7 @@ class EnquiryListStaffInline extends ConsumerStatefulWidget { class EnquiryStaffState extends ConsumerState { // bool fromDashboard = false; bool _dashboardInitHandled = false; - bool _resetKeyEnable = false; + bool _resetKeyEnable = false; // very first int currentPage = 1; int itemsPerPage = 10; // int itemsPerPage = 5; @@ -682,6 +682,8 @@ class EnquiryStaffState extends ConsumerState { fromDt = _dashboardInitHandled ? controllers['startDate']?.text : ''; toDt = _dashboardInitHandled ? controllers['endDate']?.text : ''; + print('End Date: ${controllers['endDate']?.text}'); + print('STT Date: ${controllers['startDate']?.text}'); print('PrevPending FROM TO - $fromDt - $toDt'); } else if (dashboardKey != 'fromDashboard' && @@ -691,27 +693,28 @@ class EnquiryStaffState extends ConsumerState { print('A1013 => Fns called => $managerId | $role'); final today = DateTime.now(); - fromDt = dateFormat.format(today.subtract(Duration(days: 5))); + fromDt = dateFormat.format(today.subtract(Duration(days: 4))); // fromDt = dateFormat.format(today); toDt = dateFormat.format(today); print('Enq FROM TO - $fromDt - $toDt'); } else { print('A1113 => Fns called => $managerId | $role'); - print('Enq 1- $fromDt - $toDt'); + print('Pre Date its User Choosen Enq Inline list - $fromDt - $toDt'); - if(_resetKeyEnable = true){ + if (_resetKeyEnable) { final dateFormat = DateFormat('dd-MM-yyyy'); final today = DateTime.now(); - final yesterday = today.subtract(Duration(days: 1)); + // final yesterday = today.subtract(Duration(days: 1)); + // fromDt = dateFormat.format(yesterday.subtract(Duration(days: 15))); // Dont Delete any doubt Ref Suren + fromDt = dateFormat.format(today.subtract(const Duration(days: 4))); + toDt = dateFormat.format(today); - fromDt = dateFormat.format(yesterday.subtract(Duration(days: 15))); - toDt = dateFormat.format(yesterday); setState(() { controllers['startDate']?.text = fromDt; controllers['endDate']?.text = toDt; + _resetKeyEnable = false; // ask suren Never forgot }); - } else { fromDt = fromDateVal; toDt = toDateVal; @@ -827,6 +830,40 @@ class EnquiryStaffState extends ConsumerState { } void _applyFilter(String query) { + setState(() { + final List source = (selectedIndex == 0) ? inProgressData : completedData; + final String q = query.trim().toLowerCase(); + completedCurrentPage = 1; + + if (q.length < 2) { + filteredData = List>.from(source); + return; + } + + // 1. Filter the list + List results = source.where((item) { + final map = item as Map; + + // Get the field values safely + String regNo = safeString(map['reg_no']).toLowerCase().trim(); + String agentName = safeString(map['agent_name']).toLowerCase().trim(); + + // IF CONDITION: Check if query is exactly "new" + if (q == "new") { + // Only return items where the field is EXACTLY "new" + return regNo == "new" || agentName == "new"; + } else { + // Regular partial search for any other query + return regNo.contains(q) || agentName.contains(q); + } + }).toList(); + + // 2. Final Type Casting to fix your "dynamic" error + filteredData = results.map((e) => e as Map).toList(); + }); + } + + void _applyFilter_05012026(String query) { print("FilterData - $query"); setState(() { @@ -2497,9 +2534,9 @@ class EnquiryStaffState extends ConsumerState { } String formatEnquiryStatus(String? status) { - if (status == null) return '-'; + if (status == null || status.trim().isEmpty) return '-'; - switch (status.toLowerCase()) { + switch (status.trim().toLowerCase()) { case 'to be assigned': return 'To Be Assigned'; case 'in progress': @@ -2538,7 +2575,8 @@ class EnquiryStaffState extends ConsumerState { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - item['enquiry_status'] ?? '-', + // item['enquiry_status'] ?? '-', + formatEnquiryStatus(item['enquiry_status']), style: GoogleFonts.inter( fontSize: 10, color: Color(0XFF1e293b), diff --git a/lib/presentation/screens/staff/assignStaff.dart b/lib/presentation/screens/staff/assignStaff.dart index cdab7e7..3d7f646 100644 --- a/lib/presentation/screens/staff/assignStaff.dart +++ b/lib/presentation/screens/staff/assignStaff.dart @@ -82,8 +82,8 @@ class _AddDialogState extends ConsumerState { final data = { "id": widget.enquiryPrimaryId, "assigned_to": selectedStaff, - // "insurer_id": selectedInsurer, - // "broker_id": selectedBroker, + "insurer_id": selectedInsurer, + "broker_id": selectedBroker, "updated_by": widget.userId, }; return data; @@ -230,8 +230,9 @@ class _AddDialogState extends ConsumerState { if (_formKey.currentState!.validate()) { dataDetails(); final dataSet = dataDetails(); - print("dataSetAgent - $dataSet"); - // print("managerId - $managerId ,userId - $userId "); + print("b4 - $dataSet"); + dataSet['from_dashboard_enquiry_status'] = 'Assigned'; + print("Atr - $dataSet"); createUserData(dataSet); } else { // isDi sable = false; @@ -244,6 +245,7 @@ class _AddDialogState extends ConsumerState { final String apiUrldata; apiUrldata = '${Env.apiUrl}enquiry/enquiryAssignUpdate'; + // apiUrldata = 'http://localhost/nhance_partner_be/enquiry/enquiryAssignUpdate'; // final token = await getToken(); // Fetch token @@ -406,8 +408,8 @@ class _AddDialogState extends ConsumerState { children: [ buildRegistrationNumber(context), buildSelectStaffMem(context), - // buildInsurer(context), - // buildBroker(context), + buildInsurer(context), + buildBroker(context), ], ), ); @@ -514,9 +516,9 @@ class _AddDialogState extends ConsumerState { label: "Select Staff Member", ).copyWith( filled: true, - fillColor: Color( - 0xFFEDF6F5, - ), // 👈 makes the dropdown input white + fillColor: Color( 0xFFEDF6F5,), // 👈 makes the dropdown input white + isDense: true, // 👈 Makes the field compact + contentPadding: const EdgeInsets.symmetric(horizontal: 15, vertical: 0), // 👈 Vertical 0 helps center the text ), ), @@ -619,9 +621,9 @@ class _AddDialogState extends ConsumerState { label: "Select Insurer", ).copyWith( filled: true, - fillColor: Color( - 0xFFEDF6F5, - ), // 👈 makes the dropdown input white + fillColor: Color(0xFFEDF6F5), // 👈 makes the dropdown input white + isDense: true, // 👈 Makes the field compact + contentPadding: const EdgeInsets.symmetric(horizontal: 15, vertical: 0), // 👈 Vertical 0 helps center the text ), ), @@ -723,9 +725,9 @@ class _AddDialogState extends ConsumerState { label: "Select Broker", ).copyWith( filled: true, - fillColor: Color( - 0xFFEDF6F5, - ), // 👈 makes the dropdown input white + fillColor: Color(0xFFEDF6F5,), // 👈 makes the dropdown input white + isDense: true, // 👈 Makes the field compact + contentPadding: const EdgeInsets.symmetric(horizontal: 15, vertical: 0), // 👈 Vertical 0 helps center the text ), ), diff --git a/lib/presentation/widgets/custom_Stdate_EnDate_Filter.dart b/lib/presentation/widgets/custom_Stdate_EnDate_Filter.dart index ef48198..f6c0db1 100644 --- a/lib/presentation/widgets/custom_Stdate_EnDate_Filter.dart +++ b/lib/presentation/widgets/custom_Stdate_EnDate_Filter.dart @@ -277,7 +277,7 @@ class _DateFilterRowState extends ConsumerState { // validator: (value) => Validators.requiredField(value, "date"), controller: widget.startController, onDateSelected: (date) { - print("Picked Date: $date"); + print("SPicked Date: $date"); widget.startController.text = DateFormat( 'dd-MM-yyyy', ).format(date); @@ -322,9 +322,9 @@ class _DateFilterRowState extends ConsumerState { }, controller: widget.endController, lastDate: DateTime.now(), - onDateSelected: (date) { - print("Picked Date: $date"); - widget.endController.text = DateFormat('dd-MM-yyyy').format(date); + onDateSelected: (edate) { + print("EPicked Date: $edate"); + widget.endController.text = DateFormat('dd-MM-yyyy').format(edate); Future.microtask(() => widget.onFilter()); // controllers['date']?.text = date as String; }, diff --git a/lib/presentation/widgets/topbar.dart b/lib/presentation/widgets/topbar.dart index aa0ca2c..ce8ec1f 100644 --- a/lib/presentation/widgets/topbar.dart +++ b/lib/presentation/widgets/topbar.dart @@ -143,7 +143,8 @@ class _TopBarState extends ConsumerState { ), ], SizedBox(width: 10), - if (role != 'Accounts') ...[ + // if (role != 'Accounts') ...[ + if (!['Accounts', 'agent'].contains(role)) ...[ // Proposal button Container( width: 36,