From 98d173bf0000f325a1e65a3f65b8d5bd3152f987 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 28 Sep 2024 16:10:59 -0500 Subject: [PATCH 1/4] fix(Vuetify): minor fix. --- .../frontend/don-confiao/src/components/Purchase.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 f913a8d..95f47ce 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 @@ -58,7 +58,7 @@ required > -n + Date: Sat, 28 Sep 2024 16:20:47 -0500 Subject: [PATCH 2/4] view(Purchase): add products to purchase. --- .../don-confiao/src/components/Purchase.vue | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) 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 95f47ce..6aa0f05 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 @@ -42,12 +42,13 @@
- + > response.json()) + .then(data => { + console.log(data); + this.products = data.map(product => product.name); + }) + .catch(error => { + console.error(error); + }); + }, addLine() { this.purchase.lines.push({ product: '', price: 0, quantity:0 }); }, From 0c065beb3026730c2084f52b89bc223e9833d728 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 28 Sep 2024 17:23:50 -0500 Subject: [PATCH 3/4] view(Purchase): generate purchase from vuetify. --- .../don-confiao/src/components/Purchase.vue | 30 ++++++++++--------- tienda_ilusion/don_confiao/serializers.py | 4 +-- 2 files changed, 18 insertions(+), 16 deletions(-) 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 6aa0f05..8173eec 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 @@ -22,13 +22,13 @@ required > Productos -
+
!!value || 'Requerido.', @@ -130,8 +132,8 @@ }, computed: { calculateTotal() { - return this.purchase.lines.reduce((total, line) => { - return total + this.calculateSubtotal(line); + return this.purchase.saleline_set.reduce((total, saleline) => { + return total + this.calculateSubtotal(saleline); }, 0); }, }, @@ -140,7 +142,7 @@ fetch('/don_confiao/api/customers/') .then(response => response.json()) .then(data => { - this.clients = data.map(client => client.name); + this.clients = data; }) .catch(error => { console.error(error); @@ -151,25 +153,25 @@ .then(response => response.json()) .then(data => { console.log(data); - this.products = data.map(product => product.name); + this.products = data; }) .catch(error => { console.error(error); }); }, addLine() { - this.purchase.lines.push({ product: '', price: 0, quantity:0 }); + this.purchase.saleline_set.push({ product: '', unit_price: 0, quantity:0 }); }, removeLine(index) { - this.purchase.lines.splice(index, 1); + this.purchase.saleline_set.splice(index, 1); }, calculateSubtotal(line) { - return line.price * line.quantity; + return line.unit_price * line.quantity; }, async submit() { if (this.$refs.form.validate()) { try { - const response = await fetch('http://localhost:8000/don_confiao/', { + const response = await fetch('/don_confiao/api/sales/', { method: 'POST', headers: { 'Content-Type': 'application/json', diff --git a/tienda_ilusion/don_confiao/serializers.py b/tienda_ilusion/don_confiao/serializers.py index df664c7..61fc9c9 100644 --- a/tienda_ilusion/don_confiao/serializers.py +++ b/tienda_ilusion/don_confiao/serializers.py @@ -18,9 +18,9 @@ class SaleSerializer(serializers.ModelSerializer): class ProductSerializer(serializers.ModelSerializer): class Meta: model = Product - fields = ['name', 'price', 'measuring_unit', 'categories'] + fields = ['id', 'name', 'price', 'measuring_unit', 'categories'] class CustomerSerializer(serializers.ModelSerializer): class Meta: model = Customer - fields = ['name', 'address'] + fields = ['id', 'name', 'address'] From 413c77b1fe9b03bc15994140c81f817f77f55029 Mon Sep 17 00:00:00 2001 From: Mono Mono Date: Sat, 28 Sep 2024 17:43:55 -0500 Subject: [PATCH 4/4] view(Purchase): redirect after succesfull purchase. --- .../don-confiao/src/components/Purchase.vue | 3 ++- .../src/components/SummaryPurchase.vue | 18 ++++++++++++++++++ .../don-confiao/src/pages/sumaryPurchase.vue | 7 +++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 tienda_ilusion/don_confiao/frontend/don-confiao/src/components/SummaryPurchase.vue create mode 100644 tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/sumaryPurchase.vue 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 8173eec..1c05b39 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 @@ -181,6 +181,7 @@ if (response.ok) { const data = await response.json(); console.log('Compra enviada:', data); + this.$router.push("SummaryPurchase"); } else { console.error('Error al enviar la compra:', response.statusText); } @@ -190,7 +191,7 @@ } }, navigate(route) { - this.$route.push(route); + this.$router.push(route); }, }, }; 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 new file mode 100644 index 0000000..0677899 --- /dev/null +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/components/SummaryPurchase.vue @@ -0,0 +1,18 @@ + + + diff --git a/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/sumaryPurchase.vue b/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/sumaryPurchase.vue new file mode 100644 index 0000000..6a46ff1 --- /dev/null +++ b/tienda_ilusion/don_confiao/frontend/don-confiao/src/pages/sumaryPurchase.vue @@ -0,0 +1,7 @@ + + +