aboutsummaryrefslogtreecommitdiff
path: root/cashflow.h
diff options
context:
space:
mode:
authorCalvin Morrison <calvin@pobox.com>2025-12-27 19:26:21 -0500
committerCalvin Morrison <calvin@pobox.com>2025-12-27 19:26:21 -0500
commit5cf763ea3ba2a89acfa5f24422cc71e0ff7fb35b (patch)
treeef3541cf3650eb14a46b2a54f1b63b1351c08082 /cashflow.h
parent5e9b299dfe95a7f99f029802089c047a392eee3a (diff)
Add reconciliation system with checkpoints and adjustments
- Add Reconciliation transaction type that appears as visible rows - Reconciliation checkpoints show expected vs calculated balance - Red background if out of balance, green if balanced - Description shows balance status (Balanced or Out of balance by .XX) - Create Adjustment button appears when reconciliation is out of balance - Adjustment transactions automatically created to match bank balance - Reconciliations always sort last on their date - Auto-recalculate all reconciliations when any transaction changes - Persistent projection months setting (1-24 months, default 3) - Persistent date range between sessions - Fix projection regeneration to start from rule start date - Fix duplicate projections when converting to actuals - Grey out irrelevant fields when Reconciliation type selected
Diffstat (limited to 'cashflow.h')
-rw-r--r--cashflow.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/cashflow.h b/cashflow.h
index b75d62b..f76e11f 100644
--- a/cashflow.h
+++ b/cashflow.h
@@ -36,6 +36,7 @@ private slots:
void onPreferences();
void onRecurringRuleChanged();
void onTransactionDateChanged();
+ void onCreateAdjustment();
private:
Ui::CashFlow *ui;
@@ -46,7 +47,6 @@ private:
QFont currentAmountFont;
int weekStartDay;
QString currentFilePath;
- Transaction currentProjectedTransaction; // For converting projections to actuals
enum PeriodType {
Daily,
@@ -61,7 +61,6 @@ private:
void refreshRecurringTable();
void calculateAndDisplayBalance();
QList<Transaction> getAllTransactionsInRange();
- QList<Transaction> generateProjectedTransactions();
void clearTransactionEntry();
void loadTransactionToEntry(const Transaction &t);
void clearRecurringEntry();
@@ -73,6 +72,8 @@ private:
void updateAmountColors();
void loadSettings();
QString formatCurrency(double amount) const;
+ double calculateBalanceUpTo(const QDate &date, const QString &account);
+ void recalculateAllReconciliations();
bool openDatabase(const QString &filePath);
void populateRecurringRulesCombo();
void updateOccurrenceKey();