|
|
|
|
@ -466,17 +466,18 @@ class License(models.Model): |
|
|
|
|
self.suspend_date = _now_.date() # TODO maybe raise ValidationError? |
|
|
|
|
|
|
|
|
|
# бесплатные лицензии |
|
|
|
|
if self.payform in [consts.PAYFORM_FREE,]: |
|
|
|
|
if self.payform in [consts.PAYFORM_TEST_PERIOD, consts.PAYFORM_BONUS_PREPAID]: |
|
|
|
|
# только если ещё не задана `дата начала` |
|
|
|
|
if not self.date_from: |
|
|
|
|
self.set_period(now_) |
|
|
|
|
self.status = consts.LICENSE_INACTIVE |
|
|
|
|
|
|
|
|
|
# платные лицензии |
|
|
|
|
elif self.payform in [consts.PAYFORM_BEZNAL, consts.PAYFORM_CARD,]: |
|
|
|
|
# если `дата оплаты` задана только что |
|
|
|
|
if not self.__prev_paid_date and self.paid_date: |
|
|
|
|
self.set_period(now_) |
|
|
|
|
self.order_status = consts.ORDER_PAID |
|
|
|
|
self.set_paid() |
|
|
|
|
|
|
|
|
|
super(License, self).save(*args, **kwargs) |
|
|
|
|
|
|
|
|
|
@ -499,6 +500,7 @@ class License(models.Model): |
|
|
|
|
|
|
|
|
|
def set_paid(self): |
|
|
|
|
self.order_status = consts.ORDER_PAID |
|
|
|
|
self.status = consts.LICENSE_INACTIVE |
|
|
|
|
|
|
|
|
|
def get_company(self): |
|
|
|
|
return self.company.get_company_name() |
|
|
|
|
@ -515,7 +517,7 @@ class License(models.Model): |
|
|
|
|
elif self.payform == consts.PAYFORM_SBER_KVITANZ: # не используется. однако могут быть старые лицензии с данной формой оплаты |
|
|
|
|
return u'<a href="%s">Скачать квитанцию</a>' % reverse('customer_license_get_doc', kwargs={'order_num': self.id}) |
|
|
|
|
|
|
|
|
|
elif self.order_status == consts.ORDER_PAID: # or self.status in [consts.LICENSE_ACTIVE] |
|
|
|
|
elif self.order_status == consts.ORDER_PAID or self.status == consts.LICENSE_ACTIVE: |
|
|
|
|
return u'История операций' |
|
|
|
|
|
|
|
|
|
else: |
|
|
|
|
@ -528,10 +530,10 @@ class License(models.Model): |
|
|
|
|
return u'%s %s' % (self.term, numeral.choose_plural(self.term, u"месяц, месяца, месяцев"),) |
|
|
|
|
|
|
|
|
|
def get_paid_status(self): |
|
|
|
|
if self.order_status == consts.ORDER_PAID: |
|
|
|
|
if self.status == consts.LICENSE_INACTIVE and self.order_status == consts.ORDER_PAID: |
|
|
|
|
return u'Лицензия оплачена, ещё не активирована' |
|
|
|
|
|
|
|
|
|
elif self.status in [consts.LICENSE_ACTIVE, consts.LICENSE_TEST_PERIOD]: |
|
|
|
|
elif self.status == consts.LICENSE_ACTIVE: |
|
|
|
|
left = relativedelta(self.date_to, datetime.today()) |
|
|
|
|
if left.months: |
|
|
|
|
left_str = u'%d %s %d %s' % ( |
|
|
|
|
|