From 7bf549569d26cbbc09c5d170ad32aaedcb948820 Mon Sep 17 00:00:00 2001 From: Surya Paolo Date: Sat, 13 Jan 2024 00:28:53 +0100 Subject: [PATCH] - edit campi prodotti - edit ordini --- src/server/models/cart.js | 4 ++- src/server/models/order.js | 13 ++++++++ src/server/models/orderscart.js | 43 ++++++++++++++++++++++++ src/server/router/cart_router.js | 10 +++--- src/server/router/orders_router.js | 50 ++++++++++++++++++++++++++-- src/server/router/products_router.js | 14 ++++++++ 6 files changed, 126 insertions(+), 8 deletions(-) diff --git a/src/server/models/cart.js b/src/server/models/cart.js index 9e21e6d..3d5cfdb 100755 --- a/src/server/models/cart.js +++ b/src/server/models/cart.js @@ -106,6 +106,7 @@ module.exports.updateCartByCartId = async function (cartId, newCart) { const items = newCart.items; const totalQty = newCart.totalQty; const totalPrice = newCart.totalPrice; + const note = newCart.note; const modify_at = new Date(); @@ -114,7 +115,8 @@ module.exports.updateCartByCartId = async function (cartId, newCart) { items, totalPrice, totalQty, - modify_at, + note, + modify_at: new Date(), }, }, { new: false }).lean().then((ris) => { return ris; diff --git a/src/server/models/order.js b/src/server/models/order.js index 2fa58ba..ed2cd04 100755 --- a/src/server/models/order.js +++ b/src/server/models/order.js @@ -282,6 +282,19 @@ module.exports.updateStatusOrdersElements = async function (arrOrders, myelement } +module.exports.updateOrderByParams = async function (idOrder, paramstoupdate) { + + const ris = await Order.findOneAndUpdate({ _id: idOrder }, { $set: paramstoupdate }); + + let myorder = await Order.findOne({ _id: idOrder }).lean(); + + this.updateTotals(myorder); + + await Order.findOneAndUpdate({ _id: idOrder }, { $set: myorder }); + + return myorder; +} + module.exports.updateTotals = function (order) { try { diff --git a/src/server/models/orderscart.js b/src/server/models/orderscart.js index abc5812..f88196f 100755 --- a/src/server/models/orderscart.js +++ b/src/server/models/orderscart.js @@ -14,6 +14,9 @@ const ProductInfo = require('../models/productInfo'); const { Circuit } = require('../models/circuit'); +const CartClass = require('../modules/Cart') +const Cart = require('../models/cart'); + const tools = require('../tools/general'); const { ObjectID } = require('mongodb'); @@ -794,6 +797,46 @@ OrdersCartSchema.pre('save', async function (next) { } }); +module.exports.updateOrdersCartByParams = async function (idOrdersCart, paramstoupdate) { + + const ris = await OrdersCart.findOneAndUpdate({ _id: idOrdersCart }, { $set: paramstoupdate }); + + let myorderscart = await Order.findOne({ _id: idOrder }); + + return myorderscart; +} + + +module.exports.updateOrdersCartTotals = async function (idOrdersCart, update) { + + try { + let orderscart = await OrdersCart.getOrdersCartById(idOrdersCart); + if (orderscart) { + + let newOrdersCart = CartClass.constructByCart(orderscart); + + await newOrdersCart.updatetotals(); + + if (update) { + await OrdersCart.findOneAndUpdate({ _id: idOrdersCart }, { + $set: { + totalPrice: newOrdersCart.totalPrice, + totalQty: newOrdersCart.totalQty, + note: newOrdersCart.note, + modify_at: new Date(), + }, + } + ) + } + orderscart = await OrdersCart.getOrdersCartById(idOrdersCart); + + return orderscart; + } + } catch (e) { + console.error('err', e); + } +}; + module.exports.getmsgorderTelegram = async function (ordersCart) { try { const statusstr = shared_consts.getStatusStr(ordersCart.status); diff --git a/src/server/router/cart_router.js b/src/server/router/cart_router.js index 0aee19d..78cdaa6 100755 --- a/src/server/router/cart_router.js +++ b/src/server/router/cart_router.js @@ -360,7 +360,7 @@ router.post('/:userId/ordercartstatus', authenticate, async function (req, res, const { User } = require('../models/user'); - let orderCart = await OrdersCart.findOne({ idapp, _id: order_id }).lean(); + let orderscart = await OrdersCart.findOne({ idapp, _id: order_id }).lean(); if ((userId !== String(req.user._id)) && !User.isManager(req.user.perm)) { // I'm trying to write something not mine! @@ -368,19 +368,19 @@ router.post('/:userId/ordercartstatus', authenticate, async function (req, res, } try { - if (!!orderCart) { + if (!!orderscart) { let fields_to_update = { status }; await OrdersCart.findOneAndUpdate({ _id: order_id }, { $set: fields_to_update } , { new: false }) .then(async (ris) => { - const userDest = await User.findById(orderCart.userId).lean(); + const userDest = await User.findById(ordersCart.userId).lean(); if (ris) { // Aggiorna gli Stati Interni ! - orderCart = await OrdersCart.updateCmd(orderCart, status, true, options); + ordersCart = await OrdersCart.updateCmd(ordersCart, status, true, options); let ordertype = ''; @@ -393,7 +393,7 @@ router.post('/:userId/ordercartstatus', authenticate, async function (req, res, } if (ordertype !== '') { - sendemail.sendEmail_Order(userDest.lang, idapp, orderCart, userDest, ordertype, status) + sendemail.sendEmail_Order(userDest.lang, idapp, ordersCart, userDest, ordertype, status) .then((ris) => { }) diff --git a/src/server/router/orders_router.js b/src/server/router/orders_router.js index 698d22d..349e903 100755 --- a/src/server/router/orders_router.js +++ b/src/server/router/orders_router.js @@ -42,6 +42,52 @@ router.get('/:userId', authenticate, function (req, res, next) { }); +router.post('/updateord', authenticate, async (req, res) => { + const idOrdersCart = req.body.idOrdersCart; + const idOrder = req.body.idOrder; + const paramstoupdate = req.body.paramstoupdate; + + try { + // Aggiorno l'Ordine Singolo + await Order.updateOrderByParams(idOrder, paramstoupdate); + + // Aggiorno il Totale degli Ordini (OrdersCart) + await OrdersCart.updateOrdersCartTotals(idOrdersCart, true) + .then((orderscart) => { + return res.send({ code: server_constants.RIS_CODE_OK, orderscart }); + }).catch(err => { + console.log('ERR:', err); + res.status(400).send(); + }); + } catch (e) { + console.error('Err', e); + } +}); + + +router.post('/update', authenticate, async (req, res) => { + const idOrdersCart = req.body.idOrdersCart; + const paramstoupdate = req.body.paramstoupdate; + + try { + // Aggiorno Orderscart con i parametri passati + await OrdersCart.updateOrdersCartByParams(idOrdersCart, paramstoupdate); + + // Aggiorno il Totale degli Ordini (OrdersCart) + await OrdersCart.updateOrdersCartTotals(idOrdersCart, true) + .then((orderscart) => { + return res.send({ code: server_constants.RIS_CODE_OK, orderscart }); + }).catch(err => { + console.log('ERR:', err); + res.status(400).send(); + }); + } catch (e) { + console.error('Err', e); + } + +}); + + router.post('/sendmail', authenticate, async function (req, res, next) { const idOrdersCart = req.body.idOrdersCart; const idapp = req.body.idapp; @@ -57,8 +103,8 @@ router.post('/sendmail', authenticate, async function (req, res, next) { let emailto = userto.email; if (userto && emailto) { - const emailsend = await sendemail.sendEmail_byTemplate (idapp, userto, previewonly, emailto, templemail_id, test); - + const emailsend = await sendemail.sendEmail_byTemplate(idapp, userto, previewonly, emailto, templemail_id, test); + return res.send({ code: server_constants.RIS_CODE_OK, emailsend }); } } diff --git a/src/server/router/products_router.js b/src/server/router/products_router.js index ac837ff..f67a16f 100755 --- a/src/server/router/products_router.js +++ b/src/server/router/products_router.js @@ -74,4 +74,18 @@ router.post('/:code', auth_default, async function (req, res, next) { }); +router.get('/id/:id', async function (req, res) { + + const id = req.params.id; + + var product = await Product.getProductById(id); + + if (product) { + return res.send({ code: server_constants.RIS_CODE_OK, product: product }); + } else { + return res.send({ code: server_constants.RIS_CODE_OK, product: null }); + } + +}); + module.exports = router;