- aggiornato scheda e rigenera lista
- corretto filtro sulla Collana
This commit is contained in:
@@ -6,6 +6,7 @@ const CatProd = require('../models/catprod');
|
||||
const SubCatProd = require('../models/subcatprod');
|
||||
const Author = require('../models/author');
|
||||
const Publisher = require('../models/publisher');
|
||||
const Collana = require('../models/collana');
|
||||
const Gasordine = require('../models/gasordine');
|
||||
const tools = require('../tools/general'); // Assicurati di avere il file delle utility
|
||||
const shared_consts = require('../tools/shared_nodejs'); // Assicurati di avere le costanti condivise
|
||||
@@ -62,10 +63,21 @@ class Macro {
|
||||
miomatch2 = {
|
||||
$or: [
|
||||
{ DescrizioneStatoProdotto: 'In commercio' },
|
||||
{ DescrizioneStatoProdotto: '2023 in commercio' },
|
||||
{ DescrizioneStatoProdotto: 'Vendita sito' },
|
||||
{ DescrizioneStatoProdotto: 'Ristampa' },
|
||||
{ DescrizioneStatoProdotto: 'Prossima uscita/pubblicazione' },
|
||||
{ DescrizioneStatoProdotto: 'In promozione' },
|
||||
{ DescrizioneStatoProdotto: 'In fase di valutazione' },
|
||||
{ DescrizioneStatoProdotto: 'Titolo in esaurimento (in attesa Nuova Edizione)' },
|
||||
{ DescrizioneStatoProdotto: 'Titolo in esaurimento' },
|
||||
{ DescrizioneStatoProdotto: 'Titolo in esaurimento (in att N.E Ricopertinata)' },
|
||||
{ DescrizioneStatoProdotto: 'Titolo in Esaurimento (disponibile N.E.)' },
|
||||
{ DescrizioneStatoProdotto: 'In commercio (digitale)' },
|
||||
{ DescrizioneStatoProdotto: 'In prevendita' },
|
||||
{ DescrizioneStatoProdotto: 'Prossima uscita' }
|
||||
{ DescrizioneStatoProdotto: 'Vendita sito' },
|
||||
{ DescrizioneStatoProdotto: '2023 in commercio' },
|
||||
{ DescrizioneStatoProdotto: 'Assoluto NO Reso' },
|
||||
{ DescrizioneStatoProdotto: 'Titolo esaurito' },
|
||||
{ DescrizioneStatoProdotto: 'Prossima uscita' },
|
||||
]
|
||||
|
||||
};
|
||||
@@ -93,12 +105,27 @@ class Macro {
|
||||
} else {
|
||||
options.where = `
|
||||
(DescrizioneStatoProdotto = 'In commercio' OR
|
||||
DescrizioneStatoProdotto = 'Ristampa' OR
|
||||
DescrizioneStatoProdotto = 'Prossima uscita/pubblicazione' OR
|
||||
DescrizioneStatoProdotto = 'In promozione' OR
|
||||
DescrizioneStatoProdotto = 'In fase di valutazione' OR
|
||||
DescrizioneStatoProdotto = 'Titolo in esaurimento (in attesa Nuova Edizione)' OR
|
||||
DescrizioneStatoProdotto = 'Titolo in esaurimento' OR
|
||||
DescrizioneStatoProdotto = 'Titolo in esaurimento (in att N.E Ricopertinata)' OR
|
||||
DescrizioneStatoProdotto = 'Titolo in Esaurimento (disponibile N.E.)' OR
|
||||
DescrizioneStatoProdotto = 'In commercio (digitale)' OR
|
||||
DescrizioneStatoProdotto = 'In prevendita' OR
|
||||
DescrizioneStatoProdotto = 'Vendita sito' OR
|
||||
DescrizioneStatoProdotto = '2023 in commercio' OR
|
||||
DescrizioneStatoProdotto = 'Assoluto NO Reso' OR
|
||||
DescrizioneStatoProdotto = 'Titolo esaurito'
|
||||
DescrizioneStatoProdotto = '2023 in commercio' OR
|
||||
DescrizioneStatoProdotto = 'Vendita sito' OR
|
||||
DescrizioneStatoProdotto = 'In prevendita' OR
|
||||
DescrizioneStatoProdotto = 'Prossima uscita') AND
|
||||
(DescrizioneTipologia = 'Libri' OR
|
||||
DescrizioneTipologia = 'Cartonato')
|
||||
DescrizioneTipologia = 'Cartolibro' OR
|
||||
DescrizioneTipologia = 'Carte')
|
||||
`;
|
||||
}
|
||||
|
||||
@@ -116,7 +143,7 @@ class Macro {
|
||||
if (true) {
|
||||
filtroTipologia = {
|
||||
$match: {
|
||||
DescrizioneTipologia: { $in: ['Libri', 'Cartolibro'] },
|
||||
DescrizioneTipologia: { $in: ['Libri', 'Cartolibro', 'Carte'] },
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -200,8 +227,8 @@ class Macro {
|
||||
{
|
||||
$lookup: {
|
||||
from: 't_web_tipiformatos',
|
||||
localField: 'idFormato',
|
||||
foreignField: 'idFormato',
|
||||
localField: 'IdTipoFormato',
|
||||
foreignField: 'IdTipoFormato',
|
||||
as: 'DescrizioneFormato',
|
||||
}
|
||||
},
|
||||
@@ -214,8 +241,8 @@ class Macro {
|
||||
{
|
||||
$lookup: {
|
||||
from: 't_web_collanes',
|
||||
localField: 'idCollana',
|
||||
foreignField: 'idCollana',
|
||||
localField: 'IdCollana',
|
||||
foreignField: 'IdCollana',
|
||||
as: 'DescrizioneCollana',
|
||||
}
|
||||
},
|
||||
@@ -564,6 +591,8 @@ class Macro {
|
||||
await this.gestisciCategorie(productInfo, product);
|
||||
await this.gestisciAutori(productInfo, product);
|
||||
await this.gestisciEditore(productInfo, product);
|
||||
await this.gestisciCollana(productInfo, product);
|
||||
|
||||
|
||||
const risrecInfo = await ProductInfo.findOneAndUpdate(
|
||||
{ code: productInfo.code },
|
||||
@@ -625,7 +654,9 @@ class Macro {
|
||||
description: product.description,
|
||||
short_descr: product.short_descr,
|
||||
publisher: product.editore,
|
||||
collezione: product.Collezione,
|
||||
collezione: product.collezione,
|
||||
idCollana: product.idCollana,
|
||||
numCollana: product.numCollana,
|
||||
link: product.link || undefined,
|
||||
idCatProds: [],
|
||||
idSubCatProds: [],
|
||||
@@ -706,6 +737,7 @@ class Macro {
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
const recproduct = {
|
||||
idapp: idapp,
|
||||
isbn: productGM.Ean13,
|
||||
@@ -714,8 +746,8 @@ class Macro {
|
||||
title: productGM.Titolo, // productInfo.name.replace(/ - Usato$| - Nuovo$| - Epub$| - Ebook$| - Mobi$| - DVD$| - Streaming$| - Download$/, "");
|
||||
description: '',
|
||||
short_descr: '',
|
||||
editore: productGM.CasaEditrice,
|
||||
collezione: productGM.DescrizioneCollana,
|
||||
numCollana: productGM.IdCollana,
|
||||
editore: productGM.CasaEditrice,
|
||||
Autore: productGM.AutoriCompleti,
|
||||
DescrArgomento: productGM.DescrArgomento,
|
||||
@@ -727,10 +759,9 @@ class Macro {
|
||||
Tipologia: productGM.DescrizioneTipologia,
|
||||
idTipologia: productGM.IdTipologia,
|
||||
idTipoFormato: productGM.IdTipoFormato,
|
||||
Edizione: productGM.Edizione,
|
||||
Pagine: productGM.Pagine,
|
||||
misure: productGM.Misure,
|
||||
edizione: productGM.Edizione,
|
||||
Edizione: productGM.Edizione,
|
||||
ristampa: productGM.Ristampa,
|
||||
eta: productGM.FasciaEta,
|
||||
// addtocart_link: '',
|
||||
@@ -743,9 +774,9 @@ class Macro {
|
||||
|
||||
let vers = 0;
|
||||
|
||||
//if (productGM.DescrizioneTipologia === 'Usato')
|
||||
// vers = shared_consts.PRODUCTTYPE.USATO;
|
||||
/*
|
||||
if (productGM.DescrizioneTipologia === 'Usato')
|
||||
vers = shared_consts.PRODUCTTYPE.USATO;
|
||||
|
||||
if (productGM.DescrizioneTipologia === 'Download')
|
||||
vers = shared_consts.PRODUCTTYPE.DOWNLOAD;
|
||||
else if (productGM.DescrizioneTipologia === 'DVD')
|
||||
@@ -761,9 +792,7 @@ class Macro {
|
||||
else
|
||||
vers = shared_consts.PRODUCTTYPE.NUOVO;
|
||||
|
||||
recproduct.Versione = vers;
|
||||
*/
|
||||
|
||||
recproduct.Versione = vers;
|
||||
|
||||
return recproduct
|
||||
}
|
||||
@@ -904,6 +933,29 @@ class Macro {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gestisce la collana del prodotto.
|
||||
*/
|
||||
async gestisciCollana(productInfo, product) {
|
||||
if (product.collezione && product.numCollana) {
|
||||
const collana = product.collezione.trim();
|
||||
const reccollana = await Collana.findOne({ idapp: this.idapp, title: collana }).lean();
|
||||
|
||||
let nuovaCollana = null;
|
||||
if (!reccollana) {
|
||||
nuovaCollana = new Collana({ idapp: this.idapp, idCollana: product.numCollana, title: collana });
|
||||
await nuovaCollana.save();
|
||||
if (!nuovaCollana._id) {
|
||||
console.error('Errore gestisciCollana: nuovaCollana non ha id');
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (reccollana?._id || nuovaCollana?._id)
|
||||
productInfo.idCollana = reccollana?._id || nuovaCollana._id;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Aggiorna l'immagine se necessario.
|
||||
*/
|
||||
@@ -920,7 +972,7 @@ class Macro {
|
||||
preparaVariazione(product) {
|
||||
return {
|
||||
active: true,
|
||||
// versione: product.Versione,
|
||||
versione: product.Versione,
|
||||
status: product.Stato || null,
|
||||
price: product.price ? parseFloat(tools.convertPriceEurToValue(product.price)) : null,
|
||||
sale_price: product.sale_price ? parseFloat(tools.convertPriceEurToValue(product.sale_price)) : null,
|
||||
@@ -931,7 +983,6 @@ class Macro {
|
||||
edizione: product.Edizione || '',
|
||||
pagine: tools.isValidNumber(product.Pagine) ? tools.convstrToInt(product.Pagine) : 0,
|
||||
misure: product.misure || '',
|
||||
edizione: product.edizione || '',
|
||||
ristampa: product.ristampa || '',
|
||||
eta: product.eta || '',
|
||||
addtocart_link: product.addtocart_link || '',
|
||||
|
||||
Reference in New Issue
Block a user