diff --git a/lib/app/transactions/recurrent_transactions_page.dart b/lib/app/transactions/recurrent_transactions_page.dart index 82543820..8ef8bf87 100644 --- a/lib/app/transactions/recurrent_transactions_page.dart +++ b/lib/app/transactions/recurrent_transactions_page.dart @@ -61,6 +61,9 @@ class _RecurrentTransactionPageState extends State { ), ), ), + // + // --------**---------- FOOTER ----------**--------- + // const Divider(endIndent: 16, indent: 16), Padding( padding: const EdgeInsets.all(16), diff --git a/lib/core/models/transaction/transaction.dart b/lib/core/models/transaction/transaction.dart index d73cb8e3..90f3a68c 100644 --- a/lib/core/models/transaction/transaction.dart +++ b/lib/core/models/transaction/transaction.dart @@ -163,54 +163,58 @@ class MoneyTransaction extends TransactionInDB { required Periodicity periodicity, bool convertToPreferredCurrency = true, }) { - final baseValue = + double baseValue = convertToPreferredCurrency ? currentValueInPreferredCurrency : value; if (recurrentInfo.isNoRecurrent) { return baseValue; } + final intervalEachDivider = recurrentInfo.intervalEach ?? 1; + + baseValue = baseValue / intervalEachDivider; + if (periodicity == recurrentInfo.intervalPeriod) { - return baseValue / recurrentInfo.intervalEach!; + return baseValue; } else if (recurrentInfo.intervalPeriod == Periodicity.day) { if (periodicity == Periodicity.week) { - return baseValue / 7; + return baseValue * 7; } if (periodicity == Periodicity.month) { - return baseValue / 30; + return baseValue * 30; } if (periodicity == Periodicity.year) { - return baseValue / 365; + return baseValue * 365; } } else if (recurrentInfo.intervalPeriod == Periodicity.week) { if (periodicity == Periodicity.day) { - return baseValue * 7; + return baseValue / 7; } if (periodicity == Periodicity.month) { - return baseValue / 4; + return baseValue * 4; } if (periodicity == Periodicity.year) { - return baseValue / 52; + return baseValue * 52; } } else if (recurrentInfo.intervalPeriod == Periodicity.month) { if (periodicity == Periodicity.day) { - return baseValue * 30; + return baseValue / 30; } if (periodicity == Periodicity.week) { - return baseValue * 4; + return baseValue / 4; } if (periodicity == Periodicity.year) { - return baseValue / 12; + return baseValue * 12; } } else if (recurrentInfo.intervalPeriod == Periodicity.year) { if (periodicity == Periodicity.day) { - return baseValue * 365; + return baseValue / 365; } if (periodicity == Periodicity.week) { - return baseValue * 52; + return baseValue / 52; } if (periodicity == Periodicity.month) { - return baseValue * 12; + return baseValue / 12; } }