refactor(backend): update financial record model, schema and expense claims
- models/financial_record.py: update financial record model - schemas/reimbursement.py: update reimbursement schema - services/expense_claims.py: update expense claims service
This commit is contained in:
@@ -44,6 +44,7 @@ class ExpenseClaim(Base):
|
||||
DateTime(timezone=True), server_default=func.now(), onupdate=func.now()
|
||||
)
|
||||
|
||||
employee = relationship("Employee", foreign_keys=[employee_id])
|
||||
items = relationship(
|
||||
"ExpenseClaimItem",
|
||||
back_populates="claim",
|
||||
@@ -51,6 +52,28 @@ class ExpenseClaim(Base):
|
||||
order_by="asc(ExpenseClaimItem.item_date)",
|
||||
)
|
||||
|
||||
@property
|
||||
def employee_position(self) -> str | None:
|
||||
return str(self.employee.position).strip() if self.employee is not None and self.employee.position else None
|
||||
|
||||
@property
|
||||
def employee_grade(self) -> str | None:
|
||||
return str(self.employee.grade).strip() if self.employee is not None and self.employee.grade else None
|
||||
|
||||
@property
|
||||
def manager_name(self) -> str | None:
|
||||
if self.employee is None:
|
||||
return None
|
||||
if self.employee.manager is not None and self.employee.manager.name:
|
||||
return str(self.employee.manager.name).strip() or None
|
||||
return None
|
||||
|
||||
@property
|
||||
def role_labels(self) -> list[str]:
|
||||
if self.employee is None or not self.employee.roles:
|
||||
return []
|
||||
return [str(role.name).strip() for role in sorted(self.employee.roles, key=lambda item: item.name) if role.name]
|
||||
|
||||
|
||||
class ExpenseClaimItem(Base):
|
||||
__tablename__ = "expense_claim_items"
|
||||
|
||||
Reference in New Issue
Block a user