45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
from rest_framework import serializers
|
|
|
|
from core.apps.evaluation.models.bonus import BonusType, EmployeeBonus, BaseValueBonus
|
|
|
|
|
|
class BonusTypeCreateSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = BonusType
|
|
fields = 'name', 'category', 'percentage'
|
|
|
|
|
|
class BonusTypeListSerializer(serializers.ModelSerializer):
|
|
price = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = BonusType
|
|
fields = 'name', 'category', 'percentage'
|
|
|
|
def get_price(self, obj):
|
|
base_obj = BaseValueBonus.objects.first()
|
|
if not base_obj:
|
|
return 0
|
|
|
|
return (base_obj.base_price * obj.percentage) / 100
|
|
|
|
|
|
class BonusEmployeeBonusSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = EmployeeBonus
|
|
fields = 'user' , 'bonus_type' , 'percentage'
|
|
|
|
|
|
class EmployeeBonusSerializer(serializers.ModelSerializer):
|
|
price = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = EmployeeBonus
|
|
fields = 'user', 'bonus_type', 'percentage'
|
|
|
|
def get_price(self, obj):
|
|
base_obj = BaseValueBonus.objects.first()
|
|
if not base_obj:
|
|
return 0
|
|
return (base_obj.base_price * obj.percentage) / 100
|