Оплата бонусами

remotes/origin/feature/bonus-payment
gzbender 6 years ago
parent ea2cda9ff5
commit be36a86b67
  1. 10
      apps/payment/templates/payment/pay.html
  2. 12
      apps/payment/templates/payment/paymentwall_widget.html
  3. 34
      apps/payment/views.py

@ -0,0 +1,10 @@
{% extends "templates/lilcity/index.html" %} {% load static %} {% block content %}
{% if school and request.user.bonus %}
{% endif %}
<div class="section">
<div class="section__center center">
{% include "./paymentwall_widget.html" %}
</div>
</div>
{% endblock content %}

@ -1,9 +1,3 @@
{% extends "templates/lilcity/index.html" %} {% load static %} {% block content %}
<div class="section">
<div class="section__center center">
{% autoescape off %}
{{ widget }}
{% endautoescape %}
</div>
</div>
{% endblock content %}
{% autoescape off %}
{{ widget }}
{% endautoescape %}

@ -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,

Loading…
Cancel
Save