mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 16:03:21 +00:00
63 lines
2.4 KiB
Python
63 lines
2.4 KiB
Python
from django.core.management.base import BaseCommand
|
|
from django.utils import timezone
|
|
from dateutil.relativedelta import relativedelta
|
|
from School.models import PaymentPlan, PaymentPlanType, FeeType, Establishment
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Initialize or update Payment Plans'
|
|
|
|
def handle(self, *args, **kwargs):
|
|
self.create_or_update_payment_plans()
|
|
|
|
def create_or_update_payment_plans(self):
|
|
current_date = timezone.now().date()
|
|
establishment = Establishment.objects.get(name="N3WT")
|
|
|
|
for fee_type in FeeType.choices:
|
|
fee_type_value = fee_type[0]
|
|
|
|
# 1 fois - échéance à 1 mois à partir de la date actuelle
|
|
PaymentPlan.objects.update_or_create(
|
|
frequency=PaymentPlanType.ONE_TIME,
|
|
type=fee_type_value,
|
|
defaults={
|
|
'due_dates': [current_date + relativedelta(months=1)],
|
|
'is_active': True,
|
|
'establishment': establishment
|
|
}
|
|
)
|
|
|
|
# 3 fois - échéances espacées de 4 mois
|
|
PaymentPlan.objects.update_or_create(
|
|
frequency=PaymentPlanType.THREE_TIMES,
|
|
type=fee_type_value,
|
|
defaults={
|
|
'due_dates': [current_date + relativedelta(months=1+4*i) for i in range(3)],
|
|
'is_active': False,
|
|
'establishment': establishment
|
|
}
|
|
)
|
|
|
|
# 10 fois - échéances espacées d'un mois
|
|
PaymentPlan.objects.update_or_create(
|
|
frequency=PaymentPlanType.TEN_TIMES,
|
|
type=fee_type_value,
|
|
defaults={
|
|
'due_dates': [current_date + relativedelta(months=1+i) for i in range(10)],
|
|
'is_active': False,
|
|
'establishment': establishment
|
|
}
|
|
)
|
|
|
|
# 12 fois - échéances espacées d'un mois
|
|
PaymentPlan.objects.update_or_create(
|
|
frequency=PaymentPlanType.TWELVE_TIMES,
|
|
type=fee_type_value,
|
|
defaults={
|
|
'due_dates': [current_date + relativedelta(months=1+i) for i in range(12)],
|
|
'is_active': False,
|
|
'establishment': establishment
|
|
}
|
|
)
|
|
|
|
self.stdout.write(self.style.SUCCESS('Payment Plans initialized or updated successfully')) |