From 2a908d4e05a27f5ac90869775572062856c2e797 Mon Sep 17 00:00:00 2001 From: sinergia Date: Sat, 2 Nov 2024 11:28:10 -0500 Subject: [PATCH 1/2] Fix: No permitir eliminar linea de venta issue #4 --- .../frontend/don-confiao/src/components/Purchase.vue | 8 +++++++- 1 file changed, 7 insertions(+), 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 f3f6493..664e0f9 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 @@ -226,7 +226,13 @@ this.purchase.saleline_set.push({ product: '', unit_price: 0, quantity:0 }); }, removeLine(index) { - this.purchase.saleline_set.splice(index, 1); + // Solo elimina si hay más de una línea + if (this.purchase.saleline_set.length > 1) { + this.purchase.saleline_set.splice(index, 1); + } else { + // Opcional: puedes mostrar un mensaje o alerta si lo deseas + console.log("No se puede eliminar la única línea."); + } }, calculateSubtotal(line) { return line.unit_price * line.quantity; From a90fb4d9373c13da5720f9a3a5defe8df72412cc Mon Sep 17 00:00:00 2001 From: sinergia Date: Sat, 2 Nov 2024 11:40:51 -0500 Subject: [PATCH 2/2] Fix: Linea de Cero debe ser mayor a cero issue RedEcovida#57 --- .../don-confiao/src/components/Purchase.vue | 44 ++++++++++++------- 1 file changed, 27 insertions(+), 17 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 664e0f9..8fe3dfe 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 @@ -239,24 +239,34 @@ }, async submit() { if (this.$refs.form.validate()) { - try { - const response = await fetch('/don_confiao/api/sales/', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(this.purchase), - }); - 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); + const hasInvalidQuantity = this.purchase.saleline_set.some(line => line.quantity <= 0); + if (hasInvalidQuantity) { + this.errorMessage = 'La cantidad de cada línea de compra debe ser mayor que cero.'; + + console.log(this.errorMessage); + return; // Detener el submit si hay cantidades inválidas + } + + this.errorMessage = ''; // Limpiar el mensaje de error + + try { + const response = await fetch('/don_confiao/api/sales/', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(this.purchase), + }); + 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); + } + } catch (error) { + console.error('Error de red:', error); } - } catch (error) { - console.error('Error de red:', error); - } } }, navigate(route) {