SubAccounts

This commit is contained in:
Paolo Arena
2020-05-10 21:07:51 +02:00
parent 7d0538f7ae
commit ae77637d33
17 changed files with 1535 additions and 499 deletions

View File

@@ -5,7 +5,7 @@ const { User } = require('../models/user');
const { Nave } = require('../models/nave');
const { NavePersistente } = require('../models/navepersistente');
const { ListaIngresso } = require('../models/listaingresso');
const { ExtraList } = require('../models/extralist');
// const { ExtraList } = require('../models/extralist');
const { ObjectID } = require('mongodb');
const sendemail = require('../sendemail');
@@ -126,16 +126,16 @@ router.post('/', async (req, res) => {
// }
const lastuser = await User.getLastUser(user.idapp);
const lastextra = await ExtraList.getLastUser(user.idapp);
// const lastextra = await ExtraList.getLastUser(user.idapp);
let lastindorder = 0;
if (lastuser) {
lastindorder = lastuser.ind_order;
}
if (lastextra) {
if (lastextra.ind_order > lastindorder)
lastindorder = lastextra.ind_order;
}
//if (lastextra) {
// if (lastextra.ind_order > lastindorder)
// lastindorder = lastextra.ind_order;
//}
if (lastindorder > 0)
user.ind_order = lastindorder + 1;
@@ -210,9 +210,9 @@ router.post('/', async (req, res) => {
user.perm = shared_consts.Permissions.Manager + shared_consts.Permissions.Admin;
}
const useraportador = await ExtraList.findByIndOrder(user.idapp, user.aportador_solidario_ind_order);
if (useraportador)
user.aportador_solidario = useraportador.username;
// const useraportador = await ExtraList.findByIndOrder(user.idapp, user.aportador_solidario_ind_order);
// if (useraportador)
// user.aportador_solidario = useraportador.username;
}
}
@@ -263,6 +263,10 @@ router.get('/:idapp/:username', async (req, res) => {
var username = req.params.username;
const idapp = req.params.idapp;
// if (username === 'pippo') {
// return res.status(200).send();
// }
await User.findByUsername(idapp, username, false).then((user) => {
if (!user) {
return res.status(404).send();
@@ -406,7 +410,7 @@ router.post('/import_extralist', async (req, res) => {
idapp = req.body.idapp;
locale = req.body.locale;
const ris = await ExtraList.ImportData(locale, idapp, strdata);
// const ris = await ExtraList.ImportData(locale, idapp, strdata);
console.log('ris', ris);
res.send(ris);
@@ -482,6 +486,51 @@ router.post('/dbop', authenticate, async (req, res) => {
ris = { mystr };
} else if (mydata.dbop === 'visuNaviUtentiEliminati') {
ris = await Nave.visuNaviUtentiEliminati(idapp);
} else if (mydata.dbop === 'creaTessituraeConv') {
ris = await ListaIngresso.creaTessituraeConv(idapp);
ris = { mystr };
} else if (mydata.dbop === 'convNaviTessinListaIngressoRec') {
let num = 0;
const arrnavitess = await Nave.find({idapp, num_tess: { $gte: 3 } });
for (const recnave of arrnavitess) {
if (recnave.num_tess === 3 || recnave.num_tess === 5 || recnave.num_tess === 7) {
const ind_order = recnave.ind_order;
// Prima controlla se ho già 2 record dello stesso ind_order, allora non lo faccio:
const arringr = await ListaIngresso.find({idapp, ind_order});
let dafare = true;
if (arringr.length > 0) {
const arringrtest = await ListaIngresso.find({idapp, ind_order}).distinct('num_tess');
if (arringr.length !== arringrtest.length){
dafare = false; // Ci sono 2 o piu record! pertanto probabilmente l'ho già fatto!
}
}
if (dafare) {
const user = await User.findByOldOrder(idapp, ind_order);
if (!!user) {
let note = recnave.num_tess;
// Crea record ListaIngresso
const newrecingr = await ListaIngresso.addUserInListaIngresso(idapp, user.username, user.username, user.lang, false, true, recnave.created, note, true);
const fieldsvalue = {
ind_order: newrecingr.ind_order,
num_tess: 1,
};
// Aggiorna la nave con l'Ind_order nuovo e il num_tess a 1
await Nave.findOneAndUpdate({ _id: recnave._id }, { $set: fieldsvalue }, { new: false });
num++;
}
}
}
}
ris = { num };
} else if (mydata.dbop === 'initListaIngresso') {
// const aaa = await User.updateMany({ idapp }, { $set: { 'profile.nationality': 'IT' } });
@@ -595,10 +644,18 @@ router.post('/dbop', authenticate, async (req, res) => {
let num = 0;
lastrec = await User.find({ idapp }).sort({ _id: -1 }).limit(1);
let last = 1;
if (lastrec) {
last = lastrec[0].ind_order;
}
if (!last) {
last = 1;
}
for (let ind = 0; ind < 100; ind++) {
let myuser = new User();
myuser._id = new ObjectID();
myuser.ind_order = lastrec[0].ind_order + ind + 1;
myuser.ind_order = last + ind + 1;
myuser.idapp = idapp;
myuser.password = "$2a$12$DEaX1h5saTUVC43f7kubyOAlah1xHDgqQTfSIux0.RFDT9WGbyCaG";
myuser.lang = 'it';
@@ -659,7 +716,7 @@ router.post('/dbop', authenticate, async (req, res) => {
const user = await User.getUserShortDataByUsername(idapp, mydata.username);
if (user) {
arrnavi = await Nave.getArrPosizioniByIndOrder(idapp, user.ind_order);
arrnavi = await Nave.getArrPosizioniByUsername(idapp, user.username);
for (let mynave of arrnavi) {
mynave._doc.rec = await Nave.getNaveByRigaCol(idapp, mynave.riga, mynave.col);