mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
feat: Ajout de la configuration des tarifs de l'école [#18]
This commit is contained in:
committed by
Luc SORIGNET
parent
147a70135d
commit
5a0e65bb75
@ -1,5 +1,5 @@
|
||||
from rest_framework import serializers
|
||||
from .models import Teacher, Speciality, SchoolClass, Planning, LEVEL_CHOICES
|
||||
from .models import Teacher, Speciality, SchoolClass, Planning, LEVEL_CHOICES, Discount, TuitionFee, Fee
|
||||
from Subscriptions.models import RegistrationForm
|
||||
from Subscriptions.serializers import StudentSerializer
|
||||
from Auth.serializers import ProfileSerializer
|
||||
@ -172,4 +172,57 @@ class SchoolClassSerializer(serializers.ModelSerializer):
|
||||
utc_time = timezone.localtime(obj.updated_date)
|
||||
local_tz = pytz.timezone(settings.TZ_APPLI)
|
||||
local_time = utc_time.astimezone(local_tz)
|
||||
return local_time.strftime("%d-%m-%Y %H:%M")
|
||||
return local_time.strftime("%d-%m-%Y %H:%M")
|
||||
|
||||
class DiscountSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Discount
|
||||
fields = '__all__'
|
||||
|
||||
class FeeSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Fee
|
||||
fields = '__all__'
|
||||
|
||||
class TuitionFeeSerializer(serializers.ModelSerializer):
|
||||
discounts = serializers.PrimaryKeyRelatedField(queryset=Discount.objects.all(), many=True)
|
||||
final_amount = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = TuitionFee
|
||||
fields = '__all__'
|
||||
|
||||
def get_final_amount(self, obj):
|
||||
return obj.calculate_final_amount()
|
||||
|
||||
def create(self, validated_data):
|
||||
discounts_data = validated_data.pop('discounts', [])
|
||||
|
||||
# Create the TuitionFee instance
|
||||
tuition_fee = TuitionFee.objects.create(**validated_data)
|
||||
|
||||
# Add discounts if provided
|
||||
for discount in discounts_data:
|
||||
tuition_fee.discounts.add(discount)
|
||||
|
||||
return tuition_fee
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
discounts_data = validated_data.pop('discounts', [])
|
||||
|
||||
# Update the TuitionFee instance
|
||||
instance.name = validated_data.get('name', instance.name)
|
||||
instance.description = validated_data.get('description', instance.description)
|
||||
instance.base_amount = validated_data.get('base_amount', instance.base_amount)
|
||||
instance.currency = validated_data.get('currency', instance.currency)
|
||||
instance.validity_start_date = validated_data.get('validity_start_date', instance.validity_start_date)
|
||||
instance.validity_end_date = validated_data.get('validity_end_date', instance.validity_end_date)
|
||||
instance.payment_option = validated_data.get('payment_option', instance.payment_option)
|
||||
instance.is_active = validated_data.get('is_active', instance.is_active)
|
||||
instance.save()
|
||||
|
||||
# Update discounts if provided
|
||||
if discounts_data:
|
||||
instance.discounts.set(discounts_data)
|
||||
|
||||
return instance
|
||||
Reference in New Issue
Block a user