diff --git a/docs/apache2/contatti.htm b/docs/apache2/contatti.htm
new file mode 100644
index 0000000..6e1cd7e
--- /dev/null
+++ b/docs/apache2/contatti.htm
@@ -0,0 +1,36 @@
+
+
+
+
Contattaci
+Hai domande, consigli o suggerimenti da proporci?
Inviaci un messaggio attraverso il form qui
+ sotto!
+
+Dove siamo
+Macro Società Cooperativa srl
Via Giardino, 30 – 47522 – Cesena (FC)
+Fai click sulla mappa (OpenStreetMap) per trovare il percorso dal tuo indirizzo.
+
+
\ No newline at end of file
diff --git a/emails/risricevuti/it/html.pug b/emails/risricevuti/it/html.pug
index cde6195..a96684f 100755
--- a/emails/risricevuti/it/html.pug
+++ b/emails/risricevuti/it/html.pug
@@ -1,8 +1,11 @@
p Ciao #{name},
-p Hai ricevuto
- strong #{qty} #{symbol}
- | da parte di #{mittente} in data #{transactionDate} sul
- strong #{nomecircuito} !
+p Hai ricevuto
+ strong #{qty} #{symbol}
+ if groupDestoContoCom
+ | sul conto
+ strong #{groupDestoContoCom}
+ span da parte di #{mittente} in data #{transactionDate} sul
+ strong #{nomecircuito} !
if causale
p
p Commento: #{causale}
diff --git a/logtrans.txt b/logtrans.txt
index eb74adb..77131b2 100644
--- a/logtrans.txt
+++ b/logtrans.txt
@@ -329,4 +329,44 @@ ElenaEspx: 29.40 RIS]
Lun 30/09 ORE 22:58: [Circuito RIS Bologna]: Inviate Monete da paoloar77 a ElenaEspx 0.01 RIS [causale: Prova del commento. Ciaooo come stai . Tutto benekfaòjd ask dakisj dlaks jdlkas jdlakdklasj dlkas jdlasd]
Saldi:
paoloar77: 20.99 RIS]
-ElenaEspx: 29.41 RIS]
\ No newline at end of file
+ElenaEspx: 29.41 RIS]
+Mer 02/10 ORE 00:26: [Circuito RIS Italia]: Inviate Monete da paoloar77 a PiuCheBuono(GaseBottega) 2 RIS [causale: ]
+Saldi:
+paoloar77: 101.50 RIS]
+PiuCheBuono(GaseBottega): -64.50 RIS]
+Mer 02/10 ORE 00:51: [Circuito RIS Italia]: Inviate Monete da paoloar77 a TestTransazPao 1 RIS [causale: ]
+Saldi:
+paoloar77: 100.50 RIS]
+TestTransazPao: 1.00 RIS]
+Mer 02/10 ORE 02:07: [Circuito RIS Italia]: Inviate Monete da paoloar77 a TestTransazPao 2 RIS [causale: dsadasdada]
+Saldi:
+paoloar77: 95.50 RIS]
+TestTransazPao: 6.00 RIS]
+Mer 02/10 ORE 02:10: [Circuito RIS Italia]: Inviate Monete da paoloar77 a TestTransazPao 2 RIS [causale: DSDA Ciaoooooooo]
+Saldi:
+paoloar77: 88.50 RIS]
+TestTransazPao: 13.00 RIS]
+Mer 02/10 ORE 02:16: [Circuito RIS Italia]: Inviate Monete da paoloar77 a TestTransazPao 0.5 RIS [causale: Miaooooooooo]
+Saldi:
+paoloar77: 88.00 RIS]
+TestTransazPao: 13.50 RIS]
+Mer 02/10 ORE 02:19: [Circuito RIS Italia]: Inviate Monete da paoloar77 a TestTransazPao 2 RIS [causale: AAAAA]
+Saldi:
+paoloar77: 86.00 RIS]
+TestTransazPao: 15.50 RIS]
+Mer 02/10 ORE 02:21: [Circuito RIS Italia]: Inviate Monete da paoloar77 a TestTransazPao 1 RIS [causale: ]
+Saldi:
+paoloar77: 85.00 RIS]
+TestTransazPao: 16.50 RIS]
+Mer 02/10 ORE 02:24: [Circuito RIS Italia]: Inviate Monete da paoloar77 a TestTransazPao 2 RIS [causale: ]
+Saldi:
+paoloar77: 83.00 RIS]
+TestTransazPao: 18.50 RIS]
+Mer 02/10 ORE 02:25: [Circuito RIS Bologna]: Inviate Monete da paoloar77 a ElenaEspx 1 RIS [causale: ]
+Saldi:
+paoloar77: 19.99 RIS]
+ElenaEspx: 30.41 RIS]
+Mer 02/10 ORE 03:31: [Circuito RIS Bologna]: Inviate Monete da paoloar77 a ElenaEspx 3 RIS [causale: ]
+Saldi:
+paoloar77: 16.99 RIS]
+ElenaEspx: 33.41 RIS]
\ No newline at end of file
diff --git a/src/server/models/attivita.js b/src/server/models/attivita.js
index b3e5ebb..fb49c15 100755
--- a/src/server/models/attivita.js
+++ b/src/server/models/attivita.js
@@ -129,7 +129,7 @@ const AttivitaSchema = new Schema(
//**ADDFIELD_ATTIVITA
},
...Reaction.getFieldsForReactions(),
- ...MyGroup.getFieldsForAnnunci()
+ ...tools.getFieldsForAnnunci()
}, { strict: false });
AttivitaSchema.index({ 'idapp': 1 });
diff --git a/src/server/models/circuit.js b/src/server/models/circuit.js
index 223c18c..31fee04 100755
--- a/src/server/models/circuit.js
+++ b/src/server/models/circuit.js
@@ -394,7 +394,7 @@ CircuitSchema.statics.getWhatToShow_Unknown = function (idapp, username) {
};
};
-CircuitSchema.statics.getCircuitsByUsername = async function (idapp, username, user) {
+CircuitSchema.statics.getCircuitsByUsername = async function (idapp, username, user, nummovTodownload) {
try {
const { User } = require('../models/user');
@@ -442,12 +442,15 @@ CircuitSchema.statics.getCircuitsByUsername = async function (idapp, username, u
{ deleted: { $exists: true, $eq: false } }],
}, whatToShow_Unknown).sort({ status: -1 }).lean();
+ const last_my_transactions = await Movement.getLastN_Transactions(idapp, nummovTodownload, username, '');
+
return {
listcircuits,
asked_circuits,
refused_circuits,
manage_mycircuits,
mycircuits: user.profile.mycircuits,
+ last_my_transactions,
};
} catch (e) {
@@ -664,6 +667,8 @@ CircuitSchema.statics.sendCoins = async function (onlycheck, idapp, usernameOrig
const { User } = require('../models/user');
+ const { MyGroup } = require('./mygroup');
+
const sendemail = require('../sendemail');
let ris = {
@@ -785,10 +790,13 @@ CircuitSchema.statics.sendCoins = async function (onlycheck, idapp, usernameOrig
await sendemail.sendEmail_RisRicevuti(myuserDest.lang, myuserDest, myuserDest.email, idapp, paramsrec);
} else if (extrarec.groupdest || extrarec.contoComDest) {
+ const groupDestoContoCom = extrarec.groupdest ? extrarec.groupdest : (extrarec && extrarec.contoComDest ? extrarec.contoComDest : '');
let arrusers = await MyGroup.getListAdminsByGroupName(idapp, groupDestoContoCom);
if (arrusers.length <= 0)
arrusers = await Circuit.getListAdminsByCircuitPath(idapp, groupDestoContoCom);
+ paramsrec.groupDestoContoCom = groupDestoContoCom;
+
for (let i = 0; i < arrusers.length; i++) {
let myuserDest = await User.getUserByUsername(idapp, arrusers[i].username);
diff --git a/src/server/models/movement.js b/src/server/models/movement.js
index a12bb6e..3b5bfda 100755
--- a/src/server/models/movement.js
+++ b/src/server/models/movement.js
@@ -137,6 +137,8 @@ MovementSchema.statics.getQueryMovsByCircuitId = async function (idapp, username
}
const myaccount = await Account.getAccountByUsernameAndCircuitId(idapp, username, circuitId, false, true, groupname, contocom);
+
+
if (myaccount) {
let aggr1 = [
@@ -741,24 +743,48 @@ MovementSchema.statics.checkIfCoinsAlreadySent = async function (notifId) {
};
-MovementSchema.statics.getLastN_Transactions = async function (idapp, numtransaz = 10) {
+MovementSchema.statics.getLastN_Transactions = async function (idapp, numtransaz = 10, username = '', groupname = '', contocom = '') {
const MyMovement = this;
// get last "numtransaz" transactions
+ let abilitaquerypersingolo = (username || groupname || contocom);
+
+ let querym2 = null;
+
+ if (abilitaquerypersingolo) {
+ let v1 = [];
+
+ if (username) {
+ v1.push({ 'userfrom.username': username },
+ { 'userto.username': username });
+ }
+
+ if (groupname) {
+ v1.push({ 'groupfrom.groupname': groupname },
+ { 'groupto.groupname': groupname });
+ }
+ if (contocom) {
+ v1.push({ 'contocomfrom.name': contocom },
+ { 'contocomto.name': contocom });
+ }
+
+ querym2 = {
+ $match:
+ { $or: v1 }
+ };
+ };
+
let aggr1 = [
{
- $match: {
- idapp,
- },
+ $match: { idapp },
},
{
$sort: {
transactionDate: -1,
}
},
- { $limit: numtransaz },
{
$lookup: {
from: 'accounts',
@@ -968,40 +994,46 @@ MovementSchema.statics.getLastN_Transactions = async function (idapp, numtransaz
preserveNullAndEmptyArrays: true,
},
},
- {
- $project:
- {
- transactionDate: 1,
- amount: 1,
- causal: 1,
- notifId: 1,
- 'circuitfrom.symbol': 1,
- 'circuitfrom.name': 1,
- 'circuitto.symbol': 1,
- 'circuitto.name': 1,
- 'userfrom.verified_by_aportador': 1,
- 'userfrom.username': 1,
- 'userfrom.profile.img': 1,
- 'userto.username': 1,
- 'userto.profile.img': 1,
- 'userto.verified_by_aportador': 1,
- 'groupfrom.groupname': 1,
- 'groupfrom.verified_by_aportador': 1,
- 'groupfrom.title': 1,
- 'groupfrom.photos': 1,
- 'groupto.groupname': 1,
- 'groupto.title': 1,
- 'groupto.photos': 1,
- 'groupto.verified_by_aportador': 1,
- 'contocomfrom.path': 1,
- 'contocomfrom.name': 1,
- 'contocomto.path': 1,
- 'contocomto.name': 1,
- },
- },
-
];
+ if (querym2)
+ aggr1.push(querym2);
+
+ if (numtransaz)
+ aggr1.push({ $limit: numtransaz });
+
+ aggr1.push({
+ $project:
+ {
+ transactionDate: 1,
+ amount: 1,
+ causal: 1,
+ notifId: 1,
+ 'circuitfrom.symbol': 1,
+ 'circuitfrom.name': 1,
+ 'circuitto.symbol': 1,
+ 'circuitto.name': 1,
+ 'userfrom.verified_by_aportador': 1,
+ 'userfrom.username': 1,
+ 'userfrom.profile.img': 1,
+ 'userto.username': 1,
+ 'userto.profile.img': 1,
+ 'userto.verified_by_aportador': 1,
+ 'groupfrom.groupname': 1,
+ 'groupfrom.verified_by_aportador': 1,
+ 'groupfrom.title': 1,
+ 'groupfrom.photos': 1,
+ 'groupto.groupname': 1,
+ 'groupto.title': 1,
+ 'groupto.photos': 1,
+ 'groupto.verified_by_aportador': 1,
+ 'contocomfrom.path': 1,
+ 'contocomfrom.name': 1,
+ 'contocomto.path': 1,
+ 'contocomto.name': 1,
+ },
+ });
+
const lastNtransac = await MyMovement.aggregate(aggr1);
/*
@@ -1013,7 +1045,7 @@ MovementSchema.statics.getLastN_Transactions = async function (idapp, numtransaz
circuito: string
amount: number
causale: string
-
+
*/
diff --git a/src/server/models/mybacheca.js b/src/server/models/mybacheca.js
index afa7dd0..ed46190 100755
--- a/src/server/models/mybacheca.js
+++ b/src/server/models/mybacheca.js
@@ -120,7 +120,7 @@ const MyBachecaSchema = new Schema({
},
},
...Reaction.getFieldsForReactions(),
- ...MyGroup.getFieldsForAnnunci()
+ ...tools.getFieldsForAnnunci()
});
MyBachecaSchema.pre('save', async function (next) {
diff --git a/src/server/models/mygood.js b/src/server/models/mygood.js
index 0b9717d..c01d9d4 100755
--- a/src/server/models/mygood.js
+++ b/src/server/models/mygood.js
@@ -92,7 +92,7 @@ const MyGoodSchema = new Schema({
},
},
...Reaction.getFieldsForReactions(),
- ...MyGroup.getFieldsForAnnunci()
+ ...tools.getFieldsForAnnunci()
});
MyGoodSchema.pre('save', async function (next) {
diff --git a/src/server/models/mygroup.js b/src/server/models/mygroup.js
index 1097066..feaeb20 100755
--- a/src/server/models/mygroup.js
+++ b/src/server/models/mygroup.js
@@ -66,7 +66,6 @@ const MyGroupSchema = new Schema({
type: String,
default: '',
},
- //**ADDFIELD_MYGROUPS
visibility: [
{
type: Number,
@@ -125,11 +124,9 @@ const MyGroupSchema = new Schema({
lastdate_reqRisGroup: {
type: Date,
},
+ //**ADDFIELD_MYGROUPS
- idMyGroup: {
- type: String,
- },
- // **ADDFIELD_MYGROUPS
+ ...tools.getFieldsForAnnunci(),
});
@@ -252,7 +249,6 @@ MyGroupSchema.statics.getWhatToShow = function (idapp, username) {
photos: 1,
idCity: 1,
website: 1,
- //**ADDFIELD_MYGROUPS
link_telegram: 1,
note: 1,
admins: 1,
@@ -264,6 +260,7 @@ MyGroupSchema.statics.getWhatToShow = function (idapp, username) {
date_updated: 1,
mycircuits: 1,
lastdate_reqRisGroup: 1,
+ //**ADDFIELD_MYGROUPS
};
whatToShow = { ...whatToShow, ...shared_consts.ANNUNCI_FIELDS };
@@ -647,7 +644,7 @@ MyGroupSchema.statics.getReceiveRISGroups = async function (idapp) {
MyGroupSchema.statics.renameCircuitName = async function (idapp, oldcircuitname, newcircuitname) {
-
+
return await this.updateMany({ idapp, 'mycircuits.circuitname': oldcircuitname }, { $set: { 'profile.mycircuits.$.circuitname': newcircuitname } });
};
@@ -663,17 +660,6 @@ MyGroupSchema.statics.setReceiveRisGroup = async function (idapp, groupname) {
};
-MyGroupSchema.statics.getFieldsForAnnunci = function () {
- let annunciFields = {
- idMyGroup: {
- type: String,
- },
- // **ADDFIELD_MYGROUPS
- };
-
- return annunciFields;
-};
-
const MyGroup = mongoose.model('MyGroup', MyGroupSchema);
MyGroup.createIndexes((err) => {
diff --git a/src/server/models/myhosp.js b/src/server/models/myhosp.js
index dc699a4..57b6d52 100755
--- a/src/server/models/myhosp.js
+++ b/src/server/models/myhosp.js
@@ -99,7 +99,7 @@ const MyHospSchema = new Schema({
},
},
...Reaction.getFieldsForReactions(),
- ...MyGroup.getFieldsForAnnunci()
+ ...tools.getFieldsForAnnunci()
});
MyHospSchema.pre('save', async function (next) {
diff --git a/src/server/models/myskill.js b/src/server/models/myskill.js
index 4ef1622..9cdc3bc 100755
--- a/src/server/models/myskill.js
+++ b/src/server/models/myskill.js
@@ -99,7 +99,7 @@ const MySkillSchema = new Schema(
},
},
...Reaction.getFieldsForReactions(),
- ...MyGroup.getFieldsForAnnunci()
+ ...tools.getFieldsForAnnunci()
}, { strict: false });
MySkillSchema.index({ 'idapp': 1 });
diff --git a/src/server/models/stat.js b/src/server/models/stat.js
index 08a82e4..5d32c91 100755
--- a/src/server/models/stat.js
+++ b/src/server/models/stat.js
@@ -15,6 +15,9 @@ const { Settings } = require('../models/settings');
const shared_consts = require('../tools/shared_nodejs');
const { ObjectID } = require('mongodb');
+var ObjectId = mongoose.Types.ObjectId;
+
+
// Resolving error Unknown modifier: $pushAll
mongoose.plugin(schema => {
schema.options.usePushEach = true;
@@ -68,8 +71,8 @@ StatSchema.statics.updateStats = async function (datastat) {
datastat.last_transactions.forEach(function (mov) {
let ris = tools.getStringaConto(mov)
- mov.myfrom = ris.myfrom
- mov.myto = ris.myto
+ mov.userfrom = ris.userfrom
+ mov.userto = ris.userto
mov.tipocontofrom = ris.tipocontofrom
mov.tipocontoto = ris.tipocontoto
});
@@ -113,11 +116,12 @@ StatSchema.statics.calculateStats = async function (idapp) {
};
// Trova il record di oggi:
- const trova_se_oggi = await Stat.findOne({ idapp, date_created: { $gte: new Date(new Date().setHours(0, 0, 0, 0)) } });
+ const trova_se_oggi = await Stat.findOne({ idapp, date_created: { $gte: new Date(new Date().setHours(0, 0, 0, 0)) } }).lean();
if (trova_se_oggi) {
// Aggiorna il record di oggi:
- await Stat.updateOne({ _id: trova_se_oggi._id }, { $set: datastat });
+ const ris = await Stat.findOneAndUpdate({ _id: trova_se_oggi._id }, { $set: datastat }, { new: true });
+ console.log('ris', ris);
} else {
// Aggiungi un nuovo record:
await Stat.insertMany([datastat]);
diff --git a/src/server/models/user.js b/src/server/models/user.js
index 544af00..cfa962e 100755
--- a/src/server/models/user.js
+++ b/src/server/models/user.js
@@ -5614,7 +5614,7 @@ UserSchema.statics.addExtraInfo = async function (idapp, recUser, recUserSave, v
// Circuit>
- const circuitobj = await Circuit.getCircuitsByUsername(idapp, recUser.username, recUser);
+ const circuitobj = await Circuit.getCircuitsByUsername(idapp, recUser.username, recUser, 5);
const useraccounts = await Account.getUserAccounts(idapp, recUser.username);
diff --git a/src/server/router/users_router.js b/src/server/router/users_router.js
index 17be2c4..78438d3 100755
--- a/src/server/router/users_router.js
+++ b/src/server/router/users_router.js
@@ -890,8 +890,9 @@ router.post('/circuits', authenticate, (req, res) => {
const username = req.user.username;
idapp = req.body.idapp;
locale = req.body.locale;
+ nummovTodownload = req.body.nummovTodownload;
- return Circuit.getCircuitsByUsername(idapp, username, req.user).then((ris) => {
+ return Circuit.getCircuitsByUsername(idapp, username, req.user, nummovTodownload).then((ris) => {
res.send(ris);
}).catch((e) => {
tools.mylog('ERRORE IN circuits: ' + e.message);
diff --git a/src/server/sendemail.js b/src/server/sendemail.js
index 14a2d0a..9415749 100755
--- a/src/server/sendemail.js
+++ b/src/server/sendemail.js
@@ -319,6 +319,7 @@ module.exports = {
transactionDate: tools.getstrDate_DD_MM_YYYY(myrec.transactionDate),
symbol: myrec.symbol,
causale: myrec.causale,
+ groupDestoContoCom: myrec.groupDestoContoCom,
};
mylocalsconf = this.setParamsForTemplate(userDest, mylocalsconf);
diff --git a/src/server/tools/general.js b/src/server/tools/general.js
index 1828a78..7850830 100755
--- a/src/server/tools/general.js
+++ b/src/server/tools/general.js
@@ -5609,39 +5609,44 @@ module.exports = {
getStringaConto(mov) {
let mystr = ''
- let myfrom = ''
- let myto = ''
+ let userfrom = ''
+ let userto = ''
+
+ let profilefrom = null
+ let profileto = null
let tipocontofrom = shared_consts.AccountType.USER
let tipocontoto = shared_consts.AccountType.USER
if (mov.contocomfrom && mov.contocomfrom.name) {
- myfrom += mov.contocomfrom.name + ' '
+ userfrom += mov.contocomfrom.name
tipocontofrom = shared_consts.AccountType.COMMUNITY_ACCOUNT
}
if (mov.groupfrom) {
- myfrom += mov.groupfrom.groupname + ' '
+ userfrom += mov.groupfrom.groupname
tipocontofrom = shared_consts.AccountType.COLLECTIVE_ACCOUNT
}
if (mov.userfrom) {
- myfrom += mov.userfrom.username + ' '
+ userfrom += mov.userfrom.username
+ profilefrom = mov.userfrom.profile
}
if (mov.contocomto && mov.contocomto.name) {
- myto += mov.contocomto.name + ' '
+ userto += mov.contocomto.name
tipocontoto = shared_consts.AccountType.COMMUNITY_ACCOUNT
}
if (mov.groupto) {
- myto += mov.groupto.groupname + ' '
+ userto += mov.groupto.groupname
tipocontoto = shared_consts.AccountType.COLLECTIVE_ACCOUNT
}
if (mov.userto) {
- myto += mov.userto.username + ' '
+ userto += mov.userto.username
+ profileto = mov.userto.profile
}
- // mystr = t('movement.from') + myfrom + ' ' + t('movement.to') + myto
+ // mystr = t('movement.from') + userfrom + ' ' + t('movement.to') + userto
- return { myfrom, myto, tipocontofrom, tipocontoto }
+ return { userfrom: {profile: profilefrom, username: userfrom}, userto: {profile: profileto, username: userto}, tipocontofrom, tipocontoto }
},
ImageDownloader,
@@ -5685,5 +5690,21 @@ module.exports = {
return 'it';
},
+ getFieldsForAnnunci() {
+ let annunciFields = {
+ idMyGroup: {
+ type: String,
+ },
+ expiryDateAdv: {
+ type: Date,
+ },
+ enableExpiringAdv: {
+ type: Boolean,
+ },
+ // **ADDFIELD_ANNUNCI
+ };
+
+ return annunciFields;
+ },
};
diff --git a/src/server/tools/shared_nodejs.js b/src/server/tools/shared_nodejs.js
index 2ffb70b..ae8a13c 100755
--- a/src/server/tools/shared_nodejs.js
+++ b/src/server/tools/shared_nodejs.js
@@ -177,7 +177,9 @@ module.exports = {
ANNUNCI_FIELDS: {
idMyGroup: 1,
- // **ADDFIELD_MYGROUPS
+ expiryDateAdvert: 1,
+
+ // **ADDFIELD_ANNUNCI
},
// Condivise