- ordinamento tabella titoli

- migliorata la lista degli argomenti
This commit is contained in:
Surya Paolo
2025-04-23 01:59:45 +02:00
parent 58431c144c
commit 85e2df56e1
6 changed files with 78 additions and 47 deletions

View File

@@ -241,9 +241,11 @@ module.exports.executeQueryTable = function (idapp, params) {
module.exports.executeQueryPickup = async function (idapp, params) {
let strfind = params.search;
let strfind = tools.removeAccents(params.search.trim().toLowerCase());
strfind = strfind.replace(/[-@]/g, '');
// Rimuove le parole "il" e "la" e gli spazi, le @ e i tabulazioni
// per non farli influire sulla ricerca
strfind = strfind.replace(/\b(il|la|gli|le|lo|un|una)\b/g, '').replace(/[-@\t]/g, '').trim();
if (strfind === '' && !params.filter) {
return [];
@@ -262,7 +264,7 @@ module.exports.executeQueryPickup = async function (idapp, params) {
$or: [
{
'productInfo.name': {
$regex: `(?i).*${tools.removeAccents(strfind)}.*`, // Cerca una o più parole che sono contenute
$regex: `(?i).*${strfind}.*`, // Cerca una o più parole che sono contenute
$options: 'i' // Rende la ricerca case-insensitive
}
},
@@ -275,15 +277,31 @@ module.exports.executeQueryPickup = async function (idapp, params) {
{
'productInfo.sku': strfind
},
{
$and: [
{
'productInfo.authors.name': {
$regex: `(?i).*${strfind.split(' ').shift()}.*`, // Cerca la prima parola
$options: 'i' // Rende la ricerca case-insensitive
}
},
{
'productInfo.authors.surname': {
$regex: `(?i).*${strfind.split(' ').pop()}.*`, // Cerca la seconda parola
$options: 'i' // Rende la ricerca case-insensitive
}
},
]
},
{
'productInfo.authors.name': {
$regex: `(?i).*${tools.removeAccents(strfind)}.*`, // Cerca una o più parole che sono contenute
$regex: `(?i).*${strfind}.*`, // Cerca una o più parole che sono contenute
$options: 'i' // Rende la ricerca case-insensitive
}
},
{
'productInfo.authors.surname': {
$regex: `(?i)\\b${tools.removeAccents(strfind)}\\b`, // Cerca parole che iniziano con strfind, e ignora gli accenti
$regex: `(?i).*${strfind}.*`, // Cerca una o più parole che sono contenute
$options: 'i' // Rende la ricerca case-insensitive
}
},
@@ -337,6 +355,7 @@ module.exports.executeQueryPickup = async function (idapp, params) {
authors: '$productInfo.authors',
idStatoProdotto: "$productInfo.idStatoProdotto",
},
arrvariazioni: "$arrvariazioni",
}
}
];