diff --git a/.VSCodeCounter/2023-05-20_11-03-10/details.md b/.VSCodeCounter/2023-05-20_11-03-10/details.md new file mode 100644 index 0000000..20ea3df --- /dev/null +++ b/.VSCodeCounter/2023-05-20_11-03-10/details.md @@ -0,0 +1,93 @@ +# Details + +Date : 2023-05-20 11:03:10 + +Directory /mnt/Storage Data/My Projects/car_workshop_app + +Total : 78 files, 6734 codes, 326 comments, 566 blanks, all 7626 lines + +[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md) + +## Files +| filename | language | code | comment | blank | total | +| :--- | :--- | ---: | ---: | ---: | ---: | +| [README.md](/README.md) | Markdown | 2 | 0 | 1 | 3 | +| [analysis_options.yaml](/analysis_options.yaml) | YAML | 3 | 23 | 4 | 30 | +| [android/app/build.gradle](/android/app/build.gradle) | Groovy | 54 | 5 | 13 | 72 | +| [android/app/src/debug/AndroidManifest.xml](/android/app/src/debug/AndroidManifest.xml) | XML | 4 | 4 | 1 | 9 | +| [android/app/src/main/AndroidManifest.xml](/android/app/src/main/AndroidManifest.xml) | XML | 28 | 6 | 1 | 35 | +| [android/app/src/main/res/drawable-v21/launch_background.xml](/android/app/src/main/res/drawable-v21/launch_background.xml) | XML | 4 | 7 | 2 | 13 | +| [android/app/src/main/res/drawable/launch_background.xml](/android/app/src/main/res/drawable/launch_background.xml) | XML | 4 | 7 | 2 | 13 | +| [android/app/src/main/res/values-night/styles.xml](/android/app/src/main/res/values-night/styles.xml) | XML | 9 | 9 | 1 | 19 | +| [android/app/src/main/res/values/styles.xml](/android/app/src/main/res/values/styles.xml) | XML | 9 | 9 | 1 | 19 | +| [android/app/src/profile/AndroidManifest.xml](/android/app/src/profile/AndroidManifest.xml) | XML | 4 | 4 | 1 | 9 | +| [android/build.gradle](/android/build.gradle) | Groovy | 27 | 0 | 5 | 32 | +| [android/gradle.properties](/android/gradle.properties) | Properties | 3 | 0 | 1 | 4 | +| [android/gradle/wrapper/gradle-wrapper.properties](/android/gradle/wrapper/gradle-wrapper.properties) | Properties | 5 | 0 | 1 | 6 | +| [android/settings.gradle](/android/settings.gradle) | Groovy | 8 | 0 | 4 | 12 | +| [ios/Runner/AppDelegate.swift](/ios/Runner/AppDelegate.swift) | Swift | 12 | 0 | 2 | 14 | +| [ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json](/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json) | JSON | 122 | 0 | 1 | 123 | +| [ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json](/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json) | JSON | 23 | 0 | 1 | 24 | +| [ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md](/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md) | Markdown | 3 | 0 | 2 | 5 | +| [ios/Runner/Base.lproj/LaunchScreen.storyboard](/ios/Runner/Base.lproj/LaunchScreen.storyboard) | XML | 36 | 1 | 1 | 38 | +| [ios/Runner/Base.lproj/Main.storyboard](/ios/Runner/Base.lproj/Main.storyboard) | XML | 25 | 1 | 1 | 27 | +| [ios/Runner/Runner-Bridging-Header.h](/ios/Runner/Runner-Bridging-Header.h) | C++ | 1 | 0 | 1 | 2 | +| [lib/constants.dart](/lib/constants.dart) | Dart | 2 | 0 | 0 | 2 | +| [lib/data_ops/adding_data.dart](/lib/data_ops/adding_data.dart) | Dart | 147 | 0 | 10 | 157 | +| [lib/data_ops/deleting_data.dart](/lib/data_ops/deleting_data.dart) | Dart | 18 | 0 | 3 | 21 | +| [lib/data_ops/fetching_data.dart](/lib/data_ops/fetching_data.dart) | Dart | 219 | 0 | 15 | 234 | +| [lib/data_ops/searching_data.dart](/lib/data_ops/searching_data.dart) | Dart | 78 | 0 | 5 | 83 | +| [lib/data_ops/updating_data.dart](/lib/data_ops/updating_data.dart) | Dart | 121 | 0 | 19 | 140 | +| [lib/data_ops/user_management.dart](/lib/data_ops/user_management.dart) | Dart | 43 | 0 | 9 | 52 | +| [lib/main.dart](/lib/main.dart) | Dart | 90 | 1 | 6 | 97 | +| [lib/models/customer.dart](/lib/models/customer.dart) | Dart | 16 | 0 | 2 | 18 | +| [lib/models/job.dart](/lib/models/job.dart) | Dart | 24 | 0 | 2 | 26 | +| [lib/models/part_service.dart](/lib/models/part_service.dart) | Dart | 18 | 0 | 2 | 20 | +| [lib/models/vehicle.dart](/lib/models/vehicle.dart) | Dart | 14 | 0 | 2 | 16 | +| [lib/pages/customer_display.dart](/lib/pages/customer_display.dart) | Dart | 254 | 3 | 7 | 264 | +| [lib/pages/home.dart](/lib/pages/home.dart) | Dart | 182 | 4 | 12 | 198 | +| [lib/pages/job_display.dart](/lib/pages/job_display.dart) | Dart | 444 | 6 | 11 | 461 | +| [lib/pages/login.dart](/lib/pages/login.dart) | Dart | 191 | 6 | 19 | 216 | +| [lib/pages/recent_jobs.dart](/lib/pages/recent_jobs.dart) | Dart | 198 | 3 | 8 | 209 | +| [lib/pages/search_customer.dart](/lib/pages/search_customer.dart) | Dart | 154 | 3 | 8 | 165 | +| [lib/pages/search_vehicle.dart](/lib/pages/search_vehicle.dart) | Dart | 139 | 3 | 7 | 149 | +| [lib/pages/vehicle_display.dart](/lib/pages/vehicle_display.dart) | Dart | 225 | 0 | 6 | 231 | +| [lib/widgets/dialogues/add_customer.dart](/lib/widgets/dialogues/add_customer.dart) | Dart | 214 | 1 | 11 | 226 | +| [lib/widgets/dialogues/add_job.dart](/lib/widgets/dialogues/add_job.dart) | Dart | 226 | 1 | 15 | 242 | +| [lib/widgets/dialogues/add_part_service.dart](/lib/widgets/dialogues/add_part_service.dart) | Dart | 334 | 1 | 14 | 349 | +| [lib/widgets/dialogues/add_vehicle.dart](/lib/widgets/dialogues/add_vehicle.dart) | Dart | 211 | 1 | 12 | 224 | +| [lib/widgets/dialogues/part_service_display.dart](/lib/widgets/dialogues/part_service_display.dart) | Dart | 69 | 0 | 5 | 74 | +| [lib/widgets/dialogues/update_customer.dart](/lib/widgets/dialogues/update_customer.dart) | Dart | 229 | 1 | 15 | 245 | +| [lib/widgets/dialogues/update_job.dart](/lib/widgets/dialogues/update_job.dart) | Dart | 453 | 5 | 21 | 479 | +| [lib/widgets/dialogues/update_part_service.dart](/lib/widgets/dialogues/update_part_service.dart) | Dart | 371 | 1 | 17 | 389 | +| [lib/widgets/dialogues/update_vehicle.dart](/lib/widgets/dialogues/update_vehicle.dart) | Dart | 230 | 1 | 14 | 245 | +| [lib/widgets/tiles/customer_tile.dart](/lib/widgets/tiles/customer_tile.dart) | Dart | 70 | 0 | 5 | 75 | +| [lib/widgets/tiles/job_tile.dart](/lib/widgets/tiles/job_tile.dart) | Dart | 98 | 2 | 7 | 107 | +| [lib/widgets/tiles/part_service_tile.dart](/lib/widgets/tiles/part_service_tile.dart) | Dart | 109 | 0 | 5 | 114 | +| [lib/widgets/tiles/vehicle_tile.dart](/lib/widgets/tiles/vehicle_tile.dart) | Dart | 83 | 0 | 4 | 87 | +| [linux/flutter/generated_plugin_registrant.cc](/linux/flutter/generated_plugin_registrant.cc) | C++ | 3 | 4 | 5 | 12 | +| [linux/flutter/generated_plugin_registrant.h](/linux/flutter/generated_plugin_registrant.h) | C++ | 5 | 5 | 6 | 16 | +| [linux/main.cc](/linux/main.cc) | C++ | 5 | 0 | 2 | 7 | +| [linux/my_application.cc](/linux/my_application.cc) | C++ | 74 | 11 | 20 | 105 | +| [linux/my_application.h](/linux/my_application.h) | C++ | 7 | 7 | 5 | 19 | +| [macos/Flutter/GeneratedPluginRegistrant.swift](/macos/Flutter/GeneratedPluginRegistrant.swift) | Swift | 6 | 3 | 4 | 13 | +| [macos/Runner/AppDelegate.swift](/macos/Runner/AppDelegate.swift) | Swift | 8 | 0 | 2 | 10 | +| [macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json](/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json) | JSON | 68 | 0 | 1 | 69 | +| [macos/Runner/Base.lproj/MainMenu.xib](/macos/Runner/Base.lproj/MainMenu.xib) | XML | 343 | 0 | 1 | 344 | +| [macos/Runner/MainFlutterWindow.swift](/macos/Runner/MainFlutterWindow.swift) | Swift | 12 | 0 | 4 | 16 | +| [pubspec.yaml](/pubspec.yaml) | YAML | 22 | 60 | 15 | 97 | +| [test/widget_test.dart](/test/widget_test.dart) | Dart | 14 | 10 | 7 | 31 | +| [web/index.html](/web/index.html) | HTML | 38 | 16 | 6 | 60 | +| [web/manifest.json](/web/manifest.json) | JSON | 35 | 0 | 1 | 36 | +| [windows/flutter/generated_plugin_registrant.cc](/windows/flutter/generated_plugin_registrant.cc) | C++ | 3 | 4 | 5 | 12 | +| [windows/flutter/generated_plugin_registrant.h](/windows/flutter/generated_plugin_registrant.h) | C++ | 5 | 5 | 6 | 16 | +| [windows/runner/flutter_window.cpp](/windows/runner/flutter_window.cpp) | C++ | 48 | 4 | 15 | 67 | +| [windows/runner/flutter_window.h](/windows/runner/flutter_window.h) | C++ | 20 | 5 | 9 | 34 | +| [windows/runner/main.cpp](/windows/runner/main.cpp) | C++ | 30 | 4 | 10 | 44 | +| [windows/runner/resource.h](/windows/runner/resource.h) | C++ | 9 | 6 | 2 | 17 | +| [windows/runner/utils.cpp](/windows/runner/utils.cpp) | C++ | 53 | 2 | 10 | 65 | +| [windows/runner/utils.h](/windows/runner/utils.h) | C++ | 8 | 6 | 6 | 20 | +| [windows/runner/win32_window.cpp](/windows/runner/win32_window.cpp) | C++ | 210 | 24 | 55 | 289 | +| [windows/runner/win32_window.h](/windows/runner/win32_window.h) | C++ | 48 | 31 | 24 | 103 | + +[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-20_11-03-10/diff-details.md b/.VSCodeCounter/2023-05-20_11-03-10/diff-details.md new file mode 100644 index 0000000..e830b81 --- /dev/null +++ b/.VSCodeCounter/2023-05-20_11-03-10/diff-details.md @@ -0,0 +1,15 @@ +# Diff Details + +Date : 2023-05-20 11:03:10 + +Directory /mnt/Storage Data/My Projects/car_workshop_app + +Total : 0 files, 0 codes, 0 comments, 0 blanks, all 0 lines + +[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details + +## Files +| filename | language | code | comment | blank | total | +| :--- | :--- | ---: | ---: | ---: | ---: | + +[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-20_11-03-10/diff.csv b/.VSCodeCounter/2023-05-20_11-03-10/diff.csv new file mode 100644 index 0000000..b7d8d75 --- /dev/null +++ b/.VSCodeCounter/2023-05-20_11-03-10/diff.csv @@ -0,0 +1,2 @@ +"filename", "language", "", "comment", "blank", "total" +"Total", "-", , 0, 0, 0 \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-20_11-03-10/diff.md b/.VSCodeCounter/2023-05-20_11-03-10/diff.md new file mode 100644 index 0000000..d6dc1b6 --- /dev/null +++ b/.VSCodeCounter/2023-05-20_11-03-10/diff.md @@ -0,0 +1,19 @@ +# Diff Summary + +Date : 2023-05-20 11:03:10 + +Directory /mnt/Storage Data/My Projects/car_workshop_app + +Total : 0 files, 0 codes, 0 comments, 0 blanks, all 0 lines + +[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md) + +## Languages +| language | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | + +## Directories +| path | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | + +[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-20_11-03-10/diff.txt b/.VSCodeCounter/2023-05-20_11-03-10/diff.txt new file mode 100644 index 0000000..268784b --- /dev/null +++ b/.VSCodeCounter/2023-05-20_11-03-10/diff.txt @@ -0,0 +1,22 @@ +Date : 2023-05-20 11:03:10 +Directory : /mnt/Storage Data/My Projects/car_workshop_app +Total : 0 files, 0 codes, 0 comments, 0 blanks, all 0 lines + +Languages ++----------+------------+------------+------------+------------+------------+ +| language | files | code | comment | blank | total | ++----------+------------+------------+------------+------------+------------+ ++----------+------------+------------+------------+------------+------------+ + +Directories ++------+------------+------------+------------+------------+------------+ +| path | files | code | comment | blank | total | ++------+------------+------------+------------+------------+------------+ ++------+------------+------------+------------+------------+------------+ + +Files ++----------+----------+------------+------------+------------+------------+ +| filename | language | code | comment | blank | total | ++----------+----------+------------+------------+------------+------------+ +| Total | | 0 | 0 | 0 | 0 | ++----------+----------+------------+------------+------------+------------+ \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-20_11-03-10/results.csv b/.VSCodeCounter/2023-05-20_11-03-10/results.csv new file mode 100644 index 0000000..4d221c5 --- /dev/null +++ b/.VSCodeCounter/2023-05-20_11-03-10/results.csv @@ -0,0 +1,80 @@ +"filename", "language", "Dart", "C++", "Swift", "Markdown", "JSON", "XML", "Groovy", "Properties", "HTML", "YAML", "comment", "blank", "total" +"/mnt/Storage Data/My Projects/car_workshop_app/README.md", "Markdown", 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 1, 3 +"/mnt/Storage Data/My Projects/car_workshop_app/analysis_options.yaml", "YAML", 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 23, 4, 30 +"/mnt/Storage Data/My Projects/car_workshop_app/android/app/build.gradle", "Groovy", 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 5, 13, 72 +"/mnt/Storage Data/My Projects/car_workshop_app/android/app/src/debug/AndroidManifest.xml", "XML", 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 4, 1, 9 +"/mnt/Storage Data/My Projects/car_workshop_app/android/app/src/main/AndroidManifest.xml", "XML", 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 6, 1, 35 +"/mnt/Storage Data/My Projects/car_workshop_app/android/app/src/main/res/drawable-v21/launch_background.xml", "XML", 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 7, 2, 13 +"/mnt/Storage Data/My Projects/car_workshop_app/android/app/src/main/res/drawable/launch_background.xml", "XML", 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 7, 2, 13 +"/mnt/Storage Data/My Projects/car_workshop_app/android/app/src/main/res/values-night/styles.xml", "XML", 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 1, 19 +"/mnt/Storage Data/My Projects/car_workshop_app/android/app/src/main/res/values/styles.xml", "XML", 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 9, 1, 19 +"/mnt/Storage Data/My Projects/car_workshop_app/android/app/src/profile/AndroidManifest.xml", "XML", 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 4, 1, 9 +"/mnt/Storage Data/My Projects/car_workshop_app/android/build.gradle", "Groovy", 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 5, 32 +"/mnt/Storage Data/My Projects/car_workshop_app/android/gradle.properties", "Properties", 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 1, 4 +"/mnt/Storage Data/My Projects/car_workshop_app/android/gradle/wrapper/gradle-wrapper.properties", "Properties", 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 1, 6 +"/mnt/Storage Data/My Projects/car_workshop_app/android/settings.gradle", "Groovy", 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 4, 12 +"/mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/AppDelegate.swift", "Swift", 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 2, 14 +"/mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json", "JSON", 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, 0, 1, 123 +"/mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json", "JSON", 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 1, 24 +"/mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md", "Markdown", 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 2, 5 +"/mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/Base.lproj/LaunchScreen.storyboard", "XML", 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 1, 1, 38 +"/mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/Base.lproj/Main.storyboard", "XML", 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 1, 1, 27 +"/mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/Runner-Bridging-Header.h", "C++", 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/constants.dart", "Dart", 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/data_ops/adding_data.dart", "Dart", 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 157 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/data_ops/deleting_data.dart", "Dart", 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 21 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/data_ops/fetching_data.dart", "Dart", 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 234 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/data_ops/searching_data.dart", "Dart", 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 83 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/data_ops/updating_data.dart", "Dart", 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 140 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/data_ops/user_management.dart", "Dart", 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 52 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/main.dart", "Dart", 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6, 97 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/models/customer.dart", "Dart", 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 18 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/models/job.dart", "Dart", 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 26 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/models/part_service.dart", "Dart", 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 20 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/models/vehicle.dart", "Dart", 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 16 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/pages/customer_display.dart", "Dart", 254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 264 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/pages/home.dart", "Dart", 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 12, 198 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/pages/job_display.dart", "Dart", 444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 11, 461 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/pages/login.dart", "Dart", 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 19, 216 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/pages/recent_jobs.dart", "Dart", 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 209 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/pages/search_customer.dart", "Dart", 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 8, 165 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/pages/search_vehicle.dart", "Dart", 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 149 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/pages/vehicle_display.dart", "Dart", 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 231 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/add_customer.dart", "Dart", 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11, 226 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/add_job.dart", "Dart", 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 15, 242 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/add_part_service.dart", "Dart", 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 14, 349 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/add_vehicle.dart", "Dart", 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 12, 224 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/part_service_display.dart", "Dart", 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 74 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/update_customer.dart", "Dart", 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 15, 245 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/update_job.dart", "Dart", 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 21, 479 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/update_part_service.dart", "Dart", 371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17, 389 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/update_vehicle.dart", "Dart", 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 14, 245 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/tiles/customer_tile.dart", "Dart", 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 75 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/tiles/job_tile.dart", "Dart", 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7, 107 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/tiles/part_service_tile.dart", "Dart", 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 114 +"/mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/tiles/vehicle_tile.dart", "Dart", 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 87 +"/mnt/Storage Data/My Projects/car_workshop_app/linux/flutter/generated_plugin_registrant.cc", "C++", 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 12 +"/mnt/Storage Data/My Projects/car_workshop_app/linux/flutter/generated_plugin_registrant.h", "C++", 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 16 +"/mnt/Storage Data/My Projects/car_workshop_app/linux/main.cc", "C++", 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 7 +"/mnt/Storage Data/My Projects/car_workshop_app/linux/my_application.cc", "C++", 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 11, 20, 105 +"/mnt/Storage Data/My Projects/car_workshop_app/linux/my_application.h", "C++", 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 7, 5, 19 +"/mnt/Storage Data/My Projects/car_workshop_app/macos/Flutter/GeneratedPluginRegistrant.swift", "Swift", 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 3, 4, 13 +"/mnt/Storage Data/My Projects/car_workshop_app/macos/Runner/AppDelegate.swift", "Swift", 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 2, 10 +"/mnt/Storage Data/My Projects/car_workshop_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json", "JSON", 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 1, 69 +"/mnt/Storage Data/My Projects/car_workshop_app/macos/Runner/Base.lproj/MainMenu.xib", "XML", 0, 0, 0, 0, 0, 343, 0, 0, 0, 0, 0, 1, 344 +"/mnt/Storage Data/My Projects/car_workshop_app/macos/Runner/MainFlutterWindow.swift", "Swift", 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 4, 16 +"/mnt/Storage Data/My Projects/car_workshop_app/pubspec.yaml", "YAML", 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 60, 15, 97 +"/mnt/Storage Data/My Projects/car_workshop_app/test/widget_test.dart", "Dart", 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 7, 31 +"/mnt/Storage Data/My Projects/car_workshop_app/web/index.html", "HTML", 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 16, 6, 60 +"/mnt/Storage Data/My Projects/car_workshop_app/web/manifest.json", "JSON", 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 1, 36 +"/mnt/Storage Data/My Projects/car_workshop_app/windows/flutter/generated_plugin_registrant.cc", "C++", 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 12 +"/mnt/Storage Data/My Projects/car_workshop_app/windows/flutter/generated_plugin_registrant.h", "C++", 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 16 +"/mnt/Storage Data/My Projects/car_workshop_app/windows/runner/flutter_window.cpp", "C++", 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 4, 15, 67 +"/mnt/Storage Data/My Projects/car_workshop_app/windows/runner/flutter_window.h", "C++", 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 5, 9, 34 +"/mnt/Storage Data/My Projects/car_workshop_app/windows/runner/main.cpp", "C++", 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 44 +"/mnt/Storage Data/My Projects/car_workshop_app/windows/runner/resource.h", "C++", 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 6, 2, 17 +"/mnt/Storage Data/My Projects/car_workshop_app/windows/runner/utils.cpp", "C++", 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 2, 10, 65 +"/mnt/Storage Data/My Projects/car_workshop_app/windows/runner/utils.h", "C++", 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 20 +"/mnt/Storage Data/My Projects/car_workshop_app/windows/runner/win32_window.cpp", "C++", 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 24, 55, 289 +"/mnt/Storage Data/My Projects/car_workshop_app/windows/runner/win32_window.h", "C++", 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 31, 24, 103 +"Total", "-", 5288, 529, 38, 5, 248, 466, 89, 8, 38, 25, 326, 566, 7626 \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-20_11-03-10/results.json b/.VSCodeCounter/2023-05-20_11-03-10/results.json new file mode 100644 index 0000000..faa16ae --- /dev/null +++ b/.VSCodeCounter/2023-05-20_11-03-10/results.json @@ -0,0 +1 @@ +{"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/test/widget_test.dart":{"language":"Dart","code":14,"comment":10,"blank":7},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/windows/runner/utils.h":{"language":"C++","code":8,"comment":6,"blank":6},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/windows/runner/utils.cpp":{"language":"C++","code":53,"comment":2,"blank":10},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/windows/runner/flutter_window.h":{"language":"C++","code":20,"comment":5,"blank":9},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/windows/runner/resource.h":{"language":"C++","code":9,"comment":6,"blank":2},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/windows/runner/win32_window.cpp":{"language":"C++","code":210,"comment":24,"blank":55},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/windows/runner/win32_window.h":{"language":"C++","code":48,"comment":31,"blank":24},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/windows/runner/main.cpp":{"language":"C++","code":30,"comment":4,"blank":10},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/ios/Runner/AppDelegate.swift":{"language":"Swift","code":12,"comment":0,"blank":2},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/windows/flutter/generated_plugin_registrant.h":{"language":"C++","code":5,"comment":5,"blank":6},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md":{"language":"Markdown","code":3,"comment":0,"blank":2},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json":{"language":"JSON","code":23,"comment":0,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/windows/flutter/generated_plugin_registrant.cc":{"language":"C++","code":3,"comment":4,"blank":5},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/ios/Runner/Runner-Bridging-Header.h":{"language":"C++","code":1,"comment":0,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json":{"language":"JSON","code":122,"comment":0,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/ios/Runner/Base.lproj/LaunchScreen.storyboard":{"language":"XML","code":36,"comment":1,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/ios/Runner/Base.lproj/Main.storyboard":{"language":"XML","code":25,"comment":1,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/android/build.gradle":{"language":"Groovy","code":27,"comment":0,"blank":5},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/android/settings.gradle":{"language":"Groovy","code":8,"comment":0,"blank":4},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/android/app/src/main/AndroidManifest.xml":{"language":"XML","code":28,"comment":6,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/android/app/build.gradle":{"language":"Groovy","code":54,"comment":5,"blank":13},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/android/gradle.properties":{"language":"Properties","code":3,"comment":0,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/android/gradle/wrapper/gradle-wrapper.properties":{"language":"Properties","code":5,"comment":0,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/android/app/src/main/res/values-night/styles.xml":{"language":"XML","code":9,"comment":9,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/android/app/src/main/res/drawable-v21/launch_background.xml":{"language":"XML","code":4,"comment":7,"blank":2},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/android/app/src/main/res/values/styles.xml":{"language":"XML","code":9,"comment":9,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/android/app/src/main/res/drawable/launch_background.xml":{"language":"XML","code":4,"comment":7,"blank":2},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/android/app/src/profile/AndroidManifest.xml":{"language":"XML","code":4,"comment":4,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/android/app/src/debug/AndroidManifest.xml":{"language":"XML","code":4,"comment":4,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/web/index.html":{"language":"HTML","code":38,"comment":16,"blank":6},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/pages/recent_jobs.dart":{"language":"Dart","code":198,"comment":3,"blank":8},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/web/manifest.json":{"language":"JSON","code":35,"comment":0,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/pages/home.dart":{"language":"Dart","code":182,"comment":4,"blank":12},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/data_ops/searching_data.dart":{"language":"Dart","code":78,"comment":0,"blank":5},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/pages/job_display.dart":{"language":"Dart","code":444,"comment":6,"blank":11},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/data_ops/updating_data.dart":{"language":"Dart","code":121,"comment":0,"blank":19},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/macos/Runner/AppDelegate.swift":{"language":"Swift","code":8,"comment":0,"blank":2},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/macos/Runner/MainFlutterWindow.swift":{"language":"Swift","code":12,"comment":0,"blank":4},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/macos/Flutter/GeneratedPluginRegistrant.swift":{"language":"Swift","code":6,"comment":3,"blank":4},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/data_ops/adding_data.dart":{"language":"Dart","code":147,"comment":0,"blank":10},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/pages/vehicle_display.dart":{"language":"Dart","code":225,"comment":0,"blank":6},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/pages/search_vehicle.dart":{"language":"Dart","code":139,"comment":3,"blank":7},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/main.dart":{"language":"Dart","code":90,"comment":1,"blank":6},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/data_ops/user_management.dart":{"language":"Dart","code":43,"comment":0,"blank":9},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/pages/login.dart":{"language":"Dart","code":191,"comment":6,"blank":19},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/pages/customer_display.dart":{"language":"Dart","code":254,"comment":3,"blank":7},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/data_ops/fetching_data.dart":{"language":"Dart","code":219,"comment":0,"blank":15},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json":{"language":"JSON","code":68,"comment":0,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/pages/search_customer.dart":{"language":"Dart","code":154,"comment":3,"blank":8},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/macos/Runner/Base.lproj/MainMenu.xib":{"language":"XML","code":343,"comment":0,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/constants.dart":{"language":"Dart","code":2,"comment":0,"blank":0},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/linux/my_application.cc":{"language":"C++","code":74,"comment":11,"blank":20},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/models/job.dart":{"language":"Dart","code":24,"comment":0,"blank":2},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/models/customer.dart":{"language":"Dart","code":16,"comment":0,"blank":2},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/models/part_service.dart":{"language":"Dart","code":18,"comment":0,"blank":2},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/dialogues/update_job.dart":{"language":"Dart","code":453,"comment":5,"blank":21},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/tiles/customer_tile.dart":{"language":"Dart","code":70,"comment":0,"blank":5},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/tiles/vehicle_tile.dart":{"language":"Dart","code":83,"comment":0,"blank":4},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/dialogues/update_vehicle.dart":{"language":"Dart","code":230,"comment":1,"blank":14},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/tiles/job_tile.dart":{"language":"Dart","code":98,"comment":2,"blank":7},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/dialogues/part_service_display.dart":{"language":"Dart","code":69,"comment":0,"blank":5},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/dialogues/update_part_service.dart":{"language":"Dart","code":371,"comment":1,"blank":17},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/tiles/part_service_tile.dart":{"language":"Dart","code":109,"comment":0,"blank":5},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/dialogues/add_customer.dart":{"language":"Dart","code":214,"comment":1,"blank":11},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/dialogues/add_vehicle.dart":{"language":"Dart","code":211,"comment":1,"blank":12},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/dialogues/add_part_service.dart":{"language":"Dart","code":334,"comment":1,"blank":14},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/dialogues/add_job.dart":{"language":"Dart","code":226,"comment":1,"blank":15},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/widgets/dialogues/update_customer.dart":{"language":"Dart","code":229,"comment":1,"blank":15},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/models/vehicle.dart":{"language":"Dart","code":14,"comment":0,"blank":2},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/linux/flutter/generated_plugin_registrant.h":{"language":"C++","code":5,"comment":5,"blank":6},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/linux/flutter/generated_plugin_registrant.cc":{"language":"C++","code":3,"comment":4,"blank":5},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/lib/data_ops/deleting_data.dart":{"language":"Dart","code":18,"comment":0,"blank":3},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/linux/main.cc":{"language":"C++","code":5,"comment":0,"blank":2},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/pubspec.yaml":{"language":"YAML","code":22,"comment":60,"blank":15},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/analysis_options.yaml":{"language":"YAML","code":3,"comment":23,"blank":4},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/README.md":{"language":"Markdown","code":2,"comment":0,"blank":1},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/linux/my_application.h":{"language":"C++","code":7,"comment":7,"blank":5},"file:///mnt/Storage%20Data/My%20Projects/car_workshop_app/windows/runner/flutter_window.cpp":{"language":"C++","code":48,"comment":4,"blank":15}} \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-20_11-03-10/results.md b/.VSCodeCounter/2023-05-20_11-03-10/results.md new file mode 100644 index 0000000..508de19 --- /dev/null +++ b/.VSCodeCounter/2023-05-20_11-03-10/results.md @@ -0,0 +1,77 @@ +# Summary + +Date : 2023-05-20 11:03:10 + +Directory /mnt/Storage Data/My Projects/car_workshop_app + +Total : 78 files, 6734 codes, 326 comments, 566 blanks, all 7626 lines + +Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md) + +## Languages +| language | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | +| Dart | 34 | 5,288 | 53 | 305 | 5,646 | +| C++ | 16 | 529 | 118 | 181 | 828 | +| XML | 10 | 466 | 48 | 12 | 526 | +| JSON | 4 | 248 | 0 | 4 | 252 | +| Groovy | 3 | 89 | 5 | 22 | 116 | +| Swift | 4 | 38 | 3 | 12 | 53 | +| HTML | 1 | 38 | 16 | 6 | 60 | +| YAML | 2 | 25 | 83 | 19 | 127 | +| Properties | 2 | 8 | 0 | 2 | 10 | +| Markdown | 2 | 5 | 0 | 3 | 8 | + +## Directories +| path | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | +| . | 78 | 6,734 | 326 | 566 | 7,626 | +| . (Files) | 3 | 27 | 83 | 20 | 130 | +| android | 12 | 159 | 51 | 33 | 243 | +| android (Files) | 3 | 38 | 0 | 10 | 48 | +| android/app | 8 | 116 | 51 | 22 | 189 | +| android/app (Files) | 1 | 54 | 5 | 13 | 72 | +| android/app/src | 7 | 62 | 46 | 9 | 117 | +| android/app/src/debug | 1 | 4 | 4 | 1 | 9 | +| android/app/src/main | 5 | 54 | 38 | 7 | 99 | +| android/app/src/main (Files) | 1 | 28 | 6 | 1 | 35 | +| android/app/src/main/res | 4 | 26 | 32 | 6 | 64 | +| android/app/src/main/res/drawable | 1 | 4 | 7 | 2 | 13 | +| android/app/src/main/res/drawable-v21 | 1 | 4 | 7 | 2 | 13 | +| android/app/src/main/res/values | 1 | 9 | 9 | 1 | 19 | +| android/app/src/main/res/values-night | 1 | 9 | 9 | 1 | 19 | +| android/app/src/profile | 1 | 4 | 4 | 1 | 9 | +| android/gradle | 1 | 5 | 0 | 1 | 6 | +| android/gradle/wrapper | 1 | 5 | 0 | 1 | 6 | +| ios | 7 | 222 | 2 | 9 | 233 | +| ios/Runner | 7 | 222 | 2 | 9 | 233 | +| ios/Runner (Files) | 2 | 13 | 0 | 3 | 16 | +| ios/Runner/Assets.xcassets | 3 | 148 | 0 | 4 | 152 | +| ios/Runner/Assets.xcassets/AppIcon.appiconset | 1 | 122 | 0 | 1 | 123 | +| ios/Runner/Assets.xcassets/LaunchImage.imageset | 2 | 26 | 0 | 3 | 29 | +| ios/Runner/Base.lproj | 2 | 61 | 2 | 2 | 65 | +| lib | 33 | 5,274 | 43 | 298 | 5,615 | +| lib (Files) | 2 | 92 | 1 | 6 | 99 | +| lib/data_ops | 6 | 626 | 0 | 61 | 687 | +| lib/models | 4 | 72 | 0 | 8 | 80 | +| lib/pages | 8 | 1,787 | 28 | 78 | 1,893 | +| lib/widgets | 13 | 2,697 | 14 | 145 | 2,856 | +| lib/widgets/dialogues | 9 | 2,337 | 12 | 124 | 2,473 | +| lib/widgets/tiles | 4 | 360 | 2 | 21 | 383 | +| linux | 5 | 94 | 27 | 38 | 159 | +| linux (Files) | 3 | 86 | 18 | 27 | 131 | +| linux/flutter | 2 | 8 | 9 | 11 | 28 | +| macos | 5 | 437 | 3 | 12 | 452 | +| macos/Flutter | 1 | 6 | 3 | 4 | 13 | +| macos/Runner | 4 | 431 | 0 | 8 | 439 | +| macos/Runner (Files) | 2 | 20 | 0 | 6 | 26 | +| macos/Runner/Assets.xcassets | 1 | 68 | 0 | 1 | 69 | +| macos/Runner/Assets.xcassets/AppIcon.appiconset | 1 | 68 | 0 | 1 | 69 | +| macos/Runner/Base.lproj | 1 | 343 | 0 | 1 | 344 | +| test | 1 | 14 | 10 | 7 | 31 | +| web | 2 | 73 | 16 | 7 | 96 | +| windows | 10 | 434 | 91 | 142 | 667 | +| windows/flutter | 2 | 8 | 9 | 11 | 28 | +| windows/runner | 8 | 426 | 82 | 131 | 639 | + +Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2023-05-20_11-03-10/results.txt b/.VSCodeCounter/2023-05-20_11-03-10/results.txt new file mode 100644 index 0000000..babb6f9 --- /dev/null +++ b/.VSCodeCounter/2023-05-20_11-03-10/results.txt @@ -0,0 +1,158 @@ +Date : 2023-05-20 11:03:10 +Directory : /mnt/Storage Data/My Projects/car_workshop_app +Total : 78 files, 6734 codes, 326 comments, 566 blanks, all 7626 lines + +Languages ++------------+------------+------------+------------+------------+------------+ +| language | files | code | comment | blank | total | ++------------+------------+------------+------------+------------+------------+ +| Dart | 34 | 5,288 | 53 | 305 | 5,646 | +| C++ | 16 | 529 | 118 | 181 | 828 | +| XML | 10 | 466 | 48 | 12 | 526 | +| JSON | 4 | 248 | 0 | 4 | 252 | +| Groovy | 3 | 89 | 5 | 22 | 116 | +| Swift | 4 | 38 | 3 | 12 | 53 | +| HTML | 1 | 38 | 16 | 6 | 60 | +| YAML | 2 | 25 | 83 | 19 | 127 | +| Properties | 2 | 8 | 0 | 2 | 10 | +| Markdown | 2 | 5 | 0 | 3 | 8 | ++------------+------------+------------+------------+------------+------------+ + +Directories ++--------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| path | files | code | comment | blank | total | ++--------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| . | 78 | 6,734 | 326 | 566 | 7,626 | +| . (Files) | 3 | 27 | 83 | 20 | 130 | +| android | 12 | 159 | 51 | 33 | 243 | +| android (Files) | 3 | 38 | 0 | 10 | 48 | +| android/app | 8 | 116 | 51 | 22 | 189 | +| android/app (Files) | 1 | 54 | 5 | 13 | 72 | +| android/app/src | 7 | 62 | 46 | 9 | 117 | +| android/app/src/debug | 1 | 4 | 4 | 1 | 9 | +| android/app/src/main | 5 | 54 | 38 | 7 | 99 | +| android/app/src/main (Files) | 1 | 28 | 6 | 1 | 35 | +| android/app/src/main/res | 4 | 26 | 32 | 6 | 64 | +| android/app/src/main/res/drawable | 1 | 4 | 7 | 2 | 13 | +| android/app/src/main/res/drawable-v21 | 1 | 4 | 7 | 2 | 13 | +| android/app/src/main/res/values | 1 | 9 | 9 | 1 | 19 | +| android/app/src/main/res/values-night | 1 | 9 | 9 | 1 | 19 | +| android/app/src/profile | 1 | 4 | 4 | 1 | 9 | +| android/gradle | 1 | 5 | 0 | 1 | 6 | +| android/gradle/wrapper | 1 | 5 | 0 | 1 | 6 | +| ios | 7 | 222 | 2 | 9 | 233 | +| ios/Runner | 7 | 222 | 2 | 9 | 233 | +| ios/Runner (Files) | 2 | 13 | 0 | 3 | 16 | +| ios/Runner/Assets.xcassets | 3 | 148 | 0 | 4 | 152 | +| ios/Runner/Assets.xcassets/AppIcon.appiconset | 1 | 122 | 0 | 1 | 123 | +| ios/Runner/Assets.xcassets/LaunchImage.imageset | 2 | 26 | 0 | 3 | 29 | +| ios/Runner/Base.lproj | 2 | 61 | 2 | 2 | 65 | +| lib | 33 | 5,274 | 43 | 298 | 5,615 | +| lib (Files) | 2 | 92 | 1 | 6 | 99 | +| lib/data_ops | 6 | 626 | 0 | 61 | 687 | +| lib/models | 4 | 72 | 0 | 8 | 80 | +| lib/pages | 8 | 1,787 | 28 | 78 | 1,893 | +| lib/widgets | 13 | 2,697 | 14 | 145 | 2,856 | +| lib/widgets/dialogues | 9 | 2,337 | 12 | 124 | 2,473 | +| lib/widgets/tiles | 4 | 360 | 2 | 21 | 383 | +| linux | 5 | 94 | 27 | 38 | 159 | +| linux (Files) | 3 | 86 | 18 | 27 | 131 | +| linux/flutter | 2 | 8 | 9 | 11 | 28 | +| macos | 5 | 437 | 3 | 12 | 452 | +| macos/Flutter | 1 | 6 | 3 | 4 | 13 | +| macos/Runner | 4 | 431 | 0 | 8 | 439 | +| macos/Runner (Files) | 2 | 20 | 0 | 6 | 26 | +| macos/Runner/Assets.xcassets | 1 | 68 | 0 | 1 | 69 | +| macos/Runner/Assets.xcassets/AppIcon.appiconset | 1 | 68 | 0 | 1 | 69 | +| macos/Runner/Base.lproj | 1 | 343 | 0 | 1 | 344 | +| test | 1 | 14 | 10 | 7 | 31 | +| web | 2 | 73 | 16 | 7 | 96 | +| windows | 10 | 434 | 91 | 142 | 667 | +| windows/flutter | 2 | 8 | 9 | 11 | 28 | +| windows/runner | 8 | 426 | 82 | 131 | 639 | ++--------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ + +Files ++--------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| filename | language | code | comment | blank | total | ++--------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| /mnt/Storage Data/My Projects/car_workshop_app/README.md | Markdown | 2 | 0 | 1 | 3 | +| /mnt/Storage Data/My Projects/car_workshop_app/analysis_options.yaml | YAML | 3 | 23 | 4 | 30 | +| /mnt/Storage Data/My Projects/car_workshop_app/android/app/build.gradle | Groovy | 54 | 5 | 13 | 72 | +| /mnt/Storage Data/My Projects/car_workshop_app/android/app/src/debug/AndroidManifest.xml | XML | 4 | 4 | 1 | 9 | +| /mnt/Storage Data/My Projects/car_workshop_app/android/app/src/main/AndroidManifest.xml | XML | 28 | 6 | 1 | 35 | +| /mnt/Storage Data/My Projects/car_workshop_app/android/app/src/main/res/drawable-v21/launch_background.xml | XML | 4 | 7 | 2 | 13 | +| /mnt/Storage Data/My Projects/car_workshop_app/android/app/src/main/res/drawable/launch_background.xml | XML | 4 | 7 | 2 | 13 | +| /mnt/Storage Data/My Projects/car_workshop_app/android/app/src/main/res/values-night/styles.xml | XML | 9 | 9 | 1 | 19 | +| /mnt/Storage Data/My Projects/car_workshop_app/android/app/src/main/res/values/styles.xml | XML | 9 | 9 | 1 | 19 | +| /mnt/Storage Data/My Projects/car_workshop_app/android/app/src/profile/AndroidManifest.xml | XML | 4 | 4 | 1 | 9 | +| /mnt/Storage Data/My Projects/car_workshop_app/android/build.gradle | Groovy | 27 | 0 | 5 | 32 | +| /mnt/Storage Data/My Projects/car_workshop_app/android/gradle.properties | Properties | 3 | 0 | 1 | 4 | +| /mnt/Storage Data/My Projects/car_workshop_app/android/gradle/wrapper/gradle-wrapper.properties | Properties | 5 | 0 | 1 | 6 | +| /mnt/Storage Data/My Projects/car_workshop_app/android/settings.gradle | Groovy | 8 | 0 | 4 | 12 | +| /mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/AppDelegate.swift | Swift | 12 | 0 | 2 | 14 | +| /mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json | JSON | 122 | 0 | 1 | 123 | +| /mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json | JSON | 23 | 0 | 1 | 24 | +| /mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md | Markdown | 3 | 0 | 2 | 5 | +| /mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/Base.lproj/LaunchScreen.storyboard | XML | 36 | 1 | 1 | 38 | +| /mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/Base.lproj/Main.storyboard | XML | 25 | 1 | 1 | 27 | +| /mnt/Storage Data/My Projects/car_workshop_app/ios/Runner/Runner-Bridging-Header.h | C++ | 1 | 0 | 1 | 2 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/constants.dart | Dart | 2 | 0 | 0 | 2 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/data_ops/adding_data.dart | Dart | 147 | 0 | 10 | 157 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/data_ops/deleting_data.dart | Dart | 18 | 0 | 3 | 21 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/data_ops/fetching_data.dart | Dart | 219 | 0 | 15 | 234 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/data_ops/searching_data.dart | Dart | 78 | 0 | 5 | 83 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/data_ops/updating_data.dart | Dart | 121 | 0 | 19 | 140 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/data_ops/user_management.dart | Dart | 43 | 0 | 9 | 52 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/main.dart | Dart | 90 | 1 | 6 | 97 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/models/customer.dart | Dart | 16 | 0 | 2 | 18 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/models/job.dart | Dart | 24 | 0 | 2 | 26 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/models/part_service.dart | Dart | 18 | 0 | 2 | 20 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/models/vehicle.dart | Dart | 14 | 0 | 2 | 16 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/pages/customer_display.dart | Dart | 254 | 3 | 7 | 264 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/pages/home.dart | Dart | 182 | 4 | 12 | 198 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/pages/job_display.dart | Dart | 444 | 6 | 11 | 461 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/pages/login.dart | Dart | 191 | 6 | 19 | 216 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/pages/recent_jobs.dart | Dart | 198 | 3 | 8 | 209 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/pages/search_customer.dart | Dart | 154 | 3 | 8 | 165 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/pages/search_vehicle.dart | Dart | 139 | 3 | 7 | 149 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/pages/vehicle_display.dart | Dart | 225 | 0 | 6 | 231 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/add_customer.dart | Dart | 214 | 1 | 11 | 226 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/add_job.dart | Dart | 226 | 1 | 15 | 242 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/add_part_service.dart | Dart | 334 | 1 | 14 | 349 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/add_vehicle.dart | Dart | 211 | 1 | 12 | 224 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/part_service_display.dart | Dart | 69 | 0 | 5 | 74 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/update_customer.dart | Dart | 229 | 1 | 15 | 245 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/update_job.dart | Dart | 453 | 5 | 21 | 479 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/update_part_service.dart | Dart | 371 | 1 | 17 | 389 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/dialogues/update_vehicle.dart | Dart | 230 | 1 | 14 | 245 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/tiles/customer_tile.dart | Dart | 70 | 0 | 5 | 75 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/tiles/job_tile.dart | Dart | 98 | 2 | 7 | 107 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/tiles/part_service_tile.dart | Dart | 109 | 0 | 5 | 114 | +| /mnt/Storage Data/My Projects/car_workshop_app/lib/widgets/tiles/vehicle_tile.dart | Dart | 83 | 0 | 4 | 87 | +| /mnt/Storage Data/My Projects/car_workshop_app/linux/flutter/generated_plugin_registrant.cc | C++ | 3 | 4 | 5 | 12 | +| /mnt/Storage Data/My Projects/car_workshop_app/linux/flutter/generated_plugin_registrant.h | C++ | 5 | 5 | 6 | 16 | +| /mnt/Storage Data/My Projects/car_workshop_app/linux/main.cc | C++ | 5 | 0 | 2 | 7 | +| /mnt/Storage Data/My Projects/car_workshop_app/linux/my_application.cc | C++ | 74 | 11 | 20 | 105 | +| /mnt/Storage Data/My Projects/car_workshop_app/linux/my_application.h | C++ | 7 | 7 | 5 | 19 | +| /mnt/Storage Data/My Projects/car_workshop_app/macos/Flutter/GeneratedPluginRegistrant.swift | Swift | 6 | 3 | 4 | 13 | +| /mnt/Storage Data/My Projects/car_workshop_app/macos/Runner/AppDelegate.swift | Swift | 8 | 0 | 2 | 10 | +| /mnt/Storage Data/My Projects/car_workshop_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json | JSON | 68 | 0 | 1 | 69 | +| /mnt/Storage Data/My Projects/car_workshop_app/macos/Runner/Base.lproj/MainMenu.xib | XML | 343 | 0 | 1 | 344 | +| /mnt/Storage Data/My Projects/car_workshop_app/macos/Runner/MainFlutterWindow.swift | Swift | 12 | 0 | 4 | 16 | +| /mnt/Storage Data/My Projects/car_workshop_app/pubspec.yaml | YAML | 22 | 60 | 15 | 97 | +| /mnt/Storage Data/My Projects/car_workshop_app/test/widget_test.dart | Dart | 14 | 10 | 7 | 31 | +| /mnt/Storage Data/My Projects/car_workshop_app/web/index.html | HTML | 38 | 16 | 6 | 60 | +| /mnt/Storage Data/My Projects/car_workshop_app/web/manifest.json | JSON | 35 | 0 | 1 | 36 | +| /mnt/Storage Data/My Projects/car_workshop_app/windows/flutter/generated_plugin_registrant.cc | C++ | 3 | 4 | 5 | 12 | +| /mnt/Storage Data/My Projects/car_workshop_app/windows/flutter/generated_plugin_registrant.h | C++ | 5 | 5 | 6 | 16 | +| /mnt/Storage Data/My Projects/car_workshop_app/windows/runner/flutter_window.cpp | C++ | 48 | 4 | 15 | 67 | +| /mnt/Storage Data/My Projects/car_workshop_app/windows/runner/flutter_window.h | C++ | 20 | 5 | 9 | 34 | +| /mnt/Storage Data/My Projects/car_workshop_app/windows/runner/main.cpp | C++ | 30 | 4 | 10 | 44 | +| /mnt/Storage Data/My Projects/car_workshop_app/windows/runner/resource.h | C++ | 9 | 6 | 2 | 17 | +| /mnt/Storage Data/My Projects/car_workshop_app/windows/runner/utils.cpp | C++ | 53 | 2 | 10 | 65 | +| /mnt/Storage Data/My Projects/car_workshop_app/windows/runner/utils.h | C++ | 8 | 6 | 6 | 20 | +| /mnt/Storage Data/My Projects/car_workshop_app/windows/runner/win32_window.cpp | C++ | 210 | 24 | 55 | 289 | +| /mnt/Storage Data/My Projects/car_workshop_app/windows/runner/win32_window.h | C++ | 48 | 31 | 24 | 103 | +| Total | | 6,734 | 326 | 566 | 7,626 | ++--------------------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+ \ No newline at end of file diff --git a/lib/data_ops/adding_data.dart b/lib/data_ops/adding_data.dart index b91aea9..bccd723 100644 --- a/lib/data_ops/adding_data.dart +++ b/lib/data_ops/adding_data.dart @@ -135,12 +135,14 @@ Future addPartService( String jobID, DateTime timeAdded, String? details, + int quantity, + String status, ) async { String username = getSessionUsername(); String hash = getSessionHash(); try { var result = await http.get(Uri.parse( - "http://localhost/add_partService.php?username=$username&hash=$hash&name=$name&type=$type&cost=$cost&supplier=$supplier&jobID=$jobID&addedDateTime=${timeAdded.toString()}&details=$details")); + "http://localhost/add_partService.php?username=$username&hash=$hash&name=$name&type=$type&cost=$cost&supplier=$supplier&jobID=$jobID&addedDateTime=${timeAdded.toString()}&details=$details&quantity=$quantity&status=$status")); if (result.statusCode == 200) { if (result.body == "1") { return "SUCCESS"; diff --git a/lib/data_ops/fetching_data.dart b/lib/data_ops/fetching_data.dart index c4a98d9..3b3d238 100644 --- a/lib/data_ops/fetching_data.dart +++ b/lib/data_ops/fetching_data.dart @@ -181,6 +181,8 @@ Future?> getPartServiceForJob(String jobID) async { partServiceData["Details"] == "null" ? null : partServiceData["Details"], + int.parse(partServiceData["Quantity"]), + partServiceData["Status"], ); }).toList(); } else { diff --git a/lib/data_ops/updating_data.dart b/lib/data_ops/updating_data.dart index c771758..33ee03d 100644 --- a/lib/data_ops/updating_data.dart +++ b/lib/data_ops/updating_data.dart @@ -86,7 +86,6 @@ Future updateJobInfo( var result = await http.get(Uri.parse( "http://localhost/update_job_info.php?username=$username&hash=$hash&jobID=$jobID&customerComplaint=$customerComplaint&workDetails=$workDetails&price=$price&paid=$paid&addedDateTime=$dateTimeAdded&finishedDateTime=$dateTimeFinished&kilometers=$kilometers")); - print(result.body); if (result.statusCode == 200) { if (result.body == "1") { return "SUCCESS"; @@ -115,14 +114,14 @@ Future updatePartServiceInfo( String jobID = partService.jobID; String timeAdded = partService.timeAdded.toString(); String details = partService.details ?? ""; - + String quantity = partService.quantity.toString(); + String status = partService.status ?? ""; try { var result = await http.get(Uri.parse( - "http://localhost/update_partService.php?username=$username&hash=$hash&oldName=$oldName&name=$name&type=$type&cost=$cost&supplier=$supplier&jobID=$jobID&addedDateTime=$timeAdded&details=$details")); + "http://localhost/update_partService.php?username=$username&hash=$hash&oldName=$oldName&name=$name&type=$type&cost=$cost&supplier=$supplier&jobID=$jobID&addedDateTime=$timeAdded&details=$details&quantity=$quantity&status=$status")); - print("'${result.body}'"); if (result.statusCode == 200) { if (result.body == "1") { diff --git a/lib/main.dart b/lib/main.dart index c5a716c..075d5c0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -24,7 +24,7 @@ class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { - MaterialColor? primaryColor = Colors.blue; + MaterialColor? primaryColor = Colors.purple; Color? scaffoldBackgroundColor = Colors.grey[900]; return MaterialApp( title: workshopName, diff --git a/lib/models/part_service.dart b/lib/models/part_service.dart index ab5d7ed..37c0a5b 100644 --- a/lib/models/part_service.dart +++ b/lib/models/part_service.dart @@ -6,6 +6,8 @@ class PartService { String jobID; DateTime timeAdded; String? details; + int quantity; + String? status; PartService( this.name, @@ -15,5 +17,7 @@ class PartService { this.jobID, this.timeAdded, this.details, + this.quantity, + this.status, ); } diff --git a/lib/pages/customer_display.dart b/lib/pages/customer_display.dart index ca0392f..e2f4712 100644 --- a/lib/pages/customer_display.dart +++ b/lib/pages/customer_display.dart @@ -1,6 +1,7 @@ import 'package:auto_size_text/auto_size_text.dart'; import 'package:car_workshop_app/widgets/dialogues/add_vehicle.dart'; import 'package:car_workshop_app/widgets/dialogues/update_customer.dart'; +import 'package:car_workshop_app/widgets/label_headers/vehicle_label_header.dart'; import 'package:car_workshop_app/widgets/tiles/vehicle_tile.dart'; import 'package:flutter/material.dart'; @@ -197,10 +198,11 @@ class _CustomerInfoState extends State { ), ), ), + const VehicleLabelHeader(), Padding( padding: const EdgeInsets.all(8.0), child: SizedBox( - height: MediaQuery.of(context).size.height * 0.35, + height: MediaQuery.of(context).size.height * 0.33, child: FutureBuilder( future: getVehiclesForCustomer(widget.customerID), diff --git a/lib/pages/home.dart b/lib/pages/home.dart index 817c657..d3b4b85 100644 --- a/lib/pages/home.dart +++ b/lib/pages/home.dart @@ -84,7 +84,7 @@ class _HomeState extends State { ? 400 : MediaQuery.of(context).size.width * 0.3, child: const Text( - "Add Customer", + "New Customer", style: TextStyle(fontSize: 20), )), ), diff --git a/lib/pages/job_display.dart b/lib/pages/job_display.dart index 24899ea..b15e323 100644 --- a/lib/pages/job_display.dart +++ b/lib/pages/job_display.dart @@ -11,6 +11,7 @@ import '../models/job.dart'; import '../models/part_service.dart'; import '../models/vehicle.dart'; import '../widgets/dialogues/add_part_service.dart'; +import '../widgets/label_headers/partService_label_header.dart'; import '../widgets/tiles/part_service_tile.dart'; class JobInfo extends StatefulWidget { @@ -33,7 +34,7 @@ class _JobInfoState extends State { appBar: AppBar( backgroundColor: Colors.transparent, elevation: 0, - title: Text("Job: ${widget.jobID}"), + title: Text("Job Card : ${widget.jobID}"), centerTitle: true, actions: [ FutureBuilder( @@ -220,7 +221,9 @@ class _JobInfoState extends State { const SizedBox( height: 10, ), - SizedBox( + Container( + padding: const EdgeInsets.all(16), + alignment: Alignment.topLeft, height: MediaQuery.of(context).size.height * 0.18, child: SingleChildScrollView( @@ -257,17 +260,27 @@ class _JobInfoState extends State { const SizedBox( height: 10, ), - SizedBox( + Container( + padding: const EdgeInsets.all(16), + alignment: Alignment.topLeft, height: MediaQuery.of(context).size.height * 0.18, - child: SingleChildScrollView( - child: Text( - job.workDetails ?? "", - style: const TextStyle( - color: Colors.white, - ), - ), - ), + child: job.workDetails != null + ? ListView.builder( + itemCount: job.workDetails! + .split("\n") + .length, + itemBuilder: (context, index) { + return Padding( + padding: + const EdgeInsets.symmetric( + vertical: 2.0), + child: Text( + "${index + 1}. ${job.workDetails!.split("\n")[index]}"), + ); + }, + ) + : const Text("NULL"), ) ], ), @@ -279,38 +292,62 @@ class _JobInfoState extends State { height: 10, ), const Text( - "Parts/Services Arranged", + "Parts / Labour & Sublet", style: TextStyle( color: Colors.white, fontSize: 20, fontWeight: FontWeight.bold), ), - Padding( - padding: const EdgeInsets.all(8.0), - child: SizedBox( - height: MediaQuery.of(context).size.height * 0.3, - child: FutureBuilder( - future: getPartServiceForJob(widget.jobID), - builder: (context, snapshot) { - if (snapshot.hasData) { - List partServicesList = - snapshot.data!; - return ListView.builder( - itemCount: partServicesList.length, - itemBuilder: (context, index) { - return PartServiceTile( - setStateCallback: setStateCallback, - partService: partServicesList[index], - deletePartServiceCallback: - deletePartService, - ); - }); - } else { - return const Center( - child: CircularProgressIndicator(), - ); - } - }), + Container( + color: Colors.grey[800], + child: Padding( + padding: const EdgeInsets.all(4.0), + child: SizedBox( + height: MediaQuery.of(context).size.height * 0.3, + child: FutureBuilder( + future: getPartServiceForJob(widget.jobID), + builder: (context, snapshot) { + if (snapshot.hasData) { + List partServicesList = + snapshot.data!; + return SizedBox( + height: MediaQuery.of(context).size.height * + 0.3, + child: Column( + children: [ + const PartServiceLabelHeader(), + const Divider(), + SizedBox( + height: MediaQuery.of(context) + .size + .height * + 0.3 - + 80, + child: ListView.builder( + itemCount: + partServicesList.length, + itemBuilder: (context, index) { + return PartServiceTile( + setStateCallback: + setStateCallback, + partService: + partServicesList[index], + deletePartServiceCallback: + deletePartService, + index: index + 1, + ); + }), + ), + ], + ), + ); + } else { + return const Center( + child: CircularProgressIndicator(), + ); + } + }), + ), ), ), Padding( diff --git a/lib/pages/login.dart b/lib/pages/login.dart index 2d812e5..02a41fc 100644 --- a/lib/pages/login.dart +++ b/lib/pages/login.dart @@ -140,13 +140,13 @@ class _LoginState extends State { showDialog( context: context, barrierDismissible: false, - builder: ((context) => AlertDialog( + builder: ((context) => const AlertDialog( content: SizedBox( height: 100, child: Center( child: Column( mainAxisSize: MainAxisSize.min, - children: const [ + children: [ CircularProgressIndicator(), SizedBox(height: 20), Text( diff --git a/lib/pages/recent_jobs.dart b/lib/pages/recent_jobs.dart index 5942899..573baa8 100644 --- a/lib/pages/recent_jobs.dart +++ b/lib/pages/recent_jobs.dart @@ -1,7 +1,5 @@ import 'package:car_workshop_app/data_ops/fetching_data.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/src/widgets/framework.dart'; -import 'package:flutter/src/widgets/placeholder.dart'; import '../models/job.dart'; import '../widgets/tiles/job_tile.dart'; diff --git a/lib/pages/search_customer.dart b/lib/pages/search_customer.dart index 9ce9db1..250d0a9 100644 --- a/lib/pages/search_customer.dart +++ b/lib/pages/search_customer.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import '../data_ops/searching_data.dart'; import '../models/customer.dart'; +import '../widgets/label_headers/customer_label_header.dart'; import '../widgets/tiles/customer_tile.dart'; class SearchCustomer extends StatefulWidget { @@ -123,11 +124,13 @@ class _SearchCustomerState extends State { )), ), + const CustomerLabelHeader(), + // Search Results Padding( padding: const EdgeInsets.all(8.0), child: SizedBox( - height: MediaQuery.of(context).size.height * 0.65, + height: MediaQuery.of(context).size.height * 0.63, child: FutureBuilder( future: searchCustomer( customerIDController.text, diff --git a/lib/pages/search_vehicle.dart b/lib/pages/search_vehicle.dart index 9a7a331..19ffc76 100644 --- a/lib/pages/search_vehicle.dart +++ b/lib/pages/search_vehicle.dart @@ -1,3 +1,4 @@ +import 'package:car_workshop_app/widgets/label_headers/vehicle_label_header.dart'; import 'package:flutter/material.dart'; import '../data_ops/searching_data.dart'; @@ -109,11 +110,13 @@ class _SearchVehicleState extends State { )), ), + const VehicleLabelHeader(), + // Search Results Padding( padding: const EdgeInsets.all(8.0), child: SizedBox( - height: MediaQuery.of(context).size.height * 0.65, + height: MediaQuery.of(context).size.height * 0.6, child: FutureBuilder( future: searchVehicle( vehicleNumberController.text, diff --git a/lib/pages/vehicle_display.dart b/lib/pages/vehicle_display.dart index 355a6a6..50a3d84 100644 --- a/lib/pages/vehicle_display.dart +++ b/lib/pages/vehicle_display.dart @@ -1,5 +1,4 @@ import 'package:auto_size_text/auto_size_text.dart'; -import 'package:car_workshop_app/data_ops/updating_data.dart'; import 'package:car_workshop_app/models/vehicle.dart'; import 'package:car_workshop_app/widgets/dialogues/add_job.dart'; import 'package:car_workshop_app/widgets/dialogues/update_vehicle.dart'; diff --git a/lib/widgets/dialogues/add_part_service.dart b/lib/widgets/dialogues/add_part_service.dart index 8787f31..86fbdfa 100644 --- a/lib/widgets/dialogues/add_part_service.dart +++ b/lib/widgets/dialogues/add_part_service.dart @@ -22,14 +22,25 @@ class _AddPartServiceDialogueState extends State { TextEditingController supplierController = TextEditingController(); TextEditingController timeAddedController = TextEditingController(); TextEditingController detailsController = TextEditingController(); + TextEditingController quantityController = TextEditingController(); + TextEditingController statusController = TextEditingController(); String? nameError; String? costError; String? supplierError; + String? quantityError; String type = "Part"; DateTime dateTimeAdded = DateTime.now(); + @override + void initState() { + + quantityController.text = "1"; + + super.initState(); + } + @override Widget build(BuildContext context) { timeAddedController.text = dateTimeAdded.toString().substring(0, 10); @@ -54,7 +65,7 @@ class _AddPartServiceDialogueState extends State { child: GridView.count( crossAxisSpacing: 5, crossAxisCount: 2, - childAspectRatio: (600 / 2) / 100, + childAspectRatio: (800 / 2) / 100, children: [ SizedBox( height: 10, @@ -236,6 +247,28 @@ class _AddPartServiceDialogueState extends State { ).then((value) => setState(() {})), ), ), + SizedBox( + height: 10, + child: TextField( + style: TextStyle(color: Colors.grey[200]), + controller: quantityController, + decoration: InputDecoration( + label: const Text("Quantity"), + errorText: quantityError, + ), + ), + ), + SizedBox( + height: 10, + child: TextField( + style: TextStyle(color: Colors.grey[200]), + controller: statusController, + decoration: InputDecoration( + label: const Text("Status"), + errorText: nameError, + ), + ), + ), ], ), ), @@ -266,6 +299,8 @@ class _AddPartServiceDialogueState extends State { String supplier = supplierController.text; String details = detailsController.text; String jobID = widget.jobID; + String quantity = quantityController.text; + String status = statusController.text; showDialog( context: context, @@ -292,8 +327,18 @@ class _AddPartServiceDialogueState extends State { } else { supplierError = null; } + if (quantity.isEmpty) { + quantityError = "Cannot be empty"; + } else if (int.tryParse(quantity) == null) { + quantityError = "Invalid quantity"; + } else { + quantityError = null; + } - if (costError == null && nameError == null && supplierError == null) { + if (costError == null && + nameError == null && + supplierError == null && + quantityError == null) { String result = await addPartService( name, type, @@ -302,6 +347,8 @@ class _AddPartServiceDialogueState extends State { jobID, dateTimeAdded, details.isNotEmpty ? details : null, + int.parse(quantity), + status, ); if (result == "SUCCESS") { Navigator.pop(context); diff --git a/lib/widgets/dialogues/part_service_display.dart b/lib/widgets/dialogues/part_service_display.dart index 8672bcc..169e2a2 100644 --- a/lib/widgets/dialogues/part_service_display.dart +++ b/lib/widgets/dialogues/part_service_display.dart @@ -1,7 +1,5 @@ import 'package:car_workshop_app/models/part_service.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/src/widgets/framework.dart'; -import 'package:flutter/src/widgets/placeholder.dart'; class PartServiceDisplayDialogue extends StatefulWidget { const PartServiceDisplayDialogue({super.key, required this.partService}); diff --git a/lib/widgets/dialogues/update_customer.dart b/lib/widgets/dialogues/update_customer.dart index c8cdf68..47cc4df 100644 --- a/lib/widgets/dialogues/update_customer.dart +++ b/lib/widgets/dialogues/update_customer.dart @@ -1,6 +1,5 @@ // ignore_for_file: use_build_context_synchronously -import 'package:car_workshop_app/data_ops/adding_data.dart'; import 'package:car_workshop_app/data_ops/updating_data.dart'; import 'package:flutter/material.dart'; diff --git a/lib/widgets/dialogues/update_job.dart b/lib/widgets/dialogues/update_job.dart index 15c7b65..1bd5d33 100644 --- a/lib/widgets/dialogues/update_job.dart +++ b/lib/widgets/dialogues/update_job.dart @@ -1,6 +1,5 @@ // ignore_for_file: use_build_context_synchronously -import 'package:car_workshop_app/data_ops/adding_data.dart'; import 'package:car_workshop_app/data_ops/updating_data.dart'; import 'package:flutter/material.dart'; diff --git a/lib/widgets/dialogues/update_part_service.dart b/lib/widgets/dialogues/update_part_service.dart index d108bba..b8c8f78 100644 --- a/lib/widgets/dialogues/update_part_service.dart +++ b/lib/widgets/dialogues/update_part_service.dart @@ -1,6 +1,5 @@ // ignore_for_file: use_build_context_synchronously -import 'package:car_workshop_app/data_ops/adding_data.dart'; import 'package:car_workshop_app/data_ops/updating_data.dart'; import 'package:flutter/material.dart'; @@ -26,10 +25,13 @@ class _UpdatePartServiceDialogueState extends State { TextEditingController supplierController = TextEditingController(); TextEditingController timeAddedController = TextEditingController(); TextEditingController detailsController = TextEditingController(); + TextEditingController quantityController = TextEditingController(); + TextEditingController statusController = TextEditingController(); String? nameError; String? costError; String? supplierError; + String? quantityError; DateTime? dateTimeAdded; @@ -42,6 +44,8 @@ class _UpdatePartServiceDialogueState extends State { supplierController.text = widget.partService.supplier ?? ""; dateTimeAdded = widget.partService.timeAdded; detailsController.text = widget.partService.details ?? ""; + quantityController.text = widget.partService.quantity.toString(); + statusController.text = widget.partService.status ?? ""; } @override @@ -251,6 +255,28 @@ class _UpdatePartServiceDialogueState extends State { ).then((value) => setState(() {})), ), ), + SizedBox( + height: 10, + child: TextField( + style: TextStyle(color: Colors.grey[200]), + controller: quantityController, + decoration: InputDecoration( + label: const Text("Quantity"), + errorText: quantityError, + ), + ), + ), + SizedBox( + height: 10, + child: TextField( + style: TextStyle(color: Colors.grey[200]), + controller: statusController, + decoration: InputDecoration( + label: const Text("Status"), + errorText: nameError, + ), + ), + ), ], ), ), @@ -302,6 +328,8 @@ class _UpdatePartServiceDialogueState extends State { String cost = costController.text; String supplier = supplierController.text; String details = detailsController.text; + String quantity = quantityController.text; + String status = statusController.text; showDialog( context: context, @@ -329,8 +357,18 @@ class _UpdatePartServiceDialogueState extends State { } else { supplierError = null; } + if (quantity.isEmpty) { + quantityError = "Cannot be empty"; + } else if (int.tryParse(quantity) == null) { + quantityError = "Invalid quantity"; + } else { + quantityError = null; + } - if (costError == null && nameError == null && supplierError == null) { + if (costError == null && + nameError == null && + supplierError == null && + quantityError == null) { PartService updatedPartService = PartService( name, type, @@ -339,6 +377,8 @@ class _UpdatePartServiceDialogueState extends State { widget.partService.jobID, dateTimeAdded!, details, + int.parse(quantity), + status, ); var result = await updatePartServiceInfo( diff --git a/lib/widgets/label_headers/customer_label_header.dart b/lib/widgets/label_headers/customer_label_header.dart new file mode 100644 index 0000000..2046a6f --- /dev/null +++ b/lib/widgets/label_headers/customer_label_header.dart @@ -0,0 +1,73 @@ +import 'package:flutter/material.dart'; + +class CustomerLabelHeader extends StatelessWidget { + const CustomerLabelHeader({super.key}); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 0.0), + child: SizedBox( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Customer ID", + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "First Name", + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Last Name", + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Contact 1", + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Contact 2", + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Contact 3", + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/widgets/label_headers/partService_label_header.dart b/lib/widgets/label_headers/partService_label_header.dart new file mode 100644 index 0000000..b87e1a3 --- /dev/null +++ b/lib/widgets/label_headers/partService_label_header.dart @@ -0,0 +1,62 @@ +import 'package:flutter/material.dart'; + +class PartServiceLabelHeader extends StatelessWidget { + const PartServiceLabelHeader({super.key}); + + @override + Widget build(BuildContext context) { + return SizedBox( + child: Row(mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Name and Type", + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Detail", + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Supplier", + style: TextStyle(fontWeight: FontWeight.bold), + )), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Quantity", + style: TextStyle(fontWeight: FontWeight.bold), + )), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Status", + style: TextStyle(fontWeight: FontWeight.bold), + )), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Cost", + style: TextStyle(fontWeight: FontWeight.bold), + )), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + ) + ]), + ); + } +} diff --git a/lib/widgets/label_headers/vehicle_label_header.dart b/lib/widgets/label_headers/vehicle_label_header.dart new file mode 100644 index 0000000..87d4554 --- /dev/null +++ b/lib/widgets/label_headers/vehicle_label_header.dart @@ -0,0 +1,64 @@ +import 'package:flutter/material.dart'; + +class VehicleLabelHeader extends StatelessWidget { + const VehicleLabelHeader({super.key}); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 20.0), + child: SizedBox( + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Model", + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Registration #", + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Make", + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Made", + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: const Text( + "Owner ID", + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/widgets/tiles/customer_tile.dart b/lib/widgets/tiles/customer_tile.dart index 2221591..e2b7e07 100644 --- a/lib/widgets/tiles/customer_tile.dart +++ b/lib/widgets/tiles/customer_tile.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:car_workshop_app/pages/customer_display.dart'; import 'package:flutter/material.dart'; @@ -28,40 +29,83 @@ class CustomerTile extends StatelessWidget { padding: const EdgeInsets.all(8.0), child: Container( decoration: BoxDecoration( - color: Theme.of(context).colorScheme.primary, - borderRadius: BorderRadius.circular(10) - ), + color: Theme.of(context).colorScheme.primary, + borderRadius: BorderRadius.circular(10)), child: Padding( padding: const EdgeInsets.all(16.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Column( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "${customer.firstName} ${customer.lastName}", - style: const TextStyle( - fontSize: 19, - fontWeight: FontWeight.w500, - color: Colors.black, - ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: AutoSizeText( + customer.customerID, + style: const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + color: Colors.black, + ), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: Text( + customer.firstName, + style: const TextStyle( + fontSize: 19, + fontWeight: FontWeight.w500, + color: Colors.black, + ), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: AutoSizeText( + customer.lastName, + style: const TextStyle( + fontSize: 19, + fontWeight: FontWeight.w500, + color: Colors.black, ), - Text( - "Customer ID: ${customer.customerID}", - style: const TextStyle( - fontSize: 13, - color: Color.fromARGB(255, 51, 51, 51), - ), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: AutoSizeText( + customer.contact1, + maxLines: 1, + style: const TextStyle( + fontWeight: FontWeight.w500, + color: Color.fromARGB(255, 51, 51, 51), ), - ], + ), ), - Text( - customer.contact1, - style: const TextStyle( - fontWeight: FontWeight.w500, - color: Color.fromARGB(255, 51, 51, 51), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: AutoSizeText( + customer.contact2 ?? "", + maxLines: 1, + style: const TextStyle( + fontWeight: FontWeight.w500, + color: Color.fromARGB(255, 51, 51, 51), + ), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: AutoSizeText( + customer.contact3 ?? "", + maxLines: 1, + style: const TextStyle( + fontWeight: FontWeight.w500, + color: Color.fromARGB(255, 51, 51, 51), + ), ), ), ], diff --git a/lib/widgets/tiles/part_service_tile.dart b/lib/widgets/tiles/part_service_tile.dart index dc9a151..2da89bf 100644 --- a/lib/widgets/tiles/part_service_tile.dart +++ b/lib/widgets/tiles/part_service_tile.dart @@ -9,8 +9,9 @@ class PartServiceTile extends StatefulWidget { required this.partService, required this.deletePartServiceCallback, required this.setStateCallback, + required this.index, }); - + final int index; final PartService partService; final Function(String, String) deletePartServiceCallback; final Function setStateCallback; @@ -31,78 +32,129 @@ class _PartServiceTileState extends State { ).then((value) => setState(() {})), child: Container( height: 60, - color: Theme.of(context).primaryColor, + color: Theme.of(context).scaffoldBackgroundColor, child: Padding( padding: const EdgeInsets.all(8.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - widget.partService.name, - style: const TextStyle(fontSize: 17), - ), - Text( - widget.partService.type, - style: const TextStyle(fontSize: 15), - ), - ], - ), - Text(widget.partService.supplier != null - ? widget.partService.supplier!.isNotEmpty - ? "Supplied by ${widget.partService.supplier}" - : "" - : ""), - Row( - children: [ - Text("Rs.${widget.partService.cost}"), - IconButton( - onPressed: () { - showDialog( - context: context, - builder: (context) => UpdatePartServiceDialogue( - partService: widget.partService, + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: Row( + children: [ + // index + Text("${widget.index}."), + const SizedBox(width: 20), + + // Name and Type + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + widget.partService.name, + style: const TextStyle(fontSize: 17), + ), + Text( + widget.partService.type, + style: const TextStyle(fontSize: 15), ), - ).then((value) { - widget.setStateCallback(); - }); - }, - icon: const Icon(Icons.edit), - ), - IconButton( - onPressed: () async { + ], + ), + ], + ), + ), + + // Detail + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: Text(widget.partService.details ?? ""), + ), + + // Supplier + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: Text( + widget.partService.supplier != null + ? widget.partService.supplier!.isNotEmpty + ? "Supplied by ${widget.partService.supplier}" + : "No Supplier" + : "", + ), + ), + + // Quantity + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: Text(widget.partService.quantity.toString()), + ), + // Status + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: Text(widget.partService.status ?? ""), + ), + // Cost + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: Text("Rs.${widget.partService.cost}"), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: Row( + children: [ + IconButton( + onPressed: () { showDialog( - context: context, - builder: (context) => AlertDialog( - title: Text( - "Are you sure you want to delete this ${widget.partService.type}?", - style: const TextStyle( - color: Colors.white, - ), - ), - actions: [ - ElevatedButton( - onPressed: () async { - await widget.deletePartServiceCallback( - widget.partService.name, - widget.partService.jobID, - ); - Navigator.pop(context); - }, - child: const Text("Yes"), + context: context, + builder: (context) => UpdatePartServiceDialogue( + partService: widget.partService, + ), + ).then((value) { + widget.setStateCallback(); + }); + }, + icon: const Icon(Icons.edit), + ), + IconButton( + onPressed: () async { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: Text( + "Are you sure you want to delete this ${widget.partService.type}?", + style: const TextStyle( + color: Colors.white, + ), ), - TextButton( - onPressed: () { + actions: [ + ElevatedButton( + onPressed: () async { + await widget + .deletePartServiceCallback( + widget.partService.name, + widget.partService.jobID, + ); Navigator.pop(context); }, - child: const Text("No")) - ], - )); - }, - icon: const Icon(Icons.delete)) - ], + child: const Text("Yes"), + ), + TextButton( + onPressed: () { + Navigator.pop(context); + }, + child: const Text("No")) + ], + )); + }, + icon: const Icon(Icons.delete)), + ], + ), ), ], ), diff --git a/lib/widgets/tiles/vehicle_tile.dart b/lib/widgets/tiles/vehicle_tile.dart index d72924b..23e8d4c 100644 --- a/lib/widgets/tiles/vehicle_tile.dart +++ b/lib/widgets/tiles/vehicle_tile.dart @@ -1,3 +1,4 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:car_workshop_app/models/vehicle.dart'; import 'package:car_workshop_app/pages/customer_display.dart'; import 'package:car_workshop_app/pages/vehicle_display.dart'; @@ -33,48 +34,79 @@ class VehicleTile extends StatelessWidget { child: Padding( padding: const EdgeInsets.all(16.0), child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - Column( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "${vehicle.model} (${vehicle.vehicleNumber})", - style: const TextStyle( - fontSize: 19, - fontWeight: FontWeight.w500, - color: Colors.black, - ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: Text( + vehicle.model, + style: const TextStyle( + fontSize: 19, + fontWeight: FontWeight.w500, + color: Colors.black, ), - Text( - vehicle.make, - style: const TextStyle( - fontSize: 13, - color: Color.fromARGB(255, 51, 51, 51), - ), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: Text( + vehicle.vehicleNumber, + style: const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + color: Colors.black, ), - ], + ), ), - TextButton( + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, child: Text( - "Customer ${vehicle.customerID}", + vehicle.make, style: const TextStyle( + fontSize: 15, fontWeight: FontWeight.w500, - color: Color.fromARGB(255, 51, 51, 51), - decoration: TextDecoration.underline + color: Colors.black, ), ), - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => CustomerInfo( - customerID: vehicle.customerID, + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: Text( + vehicle.made ?? "", + style: const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + color: Colors.black, + ), + ), + ), + Container( + alignment: Alignment.center, + width: (MediaQuery.of(context).size.width - 8 - 16) / 8, + child: TextButton( + child: AutoSizeText( + vehicle.customerID, + maxLines: 1, + style: const TextStyle( + fontWeight: FontWeight.w500, + color: Color.fromARGB(255, 51, 51, 51), + decoration: TextDecoration.underline), + ), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => CustomerInfo( + customerID: vehicle.customerID, + ), ), - ), - ); - }, + ); + }, + ), ), ], ), diff --git a/pubspec.lock b/pubspec.lock index 1f83ec4..51800e1 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -21,10 +21,10 @@ packages: dependency: transitive description: name: async - sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.11.0" auto_size_text: dependency: "direct main" description: @@ -45,10 +45,10 @@ packages: dependency: transitive description: name: characters - sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.3.0" clock: dependency: transitive description: @@ -61,10 +61,10 @@ packages: dependency: transitive description: name: collection - sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 + sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" url: "https://pub.dev" source: hosted - version: "1.17.0" + version: "1.17.1" convert: dependency: transitive description: @@ -191,10 +191,10 @@ packages: dependency: transitive description: name: js - sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 url: "https://pub.dev" source: hosted - version: "0.6.5" + version: "0.6.7" lints: dependency: transitive description: @@ -207,10 +207,10 @@ packages: dependency: transitive description: name: matcher - sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" + sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" url: "https://pub.dev" source: hosted - version: "0.12.13" + version: "0.12.15" material_color_utilities: dependency: transitive description: @@ -223,18 +223,18 @@ packages: dependency: transitive description: name: meta - sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" + sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.9.1" path: dependency: transitive description: name: path - sha256: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b + sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917" url: "https://pub.dev" source: hosted - version: "1.8.2" + version: "1.8.3" path_provider: dependency: transitive description: @@ -364,10 +364,10 @@ packages: dependency: transitive description: name: test_api - sha256: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 + sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb url: "https://pub.dev" source: hosted - version: "0.4.16" + version: "0.5.1" typed_data: dependency: transitive description: @@ -401,5 +401,5 @@ packages: source: hosted version: "1.0.0" sdks: - dart: ">=2.19.6 <3.0.0" + dart: ">=3.0.0-0 <4.0.0" flutter: ">=3.3.0"