Merge pull request 'Redirigiendo al resumen cuando se finaliza una compra' (#64) from redirect_to_summary_when_end_purchase_#55 into main

Reviewed-on: OneTeam/don_confiao#64
This commit is contained in:
mono 2024-11-02 16:55:01 -05:00
commit 8ba20acaea
4 changed files with 18 additions and 6 deletions

View File

@ -27,7 +27,10 @@ class SaleView(viewsets.ModelViewSet):
unit_price=unit_price 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): class ProductView(viewsets.ModelViewSet):

View File

@ -270,7 +270,10 @@
if (response.ok) { if (response.ok) {
const data = await response.json(); const data = await response.json();
console.log('Compra enviada:', data); console.log('Compra enviada:', data);
this.$router.push("SummaryPurchase"); this.$router.push({
path: "/summary_purchase",
query : {id: parseInt(data.id)}
});
} else { } else {
console.error('Error al enviar la compra:', response.statusText); console.error('Error al enviar la compra:', response.statusText);
} }

View File

@ -38,7 +38,7 @@
{{ currencyFormat(item.unit_price) }} {{ currencyFormat(item.unit_price) }}
</template> </template>
<template v-slot:item.subtotal="{ item }"> <template v-slot:item.subtotal="{ item }">
{{ currencyFormat(calculateSubtotal(item.price, item.quantity)) }} {{ currencyFormat(calculateSubtotal(item.unit_price, item.quantity)) }}
</template> </template>
</v-data-table-virtual> </v-data-table-virtual>
</v-container> </v-container>
@ -86,13 +86,13 @@
}, },
calculateSubtotal(price, quantity) { calculateSubtotal(price, quantity) {
price = parseFloat(price || 0); price = parseFloat(price || 0);
quantity = parseFloat(price || 0); quantity = parseFloat(quantity || 0);
return price * quantity; return price * quantity;
}, },
calculateTotal(lines) { calculateTotal(lines) {
let total = 0; let total = 0;
lines.forEach(line => { lines.forEach(line => {
total += this.calculateSubtotal(line.price, line.quantity); total += this.calculateSubtotal(line.unit_price, line.quantity);
}); });
return total; return total;
} }

View File

@ -18,12 +18,18 @@ class TestAPI(APITestCase):
def test_create_sale(self): def test_create_sale(self):
response = self._create_sale() response = self._create_sale()
content = json.loads(response.content.decode('utf-8'))
self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertEqual(Sale.objects.count(), 1) self.assertEqual(Sale.objects.count(), 1)
sale = Sale.objects.all()[0]
self.assertEqual( self.assertEqual(
Sale.objects.all()[0].customer.name, sale.customer.name,
self.customer.name self.customer.name
) )
self.assertEqual(
sale.id,
content['id']
)
def test_get_products(self): def test_get_products(self):
url = '/don_confiao/api/products/' url = '/don_confiao/api/products/'