feat(Purchase): warn user when try eliminate the last line
This commit is contained in:
		@@ -104,8 +104,11 @@
 | 
				
			|||||||
            <v-col>
 | 
					            <v-col>
 | 
				
			||||||
              <v-btn @click="removeLine(index)" color="red">Eliminar</v-btn>
 | 
					              <v-btn @click="removeLine(index)" color="red">Eliminar</v-btn>
 | 
				
			||||||
            </v-col>
 | 
					            </v-col>
 | 
				
			||||||
          </v-row>
 | 
					        </v-row>
 | 
				
			||||||
        </v-container>
 | 
					        <v-alert type="warning" :duration="2000" closable v-model="show_alert_lines">
 | 
				
			||||||
 | 
					          No se puede eliminar la única línea.
 | 
				
			||||||
 | 
					        </v-alert>
 | 
				
			||||||
 | 
					      </v-container>
 | 
				
			||||||
        <v-btn @click="addLine" color="blue">Agregar</v-btn>
 | 
					        <v-btn @click="addLine" color="blue">Agregar</v-btn>
 | 
				
			||||||
        </v-container>
 | 
					        </v-container>
 | 
				
			||||||
        <v-divider></v-divider>
 | 
					        <v-divider></v-divider>
 | 
				
			||||||
@@ -150,6 +153,7 @@
 | 
				
			|||||||
   data() {
 | 
					   data() {
 | 
				
			||||||
     return {
 | 
					     return {
 | 
				
			||||||
       valid: false,
 | 
					       valid: false,
 | 
				
			||||||
 | 
					       show_alert_lines: false,
 | 
				
			||||||
       client_search: '',
 | 
					       client_search: '',
 | 
				
			||||||
       product_search: '',
 | 
					       product_search: '',
 | 
				
			||||||
       payment_methods: null,
 | 
					       payment_methods: null,
 | 
				
			||||||
@@ -266,12 +270,13 @@
 | 
				
			|||||||
       this.purchase.saleline_set.push({ product: '', unit_price: 0, quantity:0, measuring_unit: ''});
 | 
					       this.purchase.saleline_set.push({ product: '', unit_price: 0, quantity:0, measuring_unit: ''});
 | 
				
			||||||
     },
 | 
					     },
 | 
				
			||||||
     removeLine(index) {
 | 
					     removeLine(index) {
 | 
				
			||||||
         // Solo elimina si hay más de una línea
 | 
					 | 
				
			||||||
         if (this.purchase.saleline_set.length > 1) {
 | 
					         if (this.purchase.saleline_set.length > 1) {
 | 
				
			||||||
             this.purchase.saleline_set.splice(index, 1);
 | 
					             this.purchase.saleline_set.splice(index, 1);
 | 
				
			||||||
         } else {
 | 
					         } else {
 | 
				
			||||||
         // Opcional: puedes mostrar un mensaje o alerta si lo deseas
 | 
					           this.show_alert_lines = true;
 | 
				
			||||||
             console.log("No se puede eliminar la única línea.");
 | 
					           setTimeout(() => {
 | 
				
			||||||
 | 
					             this.show_alert_lines = false;
 | 
				
			||||||
 | 
					           }, 2000);
 | 
				
			||||||
         }
 | 
					         }
 | 
				
			||||||
     },
 | 
					     },
 | 
				
			||||||
     calculateSubtotal(line) {
 | 
					     calculateSubtotal(line) {
 | 
				
			||||||
@@ -280,16 +285,6 @@
 | 
				
			|||||||
     async submit() {
 | 
					     async submit() {
 | 
				
			||||||
       this.$refs.purchase.validate();
 | 
					       this.$refs.purchase.validate();
 | 
				
			||||||
       if (this.valid) {
 | 
					       if (this.valid) {
 | 
				
			||||||
         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 {
 | 
					           try {
 | 
				
			||||||
               const response = await fetch('/don_confiao/api/sales/', {
 | 
					               const response = await fetch('/don_confiao/api/sales/', {
 | 
				
			||||||
                   method: 'POST',
 | 
					                   method: 'POST',
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user