From 18c5630a4574bc87ef3fdf0360eb1a317bd71d31 Mon Sep 17 00:00:00 2001 From: Surya Paolo Date: Wed, 15 Nov 2023 17:50:14 +0100 Subject: [PATCH] Quando accedi al Circuito RIS Nazionale, ti imposta il Fido e QtaMax DOPPIA rispetto al tuo Circuito Locale --- .DS_Store | Bin 8196 -> 10244 bytes emails/.DS_Store | Bin 0 -> 10244 bytes logevents.txt | 2 + src/server/models/account.js | 14 +++++++ src/server/models/circuit.js | 60 +++++++++++++++++++++++++++--- src/server/models/sendnotif.js | 6 +-- src/server/models/user.js | 31 +++++++++------ src/server/tools/shared_nodejs.js | 7 ++++ 8 files changed, 100 insertions(+), 20 deletions(-) create mode 100644 emails/.DS_Store diff --git a/.DS_Store b/.DS_Store index 39644d9cfb53c69f11480c49aaec82cccf3842f6..367fdf3622e98acdca208c99a3c214db0670c3b4 100644 GIT binary patch literal 10244 zcmeHMO=ule6h71U(s|Fs7_p_aVtHT}RbrZ?S_L;TCWuNmeg2`<D;ij%!2(HA1e&^23ymRL#WK&SM12bpdoOA9u z=R5bF`}2s%nIE)gh-ySs!Oe7H43C_P`Fv-tefrDOpbqqjrl?IFTF32Wr0oZbfJML} zU=gqgSOoqH2w=|Ut1=o>`?LsH1S|px0$d+zxS7srx*bzhI`B|i0MIf%s|)Yg2PmDI zrgNHZ$5g4J&3O0VXjMmVF`QT({2Ggc&S|&J@{hVygLer1kk%-`DZqeQ z6j2xNzNzi}1)V9OT@~69?DZ*a@8gucGBj4ucI2(h)LTI>WG~#e-~9$8;q`)r1?_XC zblN?1>GkXEx8S#T<%g@H?HgY~l}2EBDUYvl7yei(kBPZ0bAZN2(p^OR<#cPmTSlz>^O09l@^< zZ#^^9nSN4&e4qL`QnEj2DKokwFT$SY$f&-&e0=QKTPmuAJ480iHKUm3DDG4l4RK-> z(0N*-CN<#aIo0#qh^$YmDUZ27N{`1=E$CjHr|aC4(k(-`o9*+?J4JFPE~O>NC2dG# zE`O3BBltsX^7tk?Y9?jffb(WzpyH4Efy^Ji^t3p{LTIc8q$Qo_Q zh!>A0RVXDh%u11r5&6guFhiq=Z2*5m6{m*?aw6q1=!}bM>#Cl89qNVBdPWz5}P;g+o`}AsbRk^mXc8usWDxpGqi}FyFjNwr;zD( zDqf69BZ8`0bqv%@#C06?JEg%fzbVE+8P%eJJKb}5yyVKIP`LzDk~SnB>%S*>2>uX> zJbn%aE_`btsxC4aWxVA6Exk-ho4($ERb|ja1FlYCQ>dmTQ3g$}$_)dh7Ky-wXT|eA)4ix%RRMSOhEr zyC6`Cd9_i{#p3_}cWJ@0ECLpR|2qOsd7-{Ak0^@P4}8{M!@Z1~FP7VmsZzm19mj*J z<9PhwbA@~Q)T-6)|Ly)?oiWJe`(F0* QazVcrdAY>D_51&S0fADh_y7O^ delta 142 zcmZn(XmOBWU|?W$DortDU;r^WfEYvza8E20o2aMAD84aZH$S8JWFCRdlih{FCi4of znyfFPGWoPf(d46|DU&~nNlv~brZ{=Ec*^AY5l iBwRs;ZY=!HJegl5kb@Co6~p9so>`1Nn-5DfG6MkdLL`L% diff --git a/emails/.DS_Store b/emails/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d12274f8f91826105be1cbe4d57b426d1e58b0a5 GIT binary patch literal 10244 zcmeHML2DC16n@*ZnA!*`f+8MPD56Nff(N~=B_2IULGWUeCZQIyO~|&C3PSKI-aJZ= zf`6ePc<>+|JqjMZ`6K+^+i`bhca!W27Lhk$=52T0+xfn4W~X@*BJ$Svduv2K5!F%I zo^7BhDBRCAR~F2jJFp(&iFOCuYa88RILi6z4OKuDPz6*0RX`Q^Hx$7CY%cYc*lMc^ zr~;}$q5$s?J}TS5*hy?<>p&wZ0PG@eOTjhr0EzL94UC<{RzmU2ID7C+sAp0PFAhh) z&+f2+v6I-w;pD~PctR2hej5AFO&;)0>y4`Po>0K1#3@KGW7}o^JupTD;O-WVI(iW_oNatD6ay zq&L+i-|LPi-y#~azP4o*?%}!vW#nyh5i|xsFxA(_^m&kAn&F?KEaUIumi_eHG~BXB z9AdUJyTg??U{E5;=JMfn!lhJX%BotV%kLwA;u|8r_XYC;eqFE&3+88TjLq%tQNpc6 zT*|CUoXbn*ZPr*3R^G_vwQ_Zi77}CgdU0Hemx)VxRf%(XwRyhkGGCGGEh9Rhp37tD zu*k>8{q9SGJNGPmPnqRch%3Sy-NB0Kp&e&&(JR4~@v(6|{$}CI`K9{J@^f+d7*dNW zpbDr0s(>o+R~6ul0>$U^|NGN_{}(51Q~_1s|5U(RY;CmG!Ofhl=UDPtyN}vN<-&fG z*h&Z*IgW>w<9PhR$MM%u+4mM(F1QYiox~P*P)_{EfV$@Y)+sD${!gKu*Hy{m?fkP! LoSXNZeE$CnoOHYA literal 0 HcmV?d00001 diff --git a/logevents.txt b/logevents.txt index 090f32c..0231e84 100644 --- a/logevents.txt +++ b/logevents.txt @@ -22,4 +22,6 @@ Dom 25/06 ORE 16:11: 🤖: Da Sùrya (Paolo) undefined (paoloar77): Ven 29/09 ORE 23:18: 🤖: Da Sùrya (Paolo) undefined (paoloar77): ✅ SuryaArena è stato Abilitato correttamente (da paoloar77)! Mar 03/10 ORE 22:49: 🤖: Da Sùrya (Paolo) undefined (paoloar77): +✅ SuryaArena è stato Abilitato correttamente (da paoloar77)! +Sab 04/11 ORE 15:17: 🤖: Da Sùrya (Paolo) undefined (paoloar77): ✅ SuryaArena è stato Abilitato correttamente (da paoloar77)! \ No newline at end of file diff --git a/src/server/models/account.js b/src/server/models/account.js index 1bb2993..a2e54c4 100755 --- a/src/server/models/account.js +++ b/src/server/models/account.js @@ -621,6 +621,20 @@ AccountSchema.statics.updateFido = async function (idapp, username, groupname, c return risult; }; +AccountSchema.statics.updateQtaMax = async function (idapp, username, groupname, circuitId, qtamax) { + + let paramstoupdate = { + qta_maxConcessa: qtamax, + }; + let risult = null; + if (groupname) + risult = await Account.updateOne({ idapp, circuitId, groupname }, { $set: paramstoupdate }); + else + risult = await Account.updateOne({ idapp, username, circuitId }, { $set: paramstoupdate }); + + return risult; +}; + AccountSchema.statics.canEditAccountAdmins = async function (username, id) { const account = await Account.findOne({ _id: id }).lean(); diff --git a/src/server/models/circuit.js b/src/server/models/circuit.js index bf402c7..a3d88f9 100755 --- a/src/server/models/circuit.js +++ b/src/server/models/circuit.js @@ -80,6 +80,9 @@ const CircuitSchema = new Schema({ totCircolante: { type: Number, }, + showAlways: { + type: Boolean, + }, totTransato: { type: Number, }, @@ -212,6 +215,10 @@ const CircuitSchema = new Schema({ type: Number, default: 0, }, + showAlways: { + type: Boolean, + default: false, + }, status: { type: Number, default: 0, @@ -276,6 +283,7 @@ CircuitSchema.statics.getWhatToShow = function (idapp, username) { fido_scoperto_default_grp: 1, qta_max_default_grp: 1, deperimento: 1, + showAlways: 1, transactionsEnabled: 1, status: 1, valuta_per_euro: 1, @@ -331,6 +339,7 @@ CircuitSchema.statics.getWhatToShow_Unknown = function (idapp, username) { longdescr: 1, regulation: 1, numMembers: 1, + showAlways: 1, systemUserId: 1, founderUserId: 1, nome_valuta: 1, @@ -936,6 +945,7 @@ CircuitSchema.statics.createCircuitIfNotExist = async function (req, idapp, prov photos: [], color: '#ff5500', deperimento: false, + showAlways: false, transactionsEnabled: true, // Abilita cmq il circuito dall'inizio status: shared_consts.CIRCUIT_STATUS.FASE1_CREAZIONE_GRUPPO, symbol: 'RIS', @@ -1031,7 +1041,7 @@ CircuitSchema.statics.getListCircuitsByUsername = async function (idapp, usernam const useraccounts = await Account.getUserAccounts(idapp, username); const groupsaccounts = await Account.getGroupAccounts(idapp, groupname); - + for (let account of useraccounts) { if (myuser.profile.mycircuits.find((rec) => (rec.circuitname === account.circuit.name))) { @@ -1092,16 +1102,56 @@ CircuitSchema.statics.setFido = async function (idapp, username, circuitName, gr mycircuit = await Circuit.findOne({ idapp, name: circuitName }); if (mycircuit) { const circuitId = mycircuit._id; + let account = null; + let fido = 0; + let qtamax = 0; - const account = await Account.getAccountByUsernameAndCircuitId(idapp, username, circuitId, true, true, groupname, ''); - if (account) { - let fido = 0; + if (mycircuit.showAlways) { + + const { User } = require('../models/user'); + + 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) + 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 false; + } + + } 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; + } - return await Account.updateFido(idapp, username, groupname, circuitId, fido); + 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 }; + } } } return false; diff --git a/src/server/models/sendnotif.js b/src/server/models/sendnotif.js index e20d804..28278d1 100755 --- a/src/server/models/sendnotif.js +++ b/src/server/models/sendnotif.js @@ -381,16 +381,16 @@ sendNotifSchema.statics.getDescrAndLinkByRecNotif = async function (recnotif, us } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_SETFIDO) { if (recnotif.paramsObj.isAdmin) { if (recnotif.extrarec.groupname) { - newdescr = i18n.__('FIDO_IMPOSTATO_ADMINS_CIRCUIT_MYGROUP', recnotif.extrarec.groupname, -recnotif.paramsObj.extrarec.fido_scoperto_default_grp, recnotif.paramsObj.circuitnameDest, + newdescr = i18n.__('FIDO_IMPOSTATO_ADMINS_CIRCUIT_MYGROUP', recnotif.extrarec.groupname, -recnotif.paramsObj.extrarec.fidoConcesso, recnotif.paramsObj.circuitnameDest, username_action); } else { - newdescr = i18n.__('FIDO_IMPOSTATO_ADMINS_CIRCUIT', sender, -recnotif.paramsObj.extrarec.fido_scoperto_default, recnotif.paramsObj.circuitnameDest, + newdescr = i18n.__('FIDO_IMPOSTATO_ADMINS_CIRCUIT', sender, -recnotif.paramsObj.extrarec.fidoConcesso, recnotif.paramsObj.circuitnameDest, username_action); } recnotif.openUrl = '/my/' + sender; } else { - newdescr = i18n.__('FIDO_IMPOSTATO', -recnotif.paramsObj.extrarec.fido_scoperto_default, username_action, recnotif.paramsObj.circuitnameDest); + newdescr = i18n.__('FIDO_IMPOSTATO', -recnotif.paramsObj.extrarec.fidoConcesso, username_action, recnotif.paramsObj.circuitnameDest); } tag = 'setfido'; } else if (recnotif.typeid === shared_consts.TypeNotifs.ID_CIRCUIT_ACCEPTED) { diff --git a/src/server/models/user.js b/src/server/models/user.js index 16bb76c..6fdefd0 100755 --- a/src/server/models/user.js +++ b/src/server/models/user.js @@ -2615,16 +2615,23 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn } else if (cmd === shared_consts.CIRCUITCMD.SETFIDO) { ris = await Circuit.setFido(idapp, usernameOrig, circuitname, groupname); - - // Elimina la richiesta: - update = { $pull: { req_users: { username: { $in: [usernameOrig] } } } }; - await Circuit.updateOne({ idapp, name: circuitname }, update); - - await Circuit.updateData(idapp, circuitname) if (ris) { - // Invia una notifica alla persona e agli Admin - tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, value, true, username_action, extrarec); - outres.result = await Circuit.getInfoCircuitByName(idapp, circuitname); + + extrarec.fidoConcesso = ris.fidoConcesso; + extrarec.qta_maxConcessa = ris.qta_maxConcessa; + + // Elimina la richiesta: + update = { $pull: { req_users: { username: { $in: [usernameOrig] } } } }; + await Circuit.updateOne({ idapp, name: circuitname }, update); + + await Circuit.updateData(idapp, circuitname) + if (ris) { + // Invia una notifica alla persona e agli Admin + tools.sendNotificationByCircuit(idapp, usernameOrig, circuitname, cmd, value, true, username_action, extrarec); + outres.result = await Circuit.getInfoCircuitByName(idapp, circuitname); + } + } else { + // errore !? } } else if (cmd === shared_consts.CIRCUITCMD.REQ) { @@ -2797,7 +2804,7 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn ris = true; } else if ((cmd === shared_consts.CIRCUITCMD.SENDCOINS_ACCEPT) || (cmd === shared_consts.CIRCUITCMD.SENDCOINS_REFUSE)) { // Before to accept, I see if it's already set ! - + outres = { cansend: false, errormsg: '', @@ -5230,7 +5237,7 @@ const FuncUsers = { return user.save().then(async () => { return User.findByUsername(user.idapp, user.username, false). then(async (usertrovato) => { - + const numutenti = await User.getNumUsers(user.idapp); let msg = '++ Nuovo Entrato: [' + numutenti + '] ' + user.username + ' ' + user.name + ' ' + user.surname; @@ -5240,7 +5247,7 @@ const FuncUsers = { return telegrambot.askConfirmationUser(user.idapp, shared_consts.CallFunz.REGISTRATION, user, '', '', '', ''); }); }).catch((e) => { - console.error(e.message); + console.error(e.message); }); } catch (e) { diff --git a/src/server/tools/shared_nodejs.js b/src/server/tools/shared_nodejs.js index 83d1ad4..1390dc7 100755 --- a/src/server/tools/shared_nodejs.js +++ b/src/server/tools/shared_nodejs.js @@ -248,6 +248,12 @@ module.exports = { VISIB_ONLY_MANAGER: 2, VISIB_ONLY_ADMIN: 4, + CIRCUIT_CFG: { + MULT_FIDO_USER: 2.0, + MULT_FIDO_GROUP: 2.0, + }, + + Visibility_Group: { PRIVATE: 1, HIDDEN: 2, @@ -643,6 +649,7 @@ module.exports = { nome_valuta: 1, fido_scoperto_default: 1, deperimento: 1, + showAlways: 1, status: 1, transactionsEnabled: 1, qta_max_default: 1,