diff --git a/.env.development b/.env.development index 3136acd..61bd7e9 100644 --- a/.env.development +++ b/.env.development @@ -1,11 +1,11 @@ -DATABASE=test_FreePlanet +DATABASE=test_PiuCheBuono UDB=paofreeplanet PDB=mypassword@1A SEND_EMAIL=0 SEND_EMAIL_ORDERS=1 PORT=3000 -appTelegram_TEST=["1","13"] -appTelegram=["1","13"] +appTelegram_TEST=["1","17"] +appTelegram=["1","17"] DOMAIN=mongodb://localhost:27017/ AUTH_MONGODB=true MONGODB_USER=admin diff --git a/src/server/models/cart.js b/src/server/models/cart.js index 90419cf..884106e 100755 --- a/src/server/models/cart.js +++ b/src/server/models/cart.js @@ -30,6 +30,9 @@ const CartSchema = new Schema({ note: { type: String, }, + note_ordine_gas: { + type: String, + }, modify_at: { type: Date, }, @@ -121,6 +124,7 @@ module.exports.updateCartByCartId = async function (cartId, newCart) { const totalPrice = newCart.totalPrice; const totalPriceCalc = newCart.totalPriceCalc; const note = newCart.note; + const note_ordine_gas = newCart.note_ordine_gas; const modify_at = new Date(); @@ -131,6 +135,7 @@ module.exports.updateCartByCartId = async function (cartId, newCart) { totalPriceCalc, totalQty, note, + note_ordine_gas, modify_at: new Date(), }, }, { new: false }).lean().then((ris) => { diff --git a/src/server/models/gasordine.js b/src/server/models/gasordine.js index e3f9e64..910ebab 100755 --- a/src/server/models/gasordine.js +++ b/src/server/models/gasordine.js @@ -34,6 +34,9 @@ const gasordineSchema = new Schema({ img: { type: String, }, + note_ordine_gas: { + type: String, + }, dataora_chiusura_ordini: { type: Date, diff --git a/src/server/models/orderscart.js b/src/server/models/orderscart.js index 6ba6f63..a78efe2 100755 --- a/src/server/models/orderscart.js +++ b/src/server/models/orderscart.js @@ -94,6 +94,9 @@ const OrdersCartSchema = new Schema({ note_per_gestore: { type: String }, + note_ordine_gas: { + type: String + }, note_per_admin: { type: String }, @@ -1079,7 +1082,8 @@ module.exports.updateOrdersCartTotals = async function (idOrdersCart, update) { let newOrdersCart = CartClass.constructByCart(orderscart); - await newOrdersCart.updatecarttotals(false); + newOrdersCart.updatecarttotals(false); + await newOrdersCart.updateExtraOrder(); if (update) { await OrdersCart.findOneAndUpdate({ _id: idOrdersCart }, { diff --git a/src/server/modules/Cart.js b/src/server/modules/Cart.js index b39ca85..f6bd917 100755 --- a/src/server/modules/Cart.js +++ b/src/server/modules/Cart.js @@ -3,6 +3,8 @@ const cartModel = require('../models/cart') const { ObjectID } = require('mongodb'); +const Gasordine = require('../models/gasordine'); + const Order = require('../models/order'); class Cart { @@ -33,6 +35,7 @@ class Cart { mynewcart.department = cart.department; mynewcart.userId = cart.userId || ""; mynewcart.modify_at = new Date(); + mynewcart.note_ordine_gas = ''; return mynewcart; } catch (e) { @@ -100,6 +103,7 @@ class Cart { myitem.order = Order.updateTotals(myitem.order); this.updatecarttotals(false); + await this.updateExtraOrder(); await Order.findOneAndUpdate({ _id: myitem.order._id }, { $set: myitem.order }, { new: false }); return myitem.order; } @@ -138,6 +142,7 @@ class Cart { } myitem.order = Order.updateTotals(myitem.order); this.updatecarttotals(false); + await this.updateExtraOrder(); await Order.findOneAndUpdate({ _id: myitem.order._id }, { $set: myitem.order }, { new: false }); return myitem.order; @@ -148,7 +153,7 @@ class Cart { } - addItem(itemorder) { + async addItem(itemorder) { // this.items.push(itemorder); let ind = this.items.length; @@ -156,14 +161,16 @@ class Cart { this.items[ind].order = itemorder; this.items[ind].order = Order.updateTotals(this.items[ind].order); this.updatecarttotals(false); + await this.updateExtraOrder(); return ind; } - removeItem(orderId) { + async removeItem(orderId) { // this.items.push(itemorder); this.items = this.items.filter(item => item.order._id.toString() !== orderId.toString()); this.updatecarttotals(false); + await this.updateExtraOrder(); } generateModel() { @@ -177,6 +184,7 @@ class Cart { userId: this.userId, department: this.department, note: this.note, + note_ordine_gas: this.note_ordine_gas, modify_at: this.modify_at }) return newCart @@ -271,6 +279,39 @@ class Cart { } + async updateExtraOrder() { + try { + + let arrGas = []; + const precnoteordgas = this.note_ordine_gas + this.note_ordine_gas = ''; + for (const rec in this.items) { + let order = this.items[rec].order; + if (!order) { + order = this.items[rec]; + } + // Prendo la nota valida e la metto visibile sul Carrello ! + if (order.idGasordine) { + const recGas = await Gasordine.findOne({ _id: order.idGasordine }).lean(); + if (recGas) { + if (recGas.note_ordine_gas) { + if (!arrGas.includes(recGas._id.toString())) { + if (this.note_ordine_gas) + this.note_ordine_gas += '
' + + this.note_ordine_gas += '' + recGas.name + '' + ':
' + recGas.note_ordine_gas; + arrGas.push(recGas._id.toString()); + } + } + } + } + } + + } catch (e) { + console.error('Err:', e); + } + } + generateArray() { let arr = []; for (let id in this.items) { diff --git a/src/server/populate/contribtypes.js b/src/server/populate/contribtypes.js index eb6f8c0..10c07f8 100644 --- a/src/server/populate/contribtypes.js +++ b/src/server/populate/contribtypes.js @@ -179,5 +179,11 @@ module.exports = { "label" : "Bitcoin", "__v" : 0 }, + { + "_id" : ObjectID("51bc482667de9a1f64b255ff"), + "idapp" : "13", + "label" : "Banca del Tempo", + "__v" : 0 + }, ] } diff --git a/src/server/router/admin_router.js b/src/server/router/admin_router.js index 0f8a188..d635d7a 100755 --- a/src/server/router/admin_router.js +++ b/src/server/router/admin_router.js @@ -108,7 +108,7 @@ async function completaSettaggioProduct_AndProductInfo(arrcampi_productInfo, arr productInfo._id = precid; else delete productInfo._id; - + productInfo.code = preccode; } } @@ -472,6 +472,7 @@ router.post('/import', authenticate, async (req, res) => { } } + if (!rec.hasOwnProperty('active')) { product.active = true; } @@ -508,6 +509,13 @@ router.post('/import', authenticate, async (req, res) => { recGas = await Gasordine.findOne({ idapp, name: rec.gas_name }).lean(); } + if (recGas) { + if (rec.hasOwnProperty('note_ordine_gas')) { + const note_ordine_gas = rec['note_ordine_gas']; + await Gasordine.findOneAndUpdate({ _id: recGas._id }, { $set: { note_ordine_gas } }); + } + } + let recProductExist = null; let queryprod = { idProductInfo: product.idProductInfo }; diff --git a/src/server/router/cart_router.js b/src/server/router/cart_router.js index 13c78a5..1e37de5 100755 --- a/src/server/router/cart_router.js +++ b/src/server/router/cart_router.js @@ -96,7 +96,7 @@ router.post('/:userId', authenticate, async function (req, res, next) { } else if (subqty) { myord = await newCart.subqty(order); } else { - const ind = newCart.addItem(order); + const ind = await newCart.addItem(order); const arrord = await Order.getTotalOrderById(order._id); myord = arrord ? arrord[0] : null; } @@ -104,7 +104,8 @@ router.post('/:userId', authenticate, async function (req, res, next) { return res.send({ code: server_constants.RIS_CODE_ERR, cart: null, myord: null, msgerr: 'Non รจ possibile acquistare nello stesso ordine, su negozi differenti!' }); } } else { - await newCart.updatecarttotals(true); + newCart.updatecarttotals(true); + await newCart.updateExtraOrder(); const arrord = await Order.getTotalOrderById(order._id); myord = arrord ? arrord[0] : null; } @@ -162,7 +163,7 @@ router.delete('/:userId', authenticate, async function (req, res) { // Rimuovere l'id sul Carrello let newCart = CartClass.constructByCart(mycart); - newCart.removeItem(orderId); + await newCart.removeItem(orderId); let carttot = null; const cart = await Cart.updateCartByCartId(mycart._id, newCart.generateModel()); @@ -276,6 +277,7 @@ router.post('/:userId/createorderscart', authenticate, async function (req, res, totalQty: mycart.totalQty, totalPrice: mycart.totalPrice, totalPriceCalc: mycart.totalPriceCalc, + note_ordine_gas: mycart.note_ordine_gas, userId, status, note, diff --git a/src/server/router/index_router.js b/src/server/router/index_router.js index f4112eb..b44904a 100755 --- a/src/server/router/index_router.js +++ b/src/server/router/index_router.js @@ -851,10 +851,9 @@ router.patch('/chval', authenticate, async (req, res) => { // tools.mylogshow('PATCH CHVAL: ', id, fieldsvalue); - req.user.perm = 0; - // If I change my record... - if (((!User.isAdmin(req.user.perm) + if (( + (!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm) && !User.isEditor(req.user.perm) && !User.isFacilitatore(req.user.perm)) diff --git a/src/server/server.js b/src/server/server.js index 6698fa4..79a1309 100755 --- a/src/server/server.js +++ b/src/server/server.js @@ -518,8 +518,9 @@ async function inizia() { try { if (true) { + const url = 'https://raw.githubusercontent.com/matteocontrini/comuni-json/master/comuni.json'; const outputPath = './comuni_italia_geojson.json'; - downloadGeoJSON('', outputPath); + downloadGeoJSON(url, outputPath); } mycron_everyday();