aboutsummaryrefslogtreecommitdiff
path: root/transaction.h
diff options
context:
space:
mode:
Diffstat (limited to 'transaction.h')
-rw-r--r--transaction.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/transaction.h b/transaction.h
index 9628a4e..0d608f2 100644
--- a/transaction.h
+++ b/transaction.h
@@ -7,7 +7,8 @@
enum class TransactionType {
Estimated,
- Actual
+ Actual,
+ Reconciliation
};
enum class RecurrenceFrequency {
@@ -33,8 +34,10 @@ struct Transaction {
QString occurrenceKey; // e.g. "2025-01" for monthly, "2025-W03" for weekly
double expectedAmount; // original projected amount (for variance tracking)
QDate expectedDate; // original projected date (for variance tracking)
+ double expectedBalance; // for reconciliation checkpoints - what bank says
+ double calculatedBalance; // for reconciliation checkpoints - what we calculated
- Transaction() : id(-1), amount(0.0), type(TransactionType::Estimated), recurringId(-1), sortOrder(0), reconciled(false), expectedAmount(0.0) {}
+ Transaction() : id(-1), amount(0.0), type(TransactionType::Estimated), recurringId(-1), sortOrder(0), reconciled(false), expectedAmount(0.0), expectedBalance(0.0), calculatedBalance(0.0) {}
double getBalance() const { return amount; }
};
@@ -53,6 +56,7 @@ struct RecurringRule {
int dayOfMonth; // 1-31 for monthly, -1 if not applicable
int occurrences; // Number of times to repeat, -1 for indefinite
int sortOrder; // For ordering transactions on same date
+ QDate projectionEndDate; // How far into future to generate projections
RecurringRule() : id(-1), frequency(RecurrenceFrequency::None),
amount(0.0), dayOfWeek(-1), dayOfMonth(-1), occurrences(-1), sortOrder(0) {}