- preordinabili corretti + altro
This commit is contained in:
@@ -39,7 +39,7 @@ const OrdersCartSchema = new Schema({
|
||||
type: Number,
|
||||
Default: 0,
|
||||
},
|
||||
evaso: { // e quindi è stato tolto dal magazzino (aggiornando il campo stockQty)
|
||||
evaso: { // e quindi è stato tolto dal magazzino (aggiornando il campo stockBloccatiQty)
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
@@ -60,11 +60,11 @@ const OrdersCartSchema = new Schema({
|
||||
date_spedito: {
|
||||
type: Date
|
||||
},
|
||||
completato: {
|
||||
consegnato: { // e quindi è stato tolto dal magazzino (aggiornando il campo stockQty e stockBloccatiQty)
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
date_completato: {
|
||||
date_consegnato: {
|
||||
type: Date
|
||||
},
|
||||
consegnato: {
|
||||
@@ -244,10 +244,10 @@ module.exports.getOrdersCartByQuery = async function (query) {
|
||||
if (item.order) {
|
||||
try {
|
||||
if (item.order.idProduct) {
|
||||
item.order.idProduct.productInfo = item.order.idProduct.productInfo ? item.order.idProduct.productInfo : {...item.order.idProduct.idProductInfo};
|
||||
item.order.idProduct.productInfo = item.order.idProduct.productInfo ? item.order.idProduct.productInfo : { ...item.order.idProduct.idProductInfo };
|
||||
item.order.idProduct.idProductInfo = item.order.idProduct.productInfo ? item.order.idProduct.productInfo._id : '';
|
||||
}
|
||||
item.order.product = {...item.order.idProduct};
|
||||
item.order.product = { ...item.order.idProduct };
|
||||
item.order.idProduct = item.order.product ? item.order.product._id : '';
|
||||
item.order.producer = item.order.idProducer;
|
||||
item.order.idProducer = item.order.producer ? item.order.producer._id : '';
|
||||
@@ -374,6 +374,23 @@ module.exports.setFieldInOrdersById = async function (objtoset, myOrderCart) {
|
||||
|
||||
}
|
||||
|
||||
module.exports.deleteRecsInOrdersById = async function (myOrderCart) {
|
||||
|
||||
try {
|
||||
let ris2 = null;
|
||||
// Imposta su tutti i singoli prodotti ordinati (Order)
|
||||
for (const recitem of myOrderCart.items) {
|
||||
ris2 = await Order.findOneAndRemove({ _id: recitem.order._id })
|
||||
}
|
||||
|
||||
const ris = await OrdersCart.findOneAndRemove({ _id: myOrderCart._id })
|
||||
|
||||
} catch (e) {
|
||||
console.log('Err', e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports.setConsegnatoById = async function (value, myOrderCart) {
|
||||
|
||||
let objtoset = {
|
||||
@@ -411,11 +428,11 @@ module.exports.setPagatoById = async function (value, myOrderCart) {
|
||||
|
||||
}
|
||||
|
||||
module.exports.setCompletatoById = async function (value, myOrderCart) {
|
||||
module.exports.setConsegnatoById = async function (value, myOrderCart) {
|
||||
|
||||
let objtoset = {
|
||||
completato: value,
|
||||
date_completato: new Date(),
|
||||
consegnato: value,
|
||||
date_consegnato: new Date(),
|
||||
};
|
||||
|
||||
return await OrdersCart.setFieldInOrdersById(objtoset, myOrderCart);
|
||||
@@ -443,9 +460,15 @@ module.exports.setRicevutoById = async function (value, myOrderCart) {
|
||||
return await OrdersCart.setFieldInOrdersById(objtoset, myOrderCart);
|
||||
}
|
||||
|
||||
module.exports.deleteReally = async function (value, myOrderCart) {
|
||||
|
||||
return await OrdersCart.deleteRecsInOrdersById(myOrderCart);
|
||||
}
|
||||
|
||||
module.exports.createOrdersCart = async function (newOrdersCart) {
|
||||
return await newOrdersCart.save()
|
||||
}
|
||||
|
||||
module.exports.updateStockQtaDalMagazzino = async function (idorderscart) {
|
||||
|
||||
try {
|
||||
@@ -459,13 +482,48 @@ module.exports.updateStockQtaDalMagazzino = async function (idorderscart) {
|
||||
if (!order.evaso) {
|
||||
let update = {
|
||||
$inc: {
|
||||
stockQty: -order.quantity
|
||||
stockQty: -order.quantity,
|
||||
stockBloccatiQty: order.quantity
|
||||
}
|
||||
};
|
||||
await Product.findOneAndUpdate({ _id: order.idProduct }, update, { new: false });
|
||||
|
||||
update = {
|
||||
$inc: {
|
||||
bookableQty: -order.quantitypreordered,
|
||||
bookableBloccatiQty: order.quantitypreordered
|
||||
}
|
||||
};
|
||||
await Product.findOneAndUpdate({ _id: order.idProduct }, update, { new: false });
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('Err', e);
|
||||
}
|
||||
|
||||
}
|
||||
module.exports.updateStockBloccatiQtaDalMagazzino = async function (idorderscart) {
|
||||
|
||||
try {
|
||||
|
||||
const myorderscart = await OrdersCart.findOne({ _id: idorderscart }).populate('items.order').lean();
|
||||
|
||||
if (myorderscart) {
|
||||
for (const idkey in myorderscart.items) {
|
||||
let order = myorderscart.items[idkey].order;
|
||||
|
||||
if (!order.consegnato) {
|
||||
let update = {
|
||||
$inc: {
|
||||
stockBloccatiQty: -order.quantity
|
||||
}
|
||||
};
|
||||
await Product.findOneAndUpdate({ _id: order.idProduct }, update, { new: false });
|
||||
update = {
|
||||
$inc: {
|
||||
bookableQty: -order.quantitypreordered
|
||||
bookableBloccatiQty: -order.quantitypreordered
|
||||
}
|
||||
};
|
||||
await Product.findOneAndUpdate({ _id: order.idProduct }, update, { new: false });
|
||||
@@ -491,27 +549,34 @@ module.exports.updateCmd = async function (ordersCart, status, value) {
|
||||
const id = myOrderCart._id;
|
||||
if (status === shared_consts.OrderStatus.ORDER_CONFIRMED) {
|
||||
|
||||
// Aggiorna anche il Magazzino, togliendo le quantità in Stock
|
||||
// Aggiorna anche il Magazzino, togliendo le quantità in Stock e aggiungendole su quelle bloccate
|
||||
if (value) {
|
||||
await OrdersCart.updateStockQtaDalMagazzino(id);
|
||||
}
|
||||
ris = await OrdersCart.setEvasoById(value, myOrderCart);
|
||||
|
||||
} else if (status === shared_consts.OrderStatus.DELIVERED) {
|
||||
} else if (status === shared_consts.OrderStatus.PAYED) {
|
||||
ris = await OrdersCart.setPagatoById(value, myOrderCart);
|
||||
} else if (status === shared_consts.OrderStatus.DELIVERED) { // Consegnato
|
||||
if (value) {
|
||||
await OrdersCart.updateStockBloccatiQtaDalMagazzino(id);
|
||||
}
|
||||
ris = await OrdersCart.setConsegnatoById(value, myOrderCart);
|
||||
} else if (status === shared_consts.OrderStatus.SHIPPED) {
|
||||
ris = await OrdersCart.setSpeditoById(value, myOrderCart);
|
||||
} else if (status === shared_consts.OrderStatus.PAYED) {
|
||||
ris = await OrdersCart.setPagatoById(value, myOrderCart);
|
||||
} else if (status === shared_consts.OrderStatus.COMPLETED) {
|
||||
ris = await OrdersCart.setCompletatoById(value, myOrderCart);
|
||||
} else if (status === shared_consts.OrderStatus.RECEIVED) {
|
||||
ris = await OrdersCart.setRicevutoById(value, myOrderCart);
|
||||
} else if (status === shared_consts.OrderStatus.DELETE_REALLY) {
|
||||
ris = await OrdersCart.deleteReally(value, myOrderCart);
|
||||
}
|
||||
|
||||
await OrdersCart.setFieldInOrdersById({ status }, myOrderCart);
|
||||
if (status !== shared_consts.OrderStatus.DELETE_REALLY) {
|
||||
|
||||
myOrderCart = await OrdersCart.getOrdersCartById(ordersCart._id)
|
||||
await OrdersCart.setFieldInOrdersById({ status }, myOrderCart);
|
||||
|
||||
|
||||
myOrderCart = await OrdersCart.getOrdersCartById(ordersCart._id)
|
||||
}
|
||||
// myOrderCart = await OrdersCart.findOne({ _id: idorderscart });
|
||||
|
||||
return myOrderCart;
|
||||
|
||||
Reference in New Issue
Block a user