Adding fetching of account opening data for AccountRead
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
from sqlalchemy import literal_column
|
||||||
|
from sqlalchemy.orm import aliased
|
||||||
from sqlmodel import select
|
from sqlmodel import select
|
||||||
|
|
||||||
from account.models import Account
|
from account.models import Account
|
||||||
@@ -98,7 +100,15 @@ class AccountResource:
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def select(cls):
|
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
|
@classmethod
|
||||||
def list(cls, filters):
|
def list(cls, filters):
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ class AccountBaseId(AccountBase):
|
|||||||
path: str = Field(index=True)
|
path: str = Field(index=True)
|
||||||
|
|
||||||
class AccountRead(AccountBaseId):
|
class AccountRead(AccountBaseId):
|
||||||
pass#opening_date: date = Field()
|
opening_date: date = Field()
|
||||||
#opening_balance: Decimal = Field(decimal_places=2, default=0)
|
opening_balance: Decimal = Field(decimal_places=2, default=0)
|
||||||
|
|
||||||
class BaseAccountWrite(AccountBase):
|
class BaseAccountWrite(AccountBase):
|
||||||
path: SkipJsonSchema[str] = Field(default="")
|
path: SkipJsonSchema[str] = Field(default="")
|
||||||
|
|||||||
Reference in New Issue
Block a user