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
|
||||
AccountSchema.statics.SetMinMaxPersonali = async function (idapp, valmin, valmax, circuitId) {
|
||||
AccountSchema.statics.SetMinMaxPersonali = async function (idapp, fidoConcesso, qta_maxConcessa, circuitId) {
|
||||
const Account = this;
|
||||
|
||||
if (circuitId) {
|
||||
@@ -590,17 +590,21 @@ AccountSchema.statics.SetMinMaxPersonali = async function (idapp, valmin, valmax
|
||||
{
|
||||
$set:
|
||||
{
|
||||
fidoConcesso: valmin,
|
||||
qta_maxConcessa: valmax,
|
||||
fidoConcesso,
|
||||
qta_maxConcessa,
|
||||
}
|
||||
});
|
||||
|
||||
// Se aggiorno questi dati, allora devo aggiornare anche gli account del RIS Nazionale
|
||||
await Account.updateAccountCircuitoNazionaleByLimiti(idapp, circuitId, fidoConcesso, qta_maxConcessa);
|
||||
|
||||
} else {
|
||||
const ris = await Account.updateMany({ idapp, fidoConcesso: { $gt: 0 }, username: { "$nin": [null, ""] } },
|
||||
{
|
||||
$set:
|
||||
{
|
||||
fidoConcesso: valmin,
|
||||
qta_maxConcessa: valmax,
|
||||
fidoConcesso,
|
||||
qta_maxConcessa,
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -635,6 +639,49 @@ AccountSchema.statics.updateQtaMax = async function (idapp, username, groupname,
|
||||
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) {
|
||||
const account = await Account.findOne({ _id: id }).lean();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user