Skip to content

Double entry accounting milestone 7 - #88

Merged
chongfun merged 2 commits into
double_entry_accounting_milestone_6from
double_entry_accounting_milestone_7
Aug 24, 2026
Merged

Double entry accounting milestone 7#88
chongfun merged 2 commits into
double_entry_accounting_milestone_6from
double_entry_accounting_milestone_7

Conversation

@chongfun

Copy link
Copy Markdown
Owner

Replace:

PaymentDocument
└── PaymentIngestion
    └── Receipt

with:

SourceDocument
└── ImportedTransaction
    └── confirmed_source
        ├── Receipt
        └── SecurityDepositTransaction(received)

The final confirmation semantics are:

tenant_receipt
    -> Receipt
    -> Dr Cash
       Cr Tenant Receivable

security_deposit
    -> SecurityDepositTransaction(received)
    -> Dr Cash
       Cr Security Deposits Held

An imported transaction itself never posts anything.

- Generalize PaymentDocument and PaymentIngestion into SourceDocument and ImportedTransaction
- Add support for multi-transaction documents (Chase statements) alongside single-transaction receipts (Zelle, Venmo)
- Support confirmation into both Receipts (tenant payments) and SecurityDepositTransactions (security deposits)
- Enforce full provenance, immutable evidence, and database check constraints
- Implement exact SHA-256 document deduplication scoped to user to prevent duplicate ledger entries across re-uploads
- Add SourceDocument lock serialization to IngestionService and status-aware UploadService
- Add explicit SourceDocument retry workflow and durable error tracking
- Full RBS type signatures, RuboCop compliance, and comprehensive specs
@chongfun chongfun self-assigned this Aug 21, 2026
@chongfun
chongfun merged commit e87d1a4 into main Aug 24, 2026
5 checks passed
@chongfun
chongfun deleted the double_entry_accounting_milestone_7 branch August 24, 2026 00:59
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.

1 participant