mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
fix: Remplacement des enum par des modèles pour les payementModes et les
payementPlans
This commit is contained in:
@ -67,12 +67,6 @@ class Planning(models.Model):
|
||||
def __str__(self):
|
||||
return f'Planning for {self.level} of {self.school_class.atmosphere_name}'
|
||||
|
||||
class PaymentPlanType(models.IntegerChoices):
|
||||
ONE_TIME = 1, '1 fois'
|
||||
THREE_TIMES = 3, '3 fois'
|
||||
TEN_TIMES = 10, '10 fois'
|
||||
TWELVE_TIMES = 12, '12 fois'
|
||||
|
||||
class DiscountType(models.IntegerChoices):
|
||||
CURRENCY = 0, 'Currency'
|
||||
PERCENT = 1, 'Percent'
|
||||
@ -81,11 +75,20 @@ class FeeType(models.IntegerChoices):
|
||||
REGISTRATION_FEE = 0, 'Registration Fee'
|
||||
TUITION_FEE = 1, 'Tuition Fee'
|
||||
|
||||
class PaymentModeType(models.IntegerChoices):
|
||||
SEPA = 1, 'Prélèvement SEPA'
|
||||
TRANSFER = 2, 'Virement'
|
||||
CHECK = 3, 'Chèque'
|
||||
CASH = 4, 'Espèce'
|
||||
class PaymentPlanType(models.Model):
|
||||
code = models.CharField(max_length=50, unique=True)
|
||||
label = models.CharField(max_length=255)
|
||||
|
||||
def __str__(self):
|
||||
return self.label
|
||||
|
||||
class PaymentModeType(models.Model):
|
||||
code = models.CharField(max_length=50, unique=True)
|
||||
label = models.CharField(max_length=255)
|
||||
is_active = models.BooleanField(default=True)
|
||||
|
||||
def __str__(self):
|
||||
return self.label
|
||||
|
||||
class Discount(models.Model):
|
||||
name = models.CharField(max_length=255, null=True, blank=True)
|
||||
@ -112,23 +115,21 @@ class Fee(models.Model):
|
||||
return self.name
|
||||
|
||||
class PaymentPlan(models.Model):
|
||||
frequency = models.IntegerField(choices=PaymentPlanType.choices, default=PaymentPlanType.ONE_TIME)
|
||||
due_dates = ArrayField(models.DateField(), blank=True)
|
||||
plan_type = models.ForeignKey(PaymentPlanType, on_delete=models.PROTECT, related_name='payment_plans')
|
||||
due_dates = ArrayField(models.DateField(), null=True, blank=True)
|
||||
type = models.IntegerField(choices=FeeType.choices, default=FeeType.REGISTRATION_FEE)
|
||||
is_active = models.BooleanField(default=False)
|
||||
establishment = models.ForeignKey('Establishment.Establishment', on_delete=models.CASCADE, related_name='payment_plans')
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.get_frequency_display()} - {self.get_type_display()}"
|
||||
return f"{self.plan_type.label} - {self.get_type_display()}"
|
||||
|
||||
class PaymentMode(models.Model):
|
||||
mode = models.IntegerField(choices=PaymentModeType.choices, default=PaymentModeType.SEPA)
|
||||
mode = models.ForeignKey(PaymentModeType, on_delete=models.PROTECT, related_name='payment_modes')
|
||||
type = models.IntegerField(choices=FeeType.choices, default=FeeType.REGISTRATION_FEE)
|
||||
is_active = models.BooleanField(default=False)
|
||||
establishment = models.ForeignKey('Establishment.Establishment', on_delete=models.CASCADE, related_name='payment_modes')
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.get_mode_display()} - {self.get_type_display()}"
|
||||
return f"{self.mode.label} - {self.get_type_display()}"
|
||||
|
||||
class Domain(models.Model):
|
||||
name = models.CharField(max_length=255)
|
||||
|
||||
Reference in New Issue
Block a user