feat: payments working
This commit is contained in:
+27
-2
@@ -1,3 +1,4 @@
|
||||
from django.db.models import Sum
|
||||
from django.http.response import HttpResponse, JsonResponse
|
||||
from django.shortcuts import get_object_or_404, redirect, reverse
|
||||
from django.utils.text import gettext_lazy as _
|
||||
@@ -6,7 +7,6 @@ from django.views.generic import CreateView, TemplateView
|
||||
|
||||
from shop.models import (
|
||||
CartItem,
|
||||
CustomerAddress,
|
||||
Order,
|
||||
OrderLine,
|
||||
Product,
|
||||
@@ -14,6 +14,7 @@ from shop.models import (
|
||||
ShippingMethod,
|
||||
WishlistedProduct,
|
||||
)
|
||||
from shop.redsys import RedsysClient
|
||||
from shop.utils import create_order_from_cart
|
||||
from web.forms import CreateOrderForm
|
||||
from web.models import WebSettings
|
||||
@@ -137,10 +138,34 @@ class OrderDetail(TemplateView):
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
order = get_object_or_404(Order, uuid=kwargs.get("uuid"))
|
||||
items = OrderLine.objects.filter(order=order)
|
||||
|
||||
redsys_client = RedsysClient()
|
||||
parameters = redsys_client.get_body_for_order(order)
|
||||
|
||||
items = OrderLine.objects.select_related("product").filter(
|
||||
order=order, product__is_shipping_method=False
|
||||
)
|
||||
shipping_cost = (
|
||||
OrderLine.objects.select_related("product")
|
||||
.filter(
|
||||
order=order,
|
||||
product__is_shipping_method=True,
|
||||
)
|
||||
.aggregate(amount=Sum("total"))
|
||||
.get("amount")
|
||||
)
|
||||
|
||||
return {
|
||||
"order": order,
|
||||
"items": items,
|
||||
"signature_version": parameters.get("Ds_SignatureVersion"),
|
||||
"merchant_parameters": parameters.get("Ds_MerchantParameters"),
|
||||
"signature": parameters.get("Ds_Signature"),
|
||||
"redsys_target_url": redsys_client.get_target_url(),
|
||||
"total": order.total,
|
||||
"base_total": order.base_total,
|
||||
"tax_total": order.total - order.base_total,
|
||||
"shipping_cost": round(shipping_cost, 2),
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user