feat: payments working

This commit is contained in:
Pablo Moreno
2025-01-12 23:53:38 +01:00
parent 26e23d47f3
commit 074332092e
8 changed files with 263 additions and 168 deletions
+27 -2
View File
@@ -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),
}