|
|
|
|
@ -119,7 +119,8 @@ class CourseBuyView(TemplateView): |
|
|
|
|
|
|
|
|
|
@method_decorator(login_required, name='dispatch') |
|
|
|
|
class SchoolBuyView(TemplateView): |
|
|
|
|
template_name = 'payment/paymentwall_widget.html' |
|
|
|
|
# template_name = 'payment/paymentwall_widget.html' |
|
|
|
|
template_name = 'payment/pay.html' |
|
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
|
host = urlsplit(self.request.META.get('HTTP_REFERER')) |
|
|
|
|
@ -128,30 +129,39 @@ class SchoolBuyView(TemplateView): |
|
|
|
|
roistat_visit = request.COOKIES.get('roistat_visit', None) |
|
|
|
|
date_start = request.GET.get('date_start') |
|
|
|
|
duration = request.GET.get('duration') |
|
|
|
|
payment_id = request.GET.get('payment_id') |
|
|
|
|
package = get_object_or_404(Package, duration=duration) |
|
|
|
|
date_start = date_start and datetime.datetime.strptime(date_start, '%Y-%m-%d').date() or now().date() |
|
|
|
|
amount_data = SchoolPayment.calc_amount(package=package, user=request.user, date_start=date_start) |
|
|
|
|
school_payment = SchoolPayment.objects.create( |
|
|
|
|
user=request.user, |
|
|
|
|
weekdays=amount_data.get('weekdays'), |
|
|
|
|
roistat_visit=roistat_visit, |
|
|
|
|
date_start=amount_data.get('date_start'), |
|
|
|
|
date_end=amount_data.get('date_end'), |
|
|
|
|
package=package, |
|
|
|
|
) |
|
|
|
|
if payment_id: |
|
|
|
|
school_payment = get_object_or_404(SchoolPayment, id=payment_id) |
|
|
|
|
else: |
|
|
|
|
amount_data = SchoolPayment.calc_amount(package=package, user=request.user, date_start=date_start) |
|
|
|
|
school_payment = SchoolPayment.objects.create( |
|
|
|
|
user=request.user, |
|
|
|
|
weekdays=amount_data.get('weekdays'), |
|
|
|
|
roistat_visit=roistat_visit, |
|
|
|
|
date_start=amount_data.get('date_start'), |
|
|
|
|
date_end=amount_data.get('date_end'), |
|
|
|
|
package=package, |
|
|
|
|
) |
|
|
|
|
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 |
|
|
|
|
school_payment.status = Pingback.PINGBACK_TYPE_REGULAR |
|
|
|
|
else: |
|
|
|
|
bonus = UserBonus.objects.create(amount= -request.user.bonus, user=request.user, |
|
|
|
|
payment=school_payment) |
|
|
|
|
school_payment.amount -= request.user.bonus |
|
|
|
|
bonus = UserBonus.objects.create(amount= -request.user.bonus, user=request.user, |
|
|
|
|
payment=school_payment) |
|
|
|
|
school_payment.bonus = bonus |
|
|
|
|
school_payment.save() |
|
|
|
|
if school_payment.is_paid(): |
|
|
|
|
return redirect(reverse_lazy('payment-success')) |
|
|
|
|
if payment_id and school_payment.bonus and not use_bonuses: |
|
|
|
|
bonus = school_payment.bonus |
|
|
|
|
school_payment.amount += school_payment.bonus |
|
|
|
|
school_payment.bonus = None |
|
|
|
|
bonus.delete() |
|
|
|
|
product = Product( |
|
|
|
|
f'school_{school_payment.id}', |
|
|
|
|
school_payment.amount, |
|
|
|
|
|