Untitled
unknown
plain_text
a month ago
4.4 kB
3
Indexable
let dinerValue = this.modalTable.selected_diner ? this.modalTable.selected_diner.value : 'ALL'; let isDiner = this.modalTable && dinerValue !== 'ALL'; // Es comensal ? TRUE si es comensale o ALL . False si es ALL let target = this.$refs.order || this; // hace referencia entre this.refs.order o this de orderView //Calculos de los subtotales en los metodos de pago. let CalculateSubtotals = () => { if(this.modalTable && this.modalTable.payment && this.modalTable.payment.length > 1){ for (let index = 0; index < this.modalTable.payment.length; index++) { this.$refs.order.CalculateSubtotals(index); } } } //Función que guarda el descuento en la BD. //Solo hace la peticion cuando se guarda desde el modalDiscount fuera del OrderForm. let requestSetDiscount = async (data) => { this.Loading(); await axios.post(`/transaction/${this.modalTable.id}/discount/set`, {discount : data}) .then(res => { this.Response(res); if (!this.dinersDiscounts[data.diner]) { this.$set(this.dinersDiscounts, data.diner, [data]); } else { this.dinersDiscounts[data.diner].push(data); } }).catch(err => { this.Response(err); }) } let setIDDiscount = (diner) => { // diner (ALL, C1, C2, C3, ETC) let dinerDiscounts = this.dinersDiscounts[diner]; // Son los descuentos que tiene ALL o los comensales. let idDiscount = 1; // ID de descuento. if(this.modalTable && diner && dinerDiscounts) { let paidIdDiscounts = dinerDiscounts.map(discount => discount.id_discount).filter(id => id !== undefined); // Saca los ids de los descuentos realizados. if (paidIdDiscounts.length === 0) { //En el caso que venga el array vacio, se le ingresa un 0 paidIdDiscounts = [0]; } let maxID = Math.max(...paidIdDiscounts); // Se saca el id que tenga el mayoy valor. idDiscount = maxID + 1; // ID sigueinte a asignar. } return idDiscount; } if(this.view == 'TABLES'){ let isCoupon = typeof discount === 'object'; let dataDiscount = { discount : 0, title : isCoupon ? `Código ${discount.code}` : 'Dcto ingresado en caja', diner : dinerValue, id_payment : null, } //Se completa el resto de dataDiscount segun si es cupon o customDiscount if(isCoupon){ dataDiscount.id_coupon_code = discount.id_coupon_code; dataDiscount.coupon = discount; } else { dataDiscount.id_discount = setIDDiscount(dinerValue); dataDiscount.pos_discount = discount; } // Asegurar que la clave de diner existe if (!target.dinersDiscounts[dinerValue]) this.$set(target.dinersDiscounts, dinerValue, []); // De no existe, se inicializa vacio // Asignar el cupón o descuento personalizado if (isCoupon) { target.dinersDiscounts[dinerValue].push(dataDiscount); target.coupon = discount; } else { if (!this.$refs.order) requestSetDiscount(dataDiscount); //Peticion para guardar customDiscount. SOLO cuando se hace fuera orderForm target.customDiscount = discount; } // Recalcular subtotales si OrderForm está abierto if (this.$refs.order){ this.$refs.order.CloseModalDiscount(); CalculateSubtotals(); }else{ this.$refs.modalDiscount.modalDiscount = null; // Se cierra modalDiscount } }
Editor is loading...
Leave a Comment