from django.db import models from django.contrib.contenttypes.models import ContentType from django.utils.translation import ugettext_lazy as _ from . import settings class Pack(models.Model): account = models.ForeignKey('accounts.Account', verbose_name=_("account"), related_name='packs') name = models.CharField(_("pack"), max_length=128, choices=settings.PRICES_PACKS, default=settings.PRICES_DEFAULT_PACK) def __unicode__(self): return self.pack class Price(models.Model): description = models.CharField(_("description"), max_length=256, unique=True) service = models.ForeignKey(ContentType, verbose_name=_("service")) expression = models.CharField(_("match"), max_length=256) tax = models.IntegerField(_("tax"), choices=settings.PRICES_TAXES, default=settings.PRICES_DEFAUL_TAX) active = models.BooleanField(_("is active"), default=True) def __unicode__(self): return self.description class Rate(models.Model): price = models.ForeignKey('prices.Price', verbose_name=_("price")) pack = models.CharField(_("pack"), max_length=128, blank=True, choices=(('', _("default")),) + settings.PRICES_PACKS) quantity = models.PositiveIntegerField(_("quantity"), null=True, blank=True) value = models.DecimalField(_("price"), max_digits=12, decimal_places=2) class Meta: unique_together = ('price', 'pack', 'quantity') def __unicode__(self): return self.price