From aff702156d1b02add4ffb1a26841014929f894cd Mon Sep 17 00:00:00 2001 From: Gentile G Date: Fri, 14 Feb 2025 14:15:20 +0100 Subject: [PATCH] Adding fetching of account opening data for AccountRead --- api/app/account/resource.py | 12 +++++++++++- api/app/account/schemas.py | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/api/app/account/resource.py b/api/app/account/resource.py index 4442b87..25a52a5 100644 --- a/api/app/account/resource.py +++ b/api/app/account/resource.py @@ -1,3 +1,5 @@ +from sqlalchemy import literal_column +from sqlalchemy.orm import aliased from sqlmodel import select from account.models import Account @@ -98,7 +100,15 @@ class AccountResource: @classmethod def select(cls): - return select(Account) + split_filter = aliased(Split) + account_filter = aliased(Account) + columns = [Account.id, Account.name, Account.family, Account.type, Account.path , + Split.amount.label("opening_balance"), literal_column('"1970-01-01"').label("opening_date")] + return (select(*columns) + .join(Split) + .join(Transaction) + .join(split_filter) + .join(account_filter, account_filter.id == split_filter.account_id and Account.path == "/Equity/")) @classmethod def list(cls, filters): diff --git a/api/app/account/schemas.py b/api/app/account/schemas.py index 23fdd63..39171ff 100644 --- a/api/app/account/schemas.py +++ b/api/app/account/schemas.py @@ -21,8 +21,8 @@ class AccountBaseId(AccountBase): path: str = Field(index=True) class AccountRead(AccountBaseId): - pass#opening_date: date = Field() - #opening_balance: Decimal = Field(decimal_places=2, default=0) + opening_date: date = Field() + opening_balance: Decimal = Field(decimal_places=2, default=0) class BaseAccountWrite(AccountBase): path: SkipJsonSchema[str] = Field(default="")