Corretto Ordini e visualizzazione dei Totali
This commit is contained in:
@@ -6,8 +6,8 @@ const shared_consts = require('../tools/shared_nodejs');
|
||||
const Order = require('../models/order');
|
||||
var { User } = require('../models/user');
|
||||
|
||||
const Storehouse = require('../models/storehouse');
|
||||
const Provider = require('../models/provider');
|
||||
const Storehouse = require('../models/storehouse');
|
||||
const Provider = require('../models/provider');
|
||||
const Product = require('../models/product');
|
||||
|
||||
const tools = require('../tools/general');
|
||||
@@ -35,7 +35,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 stockQty)
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
@@ -141,10 +141,10 @@ module.exports.getStatusCartByUserId = async function (uid, idapp, numorder) {
|
||||
}
|
||||
|
||||
module.exports.getRecCartByUserId = async function (uid, idapp, numorder) {
|
||||
let query = { userId: uid, idapp, status: { $gte: shared_consts.OrderStatus.CHECKOUT_SENT } }
|
||||
let query = { userId: uid, idapp, status: { $lt: shared_consts.OrderStatus.CHECKOUT_SENT } }
|
||||
let myorderscart = null;
|
||||
if (numorder > 0) {
|
||||
query = { userId: uid, idapp, numorder, status: { $gte: shared_consts.OrderStatus.CHECKOUT_SENT } }
|
||||
query = { userId: uid, idapp, numorder, status: { $lt: shared_consts.OrderStatus.CHECKOUT_SENT } }
|
||||
}
|
||||
|
||||
myorderscart = await OrdersCart.findOne(query).lean();
|
||||
@@ -160,171 +160,91 @@ module.exports.getOrdersCartById = async function (id) {
|
||||
}
|
||||
module.exports.getOrdersCartByUserId = async function (uid, idapp, numorder) {
|
||||
|
||||
let query = { idapp, status: { $gte: shared_consts.OrderStatus.CHECKOUT_SENT }, deleted: false }
|
||||
let myorderscart = null;
|
||||
if (numorder > 0) {
|
||||
query.numorder = numorder;
|
||||
}
|
||||
try {
|
||||
let query = { idapp, status: { $gte: shared_consts.OrderStatus.CHECKOUT_SENT }, deleted: false }
|
||||
let myorderscart = null;
|
||||
if (numorder > 0) {
|
||||
query.numorder = numorder;
|
||||
}
|
||||
|
||||
if (uid !== 'ALL') {
|
||||
query.userId = uid;
|
||||
}
|
||||
if (uid !== 'ALL') {
|
||||
query.userId = uid;
|
||||
}
|
||||
|
||||
myorderscart = await OrdersCart.find(query).populate('items.order')
|
||||
.populate({
|
||||
path: 'items.order',
|
||||
populate: {
|
||||
path: 'idProduct',
|
||||
model: 'Product'
|
||||
},
|
||||
/*transform: function(doc, populated) {
|
||||
// Rinomina 'idProduct' a 'product' nei risultati della popolazione
|
||||
populated.product = populated.idProduct;
|
||||
delete populated.idProduct;
|
||||
return populated;
|
||||
},*/
|
||||
})
|
||||
.populate({
|
||||
path: 'items.order',
|
||||
populate: {
|
||||
path: 'idProducer',
|
||||
model: 'Producer'
|
||||
},
|
||||
})
|
||||
.populate({
|
||||
path: 'items.order',
|
||||
populate: {
|
||||
path: 'idProvider',
|
||||
model: 'Provider'
|
||||
},
|
||||
})
|
||||
.populate({
|
||||
path: 'items.order',
|
||||
populate: {
|
||||
path: 'idStorehouse',
|
||||
model: 'Storehouse'
|
||||
},
|
||||
/*transform: function(doc, populated) {
|
||||
// Rinomina 'idProduct' a 'product' nei risultati della popolazione
|
||||
populated.storehouse = populated.idStorehouse;
|
||||
delete populated.idStorehouse;
|
||||
return populated;
|
||||
},*/
|
||||
})
|
||||
.populate('userId').lean();
|
||||
/*transform: function(doc, populated) {
|
||||
// Rinomina 'idProduct' a 'product' nei risultati della popolazione
|
||||
populated.product = populated.idProduct;
|
||||
delete populated.idProduct;
|
||||
return populated;
|
||||
},*/
|
||||
|
||||
myorderscart = await OrdersCart.find(query)
|
||||
.populate('items.order')
|
||||
.populate({
|
||||
path: 'items.order',
|
||||
populate: {
|
||||
path: 'idProduct',
|
||||
model: 'Product'
|
||||
},
|
||||
})
|
||||
.populate({
|
||||
path: 'items.order',
|
||||
populate: {
|
||||
path: 'idProducer',
|
||||
model: 'Producer'
|
||||
},
|
||||
})
|
||||
.populate({
|
||||
path: 'items.order',
|
||||
populate: {
|
||||
path: 'idProvider',
|
||||
model: 'Provider'
|
||||
},
|
||||
})
|
||||
.populate({
|
||||
path: 'items.order',
|
||||
populate: {
|
||||
path: 'idStorehouse',
|
||||
model: 'Storehouse'
|
||||
},
|
||||
})
|
||||
.populate({
|
||||
path: 'userId',
|
||||
model: 'User',
|
||||
select: '_id name surname username profile', // Specify the fields you want to retrieve
|
||||
})
|
||||
.lean();
|
||||
|
||||
myorderscart = myorderscart.map(order => {
|
||||
order.user = order.userId
|
||||
order.userId = order.user._id
|
||||
order.items = order.items.map(item => {
|
||||
item.order.product = item.order.idProduct;
|
||||
delete item.order.idProduct;
|
||||
item.order.producer = item.order.idProducer;
|
||||
delete item.order.idProducer;
|
||||
item.order.storehouse = item.order.idStorehouse;
|
||||
delete item.order.idStorehouse;
|
||||
item.order.provider = item.order.idProvider;
|
||||
delete item.order.idProvider;
|
||||
if (item.order) {
|
||||
try {
|
||||
item.order.product = item.order.idProduct;
|
||||
item.order.idProduct = item.order.product._id;
|
||||
item.order.producer = item.order.idProducer;
|
||||
item.order.idProducer = item.order.producer._id;
|
||||
item.order.storehouse = item.order.idStorehouse;
|
||||
item.order.idStorehouse = item.order.storehouse._id;
|
||||
item.order.provider = item.order.idProvider;
|
||||
item.order.idProvider = item.order.provider._id;
|
||||
} catch (e) {
|
||||
console.error('Err: ', e);
|
||||
}
|
||||
}
|
||||
return item;
|
||||
});
|
||||
return order;
|
||||
});
|
||||
|
||||
/*for (let ind = 0; ind < myorderscart.length; ind++) {
|
||||
for (const idkey in myorderscart[ind].items) {
|
||||
try {
|
||||
let idorder = myorderscart[ind].items[idkey]._id.toString();
|
||||
const myorder = myorderscart[ind].items[idkey].order;
|
||||
if (!!myorder) {
|
||||
idorder = myorderscart[ind].items[idkey].order._id.toString();
|
||||
}
|
||||
// myorderscart[ind].nameSurname = await User.getNameSurnameById(idapp, myorderscart[ind].userId);
|
||||
// const myord = await Order.getTotalOrderById(idorder);
|
||||
// if (myord.length > 0) {
|
||||
// myorderscart[ind].items[idkey].order = myord[0];
|
||||
// }
|
||||
} catch (e) {
|
||||
console.log('err', e);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
/* if (!!mycart) {
|
||||
for (const idkey in mycart.items) {
|
||||
try {
|
||||
idorder = mycart.items[idkey]._id.toString();
|
||||
const myorder = mycart.items[idkey].order;
|
||||
if (!!myorder) {
|
||||
idorder = mycart.items[idkey].order._id.toString();
|
||||
}
|
||||
const myord = await Order.getTotalOrderById(idorder);
|
||||
if (myord.length > 0) {
|
||||
mycart.items[idkey]._doc.order = myord[0];
|
||||
}
|
||||
} catch (e) {
|
||||
console.log('err', e);
|
||||
}
|
||||
}
|
||||
return mycart;
|
||||
}*/
|
||||
return myorderscart
|
||||
return myorderscart
|
||||
} catch (e) {
|
||||
console.error('Err:', e);
|
||||
}
|
||||
// return null;
|
||||
}
|
||||
|
||||
module.exports.getOrdersCartByDepartmentId = async function (depId, idapp) {
|
||||
let query = {
|
||||
idapp, status: { $gte: shared_consts.OrderStatus.CHECKOUT_SENT },
|
||||
deleted: false,
|
||||
}
|
||||
const myorderscart = await OrdersCart.find(query).lean();
|
||||
|
||||
for (let ind = 0; ind < myorderscart.length; ind++) {
|
||||
for (const idkey in myorderscart[ind].items) {
|
||||
try {
|
||||
let idorder = myorderscart[ind].items[idkey]._id.toString();
|
||||
const myorder = myorderscart[ind].items[idkey].order;
|
||||
if (!!myorder) {
|
||||
idorder = myorderscart[ind].items[idkey].order._id.toString();
|
||||
}
|
||||
myorderscart[ind].nameSurname = await User.getNameSurnameById(idapp, myorderscart[ind].userId);
|
||||
const myord = await Order.getTotalOrderById(idorder);
|
||||
if (myord.length > 0) {
|
||||
myorderscart[ind].items[idkey].order = myord[0];
|
||||
}
|
||||
} catch (e) {
|
||||
console.log('err', e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return myorderscart
|
||||
// return null;
|
||||
}
|
||||
|
||||
module.exports.getOrderById = async function (Id, idapp) {
|
||||
let query = { _id: Id, idapp, status: { $gte: shared_consts.OrderStatus.CHECKOUT_SENT } }
|
||||
const myorderscart = await OrdersCart.find(query).lean();
|
||||
|
||||
for (let ind = 0; ind < myorderscart.length; ind++) {
|
||||
for (const idkey in myorderscart[ind].items) {
|
||||
try {
|
||||
let idorder = myorderscart[ind].items[idkey]._id.toString();
|
||||
const myorder = myorderscart[ind].items[idkey].order;
|
||||
if (!!myorder) {
|
||||
idorder = myorderscart[ind].items[idkey].order._id.toString();
|
||||
}
|
||||
myorderscart[ind].nameSurname = await User.getNameSurnameById(idapp, myorderscart[ind].userId);
|
||||
const myord = await Order.getTotalOrderById(idorder);
|
||||
if (myord.length > 0) {
|
||||
myorderscart[ind].items[idkey].order = myord[0];
|
||||
}
|
||||
} catch (e) {
|
||||
console.log('err', e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return myorderscart
|
||||
// return null;
|
||||
}
|
||||
|
||||
module.exports.updateOrdersCartById = function (id, newOrdersCart, callback) {
|
||||
let query = {
|
||||
@@ -362,23 +282,30 @@ module.exports.updateOrdersCartById = function (id, newOrdersCart, callback) {
|
||||
|
||||
module.exports.setFieldInOrdersById = async function (objtoset, myOrderCart) {
|
||||
|
||||
const ris = await OrdersCart.findOneAndUpdate(
|
||||
{ _id: myOrderCart._id },
|
||||
{
|
||||
$set: objtoset
|
||||
},
|
||||
{ new: false }
|
||||
)
|
||||
try {
|
||||
let ris2 = null;
|
||||
// Imposta su tutti i singoli prodotti ordinati (Order)
|
||||
for (const recitem of myOrderCart.items) {
|
||||
ris2 = await Order.findOneAndUpdate(
|
||||
{ _id: recitem.order._id },
|
||||
{
|
||||
$set: objtoset
|
||||
},
|
||||
{ new: false }
|
||||
)
|
||||
// console.log('ris', ris2);
|
||||
}
|
||||
|
||||
// Imposta su tutti i singoli prodotti ordinati (Order)
|
||||
for (const order of myOrderCart.items) {
|
||||
await Order.findOneAndUpdate(
|
||||
{ _id: order._id },
|
||||
const ris = await OrdersCart.findOneAndUpdate(
|
||||
{ _id: myOrderCart._id },
|
||||
{
|
||||
$set: objtoset
|
||||
},
|
||||
{ new: false }
|
||||
)
|
||||
|
||||
} catch (e) {
|
||||
console.log('Err', e);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -463,7 +390,6 @@ module.exports.updateStockQtaDalMagazzino = async function (idorderscart) {
|
||||
|
||||
if (myorderscart) {
|
||||
for (const idkey in myorderscart.items) {
|
||||
let idorder = myorderscart.items[idkey]._id;
|
||||
let order = myorderscart.items[idkey].order;
|
||||
|
||||
if (!order.evaso) {
|
||||
|
||||
Reference in New Issue
Block a user