Files
budget-forecast/api/app/ledger/resource.py

20 lines
633 B
Python

from sqlalchemy import and_, select
from sqlalchemy.orm import aliased
from ledger.schema import TransactionLedgerRead
from transaction.models import Split, Transaction
class LedgerResource:
@classmethod
def get_ledger(cls, session, account_id):
split_account = aliased(Split)
stmt = select(Transaction, split_account).join(
split_account,
and_(Transaction.id == split_account.transaction_id, split_account.account_id == account_id)
)
return [TransactionLedgerRead(transaction=transaction, account_split=split) for transaction, split in session.exec(stmt).all()]