Feat: Macht Transaktionen prüf- bzw. editierbar
This commit is contained in:
@@ -136,7 +136,7 @@ class RecurringTransactionController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Startet den Prozess, um eine wiederkehrende Transaktion zu bearbeiten
|
/// Startet den Prozess, um eine wiederkehrende Transaktion zu bearbeiten
|
||||||
Future<void> editRecurringTransaction(
|
Future<void> editRecurringTransactionHandler(
|
||||||
final int recurringTransactionId,
|
final int recurringTransactionId,
|
||||||
) async {
|
) async {
|
||||||
final RecurringTransaction? recurringTransaction =
|
final RecurringTransaction? recurringTransaction =
|
||||||
@@ -144,7 +144,7 @@ class RecurringTransactionController {
|
|||||||
|
|
||||||
if (recurringTransaction != null) {
|
if (recurringTransaction != null) {
|
||||||
final editRecurringTransactionDialog = DynamicDialog(
|
final editRecurringTransactionDialog = DynamicDialog(
|
||||||
title: '${recurringTransaction.name} umbenennen',
|
title: '${recurringTransaction.name} bearbeiten',
|
||||||
icon: Icons.edit,
|
icon: Icons.edit,
|
||||||
inputFields: [
|
inputFields: [
|
||||||
DialogInputField(
|
DialogInputField(
|
||||||
@@ -184,7 +184,7 @@ class RecurringTransactionController {
|
|||||||
actions: [
|
actions: [
|
||||||
DialogAction(label: 'Abbruch'),
|
DialogAction(label: 'Abbruch'),
|
||||||
DialogAction(
|
DialogAction(
|
||||||
label: 'Speichern',
|
label: 'Bearbeiten',
|
||||||
isPrimary: true,
|
isPrimary: true,
|
||||||
onPressed: _editRecurringTransaction,
|
onPressed: _editRecurringTransaction,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -127,14 +127,25 @@ class TransactionController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Startet den Prozess, um eine Transaktion zu bearbeiten
|
/// 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(
|
final Transaction? transaction = await _transactionRepository.find(
|
||||||
transactionId,
|
transactionId,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (transaction != null) {
|
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(
|
final editTransactionDialog = DynamicDialog(
|
||||||
title: '${transaction.name} umbenennen',
|
title: title,
|
||||||
icon: Icons.edit,
|
icon: Icons.edit,
|
||||||
inputFields: [
|
inputFields: [
|
||||||
DialogInputField(
|
DialogInputField(
|
||||||
@@ -160,7 +171,7 @@ class TransactionController {
|
|||||||
actions: [
|
actions: [
|
||||||
DialogAction(label: 'Abbruch'),
|
DialogAction(label: 'Abbruch'),
|
||||||
DialogAction(
|
DialogAction(
|
||||||
label: 'Speichern',
|
label: submitButtonText,
|
||||||
isPrimary: true,
|
isPrimary: true,
|
||||||
onPressed: _editTransaction,
|
onPressed: _editTransaction,
|
||||||
),
|
),
|
||||||
@@ -245,6 +256,7 @@ class TransactionController {
|
|||||||
date: Value(values['date']),
|
date: Value(values['date']),
|
||||||
amount: Value(values['amount']),
|
amount: Value(values['amount']),
|
||||||
accountId: Value(transaction.accountId),
|
accountId: Value(transaction.accountId),
|
||||||
|
checked: const Value(true),
|
||||||
);
|
);
|
||||||
|
|
||||||
await _transactionRepository.update(rtc);
|
await _transactionRepository.update(rtc);
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
import '../../Controller/account_controller.dart';
|
import '../../Controller/account_controller.dart';
|
||||||
@@ -56,8 +58,22 @@ class _RecentTransactionsListState extends State<RecentTransactionsList> {
|
|||||||
(final Transaction transaction) => Padding(
|
(final Transaction transaction) => Padding(
|
||||||
padding: const EdgeInsets.symmetric(vertical: 4),
|
padding: const EdgeInsets.symmetric(vertical: 4),
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
contentPadding: EdgeInsets.zero,
|
shape: RoundedRectangleBorder(
|
||||||
title: Text(transaction.name),
|
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(
|
trailing: Text(
|
||||||
'${transaction.amount.abs().toStringAsFixed(2)} €',
|
'${transaction.amount.abs().toStringAsFixed(2)} €',
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class _RecurringTransactionListState extends State<RecurringTransactionList> {
|
|||||||
name: 'Wiederkehrende Transaktionen',
|
name: 'Wiederkehrende Transaktionen',
|
||||||
items: formatedRecurringTransactions,
|
items: formatedRecurringTransactions,
|
||||||
onAdd: _recurringTransactionController.newRecurringTransactionHandler,
|
onAdd: _recurringTransactionController.newRecurringTransactionHandler,
|
||||||
onEdit: _recurringTransactionController.editRecurringTransaction,
|
onEdit: _recurringTransactionController.editRecurringTransactionHandler,
|
||||||
onDelete:
|
onDelete:
|
||||||
_recurringTransactionController.deleteRecurringTransactionHandler,
|
_recurringTransactionController.deleteRecurringTransactionHandler,
|
||||||
icon: const Icon(Icons.repeat),
|
icon: const Icon(Icons.repeat),
|
||||||
|
|||||||
Reference in New Issue
Block a user