SubAccounts
This commit is contained in:
@@ -30,7 +30,7 @@ const _ = require('lodash');
|
||||
const { User } = require('../models/user');
|
||||
const { Nave } = require('../models/nave');
|
||||
const { NavePersistente } = require('../models/navepersistente');
|
||||
const { ExtraList } = require('../models/extralist');
|
||||
// const { ExtraList } = require('../models/extralist');
|
||||
const { Booking } = require('../models/booking');
|
||||
const { Operator } = require('../models/operator');
|
||||
const { Where } = require('../models/where');
|
||||
@@ -179,8 +179,10 @@ function getTableByTableName(tablename) {
|
||||
mytable = '';
|
||||
if (tablename === 'users')
|
||||
mytable = User;
|
||||
else if (tablename === 'extralist')
|
||||
mytable = ExtraList;
|
||||
else if (tablename === 'tessitura')
|
||||
mytable = Tessitura;
|
||||
// else if (tablename === 'extralist')
|
||||
// mytable = ExtraList;
|
||||
else if (tablename === 'bookings')
|
||||
mytable = Booking;
|
||||
else if (tablename === 'operators')
|
||||
@@ -280,7 +282,7 @@ router.post('/gettable', authenticate, (req, res) => {
|
||||
|
||||
async function checkIfSbloccatiRequisiti(idapp, allData, id) {
|
||||
|
||||
if (await Nave.findByIndOrder(idapp, allData.myuser.ind_order)) {
|
||||
if (await Nave.checkIfNaveExist(idapp, allData.myuser.username)) {
|
||||
// Se già sei dentro la Nave, allora sei OK
|
||||
return true;
|
||||
}
|
||||
@@ -289,18 +291,18 @@ async function checkIfSbloccatiRequisiti(idapp, allData, id) {
|
||||
const is7req = await User.isUserQualified7(idapp, allData.myuser.username);
|
||||
const is9req = await User.isUserQualified9(idapp, allData.myuser.username);
|
||||
|
||||
const userlista = await ListaIngresso.findByIndOrder(idapp, allData.myuser.ind_order);
|
||||
if (!userlista) {
|
||||
const userlista = await ListaIngresso.getListaTessByUsername(idapp, allData.myuser.username);
|
||||
if (userlista.length === 0) {
|
||||
// Se non sono ancora dentro alla lista, allora controllo
|
||||
|
||||
if (!allData.precDataUser.is7req && is7req) {
|
||||
// ORA HAI I 7 REQUISITI !
|
||||
const msgtext = telegrambot.getCiao(idapp, allData.myuser.username, allData.myuser.lang) + tools.gettranslate('HAI_I_7_REQUISITI', allData.myuser.lang);
|
||||
telegrambot.sendMsgTelegram(idapp, allData.myuser.username, msgtext, true); // Anche a STAFF
|
||||
// const msgtext = telegrambot.getCiao(idapp, allData.myuser.username, allData.myuser.lang) + tools.gettranslate('HAI_I_7_REQUISITI', allData.myuser.lang);
|
||||
// telegrambot.sendMsgTelegram(idapp, allData.myuser.username, msgtext, true); // Anche a STAFF
|
||||
|
||||
if (tools.isAbilitaNave(idapp)) {
|
||||
// Aggiungilo alla ListaIngresso
|
||||
ris = await ListaIngresso.addUserInListaIngresso(idapp, allData.myuser.ind_order, allData.myuser.lang, true, 1);
|
||||
risingr = await ListaIngresso.addUserInListaIngresso(idapp, allData.myuser.username, allData.myuser.aportador_iniziale, allData.myuser.lang, true, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -308,11 +310,12 @@ async function checkIfSbloccatiRequisiti(idapp, allData, id) {
|
||||
if (!allData.precDataUser.is9req && is9req) {
|
||||
// ORA HAI I 9 REQUISITI !
|
||||
const msgtext = telegrambot.getCiao(idapp, allData.myuser.username, allData.myuser.lang) + tools.gettranslate('HAI_I_9_REQUISITI', allData.myuser.lang);
|
||||
telegrambot.sendMsgTelegram(idapp, allData.myuser.username, msgtext, true); // Anche a STAFF
|
||||
telegrambot.sendMsgTelegram(idapp, allData.myuser.username, msgtext, false); // Anche a STAFF
|
||||
}
|
||||
|
||||
// CHECK APORTADOR SOLIDARIO:
|
||||
if (!!allData.useraportador) {
|
||||
/*
|
||||
const is9reqAportador = await User.isUserQualified9(idapp, allData.myuser.aportador_solidario);
|
||||
|
||||
if (!allData.precDataAportador.is9req && is9reqAportador) {
|
||||
@@ -320,6 +323,7 @@ async function checkIfSbloccatiRequisiti(idapp, allData, id) {
|
||||
const msgtext = telegrambot.getCiao(idapp, allData.myuser.aportador_solidario, allData.useraportador.lang) + tools.gettranslate('HAI_I_9_REQUISITI', allData.useraportador.lang);
|
||||
telegrambot.sendMsgTelegram(idapp, allData.myuser.aportador_solidario, msgtext, true); // Anche a STAFF
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
}
|
||||
@@ -385,8 +389,8 @@ router.patch('/chval', authenticate, async (req, res) => {
|
||||
allData = {};
|
||||
allData.myuser = await User.getUserById(idapp, id);
|
||||
allData.precDataUser = await getInfoUser(idapp, allData.myuser.username);
|
||||
allData.useraportador = await User.getUserByAportador(idapp, allData.myuser.aportador_solidario);
|
||||
allData.precDataAportador = await getInfoUser(idapp, allData.myuser.aportador_solidario);
|
||||
// allData.useraportador = await ListaIngresso.getUserByInvitante_Username(idapp, allData.myuser.aportador_solidario);
|
||||
// allData.precDataAportador = await getInfoUser(idapp, allData.myuser.aportador_solidario);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -401,7 +405,7 @@ router.patch('/chval', authenticate, async (req, res) => {
|
||||
// Send Notification to the BOT
|
||||
await telegrambot.sendMsgTelegram(idapp, mydata.notifBot.un, mydata.notifBot.txt);
|
||||
addtext = '[Msg Inviato a ' + mydata.notifBot.un + ']:' + '\n' + mydata.notifBot.txt;
|
||||
await telegrambot.sendMsgTelegramToTheManagers(idapp, addtext);
|
||||
await telegrambot.sendMsgTelegramToTheManagers(idapp, addtext, true);
|
||||
}
|
||||
|
||||
if (mydata.table === 'users') {
|
||||
@@ -412,12 +416,26 @@ router.patch('/chval', authenticate, async (req, res) => {
|
||||
|
||||
if (mydata.table === 'users') {
|
||||
if ('aportador_solidario' in fieldsvalue) {
|
||||
ind_order_ingr = mydata.ind_order_ingr;
|
||||
// SERVE SE CI METTO LE MINUSCOLE/MAIUSCOLE SBAGLIATE in invitante_username!
|
||||
const myuserfound = await User.findByUsername(idapp, fieldsvalue.aportador_solidario, false);
|
||||
if (!!myuserfound) {
|
||||
if (!!myuserfound._id && !myuserfound.deleted) {
|
||||
fieldsvalue.aportador_solidario = await User.getUsernameById(idapp, myuserfound._id);
|
||||
const aportador = await User.getUsernameById(idapp, myuserfound._id);
|
||||
fieldsvalue.aportador_solidario = aportador;
|
||||
//Aggiorna record !
|
||||
await mytable.findByIdAndUpdate(id, { $set: fieldsvalue });
|
||||
|
||||
const myfirstrec = await ListaIngresso.findOne({ username: rec.username, ind_order: ind_order_ingr });
|
||||
if (!!myfirstrec) {
|
||||
if (!!myfirstrec._id && !myfirstrec.deleted) {
|
||||
let fieldsv2 = {
|
||||
invitante_username: aportador
|
||||
};
|
||||
//Aggiorna record !
|
||||
const ris = await ListaIngresso.findByIdAndUpdate(myfirstrec._id.toString(), { $set: fieldsv2 });
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
res.send({ code: server_constants.RIS_CODE_ERR, msg: 'Non aggiornato' });
|
||||
@@ -427,6 +445,33 @@ router.patch('/chval', authenticate, async (req, res) => {
|
||||
}
|
||||
}
|
||||
|
||||
if (mydata.table === 'listaingressos') {
|
||||
if ('invitante_username' in fieldsvalue) {
|
||||
// SERVE SE CI METTO LE MINUSCOLE/MAIUSCOLE SBAGLIATE in invitante_username!
|
||||
const myuserfound = await User.findByUsername(idapp, fieldsvalue.invitante_username, false);
|
||||
if (!!myuserfound) {
|
||||
if (!!myuserfound._id && !myuserfound.deleted) {
|
||||
fieldsvalue.invitante_username = await User.getUsernameById(idapp, myuserfound._id);
|
||||
//Aggiorna record !
|
||||
const ris = await mytable.findByIdAndUpdate(id, { $set: fieldsvalue });
|
||||
if (!!ris) {
|
||||
/*let fieldsv2 = {
|
||||
aportador_solidario: fieldsvalue.invitante_username
|
||||
};
|
||||
|
||||
//Aggiorna record !
|
||||
await User.findByIdAndUpdate(myuserfound._id, { $set: fieldsv2 });
|
||||
*/
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// res.send({ code: server_constants.RIS_CODE_ERR, msg: 'Non aggiornato' });
|
||||
// res.status(400).send();
|
||||
// return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (tools.ModificheConsentite(mydata.table, fieldsvalue)) {
|
||||
let msg = '';
|
||||
if (mydata.table === 'users') {
|
||||
@@ -463,12 +508,15 @@ router.patch('/chval', authenticate, async (req, res) => {
|
||||
tools.mylogserr('Error patch USER: ', e.message);
|
||||
res.status(400).send();
|
||||
})
|
||||
|
||||
|
||||
});
|
||||
|
||||
router.patch('/callfunz', authenticate, async (req, res) => {
|
||||
// const idapp = req.body.idapp;
|
||||
const id = req.body.data.id;
|
||||
const ind_order = req.body.data.ind_order;
|
||||
const username = req.body.data.username;
|
||||
const idapp = req.body.idapp;
|
||||
const mydata = req.body.data;
|
||||
|
||||
@@ -486,7 +534,7 @@ router.patch('/callfunz', authenticate, async (req, res) => {
|
||||
}
|
||||
}
|
||||
|
||||
const myuser = await User.findOne({ idapp, ind_order });
|
||||
const myuser = await User.findOne({ idapp, username });
|
||||
|
||||
let rimosso = 0;
|
||||
|
||||
@@ -518,8 +566,12 @@ router.patch('/callfunz', authenticate, async (req, res) => {
|
||||
}
|
||||
|
||||
if (!!myuser) {
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CONTROLLARE !!!
|
||||
// ++Todo: Controllare che sia corretto che lo nascondo !!!
|
||||
|
||||
// Metti campo 'delete': true su ListaIngresso
|
||||
olduseringresso = await ListaIngresso.findOne({ idapp, ind_order: myuser.ind_order });
|
||||
olduseringresso = await ListaIngresso.findOne({ idapp, ind_order: old_ind_order });
|
||||
if (!!olduseringresso) {
|
||||
let fieldsvalue = {
|
||||
deleted: true
|
||||
@@ -553,13 +605,13 @@ router.patch('/callfunz', authenticate, async (req, res) => {
|
||||
} else {
|
||||
if (mydata.notifBot && !!navepersistente.link_chat) {
|
||||
// Send Notification to the BOT
|
||||
let messaggio = 'Sei stato Spostato in una Nuova Nave !';
|
||||
let messaggio = tools.get__('SPOSTATO', req.user.lang);
|
||||
|
||||
if (!!navepersistente.date_start) {
|
||||
messaggio += tools.ACAPO + ' data di Partenza della Nave: ' + tools.getstrDateLong(navepersistente.date_start) + tools.ACAPO;
|
||||
messaggio += tools.ACAPO + tools.get__('DATA_PART_NAVE', req.user.lang) + tools.getstrDateLong(navepersistente.date_start) + tools.ACAPO;
|
||||
}
|
||||
if (!!navepersistente.link_chat) {
|
||||
messaggio += tools.ACAPO + 'Entra nella Gift Chat: ' + navepersistente.link_chat + tools.ACAPO;
|
||||
messaggio += tools.ACAPO + tools.get__('ENTRA_GIFT_CHAT', req.user.lang) + navepersistente.link_chat + tools.ACAPO;
|
||||
}
|
||||
|
||||
const myplacca = await Nave.getNavePos(idapp, navepersistente.riga, navepersistente.col);
|
||||
@@ -586,21 +638,28 @@ router.patch('/callfunz', authenticate, async (req, res) => {
|
||||
}
|
||||
} else if (mydata.myfunc === shared_consts.CallFunz.AGGIUNGI_NUOVO_IMBARCO) {
|
||||
// Ottieni il prossimo Numero di Tessitura
|
||||
let num_tess = await Nave.getNextNumTess(idapp, ind_order);
|
||||
//let num_tess = await Nave.getNextNumTess(idapp, ind_order);
|
||||
const num_tess = 1;
|
||||
|
||||
/*
|
||||
let listaingr = await ListaIngresso.find({ idapp, ind_order }).sort({ num_tess: 1 });
|
||||
const trovato = listaingr.find((rec) => rec.num_tess === num_tess);
|
||||
if (trovato) {
|
||||
num_tess = listaingr.slice(-1)[0].num_tess + 2;
|
||||
}
|
||||
*/
|
||||
|
||||
ris = await ListaIngresso.addUserInListaIngresso(idapp, ind_order, myuser.lang, true, num_tess);
|
||||
// metti l'invitante inizialmente a Te stesso !
|
||||
const invitante_username = req.body.data.invitante_username;
|
||||
|
||||
arrimbarchi = await ListaIngresso.findAllByIndOrder(idapp, ind_order);
|
||||
ris = await ListaIngresso.addUserInListaIngresso(idapp, username, invitante_username, myuser.lang, true, true);
|
||||
|
||||
arrimbarchi = await ListaIngresso.findAllByUsername(idapp, username);
|
||||
return res.send({ code: server_constants.RIS_CODE_OK, arrimbarchi });
|
||||
|
||||
} else if (mydata.myfunc === shared_consts.CallFunz.CANCELLA_IMBARCO) {
|
||||
|
||||
await ListaIngresso.remove({ idapp, ind_order, num_tess: mydata.data.num_tess });
|
||||
await ListaIngresso.remove({ idapp, username, ind_order });
|
||||
|
||||
return res.send({ code: server_constants.RIS_CODE_OK });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user