diff --git a/src/server/models/circuit.js b/src/server/models/circuit.js index 38105f6..9e95fcd 100755 --- a/src/server/models/circuit.js +++ b/src/server/models/circuit.js @@ -918,6 +918,31 @@ CircuitSchema.statics.SetDefMinMaxPersonali = async function (idapp, valmin, val }; // Imposta a tutti i Conti Collettivi, i seguenti minimi e massimi +CircuitSchema.statics.replaceAllCircuits = async function (idapp) { + + const globalTables = require('../tools/globalTables'); + + const arrcircuit = await Circuit.find({ idapp }).lean(); + + let num = 0; + for (const circuit of arrcircuit) { + if (circuit.strProv) { + let nomeprovincia = await Province.getStrProvinceByProv(circuit.strProv); + let newname = 'Circuito RIS ' + nomeprovincia; + + if (newname !== circuit.name) { + ris = await globalTables.ReplaceCircuitName(idapp, circuit.name, newname); + + if (ris) + num++; + } + } + } + + console.log('*** Replaced Circuits ', num); + +}; + CircuitSchema.statics.createCircuitIfNotExist = async function (req, idapp, province) { const { User } = require('../models/user'); @@ -932,7 +957,7 @@ CircuitSchema.statics.createCircuitIfNotExist = async function (req, idapp, prov if (!circuit && nomeprovincia) { const circ = new Circuit({ idapp, - name: 'RIS ' + nomeprovincia, + name: 'Circuito RIS ' + nomeprovincia, path: 'ris' + tools.convertSpaces_ToUScore(nomeprovincia.toLowerCase()), strProv: province, photos: [], @@ -960,13 +985,13 @@ CircuitSchema.statics.createCircuitIfNotExist = async function (req, idapp, prov // nuovo Circuito: await User.setCircuitCmd(idapp, useradmin, myrec.name, shared_consts.CIRCUITCMD.CREATE, true, useradmin, myrec).then((ris) => { - + }); // aggiungi il creatore al Circuito stesso await User.setCircuitCmd(idapp, useradmin, myrec.name, shared_consts.CIRCUITCMD.SET, true, useradmin, myrec).then((ris) => { - + }); } diff --git a/src/server/router/users_router.js b/src/server/router/users_router.js index a75886b..f5f49ec 100755 --- a/src/server/router/users_router.js +++ b/src/server/router/users_router.js @@ -1127,6 +1127,11 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) { if (User.isAdmin(req.user.perm)) { ris = globalTables.replaceUsername(req.body.idapp, mydata.search_username, mydata.replace_username); } + } else if (mydata.dbop === 'ReplaceCircuitName') { + + if (User.isAdmin(req.user.perm)) { + ris = globalTables.ReplaceCircuitName(req.body.idapp, mydata.search_username, mydata.replace_username); + } } else if (mydata.dbop === 'copyFrom1To14') { const idapporig = 1; @@ -1269,6 +1274,10 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) { await Circuit.SetDefMinMaxCollettivi(idapp, mydata.valmin, mydata.valmax); + } else if (mydata.dbop === 'ReplaceAllCircuits') { + + await Circuit.replaceAllCircuits(idapp); + } else if (mydata.dbop === 'setstrProvByIdCityCircuits') { await Circuit.setstrProvByIdCityCircuits(idapp); diff --git a/src/server/tools/globalTables.js b/src/server/tools/globalTables.js index 7277aff..4867384 100755 --- a/src/server/tools/globalTables.js +++ b/src/server/tools/globalTables.js @@ -535,6 +535,70 @@ module.exports = { } }, + ReplaceCircuitName: async function (idapp, search_circuitname, replace_circuitname) { + + const { SendNotif } = require('../models/sendnotif'); + + if (!search_circuitname || !replace_circuitname) { + return false; + } + + try { + let ris = null; + console.log('ReplaceCircuitName = ', search_circuitname, replace_circuitname); + + ris = await Circuit.findOneAndUpdate({ idapp, name: search_circuitname }, { $set: { name: replace_circuitname } }); + console.log('Circuit result = ', ris); + + if (ris) { + + ris = await User.updateMany({ idapp, 'profile.mycircuits.circuitname': search_circuitname }, + { + $set: + { 'profile.mycircuits.$.circuitname': replace_circuitname } + }); + + ris = await MyGroup.updateMany({ idapp, 'mycircuits.circuitname': search_circuitname }, + { + $set: + { 'mycircuits.$.circuitname': replace_circuitname } + }); + + + ris = await User.updateMany({ idapp, 'profile.last_circuitpath': search_circuitname }, + { + $set: + { 'profile.last_circuitpath': replace_circuitname } + }); + + ris = await SendNotif.updateMany({ idapp, 'extrarec.circuitname': search_circuitname }, + { + $set: + { 'extrarec.circuitname': replace_circuitname } + }); + + ris = await SendNotif.updateMany({ idapp, 'extrarec.name': search_circuitname }, + { + $set: + { 'extrarec.name': replace_circuitname } + }); + + ris = await SendNotif.updateMany({ idapp, 'extrafield': search_circuitname }, + { + $set: + { 'extrafield': replace_circuitname } + }); + + console.log(' ... done ' + replace_circuitname); + return true; + } + + } catch (e) { + console.error(e); + return false; + } + + }, };