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

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",
]