- aggiornato carrello e bottoni sul catalogo
This commit is contained in:
@@ -6,6 +6,7 @@ const { ObjectId } = require('mongodb');
|
||||
const Gasordine = require('../models/gasordine');
|
||||
|
||||
const Order = require('../models/order');
|
||||
const OrderClass = require('../modules/orderclass');
|
||||
|
||||
const Scontistica = require('../models/scontistica');
|
||||
|
||||
@@ -264,47 +265,9 @@ class Cart {
|
||||
return order.price * qtyTotale;
|
||||
}
|
||||
|
||||
let scontiApplicati = [];
|
||||
let qtaRimanente = qtyTotale;
|
||||
let qtaNonScontata = 0;
|
||||
const { sconti_da_applicare, qtanonscontata } = OrderClass.applyNonCumulativeDiscounts(order, sconti);
|
||||
|
||||
// Applica sconti non cumulativi
|
||||
while (qtaRimanente > 0) {
|
||||
let scontoScelto = null;
|
||||
let scontoVantaggioso = 0;
|
||||
for (const sconto of sconti.filter((s) => !s.cumulativo)) {
|
||||
if (qtaRimanente >= sconto.qta) {
|
||||
const scontoApplicato =
|
||||
sconto.perc_sconto > 0 ? qtaRimanente * order.price * (1 - sconto.perc_sconto / 100) : sconto.price;
|
||||
if (scontoApplicato > scontoVantaggioso) {
|
||||
scontoVantaggioso = scontoApplicato;
|
||||
scontoScelto = { ...sconto, qtadascontare: qtaRimanente };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (scontoScelto) {
|
||||
scontiApplicati.push(scontoScelto);
|
||||
qtaRimanente -= scontoScelto.qtadascontare;
|
||||
} else {
|
||||
qtaNonScontata = qtaRimanente;
|
||||
qtaRimanente = 0;
|
||||
}
|
||||
}
|
||||
|
||||
let prezzoTotale = 0;
|
||||
|
||||
for (const sconto of scontiApplicati) {
|
||||
if (sconto.perc_sconto > 0) {
|
||||
prezzoTotale += sconto.qtadascontare * order.price * (1 - sconto.perc_sconto / 100);
|
||||
} else if (sconto.price > 0) {
|
||||
prezzoTotale += sconto.price;
|
||||
}
|
||||
}
|
||||
|
||||
if (qtaNonScontata > 0) {
|
||||
prezzoTotale += qtaNonScontata * order.price;
|
||||
}
|
||||
const prezzoTotale = OrderClass.calculateDiscountedPrice(order, sconti_da_applicare, qtanonscontata);
|
||||
|
||||
return prezzoTotale;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user