Fully functional opening transactions
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
from datetime import date
|
||||
from decimal import Decimal
|
||||
from typing import Optional
|
||||
from uuid import UUID, uuid4
|
||||
@@ -11,7 +12,8 @@ from payee.models import Payee, PayeeRead
|
||||
|
||||
|
||||
class TransactionBase(SQLModel):
|
||||
pass
|
||||
transaction_date: date = Field()
|
||||
payment_date: Optional[date] = Field(default=None)
|
||||
|
||||
class TransactionBaseId(TransactionBase):
|
||||
id: UUID | None = Field(default_factory=uuid4, primary_key=True)
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
from decimal import Decimal
|
||||
from typing import Optional
|
||||
from uuid import UUID, uuid4
|
||||
from datetime import date
|
||||
|
||||
from sqlalchemy.orm import aliased
|
||||
from sqlmodel import Field, SQLModel, select, Relationship
|
||||
from pydantic import Field as PydField
|
||||
from sqlmodel import select
|
||||
|
||||
from account.models import Account
|
||||
from account.schemas import AccountRead
|
||||
from account.schemas import OpeningTransaction
|
||||
from transaction.models import Transaction, Split
|
||||
from payee.models import Payee, PayeeRead
|
||||
|
||||
class TransactionResource:
|
||||
@classmethod
|
||||
@@ -29,16 +25,6 @@ class TransactionResource:
|
||||
def get(cls, session, transaction_id):
|
||||
return session.get(Transaction, transaction_id)
|
||||
|
||||
@classmethod
|
||||
def get_opening_transaction(cls, session, account_id):
|
||||
split_account = aliased(Split)
|
||||
split_equity = aliased(Split)
|
||||
account_filter = aliased(Account)
|
||||
return session.exec(select(Transaction)
|
||||
.join(split_account, split_account.account_id == account_id)
|
||||
.join(split_equity)
|
||||
.join(account_filter, account_filter.id == split_equity.account_id and Account.path == "/Equity/")).first()
|
||||
|
||||
@classmethod
|
||||
def update(cls, session, transaction_db, transaction_data):
|
||||
transaction_db.sqlmodel_update(Transaction.model_validate(transaction_data))
|
||||
|
||||
Reference in New Issue
Block a user