- L'utente entra direttamente sul circuito, con fido a zero.

++Abilitazione Fido utente (per admin).
This commit is contained in:
Surya Paolo
2023-06-01 11:39:53 +02:00
parent 0945f1af08
commit a79e79a85e
19 changed files with 615 additions and 418 deletions

View File

@@ -505,59 +505,6 @@ CircuitSchema.statics.deleteCircuit = async function (idapp, usernameOrig, name)
return await Circuit.findOneAndRemove({ idapp, name });
};
CircuitSchema.statics.getUserCircuits = async function (idapp, username) {
try {
let aggr1 = [
{
$match: {
idapp, username,
$or: [
{ deleted: { $exists: false } },
{ deleted: { $exists: true, $eq: false } }],
},
},
{
$lookup: {
from: 'circuits',
localField: 'circuitId',
foreignField: '_id',
as: 'circuit',
},
},
{
'$replaceRoot': {
'newRoot': {
'$mergeObjects': [
{
'$arrayElemAt': [
'$circuit',
0,
],
},
'$$ROOT',
],
},
},
},
/*
{
$project: {
"circuit.name": 1,
},
},
*/
];
ris = await this.aggregate(aggr1);
return ris;
} catch (e) {
console.error('e', e);
}
};
CircuitSchema.statics.getUsersSingleCircuit = async function (idapp, username, circuitname, circuitId) {
@@ -676,8 +623,16 @@ CircuitSchema.statics.sendCoins = async function (onlycheck, idapp, usernameOrig
if (circuittable) {
const myqty = Math.abs(extrarec.qty);
const accountdestTable = await Account.getAccountByUsernameAndCircuitId(idapp, extrarec.dest, circuittable._id, true, extrarec.groupdest, extrarec.contoComDest);
const accountorigTable = await Account.getAccountByUsernameAndCircuitId(idapp, usernameOrig, circuittable._id, true, extrarec.grouporig, extrarec.contoComOrig);
const esisteDest = await Account.isExistAccountByUsernameAndCircuitId(idapp, extrarec.dest, circuittable._id, extrarec.groupdest, extrarec.contoComDest);
if (!esisteDest) {
// Fallo entrare anche sul Circuito (oltre ad aver creato l'Account).
await this.addCircuitToUser(idapp, usernameOrig, circuitname, false, extrarec.groupdest, extrarec.contoComDest);
}
const accountdestTable = await Account.getAccountByUsernameAndCircuitId(idapp, extrarec.dest, circuittable._id, true, false, extrarec.groupdest, extrarec.contoComDest);
const accountorigTable = await Account.getAccountByUsernameAndCircuitId(idapp, usernameOrig, circuittable._id, true, true, extrarec.grouporig, extrarec.contoComOrig);
const circolantePrec = this.getCircolanteSingolaTransaz(accountorigTable, accountdestTable);
@@ -903,6 +858,19 @@ CircuitSchema.statics.SetDefMinMaxCollettivi = async function (idapp, valmin, va
};
CircuitSchema.statics.AbilitaTuttiCircuiti = async function (idapp) {
ris = await Circuit.updateMany({ idapp },
{
$set:
{
transactionsEnabled: true
}
});
return ris;
};
// Imposta a tutti i Conti Personali, i seguenti minimi e massimi
CircuitSchema.statics.SetDefMinMaxPersonali = async function (idapp, valmin, valmax) {
@@ -932,14 +900,14 @@ 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: [],
admins: [],
color: '#ff5500',
deperimento: false,
transactionsEnabled: false,
transactionsEnabled: true, // Abilita cmq il circuito dall'inizio
status: shared_consts.CIRCUIT_STATUS.FASE1_CREAZIONE_GRUPPO,
symbol: 'RIS',
fido_scoperto_default: 100,
@@ -960,13 +928,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) => {
});
}
@@ -981,6 +949,32 @@ CircuitSchema.statics.createCircuitIfNotExist = async function (req, idapp, prov
return myrec;
};
CircuitSchema.statics.getListCircuitsByUsername = async function (idapp, username, groupname) {
let mystr = '';
const { User } = require('../models/user');
const myuser = await User.getUserByUsername(idapp, username);
const useraccounts = await Account.getUserAccounts(idapp, username);
for (let account of useraccounts) {
if (myuser.profile.mycircuits.find((rec) => (rec.circuitname === account.circuit.name))) {
mystr += '\n👉🏻 ' + account.circuit.name + '\n';
mystr += '[Saldo: ' + account.saldo + ' RIS, ';
mystr += ' Fido: ' + account.fidoConcesso + ' RIS, ';
mystr += ' Transato: ' + account.totTransato + ' RIS]';
}
}
if (!mystr) {
mystr = '[Nessun Circuito]';
}
return mystr;
};
CircuitSchema.statics.SetDefMinMaxCollettivi = async function (idapp, valmin, valmax) {
ris = await Circuit.updateMany({ idapp },
@@ -994,6 +988,27 @@ CircuitSchema.statics.SetDefMinMaxCollettivi = async function (idapp, valmin, va
};
CircuitSchema.statics.setFido = async function (idapp, username, circuitName, groupname) {
mycircuit = await Circuit.findOne({ idapp, name: circuitName });
if (mycircuit) {
const circuitId = mycircuit._id;
const account = await Account.getAccountByUsernameAndCircuitId(idapp, username, circuitId, true, true, groupname, '');
if (account) {
let fido = 0;
if (groupname)
fido = mycircuit.fido_scoperto_default_grp;
else
fido = mycircuit.fido_scoperto_default;
return await Account.updateFido(idapp, username, circuitId, fido);
}
}
return false;
};
const Circuit = mongoose.model('Circuit', CircuitSchema);
module.exports = { Circuit };