Feat: Aktualisiert Transaktionen wenn die wiederkehrenden generiert wurden

This commit is contained in:
2026-01-04 18:00:39 +01:00
parent c2baac6dc0
commit a011b63fb1
2 changed files with 31 additions and 1 deletions

View File

@@ -1,7 +1,10 @@
import 'dart:async'; import 'dart:async';
import 'dart:isolate';
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:logger/logger.dart';
import '../Entities/drift_database.dart'; import '../Entities/drift_database.dart';
import '../Pages/Dialog/dialog_action.dart'; import '../Pages/Dialog/dialog_action.dart';
@@ -11,6 +14,7 @@ import '../Pages/Dialog/dialog_type_enum.dart';
import '../Pages/Dialog/dynamic_dialog.dart'; import '../Pages/Dialog/dynamic_dialog.dart';
import '../Repositories/transaction_repository.dart'; import '../Repositories/transaction_repository.dart';
import 'account_controller.dart'; import 'account_controller.dart';
import 'port_controller.dart';
/// Steuert die Interaktion mit den Transaktionen /// Steuert die Interaktion mit den Transaktionen
class TransactionController { class TransactionController {
@@ -67,6 +71,16 @@ class TransactionController {
unawaited(updateTransactions()); unawaited(updateTransactions());
}); });
if (!kIsWeb) {
final ReceivePort receivePort = ReceivePort()
..listen((_) {
Logger().i('Received update-transactions signal');
unawaited(updateTransactions());
});
PortController().addPort(receivePort.sendPort, 'update-transactions');
}
unawaited(updateTransactions()); unawaited(updateTransactions());
} }

View File

@@ -1,7 +1,12 @@
import 'dart:async';
import 'package:drift/drift.dart'; import 'package:drift/drift.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:logger/logger.dart'; import 'package:logger/logger.dart';
import '../Controller/port_controller.dart';
import '../Controller/transaction_controller.dart';
import '../Entities/drift_database.dart'; import '../Entities/drift_database.dart';
import '../Entities/time_frame_enum.dart'; import '../Entities/time_frame_enum.dart';
import '../Repositories/recurring_transacation_repository.dart'; import '../Repositories/recurring_transacation_repository.dart';
@@ -34,10 +39,21 @@ class GenerateTransactionsTask extends Task {
); );
final Transaction? transaction = transactions.firstOrNull; final Transaction? transaction = transactions.firstOrNull;
await _generateTransactions(recurringTransaction, transaction?.date); await _generateTransactions(
recurringTransaction,
transaction?.date,
number: transactions.length,
);
} }
_logger.i('Generating transactions completed.'); _logger.i('Generating transactions completed.');
if (!kIsWeb) {
PortController().getPort('update-transactions')?.send('ready');
} else {
unawaited(TransactionController().updateTransactions());
}
return true; return true;
} }