- Codice internazionale numero + Country

This commit is contained in:
paoloar77
2021-12-21 01:27:45 +01:00
parent 3f8a2abd66
commit d6e571edbf
13 changed files with 237 additions and 179 deletions

View File

@@ -1106,6 +1106,56 @@ module.exports = {
return (myapp) ? myapp.telegram_key : '';
},
getLookup: function(params, num, pass_proj) {
const query = []
if (!params)
return;
let mylkLF = params.lk_LF;
if (params.af_objId_tab) {
const myobj = {}
myobj['myId' + num] = {'$toObjectId': '$' + params.lk_LF};
query.push(
{'$addFields': myobj},
);
mylkLF = 'myId' + num;
} else {
}
if (params.lk_tab) {
let proj = params.lk_proj
if (!!pass_proj) {
proj = pass_proj
}
query.push(
{
$lookup: {
from: params.lk_tab,
localField: mylkLF, // field in my collection
foreignField: params.lk_FF, // field in the 'from' collection
as: params.lk_as,
},
},
{
$replaceRoot: {
newRoot: {
$mergeObjects: [
{
$arrayElemAt: [
'$' + params.lk_as, 0],
}, '$$ROOT'],
},
},
},
{$project: proj},
);
}
return query;
},
getQueryTable: function(idapp, params) {
if (typeof params.startRow !== 'number') {
@@ -1114,7 +1164,14 @@ module.exports = {
throw new Error('endRow must be number');
}
let newvers = true;
if (params.lk_LF)
newvers = false;
let query = [];
if (params.filter && params.fieldsearch) {
let myregexp = {};
@@ -1285,38 +1342,30 @@ module.exports = {
if (numrowend < 0)
numrowend = 1;
let mylkLF = params.lk_LF;
if (params.af_objId_tab) {
query.push(
{'$addFields': {'myId': {'$toObjectId': '$' + params.lk_LF}}},
);
mylkLF = 'myId';
if (newvers) {
// NUOVA VERSIONE
let proj = params.lookup2 ? params.lookup2.lk_proj : null;
const q1 = this.getLookup(params.lookup1, 1, proj);
if (q1) query = [...query, ...q1]
const q2 = this.getLookup(params.lookup2, 2, proj);
if (q2) query = [...query, ...q2];
const q3 = this.getLookup(params.lookup3, 3, proj);
if (q3) query = [...query, ...q3];
if (params.filtersearch2.length > 0) {
query.push({$match: {$and: params.filtersearch2}});
}
} else {
// VECCHIA VERSIONE
const q1 = this.getLookup(params, 1);
if (q1) query = [...query, ...q1]
}
if (params.lk_tab) {
query.push(
{
$lookup: {
from: params.lk_tab,
localField: mylkLF, // field in my collection
foreignField: params.lk_FF, // field in the 'from' collection
as: params.lk_as,
},
},
{
$replaceRoot: {
newRoot: {
$mergeObjects: [
{
$arrayElemAt: [
'$' + params.lk_as, 0],
}, '$$ROOT'],
},
},
},
{$project: params.lk_proj},
);
}
query.push(
{
@@ -1347,6 +1396,7 @@ module.exports = {
let query = this.getQueryTable(idapp, params);
try {
// console.log('query', query);
const [ris] = await mythistable.aggregate(query);
if (ris) {