From e0b30366e55b990b26d263f6b63e0c6e84a64b46 Mon Sep 17 00:00:00 2001 From: Sven Carstensen Date: Thu, 8 Feb 2024 17:34:59 +0100 Subject: [PATCH] Erweiterungen --- lib/content_views/task_list_page.dart | 187 +++++++++++--------------- lib/model/task_info.dart | 14 ++ 2 files changed, 93 insertions(+), 108 deletions(-) diff --git a/lib/content_views/task_list_page.dart b/lib/content_views/task_list_page.dart index d3b3a50..b6be096 100644 --- a/lib/content_views/task_list_page.dart +++ b/lib/content_views/task_list_page.dart @@ -1,4 +1,3 @@ -import 'dart:convert' show utf8; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:intl/intl.dart'; @@ -192,6 +191,8 @@ class _TaskListPageState extends State { var taskInfo = await MyApp.isarInstance.taskInfos.filter().sIdEqualTo(task.sId).findFirst(); if (taskInfo == null) { taskInfo = TaskInfo(); + taskInfo.id = await TaskInfo.getNextId(); + taskInfo.sId = task.sId; taskInfo.answer = null; taskInfo.additionalText = null; taskInfo.completed = task.opt != null ? task.opt! : false; @@ -241,107 +242,96 @@ class _TaskListPageState extends State { } _processTaskArrivedOrFinished(TaskInfo taskInfo) { - _popup = showTaskArrivedPopup(context, taskInfo, () => { - _finishProcessTaskArrivedOrFinished(taskInfo) + _popup = showTaskArrivedPopup(context, taskInfo, () { + DateFormat dateFormat = DateFormat("dd.MM.yyyy HH:mm"); + + taskInfo.additionalText = dateFormat.format(DateTime.now()); + taskInfo.completed = true; + + _sendArrivedMessage(taskInfo); + + setState(() {}); + + _finishTaskProcessing(taskInfo); + + _popup.dismiss(context); }); } - _finishProcessTaskArrivedOrFinished(TaskInfo taskInfo) { - _popup.dismiss(context); - - DateFormat dateFormat = DateFormat("dd.MM.yyyy HH:mm"); - - taskInfo.additionalText = dateFormat.format(DateTime.now()); - taskInfo.completed = true; - - _sendArrivedMessage(taskInfo); - - setState(() {}); - } - _processCommissionNumber(TaskInfo taskInfo) { - _popup = showComissionNumberPopup(context, taskInfo, (text) => { - _finishProcessCommissionNumber(taskInfo, text) + _popup = showComissionNumberPopup(context, taskInfo, (comissionNumber) { + taskInfo.additionalText = comissionNumber; + taskInfo.completed = true; + + setState(() {}); + + _finishTaskProcessing(taskInfo); + + _popup.dismiss(context); }); } - _finishProcessCommissionNumber(TaskInfo taskInfo, String comissionNumber) { - _popup.dismiss(context); - - taskInfo.additionalText = comissionNumber; - taskInfo.completed = true; - - setState(() {}); - } - _processScanBarcodes(TaskInfo taskInfo) { - _popup = showScanBarcodesPopup(context, taskInfo, (List barcodes) => { - _finishProcessScanBarcodes(taskInfo, barcodes) + _popup = showScanBarcodesPopup(context, taskInfo, (List barcodes) { + taskInfo.additionalText = "Barcodes gescannt"; + taskInfo.completed = true; + + setState(() {}); + + _finishTaskProcessing(taskInfo); + + _popup.dismiss(context); }); } - _finishProcessScanBarcodes(TaskInfo taskInfo, List barcodess) { - _popup.dismiss(context); - - taskInfo.additionalText = "Barcodes gescannt"; - taskInfo.completed = true; - - setState(() {}); - } - _processTakePhotos(TaskInfo taskInfo) { - _popup = showTakePhotosPopup(context, taskInfo, () => { - _finishProcessTakePhotos(taskInfo) + _popup = showTakePhotosPopup(context, taskInfo, () { + taskInfo.additionalText = "Fotos aufgenommen"; + taskInfo.completed = true; + + setState(() {}); + + _finishTaskProcessing(taskInfo); + + _popup.dismiss(context); }); } - _finishProcessTakePhotos(TaskInfo taskInfo) { - _popup.dismiss(context); - - taskInfo.additionalText = "Fotos aufgenommen"; - taskInfo.completed = true; - - setState(() {}); - } - void _processStationNotice(TaskInfo taskInfo) { - _popup = showStationNoticePopup(context, taskInfo, (notice) => { - _finishProcessStationNotice(taskInfo, notice) + _popup = showStationNoticePopup(context, taskInfo, (notice) { + _popup.dismiss(context); + + taskInfo.additionalText = notice; + taskInfo.completed = true; + + _finishTaskProcessing(taskInfo); + + setState(() {}); }); } - _finishProcessStationNotice(TaskInfo taskInfo, String notice) { - _popup.dismiss(context); - - taskInfo.additionalText = notice; - taskInfo.completed = true; - - setState(() {}); - } - void _processReceiptGiver(TaskInfo taskInfo) { - _popup = showReceiptGiverPopup(context, taskInfo, (receiptGiver) => { - _finishReceiptGiver(taskInfo, receiptGiver) + _popup = showReceiptGiverPopup(context, taskInfo, (receiptGiver) { + taskInfo.additionalText = receiptGiver; + taskInfo.completed = true; + + setState(() {}); + + _finishTaskProcessing(taskInfo); + + _popup.dismiss(context); }); } - _finishReceiptGiver(TaskInfo taskInfo, String receiptGiver) { - _popup.dismiss(context); - - taskInfo.additionalText = receiptGiver; - taskInfo.completed = true; - - setState(() {}); - } - void _processPickupDeliveryStatusTask(TaskInfo taskInfo) { Future.delayed(const Duration(seconds: 1), () async { - _popup = showPickupDeliveryStatusPopup(context, taskInfo, (tourEntry) => { - _popup.dismiss(context), + showPickupDeliveryStatusPopup(context, taskInfo, (tourEntry) { + taskInfo.additionalText = tourEntry!.text; + taskInfo.completed = true; - taskInfo.completed = true, + _finishTaskProcessing(taskInfo); - setState(() {}) + setState(() {}); }); }); } @@ -351,17 +341,25 @@ class _TaskListPageState extends State { Future.delayed(const Duration(seconds: 1), () async { _popup = showSignaturePopup(context, taskInfo, () { + taskInfo.completed = true; + + SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); + + _sendFinTourMessage(); + + _finishTaskProcessing(taskInfo); + _popup.dismiss(context); - - taskInfo.completed = true; - - SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); - - _sendFinTourMessage(); }); }); } + _finishTaskProcessing(TaskInfo taskInfo) async { + await MyApp.isarInstance.writeTxn(() async { + await MyApp.isarInstance.taskInfos.put(taskInfo); + }); + } + bool isTaskActive(int index) { for (int i = 0; i < index; i++) { var taskInfo = _taskList[i]; @@ -406,33 +404,6 @@ class _TaskListPageState extends State { MqttCore.instance.publishPayloadMessage("", trackStationMessage.toJson()); } - /* - "fin_tour": { - "tr_id": 211, - "com": "changed com#", - "track": { - "time": "2021-02-18T12:35:51Z", - "pos": - { - "lat": 53.595121, - "long": 9.907433, - "acc": 35 - } - }, - "tasks": [ - { - "s_id": 1, - "time": "2021-02-18T12:32:10Z", - "pos": - { - "lat": 53.595124, - "long": 9.907435 - } - }, - } - } -} - */ _sendFinTourMessage() async { var finTourMessage = FinTourMessage(); finTourMessage.finTour = FinTour(); diff --git a/lib/model/task_info.dart b/lib/model/task_info.dart index aa760bc..c4f9bce 100644 --- a/lib/model/task_info.dart +++ b/lib/model/task_info.dart @@ -1,6 +1,8 @@ import 'package:isar/isar.dart'; import 'package:stadtbote/model/tour_task.dart'; +import '../tools/util.dart'; + part 'task_info.g.dart'; @collection @@ -19,6 +21,18 @@ class TaskInfo { late TourTask task; TaskInfo(); + + static Future getNextId() async { + int taskInfoId = await Util.preferencesGetInt('task_info_id', 0) as int; + + taskInfoId += 1; + + Util.preferencesSaveInt("task_info_id", taskInfoId); + + return taskInfoId; + } } + +