aggiornato stockQta quando l'ordine viene evaso
This commit is contained in:
@@ -6,6 +6,8 @@ const shared_consts = require('../tools/shared_nodejs');
|
||||
const Order = require('../models/order');
|
||||
var { User } = require('../models/user');
|
||||
|
||||
const Product = require('../models/product');
|
||||
|
||||
const tools = require('../tools/general');
|
||||
|
||||
const { ObjectID } = require('mongodb');
|
||||
@@ -66,6 +68,13 @@ const OrdersCartSchema = new Schema({
|
||||
date_consegnato: {
|
||||
type: Date
|
||||
},
|
||||
ricevuto: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
date_ricevuto: {
|
||||
type: Date
|
||||
},
|
||||
note: {
|
||||
type: String
|
||||
},
|
||||
@@ -106,7 +115,7 @@ module.exports.getLastNumOrder = async function (uid, idapp) {
|
||||
let query = { userId: uid, idapp, deleted: false }
|
||||
let numorder = 1;
|
||||
let numorderrec = await OrdersCart.find(query).sort({ numorder: -1 }).limit(1);
|
||||
|
||||
|
||||
if (numorderrec && numorderrec.length > 0)
|
||||
numorder = numorderrec[0].numorder;
|
||||
else
|
||||
@@ -366,9 +375,60 @@ module.exports.setCompletatoById = async function (id, completato) {
|
||||
)
|
||||
}
|
||||
|
||||
module.exports.setRicevutoById = async function (id, completato) {
|
||||
|
||||
return await OrdersCart.findOneAndUpdate(
|
||||
{ _id: id },
|
||||
{
|
||||
$set: {
|
||||
ricevuto,
|
||||
date_ricevuto: new Date(),
|
||||
}
|
||||
},
|
||||
{ new: false }
|
||||
)
|
||||
}
|
||||
|
||||
module.exports.createOrdersCart = async function (newOrdersCart) {
|
||||
return await newOrdersCart.save()
|
||||
}
|
||||
module.exports.updateStockQtaDalMagazzino = async function (idorderscart) {
|
||||
|
||||
try {
|
||||
|
||||
const myorderscart = await OrdersCart.findOne({ _id: idorderscart }).populate('items.order').lean();
|
||||
|
||||
if (myorderscart) {
|
||||
for (const idkey in myorderscart.items) {
|
||||
let idorder = myorderscart.items[idkey]._id;
|
||||
let order = myorderscart.items[idkey].order;
|
||||
|
||||
const ris = await Order.findOneAndUpdate(
|
||||
{ _id: idorder },
|
||||
{
|
||||
$set: {
|
||||
completato: true,
|
||||
date_completato: new Date(),
|
||||
}
|
||||
},
|
||||
{ new: false }
|
||||
)
|
||||
|
||||
const update = {
|
||||
$inc: {
|
||||
stockQty: -order.quantity
|
||||
}
|
||||
};
|
||||
await Product.findOneAndUpdate({ _id: order.idProduct }, update, { new: false });
|
||||
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('Err', e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports.updateCmd = async function (idorderscart, cmd, value) {
|
||||
|
||||
let myOrderCart = await OrdersCart.findOne({ _id: idorderscart });
|
||||
@@ -378,6 +438,11 @@ module.exports.updateCmd = async function (idorderscart, cmd, value) {
|
||||
const id = myOrderCart._id;
|
||||
if (cmd === shared_consts.OrderStatus.ORDER_CONFIRMED) {
|
||||
ris = await OrdersCart.setEvasoById(id, value);
|
||||
|
||||
// Aggiorna anche il Magazzino, togliendo le quantità in Stock
|
||||
if (value) {
|
||||
OrdersCart.updateStockQtaDalMagazzino(id);
|
||||
}
|
||||
} else if (cmd === shared_consts.OrderStatus.DELIVERED) {
|
||||
ris = await OrdersCart.setConsegnatoById(id, value);
|
||||
} else if (cmd === shared_consts.OrderStatus.SHIPPED) {
|
||||
@@ -386,6 +451,8 @@ module.exports.updateCmd = async function (idorderscart, cmd, value) {
|
||||
ris = await OrdersCart.setPagatoById(id, value);
|
||||
} else if (cmd === shared_consts.OrderStatus.COMPLETED) {
|
||||
ris = await OrdersCart.setCompletatoById(id, value);
|
||||
} else if (cmd === shared_consts.OrderStatus.RECEIVED) {
|
||||
ris = await OrdersCart.setRicevutoById(id, value);
|
||||
}
|
||||
|
||||
// myOrderCart = await OrdersCart.findOne({ _id: idorderscart });
|
||||
|
||||
Reference in New Issue
Block a user