Grosse Modifiche Completate !

This commit is contained in:
Paolo Arena
2020-05-11 22:43:14 +02:00
parent 9c7cf28a4a
commit c6acadb3e6
10 changed files with 269 additions and 229 deletions

View File

@@ -171,7 +171,7 @@ ListaIngressoSchema.statics.deleteUserInListaIngresso = async function (idapp, u
};
ListaIngressoSchema.statics.addUserInListaIngresso = async function (idapp, username, invitante_username, lang, addednowreal, nuovo, dateins, note, added) {
ListaIngressoSchema.statics.addUserInListaIngresso = async function (idapp, username, invitante_username, lang, addednowreal, nuovo, dateins, note, added, opt) {
const ListaIngresso = this;
const { User } = require('./user');
@@ -214,6 +214,16 @@ ListaIngressoSchema.statics.addUserInListaIngresso = async function (idapp, user
const nome = await User.getNameSurnameByUsername(idapp, username);
msgtext = '🔵 ' + nome + ' (' + username + ') ' + tools.gettranslate('ADDED_TOLISTAINGRESSO', lang);
await telegrambot.sendMsgTelegram(idapp, username, msgtext, true); // Anche a STAFF
if (!!opt) {
if (!!opt.sendmsgtoinvitante) {
if (opt.sendmsgtoinvitante) {
const nome = await User.getNameSurnameByUsername(idapp, invitante_username);
// msgtext = '🔵 ' + nome + ' (' + username + ') ' + tools.gettranslate('ADDED_TOLISTAINGRESSO', lang);
// await telegrambot.sendMsgTelegram(idapp, username, msgtext, true); // Anche a STAFF
}
}
}
}
}
return ris;
@@ -405,8 +415,7 @@ ListaIngressoSchema.statics.getProssimiInLista = async function (idapp, solonuov
for (const rec of arrlista) {
// ++Todo: TOGLIERE!
if (false) {
if (true) {
rec.numNaviEntrato = await Nave.getnumNaviByUsername(idapp, rec.username);
rec.numinvitati = await ListaIngresso.getnumInvitati(idapp, rec.username);
@@ -602,10 +611,6 @@ ListaIngressoSchema.statics.creaTessituraeConv = async function (idapp) {
}
}, { new: false });
// Crea Record ListaIngresso
// const newrecingr = await ListaIngresso.addUserInListaIngresso(idapp, myuser.username, invitante_username, myuser.lang, false, true, myuser.date_reg, note, added);
// Assegna l'Invitante agli Invitati ! trova tutti gli invitati che hanno questo username
const arrinvitati = await User.find({ idapp, aportador_solidario: myuser.username }, { username: 1 });
for (const invitato of arrinvitati) {

View File

@@ -10,6 +10,8 @@ const { User } = require('./user');
const { ObjectID } = require('mongodb');
const printf = require('util').format;
const shared_consts = require('../tools/shared_nodejs');
mongoose.Promise = global.Promise;
@@ -81,6 +83,7 @@ NaveSchema.statics.getTotInLista = async function (idapp) {
NaveSchema.statics.findByIndOrder = function (idapp, ind_order) {
const Nave = this;
try {
return Nave.findOne({
'idapp': idapp,
@@ -297,7 +300,6 @@ NaveSchema.statics.findRecByRigaColParent = async function (idapp, riga, col, nu
myrigacol.riga = lastrec.riga;
myrigacol.col = lastrec.col;
} else {
//lastrec = await User.findByIndOrder(idapp, 0);
lastrec = await Nave.findGeneric({ idapp, riga: 0, col: 0 });
break;
}
@@ -306,7 +308,6 @@ NaveSchema.statics.findRecByRigaColParent = async function (idapp, riga, col, nu
}
if (!lastrec) {
// return await User.findByIndOrder(idapp, 0);
return await Nave.findGeneric({ idapp, riga: 0, col: 0 });
}
@@ -452,13 +453,13 @@ function getQueryProj(myfilter) {
}
},
{
$unwind: "$mylista"
$replaceRoot: { newRoot: { $mergeObjects: [ { $arrayElemAt: [ "$mylista", 0 ] }, "$$ROOT" ] } }
},
{
$lookup: {
from: "users",
as: "user",
let: {username: '$mylista.username' },
let: {username: '$username' },
pipeline: [
{
$match: {
@@ -793,19 +794,22 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord, in
if (!!recnavepersistente.tutor_namesurname)
data += '👤 ' + tools.get__('Tutor che affianchèra il Mediatore', lang) + ': "' + recnavepersistente.tutor_namesurname + '"' + tools.ACAPO;
data += '💬 ' + tools.get__('Giorno di Apertura GIFT CHAT', lang) + ': ' + tools.getstrDateLong(recnavepersistente.date_gift_chat_open, lang) + tools.ACAPO;
data += '💬 ' + printf(tools.get__('APERTURA_CHIUSURA_GIFT_CHAT', lang), tools.getstrDateLong(recnavepersistente.date_gift_chat_open, lang), tools.getstrDateLong(recnavepersistente.date_start, lang)) + tools.ACAPO;
data += '🎁 ' + tools.get__('Giorno in cui Inviare il DONO', lang) + ' : ' + tools.getstrDateLong(recnavepersistente.date_start, lang) + tools.ACAPO;
// data += '💬 ' + tools.get__('Giorno di Apertura GIFT CHAT', lang) + ': ' + tools.getstrDateLong(recnavepersistente.date_gift_chat_open, lang) + tools.ACAPO;
// data += '🎁 ' + tools.get__('Giorno in cui Inviare il DONO', lang) + ' : ' + tools.getstrDateLong(recnavepersistente.date_start, lang) + tools.ACAPO;
if (!!recnavepersistente.note_bot)
data += tools.get__('Note', lang) + ": " + recnavepersistente.note_bot + tools.ACAPO;
if (recnavepersistente.provvisoria)
mystrtemp = tools.get__('TEMPORANEA', lang) + ' ';
mystrtemp = '' + tools.get__('TEMPORANEA', lang) + ' ';
} else
data = "";
mystr = tools.ACAPO + tools.get__('NAVE', lang) + ' ' + '[' + riga + '.' + col + '] ' + mystrtemp + tools.ACAPO + data + tools.ACAPO + mystr;
mystr = tools.ACAPO + '⛵️ ' + tools.get__('NAVE', lang) + ' ' + '[' + riga + '.' + col + '] ' + mystrtemp + tools.ACAPO + data + tools.ACAPO + mystr;
return mystr;
} catch (e) {
@@ -815,36 +819,6 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord, in
};
// async function Fuochi8Completati(idapp, params) {
// // Inviare un msg al Mediatore che può aprire la Chat con gli 8 fuochi
// const telegrambot = require('../telegram/telegrambot');
//
// let text = '\nCompletata NAVE [riga=' + params.riga + ',col=' + params.col + ', ind_order=' + params.ind_order + ']';
// console.log(text);
// tools.writeNaveLog(text);
//
// const { User } = require('./user');
//
// const rec = await User.findByIndOrder(idapp, params.ind_order);
//
// text = await Nave.getNaveByUser(idapp, params.ind_order, rec.lang, true);
//
// // Inviare un msg a questi 8 Fuochi, che la loro placca è Pronta !
//
// if (tools.isAbilitaNave(idapp)) {
// // .............
// }
//
// if (false) {
// await telegrambot.sendMsgTelegram(idapp, rec.username, text, true);
// } else {
// await telegrambot.sendMsgTelegramToTheAdmin(idapp, text);
// }
//
// // Inviare la placca a Managers
// // await telegrambot.sendMsgTelegramToTheManagers(idapp, txt);
// }
NaveSchema.statics.getArrPosizioniByIndOrder = async function (idapp, ind_order) {
const Nave = this;
@@ -911,7 +885,7 @@ NaveSchema.statics.showListaOrd = async function (idapp) {
for (const rec of arrrec) {
let recnavepersistente = await NavePersistente.findByRigaColByDonatore(idapp, rec.riga, rec.col, 0);
if (!!recnavepersistente) {
mystr += '[' + conta + '] [' + rec.riga + '.' + rec.col + '] ' + rec.ind_order + ' ' + rec.name + ' ' + rec.surname + ' (' + tools.getstrDateShort(recnavepersistente.date_start) + ')';
mystr += '[' + conta + '] [' + rec.riga + '.' + rec.col + '] ' + rec.ind_order + ' ' + rec.name + ' ' + rec.surname + ' (' + tools.getstrDateShort(recnavepersistente.date_gift_chat_open) + ')';
mystr += ' num_tess = ' + rec.num_tess;
mystr += '\n';
}
@@ -1097,7 +1071,7 @@ NaveSchema.statics.addUserFromListaIngresso_IntoNave = async function (init, ida
}
if ((params.riga === 4 + 3) && (params.col === (8 * 2) + 3)) {
// Si ritesse il Fondo AYNI nella Nave 3.3
const userFondo = await User.findByIndOrder(idapp, 0);
const userFondo = await User.findByIndex(idapp, 0);
params.ind_order = userFondo.ind_order;
params.id = userFondo._id;
params.num_tess = userFondo.num_tess;
@@ -1129,6 +1103,8 @@ NaveSchema.statics.generaNave = async function (idapp, mydata) {
numpersone: mydata.numpersone,
};
//++Todo: date_gift_chat_open e date_start : Ricalcolarle in Automatico...
params.primavolta = (params.riga === 1) && (params.col === 1);
// params.primavolta = false;
@@ -1141,7 +1117,7 @@ NaveSchema.statics.generaNave = async function (idapp, mydata) {
await NavePersistente.addRecordNavePersistenteByParams({ idapp, riga: 0, col: 0, riga1don: 0, col1don: 0 });
const userFondo = await User.findByIndOrder(idapp, 0);
const userFondo = await User.findByIndex(idapp, 0);
if (!userFondo || userFondo === undefined) {
await telegrambot.sendMsgTelegramToTheAdmin(idapp, 'Devi creare l\'utente FONDO , con ind_order = 0 ! ');
}
@@ -1270,7 +1246,7 @@ NaveSchema.statics.getNaveByUser = async function (idapp, username, lang, fuoco)
if (persistente.provvisoria) {
mystr += tools.ACAPO + tools.get__('NAVE', lang) + ' ' + '[' + mypos.riga + '.' + mypos.col + '] - ' + tools.get__('TEMPORANEA', lang) + tools.ACAPO + tools.ACAPO;
} else {
mystr += await Nave.getNavePos(idapp, mypos.riga, mypos.col, false, ind_order);
mystr += await Nave.getNavePos(idapp, mypos.riga, mypos.col, false, pos.ind_order);
}
}
// mystr += await Nave.getPlaccaPerDonatore(idapp, pos.riga, pos.col, false, rec);

View File

@@ -125,13 +125,13 @@ function getQueryProj(myfilter) {
}
},
{
$unwind: "$mylista"
$replaceRoot: { newRoot: { $mergeObjects: [ { $arrayElemAt: [ "$mylista", 0 ] }, "$$ROOT" ] } }
},
{
$lookup: {
from: "users",
as: "user",
let: {username: '$mylista.username' },
let: {username: '$username' },
pipeline: [
{
$match: {
@@ -196,6 +196,7 @@ NavePersistenteSchema.statics.getListaNavi = function (idapp) {
col: 1,
riga1don: 1,
col1don: 1,
date_gift_chat_open: 1,
date_start: 1,
provvisoria: 1,
DoniConfermati: 1,
@@ -252,6 +253,10 @@ NavePersistenteSchema.statics.getLastRigaCol = async function (idapp) {
return NavePersistente.findOne({ idapp }).sort({ _id: -1 });
};
NavePersistenteSchema.statics.getLastRigaColDefinitiva = async function (idapp) {
return NavePersistente.findOne({ idapp, provvisoria: false }).sort({ riga: -1, col: -1 });
};
NavePersistenteSchema.pre('save', async function (next) {
if (this.isNew) {
const myrec = await NavePersistente.findOne().limit(1).sort({ _id: -1 });

View File

@@ -405,6 +405,7 @@ UserSchema.statics.getUserShortDataByUsername = async function (idapp, username)
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }],
}, {
lang: 1,
index: 1,
ind_order: 1,
username: 1,
aportador_solidario: 1,
@@ -647,17 +648,24 @@ UserSchema.statics.getLastUser = function (idapp) {
return User.findOne({
idapp,
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }],
}).sort({ ind_order: -1 })
}).sort({ index: -1 })
};
UserSchema.statics.findByIndOrder = function (idapp, ind_order) {
const User = this;
return User.getRecByIndOrder(idapp, ind_order);
};
UserSchema.statics.findByIndex = function (idapp, index) {
const User = this;
try {
// ++Todo: non mettere tutti i campi !!
return User.findOne({
idapp,
ind_order,
index,
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }],
});
} catch (e) {
@@ -711,7 +719,7 @@ UserSchema.pre('save', async function (next) {
*/
next();
}catch (e) {
} catch (e) {
console.error(e.message);
}
});
@@ -855,12 +863,9 @@ UserSchema.statics.SetTelegramIdSuccess = async function (idapp, id, teleg_id) {
UserSchema.statics.getLangByIndOrder = async function (idapp, ind_order) {
const User = this;
return await User.findOne({ idapp, ind_order }, { lang: 1 })
.then((rec) => {
return (!!rec) ? rec.lang : '';
}).catch((e) => {
return 'it';
});
const rec = await User.getSmallRecByIndOrder(idapp, ind_order);
return (!!rec) ? rec.lang : '';
};
@@ -921,10 +926,14 @@ UserSchema.statics.getSmallRecByIndOrder = async function (idapp, ind_order) {
},
{
idapp: 1,
index: 1,
ind_order: 1,
old_order: 1,
username: 1,
name: 1,
surname: 1
lang: 1,
surname: 1,
'profile.teleg_id': 1,
});
if (!!rec)
@@ -938,6 +947,27 @@ UserSchema.statics.getSmallRecByIndOrder = async function (idapp, ind_order) {
};
UserSchema.statics.getRecByIndOrder = async function (idapp, ind_order) {
try {
const rec = await ListaIngresso.getarray(idapp,
{
idapp,
ind_order,
deleted: false,
});
if (!!rec)
return rec[0];
return null;
} catch (e) {
console.error('getRecByIndOrder', e);
}
};
UserSchema.statics.getusersManagers = async function (idapp) {
const User = this;
@@ -1142,7 +1172,10 @@ UserSchema.statics.getDashboard = async function (idapp, aportador_solidario, us
dashboard.arrposizioni = await Nave.getArrPosizioniByUsername(idapp, username);
const arrrec = await ListaIngresso.getProssimiInLista(idapp, true);
let arrrec = [];
if (dashboard.arrimbarchi.length > 0) {
arrrec = await ListaIngresso.getProssimiInLista(idapp, true);
}
for (let myimbarco of dashboard.arrimbarchi) {
if (!!myimbarco.invitante_username)
@@ -1158,6 +1191,7 @@ UserSchema.statics.getDashboard = async function (idapp, aportador_solidario, us
mypos._doc.nave_partenza = await NavePersistente.findByRigaColByDonatore(idapp, mypos.riga, mypos.col, 0);
}
//for (let indriga = 0; indriga < 10; indriga++) {
// dashboard.navi_partenza.push(await Nave.getPrimaNaveByRiga(idapp, indriga));
//}
@@ -1196,7 +1230,7 @@ UserSchema.statics.getDashboard = async function (idapp, aportador_solidario, us
myrec.nave_partenza = await NavePersistente.findByRigaColByDonatore(idapp, myrec.riga, myrec.col, 0);
arrnew.push(myrec);
arrnew.push(myrec);
}
}
}
@@ -1212,6 +1246,7 @@ UserSchema.statics.getDashboard = async function (idapp, aportador_solidario, us
}
};
/*
UserSchema.statics.fixUsername = async function (idapp, aportador_solidario_ind_order, username) {
const User = this;
@@ -1229,6 +1264,7 @@ UserSchema.statics.fixUsername = async function (idapp, aportador_solidario_ind_
};
*/
UserSchema.statics.findByCellAndNameSurname = function (idapp, cell, name, surname) {
const User = this;
@@ -1371,7 +1407,7 @@ UserSchema.statics.visuUtentiNonInNavi = async function (idapp) {
visualizza = true;
if (visualizza) {
mystr += user.username + ' ' + user.name + ' ' + user.surname + ' [' + user.ind_order + '] [inv=' + user.numinvitati + ']'
mystr += user.username + ' ' + user.name + ' ' + user.surname + ' [' + user.index + '] [inv=' + user.numinvitati + ']'
trovato = true;
}
@@ -1524,7 +1560,7 @@ UserSchema.statics.getLastUsers = async function (idapp) {
name: 1,
surname: 1,
date_reg: 1,
ind_order: 1,
index: 1,
'profile.nationality': 1,
}).sort({ date_reg: -1 }).limit(lastn).then((arr) => {
//return JSON.stringify(arr)
@@ -1717,26 +1753,10 @@ async function addUtentiInLista(idapp, mode, arrusers) {
}
UserSchema.statics.deveRitessersi = async function (idapp, ind_order) {
const myrec = await User.findOne({
'idapp': idapp,
'ind_order': ind_order,
"profile.vuole_ritessersi": true
});
return (!!myrec)
};
UserSchema.statics.getUsernameByIndOrder = async function (idapp, ind_order) {
const myrec = await User.findOne({
'idapp': idapp,
'ind_order': ind_order,
}, { username: 1 });
return (!!myrec) ? myrec.username : ''
const myrec = await User.getSmallRecByIndOrder(idapp, ind_order);
return (!!myrec) ? myrec.username : '';
};
@@ -1755,7 +1775,7 @@ UserSchema.statics.ricalcolaIndex = async function (idapp) {
const User = this;
const arrusers = await User.find({ idapp }).sort({ ind_order: 1 });
let index = 1;
let index = 0;
try {
for (const user of arrusers) {
let field = {
@@ -1766,7 +1786,7 @@ UserSchema.statics.ricalcolaIndex = async function (idapp) {
const ris = await User.findOneAndUpdate({ _id: user._id }, { $set: field }, { new: false });
}
}catch (e) {
} catch (e) {
console.error(e.message);
}
@@ -1799,7 +1819,8 @@ UserSchema.statics.changeInvitante = async function (idapp, username, invitante_
// **
const rec_ingr = await ListaIngresso.findOne({ idapp, username: username });
if (!!rec_ingr) {
await ListaIngresso.findByIdAndUpdate(rec_ingr._id, { $set: { invitante_username, ind_order: ind_order_ingr } });
// await ListaIngresso.findByIdAndUpdate(rec_ingr._id, { $set: { invitante_username, ind_order: ind_order_ingr } });
await ListaIngresso.findByIdAndUpdate(rec_ingr._id, { $set: { invitante_username } });
}