models.py 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. from django.db import models
  2. from django.core.validators import MaxValueValidator
  3. class Payment(models.Model):
  4. TRANSFERT = 0
  5. WITHDRAWAL = 1
  6. PAYMENT_CHOICES = (
  7. (TRANSFERT, 'Virement'),
  8. (WITHDRAWAL, 'Prélèvement'),
  9. )
  10. amount = models.DecimalField(max_digits=9, decimal_places=2, verbose_name='Montant')
  11. period = models.PositiveIntegerField(validators=[MaxValueValidator(12)], verbose_name='Période')
  12. payment_method = models.IntegerField(choices=PAYMENT_CHOICES, verbose_name='Méthode de paiement')
  13. date = models.DateField(verbose_name='Date de paiement ou de début de paiement')
  14. class Meta:
  15. verbose_name = 'paiement'
  16. def __str__(self):
  17. s = str(self.amount) + '€'
  18. if self.period:
  19. if self.period == 1:
  20. s += '/mois'
  21. elif self.period == 12:
  22. s += '/an'
  23. else:
  24. s += '/%d mois' % self.period
  25. if self.payment_method == self.TRANSFERT:
  26. s += ' (virement)'
  27. elif self.payment_method == self.WITHDRAWAL:
  28. s += ' (prélèvement)'
  29. return s