diff --git a/src/server/models/orderscart.js b/src/server/models/orderscart.js
index 3ce5ad0..bb085a7 100755
--- a/src/server/models/orderscart.js
+++ b/src/server/models/orderscart.js
@@ -168,9 +168,86 @@ module.exports.getRecCartByUserId = async function (uid, idapp, numorder) {
}
module.exports.getOrdersCartById = async function (id) {
- let query = { _id: id };
- return await OrdersCart.findOne(query);
+ let query = { _id: ObjectID(id) };
+
+ const arrris = await OrdersCart.getOrdersCartByQuery(query);
+ return arrris && arrris.length > 0 ? arrris[0] : null;
+
+}
+
+module.exports.getOrdersCartByQuery = async function (query) {
+
+ let 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: 'items.order',
+ populate: {
+ path: 'idScontisticas',
+ model: 'Scontistica'
+ },
+ })
+ .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 => {
+ if (item.order) {
+ try {
+ 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 : '';
+ item.order.storehouse = item.order.idStorehouse;
+ item.order.idStorehouse = item.order.storehouse ? item.order.storehouse._id : '';
+ item.order.provider = item.order.idProvider;
+ item.order.idProvider = item.order.provider ? item.order.provider._id : '';
+ item.order.scontisticas = item.order.scontisticas;
+ item.order.idScontisticas = item.order.idScontisticas ? item.order.idScontisticas._id : '';
+ } catch (e) {
+ console.error('Err: ', e);
+ }
+ }
+ return item;
+ });
+ return order;
+ });
+
+ return myorderscart;
}
module.exports.getOrdersCartByUserId = async function (uid, idapp, numorder) {
@@ -186,6 +263,12 @@ module.exports.getOrdersCartByUserId = async function (uid, idapp, numorder) {
query.userId = uid;
}
+ myorderscart = await OrdersCart.getOrdersCartByQuery(query);
+
+ if (myorderscart)
+ console.log('*** Num myorderscart ', myorderscart.length);
+
+
/*transform: function(doc, populated) {
// Rinomina 'idProduct' a 'product' nei risultati della popolazione
populated.product = populated.idProduct;
@@ -193,76 +276,7 @@ module.exports.getOrdersCartByUserId = async function (uid, idapp, numorder) {
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: 'items.order',
- populate: {
- path: 'idScontisticas',
- model: 'Scontistica'
- },
- })
- .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 => {
- if (item.order) {
- try {
- 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 : '';
- item.order.storehouse = item.order.idStorehouse;
- item.order.idStorehouse = item.order.storehouse ? item.order.storehouse._id : '';
- item.order.provider = item.order.idProvider;
- item.order.idProvider = item.order.provider ? item.order.provider._id : '';
- item.order.scontisticas = item.order.scontisticas;
- item.order.idScontisticas = item.order.idScontisticas ? item.order.idScontisticas._id : '';
- } catch (e) {
- console.error('Err: ', e);
- }
- }
- return item;
- });
- return order;
- });
-
- console.log('*** Num myorderscart ', myorderscart.length);
return myorderscart
} catch (e) {
console.error('Err:', e);
@@ -438,7 +452,8 @@ module.exports.updateStockQtaDalMagazzino = async function (idorderscart) {
module.exports.updateCmd = async function (ordersCart, status, value) {
- let myOrderCart = await OrdersCart.findOne({ _id: ordersCart._id }).populate('items.order').lean();
+ let myOrderCart = await OrdersCart.findOne({ _id: ordersCart._id })
+ .populate('items.order').lean();
try {
if (!!myOrderCart) {
@@ -466,7 +481,7 @@ module.exports.updateCmd = async function (ordersCart, status, value) {
await OrdersCart.setFieldInOrdersById({ status }, myOrderCart);
- myOrderCart = await OrdersCart.findOne({ _id: ordersCart._id }).populate('items.order').lean();
+ myOrderCart = await OrdersCart.getOrdersCartById(ordersCart._id)
// myOrderCart = await OrdersCart.findOne({ _id: idorderscart });
return myOrderCart;
@@ -513,6 +528,39 @@ OrdersCartSchema.pre('save', async function (next) {
}
});
+module.exports.getmsgorderTelegram = async function (ordersCart) {
+ try {
+ const statusstr = shared_consts.getStatusStr(ordersCart.status);
+
+ let msg = '🟢✍️ Ordine n. ' + ordersCart.numorder
+
+ msg += '
Stato: ' + statusstr;
+
+ msg += '
🙎🏻♂️ ' + tools.getNomeCognomeEUserNameByUser(ordersCart.user)
+ if (ordersCart.note)
+ msg += '
Note: ' + ordersCart.note;
+
+
+ msg += '
Lista Prodotti:';
+ for (const ord of ordersCart.items) {
+ msg += '
';
+ msg += '✅ [' + ord.order.quantity + '] ' + ord.order.product.name + ' (' + ord.order.price + ' € ' + (ord.order.after_price ? ord.order.after_price : '') + ')';
+ }
+
+ msg += '
';
+
+ msg += '
Totale Prodotti: ' + ordersCart.totalQty;
+ msg += '
Totale Ordine: ' + ordersCart.totalPrice + ' € 💰';
+
+
+
+ return msg;
+
+ } catch (e) {
+ console.error('Err', e);
+ }
+};
+
module.exports.createIndexes((err) => {
if (err) throw err;
});
diff --git a/src/server/models/product.js b/src/server/models/product.js
index 2a1bd7d..7d34ef9 100755
--- a/src/server/models/product.js
+++ b/src/server/models/product.js
@@ -299,8 +299,12 @@ module.exports.findAllIdApp = async function (idapp, code, id) {
);
+ // console.log('query=', query);
+
let ris = await Product.aggregate(query)
+ // console.table('ris', ris);
+
return ris;
} catch (e) {
diff --git a/src/server/sendemail.js b/src/server/sendemail.js
index ef72463..5ed4f84 100755
--- a/src/server/sendemail.js
+++ b/src/server/sendemail.js
@@ -743,12 +743,13 @@ module.exports = {
sendEmail_OrderProduct: async function (lang, idapp, orders, user) {
try {
- const msginizio = 'Ordine n: ' + orders.numorder + ' ' + user.name + ' ' + user.surname;
+ const msg = await OrdersCart.getmsgorderTelegram(orders);
+ const msginizio = msg;
console.log(msginizio);
- if (process.env.SEND_EMAIL_ORDERS === '1') {
+ await telegrambot.sendMsgTelegramToTheManagers(idapp, msginizio);
- await telegrambot.sendMsgTelegramToTheManagers(idapp, msginizio);
+ if (process.env.SEND_EMAIL_ORDERS === '1') {
let mylocalsconf = {
idapp,
@@ -776,12 +777,13 @@ module.exports = {
sendEmail_Order: async function (lang, idapp, orders, user, ordertype, status) {
try {
- const msginizio = 'INIZIO - sendEmail_Order ' + ordertype + ': ' + tools.getNomeAppByIdApp(idapp);
+ const msg = await OrdersCart.getmsgorderTelegram(orders);
+ const msginizio = msg;
console.log(msginizio);
- if (process.env.SEND_EMAIL_ORDERS === '1') {
+ await telegrambot.sendMsgTelegramToTheManagers(idapp, msginizio);
- await telegrambot.sendMsgTelegramToTheManagers(idapp, msginizio);
+ if (process.env.SEND_EMAIL_ORDERS === '1') {
let mylocalsconf = {
idapp,
diff --git a/src/server/telegram/telegrambot.js b/src/server/telegram/telegrambot.js
index 8753b70..ad8c6f1 100755
--- a/src/server/telegram/telegrambot.js
+++ b/src/server/telegram/telegrambot.js
@@ -707,10 +707,20 @@ const MyTelegramBot = {
getAppTelegram: function () {
if (process.env.appTelegram) {
- return JSON.parse(process.env.appTelegram);
+ arrTeleg = JSON.parse(process.env.appTelegram);
} else {
- return appTelegram;
+ arrTeleg = appTelegram;
}
+ if (process.env.NODE_ENV === 'development')
+ arrTeleg = appTelegram_DEVELOP;
+ else if (process.env.NODE_ENV === 'test')
+ arrTeleg = MyTelegramBot.getAppTelegramTest();
+
+ const arrTelegFromSite = tools.getArrTelegramFromSite();
+ if (arrTelegFromSite.length > 0) {
+ arrTeleg = arrTelegFromSite;
+ }
+ return arrTeleg;
},
@@ -3437,14 +3447,14 @@ class Telegram {
if (!msg.from.username) {
// Non ha l'Username:
-
+
// Chiedi l'username sul Bot:
if (tools.getConfSiteOptionEnabledByIdApp(this.idapp, shared_consts.ConfSite.AskUsernameSulBot)) {
rec.status = Status.WAITFOR_USERNAME_TELEGRAM;
}
} else {
// Ha l'Username
-
+
// Chiedi l'invitante ?
if (tools.getConfSiteOptionEnabledByIdApp(this.idapp, shared_consts.ConfSite.AskInvitantesulBot)) {
rec.status = Status.WAITFOR_USERNAME_INVITANTE;
@@ -4072,15 +4082,6 @@ function getclTelegByidapp(idapp) {
//if (!tools.testing() || true) {
if (true) {
let arrTeleg = MyTelegramBot.getAppTelegram();
- if (process.env.NODE_ENV === 'development')
- arrTeleg = appTelegram_DEVELOP;
- else if (process.env.NODE_ENV === 'test')
- arrTeleg = MyTelegramBot.getAppTelegramTest();
-
- const arrTelegFromSite = tools.getArrTelegramFromSite();
- if (arrTelegFromSite.length > 0) {
- arrTeleg = arrTelegFromSite;
- }
var internetAvailable = require('internet-available');
diff --git a/src/server/tools/shared_nodejs.js b/src/server/tools/shared_nodejs.js
index 6f10556..61649e8 100755
--- a/src/server/tools/shared_nodejs.js
+++ b/src/server/tools/shared_nodejs.js
@@ -407,6 +407,50 @@ module.exports = {
CANCELLATI: { label: 'Cancellati', value: 10, icon: 'delete', color: 'text-red' }, //CANCELED
},
+ OrderStatusStr: [
+ {
+ label: 'Nessuno',
+ value: 0,
+ },
+ {
+ label: 'In Carrello',
+ value: 1,
+ },
+ {
+ label: 'Ordine in Lavorazione',
+ value: 2,
+ },
+ {
+ label: 'Ordine Confermato',
+ value: 3,
+ },
+ {
+ label: 'Pagato',
+ value: 4,
+ },
+ {
+ label: 'Consegnato',
+ value: 5,
+ },
+ {
+ label: 'Spedito',
+ value: 6,
+ },
+ {
+ label: 'Ricevuto',
+ value: 7,
+ },
+ {
+ label: 'Completato',
+ value: 8,
+ },
+ {
+ label: 'Cancellato',
+ value: 10,
+ },
+
+ ],
+
OrderStatusView: {
CHECKOUT_SENT: 2,
ORDER_CONFIRMED: 3,
@@ -864,5 +908,9 @@ module.exports = {
return ''
},
+ getStatusStr(status) {
+ const trovatorec = this.OrderStatusStr.find((rec) => rec.value === status)
+ return (trovatorec) ? trovatorec.label : ''
+ },
};