models.py 1.0 KB

1234567891011121314151617181920212223242526272829303132
  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. class Meta:
  14. verbose_name = 'paiement'
  15. def __str__(self):
  16. s = str(self.amount) + '€'
  17. if self.period:
  18. if self.period == 1:
  19. s += '/mois'
  20. elif self.period == 12:
  21. s += '/an'
  22. else:
  23. s += '/%d mois' % self.period
  24. if self.payment_method == self.TRANSFERT:
  25. s += ' (virement)'
  26. elif self.payment_method == self.WITHDRAWAL:
  27. s += ' (prélèvement)'
  28. return s