給与管理システム新規作成
This commit is contained in:
63
backend/app/payroll/bonus/schemas.py
Normal file
63
backend/app/payroll/bonus/schemas.py
Normal file
@@ -0,0 +1,63 @@
|
||||
"""
|
||||
賞与計算のスキーマ定義 (Bonus Schemas)
|
||||
"""
|
||||
from pydantic import BaseModel
|
||||
from datetime import date, datetime
|
||||
from typing import Optional
|
||||
from decimal import Decimal
|
||||
|
||||
|
||||
class BonusPaymentBase(BaseModel):
|
||||
"""賞与計算基本情報"""
|
||||
employee_id: int
|
||||
bonus_year: int
|
||||
bonus_month: int
|
||||
bonus_type: str # 夏季賞与/冬季賞与/決算賞与/その他
|
||||
payment_date: date
|
||||
base_bonus: Decimal = Decimal("0")
|
||||
performance_bonus: Decimal = Decimal("0")
|
||||
other_bonus: Decimal = Decimal("0")
|
||||
|
||||
|
||||
class BonusPaymentCreate(BonusPaymentBase):
|
||||
"""賞与計算の作成"""
|
||||
pass
|
||||
|
||||
|
||||
class BonusCalculationRequest(BaseModel):
|
||||
"""賞与計算リクエスト"""
|
||||
employee_id: int
|
||||
bonus_year: int
|
||||
bonus_month: int
|
||||
bonus_type: str
|
||||
payment_date: date
|
||||
base_bonus: Decimal
|
||||
performance_bonus: Decimal = Decimal("0")
|
||||
other_bonus: Decimal = Decimal("0")
|
||||
other_deduction: Decimal = Decimal("0")
|
||||
calculated_by: str = "system"
|
||||
|
||||
|
||||
class BonusPayment(BonusPaymentBase):
|
||||
"""賞与計算結果"""
|
||||
bonus_id: int
|
||||
status: str
|
||||
total_bonus: Decimal
|
||||
health_insurance: Decimal
|
||||
care_insurance: Decimal
|
||||
pension_insurance: Decimal
|
||||
employment_insurance: Decimal
|
||||
income_tax: Decimal
|
||||
other_deduction: Decimal
|
||||
total_deduction: Decimal
|
||||
net_bonus: Decimal
|
||||
notes: Optional[str] = None
|
||||
calculated_at: Optional[datetime] = None
|
||||
calculated_by: Optional[str] = None
|
||||
approved_at: Optional[datetime] = None
|
||||
approved_by: Optional[str] = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
Reference in New Issue
Block a user