Se aggiorno il fido e massimo di un circuito, devo aggiornare anche tutti gli account dei Circuiti Nazionali
This commit is contained in:
@@ -582,7 +582,7 @@ AccountSchema.statics.SetMinMaxComunitari = async function (idapp, valmin, valma
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Imposta a tutti i Conti Personali, i seguenti minimi e massimi
|
// Imposta a tutti i Conti Personali, i seguenti minimi e massimi
|
||||||
AccountSchema.statics.SetMinMaxPersonali = async function (idapp, valmin, valmax, circuitId) {
|
AccountSchema.statics.SetMinMaxPersonali = async function (idapp, fidoConcesso, qta_maxConcessa, circuitId) {
|
||||||
const Account = this;
|
const Account = this;
|
||||||
|
|
||||||
if (circuitId) {
|
if (circuitId) {
|
||||||
@@ -590,17 +590,21 @@ AccountSchema.statics.SetMinMaxPersonali = async function (idapp, valmin, valmax
|
|||||||
{
|
{
|
||||||
$set:
|
$set:
|
||||||
{
|
{
|
||||||
fidoConcesso: valmin,
|
fidoConcesso,
|
||||||
qta_maxConcessa: valmax,
|
qta_maxConcessa,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Se aggiorno questi dati, allora devo aggiornare anche gli account del RIS Nazionale
|
||||||
|
await Account.updateAccountCircuitoNazionaleByLimiti(idapp, circuitId, fidoConcesso, qta_maxConcessa);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
const ris = await Account.updateMany({ idapp, fidoConcesso: { $gt: 0 }, username: { "$nin": [null, ""] } },
|
const ris = await Account.updateMany({ idapp, fidoConcesso: { $gt: 0 }, username: { "$nin": [null, ""] } },
|
||||||
{
|
{
|
||||||
$set:
|
$set:
|
||||||
{
|
{
|
||||||
fidoConcesso: valmin,
|
fidoConcesso,
|
||||||
qta_maxConcessa: valmax,
|
qta_maxConcessa,
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -635,6 +639,49 @@ AccountSchema.statics.updateQtaMax = async function (idapp, username, groupname,
|
|||||||
return risult;
|
return risult;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
AccountSchema.statics.getAccountsCircuitiNazionali = async function (idapp) {
|
||||||
|
const circuit = await Circuit.find({ idapp, showAlways: true });
|
||||||
|
|
||||||
|
return Account.find({ idapp, circuitId: circuit.id });
|
||||||
|
};
|
||||||
|
|
||||||
|
AccountSchema.statics.updateAccountCircuitoNazionaleByLimiti = async function (idapp, circuitId, fidoConcesso, qta_maxConcessa) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
const accounts = await this.getAccountsCircuitiNazionali(idapp);
|
||||||
|
|
||||||
|
for (const account of accounts) {
|
||||||
|
const circuitId = account.circuitId;
|
||||||
|
const circuit = await Circuit.findOne({ _id: circuitId });
|
||||||
|
if (circuit) {
|
||||||
|
let fido = 0;
|
||||||
|
let qtamax = 0;
|
||||||
|
|
||||||
|
if (account.groupname) {
|
||||||
|
fido = circuit.fido_scoperto_default_grp * shared_consts.CIRCUIT_CFG.MULT_FIDO_GROUP;
|
||||||
|
qtamax = circuit.qta_max_default_grp * shared_consts.CIRCUIT_CFG.MULT_FIDO_GROUP;
|
||||||
|
} else {
|
||||||
|
fido = circuit.fido_scoperto_default * shared_consts.CIRCUIT_CFG.MULT_FIDO_USER;
|
||||||
|
qtamax = circuit.qta_max_default * shared_consts.CIRCUIT_CFG.MULT_FIDO_USER;
|
||||||
|
}
|
||||||
|
|
||||||
|
let paramstoupdate = {
|
||||||
|
fidoConcesso: fido,
|
||||||
|
qta_maxConcessa: qtamax,
|
||||||
|
};
|
||||||
|
|
||||||
|
risult = await Account.updateOne({ _id: account.id }, { $set: paramstoupdate });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return risult;
|
||||||
|
} catch (e) {
|
||||||
|
console.error('updateAccountCircuitoNazionaleByLimiti', e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
AccountSchema.statics.canEditAccountAdmins = async function (username, id) {
|
AccountSchema.statics.canEditAccountAdmins = async function (username, id) {
|
||||||
const account = await Account.findOne({ _id: id }).lean();
|
const account = await Account.findOne({ _id: id }).lean();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user