|
|
|
|
@ -108,6 +108,25 @@ def check_one_profile(profile, License, now_, manual=False): |
|
|
|
|
email.send() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def check_prepaid_bonus(profile, License, now_): |
|
|
|
|
""" |
|
|
|
|
Проверить полагается ли переданному профилю бонус за предоплату. |
|
|
|
|
И если да, то создать для него бонусную лицензию. |
|
|
|
|
|
|
|
|
|
Условие предоставления бонуса: |
|
|
|
|
- оплачена лицензия на 1 или 2 года |
|
|
|
|
- до конца лицензии пробного периода осталось не менее 25 дней |
|
|
|
|
""" |
|
|
|
|
# активная лицензия пробного периода |
|
|
|
|
test_license = License.objects.filter(company=profile, date_from__lte=now_, date_to__gte = now_ + timedelta(days=25), # TODO no magic numbers |
|
|
|
|
deleted=False, status=consts.LICENSE_ACTIVE, payform=consts.PAYFORM_TEST_PERIOD)[:1] |
|
|
|
|
|
|
|
|
|
if test_license: |
|
|
|
|
# найти ближайшую платную лицензию на год или два |
|
|
|
|
# проверить не давали ли за неё бонус (чтобы не дать дважды) |
|
|
|
|
# если всё ок - создать бонус на 2 или 3 месяца в зависимости от того, оплатили ли лицензию на год или два |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def raise_if_no_profile(request): |
|
|
|
|
if not request.user.profile: |
|
|
|
|
raise Exception(u"Profile not found for user: %d, '%s'" % (request.user.pk, request.user.username)) |
|
|
|
|
|