This commit is contained in:
Surya Paolo
2023-12-11 20:48:52 +01:00
parent 296b7b4fb8
commit caadbaae5f
4 changed files with 59 additions and 53 deletions

View File

@@ -1161,62 +1161,66 @@ CircuitSchema.statics.SetDefMinMaxCollettivi = async function (idapp, valmin, va
CircuitSchema.statics.setFido = async function (idapp, username, circuitName, groupname) { CircuitSchema.statics.setFido = async function (idapp, username, circuitName, groupname) {
mycircuit = await Circuit.findOne({ idapp, name: circuitName }).lean(); try {
if (mycircuit) { mycircuit = await Circuit.findOne({ idapp, name: circuitName }).lean();
const circuitId = mycircuit._id; if (mycircuit) {
let account = null; const circuitId = mycircuit._id;
let fido = 0; let account = null;
let qtamax = 0; 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: // Se è il circuito Nazionale, allora prende i valori dal proprio Circuito Locale:
const accountsuser = await Account.getUserAccounts(idapp, username); const accountsuser = await Account.getUserAccounts(idapp, username);
if (accountsuser) { if (accountsuser) {
// Se lo trovo della mia provincia, prendo quello // 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)) 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) { if (!account && accountsuser.length > 0) {
// Se non lo trovo, prendo il primo in cui sono entrato ! // Se non lo trovo, prendo il primo in cui sono entrato !
account = accountsuser[0]; 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;
} }
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 { } else {
// Se non ho Circuiti locali, non applico il Fido ! account = await Account.getAccountByUsernameAndCircuitId(idapp, username, circuitId, true, true, groupname, '');
return false; if (groupname)
fido = mycircuit.fido_scoperto_default_grp;
else
fido = mycircuit.fido_scoperto_default;
} }
} else { if (account) {
account = await Account.getAccountByUsernameAndCircuitId(idapp, username, circuitId, true, true, groupname, ''); if (qtamax > 0) {
if (groupname) await Account.updateQtaMax(idapp, username, groupname, circuitId, qtamax);
fido = mycircuit.fido_scoperto_default_grp; }
else
fido = mycircuit.fido_scoperto_default;
}
if (account) { const ris = await Account.updateFido(idapp, username, groupname, circuitId, fido);
if (qtamax > 0) { if (ris) {
await Account.updateQtaMax(idapp, username, groupname, circuitId, qtamax); 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); const Circuit = mongoose.model('Circuit', CircuitSchema);

View File

@@ -2763,10 +2763,12 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn
} else if (cmd === shared_consts.CIRCUITCMD.SETFIDO) { } else if (cmd === shared_consts.CIRCUITCMD.SETFIDO) {
ris = await Circuit.setFido(idapp, usernameOrig, circuitname, groupname); ris = await Circuit.setFido(idapp, usernameOrig, circuitname, groupname);
if (ris) { if (ris && ris.fidoConcesso) {
extrarec.fidoConcesso = ris.fidoConcesso; if (extrarec) {
extrarec.qta_maxConcessa = ris.qta_maxConcessa; extrarec.fidoConcesso = ris.fidoConcesso;
extrarec.qta_maxConcessa = ris.qta_maxConcessa;
}
// Elimina la richiesta: // Elimina la richiesta:
update = { $pull: { req_users: { username: { $in: [usernameOrig] } } } }; update = { $pull: { req_users: { username: { $in: [usernameOrig] } } } };

View File

@@ -3,8 +3,8 @@ const tools = require('../tools/general');
const appTelegram = [tools.FREEPLANET, tools.RISO]; const appTelegram = [tools.FREEPLANET, tools.RISO];
const appTelegram_TEST = [tools.FREEPLANET, tools.RISO]; const appTelegram_TEST = [tools.FREEPLANET, tools.RISO];
//const appTelegram_DEVELOP = [tools.RISO]; const appTelegram_DEVELOP = [tools.RISO];
const appTelegram_DEVELOP = [tools.FIOREDELLAVITA]; //const appTelegram_DEVELOP = [tools.FIOREDELLAVITA];
const appTelegramFinti = ['2', tools.CNM]; const appTelegramFinti = ['2', tools.CNM];
const appTelegramDest = [tools.FREEPLANET, tools.FREEPLANET]; const appTelegramDest = [tools.FREEPLANET, tools.FREEPLANET];

View File

@@ -1083,7 +1083,7 @@ module.exports = {
let onlysave = false; let onlysave = false;
let numuserincircuit = await User.countUsersInCircuit(idapp, circuitname); let numuserincircuit = await User.countUsersInCircuit(idapp, circuitname);
const mycircuit = await Circuit.findOne({ name: circuitname }).lean(); 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 = mycircuit.fido_scoperto_default;
extrarec.fido_scoperto_default_grp = mycircuit.fido_scoperto_default_grp; extrarec.fido_scoperto_default_grp = mycircuit.fido_scoperto_default_grp;
} }
@@ -1363,9 +1363,9 @@ module.exports = {
if (!giainviato && cmd !== shared_consts.CIRCUITCMD.REQ) { if (!giainviato && cmd !== shared_consts.CIRCUITCMD.REQ) {
// SEND TO THE USER DEST THE NOTIFICATION // SEND TO THE USER DEST THE NOTIFICATION
ris = await this.sendNotifCircuitByUsername(cmd, idapp, usernameOrig, groupOrig, usernameOrig, '', username_action, circuitname, circuit.path, ris = await this.sendNotifCircuitByUsername(cmd, idapp, usernameOrig, groupOrig, usernameOrig, '', username_action, circuitname, circuit.path,
null, null, false, '', extrarec);
false, '', extrarec);
if (ris.recnotif) if (ris && ris.recnotif)
inviato = true; inviato = true;
} }
} }
@@ -3929,7 +3929,7 @@ module.exports = {
console.error('loadApps', e); console.error('loadApps', e);
} }
}, },
async getApps() { async getApps() {
if (this.MYAPPS.length <= 0) if (this.MYAPPS.length <= 0)
await this.loadApps(); await this.loadApps();