models.py 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # -*- coding: utf-8 -*-
  2. import datetime
  3. from django.db import models
  4. class Service(models.Model):
  5. name = models.CharField(max_length=255, blank=False, null=False,
  6. verbose_name='Nom du service')
  7. def __unicode__(self):
  8. return self.name
  9. class Offer(models.Model):
  10. name = models.CharField(max_length=255, blank=False, null=False,
  11. verbose_name='Nom de l\'offre')
  12. billing_period = models.IntegerField(blank=False, null=False, default=1,
  13. verbose_name='Période de facturation',
  14. help_text='en mois')
  15. period_fees = models.DecimalField(max_digits=5, decimal_places=2,
  16. blank=False, null=False,
  17. verbose_name='Montant par période de '
  18. 'facturation',
  19. help_text='en €')
  20. initial_fees = models.DecimalField(max_digits=5, decimal_places=2,
  21. blank=False, null=False,
  22. verbose_name='Frais de mise en service',
  23. help_text='en €')
  24. service = models.ForeignKey('Service')
  25. def __unicode__(self):
  26. return u'%s - %d€ / %im [%s]' % (self.name, self.period_fees,
  27. self.billing_period, self.service)
  28. class Meta:
  29. verbose_name = 'offre'
  30. class OfferSubscription(models.Model):
  31. subscription_date = models.DateField(
  32. null=False,
  33. blank=False,
  34. default=datetime.date.today,
  35. verbose_name='Date de souscription à l\'offre')
  36. resign_date = models.DateField(
  37. null=True,
  38. blank=True,
  39. verbose_name='Date de résiliation')
  40. commitment = models.IntegerField(blank=False, null=False,
  41. verbose_name='Période d\'engagement',
  42. help_text = 'en mois',
  43. default=0)
  44. member = models.ForeignKey('members.Member', verbose_name='Membre')
  45. offer = models.ForeignKey('Offer', verbose_name='Offre')
  46. def __unicode__(self):
  47. return u'%s - %s - %s' % (self.member, self.offer.name,
  48. self.subscription_date)
  49. class Meta:
  50. verbose_name = 'abonnement'