diff --git a/src/server/models/circuit.js b/src/server/models/circuit.js index 0096f2f..bf370df 100755 --- a/src/server/models/circuit.js +++ b/src/server/models/circuit.js @@ -1161,62 +1161,66 @@ CircuitSchema.statics.SetDefMinMaxCollettivi = async function (idapp, valmin, va CircuitSchema.statics.setFido = async function (idapp, username, circuitName, groupname) { - mycircuit = await Circuit.findOne({ idapp, name: circuitName }).lean(); - if (mycircuit) { - const circuitId = mycircuit._id; - let account = null; - let fido = 0; - let qtamax = 0; + try { + mycircuit = await Circuit.findOne({ idapp, name: circuitName }).lean(); + if (mycircuit) { + const circuitId = mycircuit._id; + let account = null; + let fido = 0; + let qtamax = 0; - if (mycircuit.showAlways) { + if (mycircuit.showAlways) { - const { User } = require('../models/user'); + const { User } = require('../models/user'); - const myuser = await User.getUserByUsername(idapp, username); + const myuser = await User.getUserByUsername(idapp, username); - // Se è il circuito Nazionale, allora prende i valori dal proprio Circuito Locale: - const accountsuser = await Account.getUserAccounts(idapp, username); - if (accountsuser) { - // Se lo trovo della mia provincia, prendo quello - account = accountsuser.find((account) => account.circuit.strProv === myuser.profile.resid_province && ((account.circuit.card === myuser.profile.resid_card) || !myuser.profile.resid_card)) - if (!account && accountsuser.length > 0) { - // Se non lo trovo, prendo il primo in cui sono entrato ! - account = accountsuser[0]; - } - if (account && account.circuit) { - if (groupname) { - qtamax = account.circuit.qta_max_default_grp * shared_consts.CIRCUIT_CFG.MULT_FIDO_GROUP; - fido = account.circuit.fido_scoperto_default_grp * shared_consts.CIRCUIT_CFG.MULT_FIDO_GROUP; - } else { - qtamax = account.circuit.qta_max_default * shared_consts.CIRCUIT_CFG.MULT_FIDO_USER; - fido = account.circuit.fido_scoperto_default * shared_consts.CIRCUIT_CFG.MULT_FIDO_USER; + // Se è il circuito Nazionale, allora prende i valori dal proprio Circuito Locale: + const accountsuser = await Account.getUserAccounts(idapp, username); + if (accountsuser) { + // Se lo trovo della mia provincia, prendo quello + account = accountsuser.find((account) => account.circuit.strProv === myuser.profile.resid_province && ((account.circuit.card === myuser.profile.resid_card) || !myuser.profile.resid_card)) + if (!account && accountsuser.length > 0) { + // Se non lo trovo, prendo il primo in cui sono entrato ! + account = accountsuser[0]; } + if (account && account.circuit) { + if (groupname) { + qtamax = account.circuit.qta_max_default_grp * shared_consts.CIRCUIT_CFG.MULT_FIDO_GROUP; + fido = account.circuit.fido_scoperto_default_grp * shared_consts.CIRCUIT_CFG.MULT_FIDO_GROUP; + } else { + qtamax = account.circuit.qta_max_default * shared_consts.CIRCUIT_CFG.MULT_FIDO_USER; + fido = account.circuit.fido_scoperto_default * shared_consts.CIRCUIT_CFG.MULT_FIDO_USER; + } + } + } else { + // Se non ho Circuiti locali, non applico il Fido ! + return null; } + } else { - // Se non ho Circuiti locali, non applico il Fido ! - return false; + account = await Account.getAccountByUsernameAndCircuitId(idapp, username, circuitId, true, true, groupname, ''); + if (groupname) + fido = mycircuit.fido_scoperto_default_grp; + else + fido = mycircuit.fido_scoperto_default; } - } else { - account = await Account.getAccountByUsernameAndCircuitId(idapp, username, circuitId, true, true, groupname, ''); - if (groupname) - fido = mycircuit.fido_scoperto_default_grp; - else - fido = mycircuit.fido_scoperto_default; - } + if (account) { + if (qtamax > 0) { + await Account.updateQtaMax(idapp, username, groupname, circuitId, qtamax); + } - if (account) { - if (qtamax > 0) { - await Account.updateQtaMax(idapp, username, groupname, circuitId, qtamax); - } - - const ris = await Account.updateFido(idapp, username, groupname, circuitId, fido); - if (ris) { - return { qta_maxConcessa: qtamax, fidoConcesso: fido }; + const ris = await Account.updateFido(idapp, username, groupname, circuitId, fido); + if (ris) { + return { qta_maxConcessa: qtamax, fidoConcesso: fido }; + } } } + } catch (e) { + console.error('Err:', e); } - return false; + return null; }; const Circuit = mongoose.model('Circuit', CircuitSchema); diff --git a/src/server/models/user.js b/src/server/models/user.js index 46f5b73..7802517 100755 --- a/src/server/models/user.js +++ b/src/server/models/user.js @@ -2763,10 +2763,12 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn } else if (cmd === shared_consts.CIRCUITCMD.SETFIDO) { ris = await Circuit.setFido(idapp, usernameOrig, circuitname, groupname); - if (ris) { + if (ris && ris.fidoConcesso) { - extrarec.fidoConcesso = ris.fidoConcesso; - extrarec.qta_maxConcessa = ris.qta_maxConcessa; + if (extrarec) { + extrarec.fidoConcesso = ris.fidoConcesso; + extrarec.qta_maxConcessa = ris.qta_maxConcessa; + } // Elimina la richiesta: update = { $pull: { req_users: { username: { $in: [usernameOrig] } } } }; diff --git a/src/server/telegram/telegrambot.js b/src/server/telegram/telegrambot.js index 90efa30..cf48f94 100755 --- a/src/server/telegram/telegrambot.js +++ b/src/server/telegram/telegrambot.js @@ -3,8 +3,8 @@ const tools = require('../tools/general'); const appTelegram = [tools.FREEPLANET, tools.RISO]; const appTelegram_TEST = [tools.FREEPLANET, tools.RISO]; -//const appTelegram_DEVELOP = [tools.RISO]; -const appTelegram_DEVELOP = [tools.FIOREDELLAVITA]; +const appTelegram_DEVELOP = [tools.RISO]; +//const appTelegram_DEVELOP = [tools.FIOREDELLAVITA]; const appTelegramFinti = ['2', tools.CNM]; const appTelegramDest = [tools.FREEPLANET, tools.FREEPLANET]; diff --git a/src/server/tools/general.js b/src/server/tools/general.js index 84892be..30668cf 100755 --- a/src/server/tools/general.js +++ b/src/server/tools/general.js @@ -1083,7 +1083,7 @@ module.exports = { let onlysave = false; let numuserincircuit = await User.countUsersInCircuit(idapp, circuitname); const mycircuit = await Circuit.findOne({ name: circuitname }).lean(); - if (mycircuit) { + if (mycircuit && extrarec) { extrarec.fido_scoperto_default = mycircuit.fido_scoperto_default; extrarec.fido_scoperto_default_grp = mycircuit.fido_scoperto_default_grp; } @@ -1363,9 +1363,9 @@ module.exports = { if (!giainviato && cmd !== shared_consts.CIRCUITCMD.REQ) { // SEND TO THE USER DEST THE NOTIFICATION ris = await this.sendNotifCircuitByUsername(cmd, idapp, usernameOrig, groupOrig, usernameOrig, '', username_action, circuitname, circuit.path, - null, - false, '', extrarec); - if (ris.recnotif) + null, false, '', extrarec); + + if (ris && ris.recnotif) inviato = true; } } @@ -3929,7 +3929,7 @@ module.exports = { console.error('loadApps', e); } }, - + async getApps() { if (this.MYAPPS.length <= 0) await this.loadApps();