From 1ca72118f11c22022a7ff2d6037295a55e340db2 Mon Sep 17 00:00:00 2001 From: Surya Paolo Date: Fri, 15 Dec 2023 23:36:43 +0100 Subject: [PATCH] lista ordini aggiornata --- src/server/models/orderscart.js | 18 +++++++++++++++++- src/server/models/site.js | 3 +++ src/server/models/user.js | 10 ++++++++++ src/server/router/cart_router.js | 5 ++++- src/server/router/products_router.js | 12 ++++++++++-- 5 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/server/models/orderscart.js b/src/server/models/orderscart.js index f653b0f..023d8d7 100755 --- a/src/server/models/orderscart.js +++ b/src/server/models/orderscart.js @@ -19,6 +19,7 @@ const OrdersCartSchema = new Schema({ type: String }, numorder: { type: Number }, + numord_pers: { type: Number }, userId: { type: Schema.Types.ObjectId, ref: 'User' }, totalQty: { type: Number, default: 0 }, totalPrice: { type: Number, default: 0 }, @@ -110,7 +111,21 @@ module.exports.getFieldsForSearch = function () { }; -module.exports.getLastNumOrder = async function (uid, idapp) { +module.exports.getLastNumOrder = async function (idapp) { + let query = { idapp, deleted: false } + let numorder = 100; + let numorderrec = await OrdersCart.find(query).sort({ numorder: -1 }).limit(1); + + if (numorderrec && numorderrec.length > 0) + numorder = numorderrec[0].numorder; + else + numorder = 100; + + return numorder; + +}; + +module.exports.getLastNumOrdPers = 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); @@ -266,6 +281,7 @@ module.exports.updateOrdersCartById = function (id, newOrdersCart, callback) { userId: userId, status: newOrdersCart.status, numorder: newOrdersCart.numorder, + numord_pers: newOrdersCart.numord_pers, note: newOrdersCart.note, modify_at: new Date(), } diff --git a/src/server/models/site.js b/src/server/models/site.js index 4be0b69..da043f6 100755 --- a/src/server/models/site.js +++ b/src/server/models/site.js @@ -176,6 +176,9 @@ const SiteSchema = new Schema({ info2: { type: String, default: '' }, cell: { type: String, default: '' }, }, + ecomm: { + enablePreOrders: { type: Boolean, default: false }, + } }); var Site = module.exports = mongoose.model('Site', SiteSchema); diff --git a/src/server/models/user.js b/src/server/models/user.js index 87fb04a..bd376b8 100755 --- a/src/server/models/user.js +++ b/src/server/models/user.js @@ -625,6 +625,16 @@ UserSchema.statics.isManager = function (perm) { } }; +UserSchema.statics.isManagerById = async function (id) { + try { + const ris = await User.findOne({ _id: id }, { perm: 1 }).lean(); + return ((ris.perm & shared_consts.Permissions.Manager) === + shared_consts.Permissions.Manager); + } catch (e) { + return false; + } +}; + UserSchema.statics.isEditor = function (perm) { try { return ((perm & shared_consts.Permissions.Editor) === diff --git a/src/server/router/cart_router.js b/src/server/router/cart_router.js index 51a63b3..bf9d903 100755 --- a/src/server/router/cart_router.js +++ b/src/server/router/cart_router.js @@ -224,7 +224,8 @@ router.post('/:userId/createorderscart', authenticate, async function (req, res, try { const mycart = await Cart.findOne({ _id: cart_id }); - let numorder = await OrdersCart.getLastNumOrder(userId, idapp); + let numorder = await OrdersCart.getLastNumOrder(idapp); + let numord_pers = await OrdersCart.getLastNumOrdPers(userId, idapp); // Esiste l'ordine ? let myorderCart = await OrdersCart.getRecCartByUserId(userId, idapp, numorder); @@ -232,6 +233,7 @@ router.post('/:userId/createorderscart', authenticate, async function (req, res, // crea il nuovo numero d'ordine numorder++; + numord_pers++; // SE non esiste allora lo creo ! myorderCart = new OrdersCart({ @@ -243,6 +245,7 @@ router.post('/:userId/createorderscart', authenticate, async function (req, res, status, note, numorder, + numord_pers, created_at: new Date(), modify_at: new Date(), }) diff --git a/src/server/router/products_router.js b/src/server/router/products_router.js index 8a9bb77..fcfd9f2 100755 --- a/src/server/router/products_router.js +++ b/src/server/router/products_router.js @@ -7,6 +7,8 @@ var server_constants = require('../tools/server_constants'); var { Project } = require('../models/project'); +const { User } = require('../models/user'); + var { authenticate, auth_default } = require('../middleware/authenticate'); const _ = require('lodash'); @@ -30,8 +32,14 @@ router.post('/', auth_default, async function (req, res, next) { const idapp = req.body.idapp; let userId = req.body.userId; - var products = await Product.findAllIdApp(idapp, ""); - var orders = await OrdersCart.getOrdersCartByUserId(userId, idapp, 0); + let products = await Product.findAllIdApp(idapp, ""); + let orders = null; + if (await User.isManagerById(userId)) { + // Prende Tutti gli Ordini ! + orders = await OrdersCart.getOrdersCartByUserId('ALL', idapp, 0); + } else { + orders = await OrdersCart.getOrdersCartByUserId(userId, idapp, 0); + } if (products) res.send({ code: server_constants.RIS_CODE_OK, products, orders });