diff --git a/lib/content_views/accepted_jobs_page.dart b/lib/content_views/accepted_jobs_page.dart index 6e5a434..2466889 100644 --- a/lib/content_views/accepted_jobs_page.dart +++ b/lib/content_views/accepted_jobs_page.dart @@ -44,7 +44,7 @@ class _AcceptedJobsPageState extends State { @override void initState() { Future.delayed(const Duration(seconds: 0), () async { - _jobs = await MyApp.isarInstance.jobs.filter().stateEqualTo(1).findAll(); + _jobs = await MyApp.isarInstance.jobs.filter().stateEqualTo(Constants.STATE_ACCEPTED).findAll(); _initCompleted = true; diff --git a/lib/content_views/assigned_jobs_page.dart b/lib/content_views/assigned_jobs_page.dart index 33180db..d0ed0ba 100644 --- a/lib/content_views/assigned_jobs_page.dart +++ b/lib/content_views/assigned_jobs_page.dart @@ -80,7 +80,7 @@ class _AssignedJobsPageState extends State { Future> _createListEntries() async { List entries = []; - var jobs = await MyApp.isarInstance.jobs.filter().stateEqualTo(0).findAll(); + var jobs = await MyApp.isarInstance.jobs.filter().stateEqualTo(Constants.STATE_ASSIGNED).findAll(); for (var job in jobs) { entries.add(ExpandableNotifier( child: ListTile( diff --git a/lib/content_views/finished_jobs_page.dart b/lib/content_views/finished_jobs_page.dart index 2bd651d..45869ab 100644 --- a/lib/content_views/finished_jobs_page.dart +++ b/lib/content_views/finished_jobs_page.dart @@ -44,7 +44,7 @@ class _FinishedJobsPageState extends State { @override void initState() { Future.delayed(const Duration(seconds: 0), () async { - _jobs = await MyApp.isarInstance.jobs.filter().stateEqualTo(2).findAll(); + _jobs = await MyApp.isarInstance.jobs.filter().stateEqualTo(Constants.STATE_FINISHED).findAll(); _initCompleted = true; diff --git a/lib/content_views/task_list_page.dart b/lib/content_views/task_list_page.dart index 0ddba4b..471dd19 100644 --- a/lib/content_views/task_list_page.dart +++ b/lib/content_views/task_list_page.dart @@ -6,6 +6,7 @@ import 'package:isar/isar.dart'; import 'package:kumi_popup_window/kumi_popup_window.dart'; import 'package:stadtbote/content_views/utils/content_view_widget.dart'; import 'package:stadtbote/content_views/utils/header_info.dart'; +import 'package:stadtbote/model/job.dart'; import 'package:stadtbote/model/job_tour.dart'; import 'package:stadtbote/popups/tasks_popups/arrived_popup.dart'; import 'package:stadtbote/popups/tasks_popups/commision_number_popup.dart'; @@ -27,7 +28,9 @@ import '../model/task_info.dart'; import '../tools/util.dart'; class TaskListPage extends ContentViewWidget { - const TaskListPage({super.key, required this.tour, this.readOnly = false}); + const TaskListPage({super.key, required this.job, required this.tour, this.readOnly = false}); + + final Job job; final JobTour tour; @@ -427,7 +430,7 @@ class _TaskListPageState extends State { } } */ - _sendFinTourMessage() { + _sendFinTourMessage() async { var finTourMessage = FinTourMessage(); finTourMessage.finTour = FinTour(); finTourMessage.finTour.trId = widget.tour.id; @@ -455,5 +458,12 @@ class _TaskListPageState extends State { } MqttCore.instance.publishPayloadMessage("job", finTourMessage.toJson()); + + widget.tour.state = 9; + await MyApp.isarInstance.writeTxn(() async { + await MyApp.isarInstance.jobs.put(widget.job); + }); + + Navigator.of(context).popUntil((route) => route.isFirst); } } diff --git a/lib/content_views/tour_details_page.dart b/lib/content_views/tour_details_page.dart index 6d98442..79e6bf9 100644 --- a/lib/content_views/tour_details_page.dart +++ b/lib/content_views/tour_details_page.dart @@ -14,11 +14,11 @@ class TourDetailsPage extends ContentViewWidget { const TourDetailsPage({super.key, required this.job, required this.tour, this.readOnly = false}); final Job job; + final JobTour tour; final bool readOnly; - @override State createState() => _TourDetailsPageState(); @@ -142,7 +142,7 @@ class _TourDetailsPageState extends State { const SizedBox(height: 10), getDefaultButton('Weiter', () => { - MessageService().publish(Constants.messageTopicPushContentView, arguments: TaskListPage(tour: widget.tour, readOnly: widget.readOnly)) + MessageService().publish(Constants.messageTopicPushContentView, arguments: TaskListPage(job: widget.job, tour: widget.tour, readOnly: widget.readOnly)) }), ], ), diff --git a/lib/tools/constants.dart b/lib/tools/constants.dart index a6bfd4a..15c1cce 100644 --- a/lib/tools/constants.dart +++ b/lib/tools/constants.dart @@ -15,4 +15,9 @@ class Constants { static const String messageTopicReplaceContentView = "replace_content_view"; static const String messageTopicHideRightButton = "hide_right_button"; static const String messageShowPopup = "show_popup"; + + static const int STATE_ASSIGNED = 0; + static const int STATE_ACCEPTED = 1; + static const int STATE_FINISHED = 2; + static const int STATE_FINISHED_NOT_CONFIRMED = 9; } \ No newline at end of file diff --git a/lib/tools/mqtt_core.dart b/lib/tools/mqtt_core.dart index 10f8ef5..8a26220 100644 --- a/lib/tools/mqtt_core.dart +++ b/lib/tools/mqtt_core.dart @@ -238,7 +238,7 @@ class MqttCore { MyApp.isarInstance.jobs.putSync(newJob); }); - if (newJob.state == 0) { + if (newJob.state == Constants.STATE_ASSIGNED) { if (newJob.global) { await Util.playMp3('aaa.mp3'); } else {