Feat: Macht Transaktionen prüf- bzw. editierbar

This commit is contained in:
2026-01-04 18:22:50 +01:00
parent a011b63fb1
commit 03ea5b717c
4 changed files with 37 additions and 9 deletions

View File

@@ -136,7 +136,7 @@ class RecurringTransactionController {
}
/// Startet den Prozess, um eine wiederkehrende Transaktion zu bearbeiten
Future<void> editRecurringTransaction(
Future<void> editRecurringTransactionHandler(
final int recurringTransactionId,
) async {
final RecurringTransaction? recurringTransaction =
@@ -144,7 +144,7 @@ class RecurringTransactionController {
if (recurringTransaction != null) {
final editRecurringTransactionDialog = DynamicDialog(
title: '${recurringTransaction.name} umbenennen',
title: '${recurringTransaction.name} bearbeiten',
icon: Icons.edit,
inputFields: [
DialogInputField(
@@ -184,7 +184,7 @@ class RecurringTransactionController {
actions: [
DialogAction(label: 'Abbruch'),
DialogAction(
label: 'Speichern',
label: 'Bearbeiten',
isPrimary: true,
onPressed: _editRecurringTransaction,
),

View File

@@ -127,14 +127,25 @@ class TransactionController {
}
/// Startet den Prozess, um eine Transaktion zu bearbeiten
Future<void> editTransaction(final int transactionId) async {
Future<void> editTransactionHandler(final int transactionId) async {
final Transaction? transaction = await _transactionRepository.find(
transactionId,
);
if (transaction != null) {
final String title;
final String submitButtonText;
if (transaction.checked) {
title = '${transaction.name} bearbeiten';
submitButtonText = 'Bearbeiten';
} else {
title = '${transaction.name} prüfen';
submitButtonText = 'Prüfen';
}
final editTransactionDialog = DynamicDialog(
title: '${transaction.name} umbenennen',
title: title,
icon: Icons.edit,
inputFields: [
DialogInputField(
@@ -160,7 +171,7 @@ class TransactionController {
actions: [
DialogAction(label: 'Abbruch'),
DialogAction(
label: 'Speichern',
label: submitButtonText,
isPrimary: true,
onPressed: _editTransaction,
),
@@ -245,6 +256,7 @@ class TransactionController {
date: Value(values['date']),
amount: Value(values['amount']),
accountId: Value(transaction.accountId),
checked: const Value(true),
);
await _transactionRepository.update(rtc);

View File

@@ -1,3 +1,5 @@
import 'dart:async';
import 'package:flutter/material.dart';
import '../../Controller/account_controller.dart';
@@ -56,8 +58,22 @@ class _RecentTransactionsListState extends State<RecentTransactionsList> {
(final Transaction transaction) => Padding(
padding: const EdgeInsets.symmetric(vertical: 4),
child: ListTile(
contentPadding: EdgeInsets.zero,
title: Text(transaction.name),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
onTap: () {
unawaited(
_transactionController.editTransactionHandler(
transaction.id,
),
);
},
title: Text(
transaction.name,
style: (transaction.checked)
? const TextStyle()
: TextStyle(color: theme.colorScheme.error),
),
trailing: Text(
'${transaction.amount.abs().toStringAsFixed(2)}',
style: TextStyle(

View File

@@ -53,7 +53,7 @@ class _RecurringTransactionListState extends State<RecurringTransactionList> {
name: 'Wiederkehrende Transaktionen',
items: formatedRecurringTransactions,
onAdd: _recurringTransactionController.newRecurringTransactionHandler,
onEdit: _recurringTransactionController.editRecurringTransaction,
onEdit: _recurringTransactionController.editRecurringTransactionHandler,
onDelete:
_recurringTransactionController.deleteRecurringTransactionHandler,
icon: const Icon(Icons.repeat),