You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
965 B
25 lines
965 B
from finance.models import Account, ReconciliationCheckpoint |
|
from finance.reconciliation import ledger_balance_through |
|
|
|
from .base import lock, money, save, write |
|
|
|
|
|
@write("reconciliation_checkpoint.created") |
|
def create_reconciliation_checkpoint(*, account_id, as_of_date, institution_balance): |
|
account = lock(Account, account_id, active=True) |
|
institution_balance = money(institution_balance, allow_zero=True) |
|
ledger_balance = ledger_balance_through(account.pk, as_of_date) |
|
checkpoint = save(ReconciliationCheckpoint( |
|
account=account, |
|
as_of_date=as_of_date, |
|
institution_balance=institution_balance, |
|
ledger_balance_at_creation=ledger_balance, |
|
difference_at_creation=money(institution_balance - ledger_balance, allow_zero=True), |
|
)) |
|
return checkpoint, [ |
|
"account", |
|
"as_of_date", |
|
"institution_balance", |
|
"ledger_balance_at_creation", |
|
"difference_at_creation", |
|
]
|
|
|