Skip to content

Feature/accounting recon export#1114

Merged
sublime247 merged 4 commits into
sublime247:mainfrom
Shadow-MMN:feature/accounting-recon-export
May 30, 2026
Merged

Feature/accounting recon export#1114
sublime247 merged 4 commits into
sublime247:mainfrom
Shadow-MMN:feature/accounting-recon-export

Conversation

@Shadow-MMN
Copy link
Copy Markdown
Contributor

Description

Implement daily chart of accounts reconciliation report export for QuickBooks and Xero. This feature cross-references internal double-entry ledger trial balances with external accounting API records, flagging discrepancies in name, type, and balance to ensure financial data integrity.

Related Issue

Fixes #976

Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Code refactoring
  • Performance improvement

Changes Made

  • Added getAllActiveConnections to AccountingService to retrieve all active QuickBooks and Xero integrations.
  • Implemented runAllActiveReconciliations in AccountingChartOfAccountsReconciliationService to automate multi-connection reconciliation.
  • Implemented exportReportToCSV to generate unified trial balance reports.
  • Added GET /api/accounting-reconciliation/reports/:id/export endpoint in AccountingReconciliationController.
  • Registered accounting-reconciliation scheduled job in scheduler.ts to run daily at 5:30 AM.
  • Added comprehensive unit tests for reconciliation logic and CSV generation.

Testing

  • Created unit tests in tests/services/accountingReconciliationService.test.ts covering:
    • Successful discrepancy identification (name mismatch, missing accounts, balance mismatches).
    • CSV export formatting and header validation.
  • Verified job registration in the scheduler.
  • Manually reviewed controller and service logic for cross-provider compatibility (QBO/Xero).

Checklist

  • Code follows project style
  • Self-reviewed my code
  • Commented complex code
  • Updated documentation
  • No new warnings
  • Added tests (if applicable)

Screenshots (if applicable)

Additional Notes

The reconciliation logic assumes that internal account codes map to external account IDs for primary matching, with a fallback to name-based matching where IDs are unavailable or mismatched.

@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented May 30, 2026

@Shadow-MMN Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@gitguardian
Copy link
Copy Markdown

gitguardian Bot commented May 30, 2026

⚠️ GitGuardian has uncovered 1 secret following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

Since your pull request originates from a forked repository, GitGuardian is not able to associate the secrets uncovered with secret incidents on your GitGuardian dashboard.
Skipping this check run and merging your pull request will create secret incidents on your GitGuardian dashboard.

🔎 Detected hardcoded secret in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
29318208 Triggered Generic Password 1274691 src/stellar/sep02.ts View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secret safely. Learn here the best practices.
  3. Revoke and rotate this secret.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

@sublime247 sublime247 merged commit 98cb6c1 into sublime247:main May 30, 2026
3 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[HARD] Implement Daily Chart of Accounts Reconciliation Report Export

2 participants