diff --git a/app/model/ReimburseModel.py b/app/model/ReimburseModel.py index 870a38e..758726f 100644 --- a/app/model/ReimburseModel.py +++ b/app/model/ReimburseModel.py @@ -1,3 +1,5 @@ +import decimal +from decimal import Decimal from typing import Optional, List from pydantic import computed_field @@ -80,6 +82,20 @@ class ReimburseModel(BasicModel, table=True): def other_list(self, value: Optional[List["ReimburseOtherModel"]]) -> None: pass + @computed_field + @property + def amount(self) -> Decimal: + ret = Decimal(0) + for other_item in (self.other_list or []): + ret = ret + Decimal(other_item.amount) + for travel_item in (self.travel_list or []): + ret = ret + Decimal(travel_item.amount) + return ret + + @amount.setter + def amount(self, value: decimal) -> None: + pass + ReimburseService = create_model_service( Cls=ReimburseModel,