diff --git a/apps/payment/models.py b/apps/payment/models.py index a7f0d463..b5baefd9 100644 --- a/apps/payment/models.py +++ b/apps/payment/models.py @@ -253,8 +253,9 @@ class Payment(PolymorphicModel): UserBonus.objects.create(user=self.user, amount=UserBonus.AMOUNT_PAID_ONE_MORE, is_service=True, action_name=UserBonus.ACTION_PAID_ONE_MORE) # Если юзер реферал и нет платежа, где применялась скидка + # (после первой покупки реферала начисляются бонусы ему и пригласившему рефереру) if hasattr(self.user, 'referral') and not self.user.referral.payment: - # Платеж - как сигнал, что скидка применилась + # Платеж - как сигнал, что была покупка и бонусы отправлены self.user.referral.payment = self self.user.referral.save() # Отправляем кэшбэк diff --git a/apps/payment/views.py b/apps/payment/views.py index 31217ac3..9f5e6f5f 100644 --- a/apps/payment/views.py +++ b/apps/payment/views.py @@ -78,7 +78,7 @@ class CourseBuyView(TemplateView): access_expire=access_expire, roistat_visit=roistat_visit, ) - if use_bonuses: + if use_bonuses and request.user.bonus: if request.user.bonus >= course_payment.amount: bonus = UserBonus.objects.create(amount= -course_payment.amount, user=request.user, payment=course_payment) course_payment.amount = 0 @@ -166,7 +166,7 @@ class SchoolBuyView(TemplateView): date_start=date_start, date_end=Payment.add_months(date_start), ) - if use_bonuses: + if use_bonuses and request.user.bonus: if request.user.bonus >= school_payment.amount: bonus = UserBonus.objects.create(amount= -school_payment.amount, user=request.user, payment=school_payment) school_payment.amount = 0 @@ -388,7 +388,7 @@ class GiftCertificateGetView(TemplateView): ugs = get_object_or_404(UserGiftCertificate, pk=short_url.decode_url(slug)) except: raise Http404() - if request.user.bonuses.filter(payment=ugs.payment).exists(): + if request.user.bonuses.filter(payment=ugs.payment, referral__isnull=True).exists(): raise Http404() bonuses = UserBonus.objects.create(user=request.user, amount=ugs.gift_certificate.price, payment=ugs.payment) diff --git a/apps/user/templates/user/bonus-history.html b/apps/user/templates/user/bonus-history.html index 8a66485f..0170f356 100644 --- a/apps/user/templates/user/bonus-history.html +++ b/apps/user/templates/user/bonus-history.html @@ -59,7 +59,7 @@