Feat: Fügt Benachrichtigungen für nicht überprüfte Transaktionen hinzu
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:drift/drift.dart';
|
||||
|
||||
import '../Entities/drift_database.dart';
|
||||
@@ -29,19 +31,29 @@ class TransactionRepository {
|
||||
}
|
||||
|
||||
/// Aktualisiert eine Transaktion in der Datenbank
|
||||
Future<bool> update(final TransactionsCompanion transaction) {
|
||||
Future<bool> update(final TransactionsCompanion transaction) async {
|
||||
final Transaction? transactionInDb = await find(transaction.id.value);
|
||||
final Transaction? transactionData = transactionInDb?.copyWithCompanion(
|
||||
transaction,
|
||||
);
|
||||
|
||||
final DateTime date = transaction.date.value!.add(
|
||||
transaction.date.value!.timeZoneOffset,
|
||||
);
|
||||
|
||||
final TransactionsCompanion transactionToUpdate = TransactionsCompanion(
|
||||
id: transaction.id,
|
||||
name: transaction.name,
|
||||
id: Value(transactionData?.id ?? transaction.id.value),
|
||||
name: Value(transactionData?.name ?? transaction.name.value),
|
||||
date: Value(date),
|
||||
amount: transaction.amount,
|
||||
checked: transaction.checked,
|
||||
accountId: transaction.accountId,
|
||||
recurringTransactionId: transaction.recurringTransactionId,
|
||||
amount: Value(transactionData?.amount ?? transaction.amount.value),
|
||||
checked: const Value(true),
|
||||
accountId: Value(
|
||||
transactionData?.accountId ?? transaction.accountId.value,
|
||||
),
|
||||
recurringTransactionId: Value(
|
||||
transactionData?.recurringTransactionId ??
|
||||
transaction.recurringTransactionId.value,
|
||||
),
|
||||
updatedAt: Value(DateTime.now()),
|
||||
);
|
||||
|
||||
@@ -69,6 +81,7 @@ class TransactionRepository {
|
||||
final double? amountMin,
|
||||
final double? amountMax,
|
||||
final Account? account,
|
||||
final bool? checked,
|
||||
final RecurringTransaction? recurringTransaction,
|
||||
final int? limit,
|
||||
final int? offset,
|
||||
@@ -113,6 +126,10 @@ class TransactionRepository {
|
||||
query.where((final t) => t.accountId.equals(account.id));
|
||||
}
|
||||
|
||||
if (checked != null) {
|
||||
query.where((final t) => t.checked.equals(checked));
|
||||
}
|
||||
|
||||
if (recurringTransaction != null) {
|
||||
query.where(
|
||||
(final t) => t.recurringTransactionId.equals(recurringTransaction.id),
|
||||
@@ -262,4 +279,16 @@ class TransactionRepository {
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// Markiert die übergebenen Transaktionen als überprüft
|
||||
void markTransactionsAsChecked(final List<Transaction> transactions) {
|
||||
for (final value in transactions) {
|
||||
final TransactionsCompanion transaction = TransactionsCompanion(
|
||||
id: Value(value.id),
|
||||
date: Value(value.date),
|
||||
checked: const Value(true),
|
||||
);
|
||||
unawaited(update(transaction));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user