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

remotes/origin/feature/bonus-payment
gzbender 7 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 %} {% autoescape off %}
<div class="section"> {{ widget }}
<div class="section__center center"> {% endautoescape %}
{% autoescape off %}
{{ widget }}
{% endautoescape %}
</div>
</div>
{% endblock content %}

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

Loading…
Cancel
Save