From 7c36524763130361999c828a0aef3bd6590ca204 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 2 Nov 2024 16:46:45 -0500 Subject: [PATCH 1/3] Redirect to summary after purchase #55 --- tienda_ilusion/don_confiao/api_views.py | 5 ++++- .../frontend/don-confiao/src/components/Purchase.vue | 5 ++++- tienda_ilusion/don_confiao/tests/test_api.py | 8 +++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tienda_ilusion/don_confiao/api_views.py b/tienda_ilusion/don_confiao/api_views.py index 95be792..d8c6ffa 100644 --- a/tienda_ilusion/don_confiao/api_views.py +++ b/tienda_ilusion/don_confiao/api_views.py @@ -27,7 +27,10 @@ class SaleView(viewsets.ModelViewSet): unit_price=unit_price ) - return Response({'message': 'Venta creada con exito'}, status=201) + return Response( + {'id': sale.id, 'message': 'Venta creada con exito'}, + status=201 + ) class ProductView(viewsets.ModelViewSet): diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/Purchase.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/Purchase.vue index d542324..389d073 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/Purchase.vue +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/Purchase.vue @@ -270,7 +270,10 @@ if (response.ok) { const data = await response.json(); console.log('Compra enviada:', data); - this.$router.push("SummaryPurchase"); + this.$router.push({ + path: "/summary_purchase", + query : {id: parseInt(data.id)} + }); } else { console.error('Error al enviar la compra:', response.statusText); } diff --git a/tienda_ilusion/don_confiao/tests/test_api.py b/tienda_ilusion/don_confiao/tests/test_api.py index 1c9a312..99c923e 100644 --- a/tienda_ilusion/don_confiao/tests/test_api.py +++ b/tienda_ilusion/don_confiao/tests/test_api.py @@ -18,12 +18,18 @@ class TestAPI(APITestCase): def test_create_sale(self): response = self._create_sale() + content = json.loads(response.content.decode('utf-8')) self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(Sale.objects.count(), 1) + sale = Sale.objects.all()[0] self.assertEqual( - Sale.objects.all()[0].customer.name, + sale.customer.name, self.customer.name ) + self.assertEqual( + sale.id, + content['id'] + ) def test_get_products(self): url = '/don_confiao/api/products/' From f6146c177bab0550b47e24c6ab5b3db2fde0442e Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 2 Nov 2024 16:53:01 -0500 Subject: [PATCH 2/3] view: fix subtotal on summary purchase. --- .../frontend/don-confiao/src/components/SummaryPurchase.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/SummaryPurchase.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/SummaryPurchase.vue index eac9264..54b117b 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/SummaryPurchase.vue +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/SummaryPurchase.vue @@ -38,7 +38,7 @@ {{ currencyFormat(item.unit_price) }} @@ -86,7 +86,7 @@ }, calculateSubtotal(price, quantity) { price = parseFloat(price || 0); - quantity = parseFloat(price || 0); + quantity = parseFloat(quantity || 0); return price * quantity; }, calculateTotal(lines) { From 65e99b7ce21317aea20860ce3e13555a58fe5ae7 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 2 Nov 2024 16:54:07 -0500 Subject: [PATCH 3/3] view: fix total on summary purchase. --- .../frontend/don-confiao/src/components/SummaryPurchase.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/SummaryPurchase.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/SummaryPurchase.vue index 54b117b..7717b1a 100644 --- a/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/SummaryPurchase.vue +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/SummaryPurchase.vue @@ -92,7 +92,7 @@ calculateTotal(lines) { let total = 0; lines.forEach(line => { - total += this.calculateSubtotal(line.price, line.quantity); + total += this.calculateSubtotal(line.unit_price, line.quantity); }); return total; }