- Corretta query di estrapolazione libri su GM (Marco)

- aggiornato bestseller su fatlast1Y
- non mostrare piu i libri che non hanno l'immagine (sul catalogo).
- metti online i compressi
This commit is contained in:
Surya Paolo
2025-06-16 19:36:48 +02:00
parent f146b36173
commit 1298184b2e
21 changed files with 432 additions and 65 deletions

4
.env
View File

@@ -1,6 +1,6 @@
VITE_APP_VERSION="1.2.56" VITE_APP_VERSION="1.2.57"
VITE_LANG_DEFAULT="it" VITE_LANG_DEFAULT="it"
VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF" VITE_PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
VITE_SERVICE_WORKER_FILE="sw-1.2.56.js" VITE_SERVICE_WORKER_FILE="sw-1.2.57.js"
VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a" VITE_PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
VITE_VUE_ROUTER_MODE="history" VITE_VUE_ROUTER_MODE="history"

View File

@@ -0,0 +1,234 @@
SELECT T.*
,i.DescrizioneTipologia
,f.DescrizioneStatoProdotto
,n.DescrizioneFormato
,y.DescrizioneCollana
,z.AutoriCompleti
,i2.DescrArgomento
,z3.CasaEditrice
,q.QtaDisponibile
FROM
T_WEB_Articoli T
WITH (noLock)
RIGHT JOIN
( SELECT IdArticolo,
MAX(DataOra) AS data
FROM
T_WEB_Articoli
GROUP BY
IdArticolo ) b
ON
T.IdArticolo = b.IdArticolo
AND T.DataOra = b.data
RIGHT JOIN
( SELECT
e.IdStatoProdotto,
e.Descrizione as DescrizioneStatoProdotto
FROM
T_WEB_StatiProdotto e
JOIN
(
SELECT
IdStatoProdotto,
MAX(DataOra) as data1
FROM
T_WEB_StatiProdotto
GROUP BY
IdStatoProdotto ) c
ON
e.IdStatoProdotto = c.IdStatoProdotto
AND e.DataOra = c.data1 ) f
ON
T.IdStatoProdotto = f.IdStatoProdotto
RIGHT JOIN
(
SELECT
g.IdTipologia,
g.Descrizione as DescrizioneTipologia
FROM
T_WEB_Tipologie g
JOIN
(
SELECT
IdTipologia,
MAX(DataOra) as data1
FROM
T_WEB_Tipologie
GROUP BY
IdTipologia ) h
ON
g.IdTipologia = h.IdTipologia
AND g.DataOra = h.data1 ) i
ON
T.IdTipologia = i.IdTipologia
RIGHT JOIN
(
SELECT
l.IdTipoFormato,
l.Descrizione as DescrizioneFormato
FROM
T_WEB_TipiFormato l
JOIN
(
SELECT
IdTipoFormato,
MAX(DataOra) as data1
FROM
T_WEB_TipiFormato
GROUP BY
IdTipoFormato ) m
ON
l.IdTipoFormato = m.IdTipoFormato
AND l.DataOra = m.data1 ) n
ON
T.IdTipoFormato = n.IdTipoFormato
RIGHT JOIN
(
SELECT
v.IdCollana,
v.Descrizione as DescrizioneCollana
FROM
T_WEB_Collane v
INNER JOIN
(
SELECT
IdCollana,
MAX(ID) as MaxID
FROM
T_WEB_Collane
GROUP BY
IdCollana ) x
ON
v.IdCollana = x.IdCollana
AND v.ID = x.MaxID ) y
ON
T.IdCollana = y.IdCollana
RIGHT JOIN
(
SELECT
g2.IdArgomento,
g2.Descrizione as DescrArgomento
FROM
T_WEB_Argomenti g2
INNER JOIN
(
SELECT
IdArgomento,
MAX(DataOra) as data12
FROM
T_WEB_Argomenti
GROUP BY
IdArgomento ) h
ON
g2.IdArgomento = h.IdArgomento
AND g2.DataOra = h.data12 ) i2
ON
T.ListaArgomenti = i2.IdArgomento
RIGHT JOIN ( SELECT
o.Codice,
o.QtaDisponibile
FROM
T_WEB_Disponibile o
JOIN
(
SELECT
Codice,
MAX(DataOra) as data1
FROM
T_WEB_Disponibile
GROUP BY
Codice ) p
ON
o.Codice = p.Codice
AND o.DataOra = p.data1 ) q
ON
T.IdArticolo = q.Codice
RIGHT JOIN
(
SELECT
a3.IdMarchioEditoriale,
a3.Descrizione as CasaEditrice
FROM
T_WEB_MarchiEditoriali a3
JOIN
(
SELECT
IdMarchioEditoriale,
MAX(DataOra) as maxData
FROM
T_WEB_MarchiEditoriali
GROUP BY
IdMarchioEditoriale ) aa3
ON
a3.IdMarchioEditoriale = aa3.IdMarchioEditoriale
AND a3.DataOra = aa3.maxData ) z3
ON
T.IdMarchioEditoriale = z3.IdMarchioEditoriale
RIGHT JOIN
(
SELECT T1.IdArticolo, STUFF((
SELECT
',' + ISNULL(A2.AutoreCompleto, '')
FROM
(
SELECT
CAST('<root><x>' + REPLACE(T1.ListaAutori, ',', '</x><x>') + '</x></root>' AS XML) AS DataXML ) X
CROSS APPLY
X.DataXML.nodes('/root/x') AS A(x)
CROSS APPLY
(
SELECT
TRY_CAST(LTRIM(RTRIM(A.x.value('.', 'VARCHAR(100)'))) AS INT) AS AutoreID ) CA
LEFT JOIN
(
SELECT
a.IdAutore,
CONCAT(a.Nome, ' ', a.Cognome) AS AutoreCompleto
FROM
T_WEB_Autori a
RIGHT JOIN
(
SELECT
IdAutore,
MAX(DataOra) AS maxData
FROM
T_WEB_Autori
GROUP BY
IdAutore ) aa
ON
a.IdAutore = aa.IdAutore
AND a.DataOra = aa.maxData
) A2
ON
CA.AutoreID = A2.IdAutore FOR XML PATH(''),
TYPE ).value('.', 'NVARCHAR(MAX)') ,
1 ,
1 ,
'') AS AutoriCompleti
FROM T_WEB_Articoli T1
WHERE t1.DataOra = (select max(DataOra) AS DataOra from T_web_articoli As h WHERE h.IdArticolo = T1.IdArticolo)
GROUP BY T1.IdArticolo, T1.ListaAutori ) z ON T.IdArticolo = z.IdArticolo
WHERE
(
DescrizioneStatoProdotto = 'In commercio'
OR DescrizioneStatoProdotto = 'Prossima uscita/pubblicazione'
OR DescrizioneStatoProdotto = 'Prossima uscita'
OR DescrizioneStatoProdotto = 'In prevendita'
OR DescrizioneStatoProdotto = '2023 in commercio')
AND (
DescrizioneTipologia = 'Libri'
OR DescrizioneTipologia = 'Cartolibro'
OR DescrizioneTipologia = 'Carte')
AND (
Ean13 NOT LIKE 'USATO%')
ORDER BY T.IdArticolo DESC, Id DESC

113
_LIMBO/queryoriginale.sql Normal file
View File

@@ -0,0 +1,113 @@
SELECT TOP 10000
T.*
,i.DescrizioneTipologia
,f.DescrizioneStatoProdotto
,n.DescrizioneFormato
,y.DescrizioneCollana
,z.AutoriCompleti
,i2.DescrArgomento
,z3.CasaEditrice ,q.QtaDisponibile FROM T_WEB_Articoli T
JOIN(
SELECT IdArticolo, MAX(DataOra) AS data
FROM T_WEB_Articoli
GROUP BY IdArticolo
) b ON T.IdArticolo = b.IdArticolo AND T.DataOra = b.data LEFT JOIN(
SELECT e.IdStatoProdotto, e.Descrizione as DescrizioneStatoProdotto
FROM T_WEB_StatiProdotto e
JOIN(
SELECT IdStatoProdotto, MAX(DataOra) as data1
FROM T_WEB_StatiProdotto
GROUP BY IdStatoProdotto
) c ON e.IdStatoProdotto = c.IdStatoProdotto AND e.DataOra = c.data1
) f ON T.IdStatoProdotto = f.IdStatoProdotto
LEFT JOIN(
SELECT g.IdTipologia, g.Descrizione as DescrizioneTipologia
FROM T_WEB_Tipologie g
JOIN(
SELECT IdTipologia, MAX(DataOra) as data1
FROM T_WEB_Tipologie
GROUP BY IdTipologia
) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1
) i ON T.IdTipologia = i.IdTipologia
LEFT JOIN(
SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato
FROM T_WEB_TipiFormato l
JOIN(
SELECT IdTipoFormato, MAX(DataOra) as data1
FROM T_WEB_TipiFormato
GROUP BY IdTipoFormato
) m ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1
) n ON T.IdTipoFormato = n.IdTipoFormato
LEFT JOIN(
SELECT v.IdCollana, v.Descrizione as DescrizioneCollana
FROM T_WEB_Collane v
INNER JOIN(
SELECT IdCollana, MAX(ID) as MaxID
FROM T_WEB_Collane
GROUP BY IdCollana
) x ON v.IdCollana = x.IdCollana AND v.ID = x.MaxID
) y ON T.IdCollana = y.IdCollana
LEFT JOIN(
SELECT g2.IdArgomento, g2.Descrizione as DescrArgomento
FROM T_WEB_Argomenti g2
INNER JOIN(
SELECT IdArgomento, MAX(DataOra) as data12
FROM T_WEB_Argomenti
GROUP BY IdArgomento
) h ON g2.IdArgomento = h.IdArgomento AND g2.DataOra = h.data12
) i2 ON T.ListaArgomenti = i2.IdArgomento
LEFT JOIN(
SELECT
T1.IdArticolo,
STUFF((
SELECT ',' + ISNULL(A2.AutoreCompleto, '')
FROM(
SELECT CAST('<root><x>' + REPLACE(T1.ListaAutori, ',', '</x><x>') + '</x></root>' AS XML) AS DataXML
) X
CROSS APPLY X.DataXML.nodes('/root/x') AS A(x)
CROSS APPLY(
SELECT TRY_CAST(LTRIM(RTRIM(A.x.value('.', 'VARCHAR(100)'))) AS INT) AS AutoreID
) CA
JOIN(
SELECT a.IdAutore, CONCAT(a.Nome, ' ', a.Cognome) AS AutoreCompleto
FROM T_WEB_Autori a
JOIN(
SELECT IdAutore, MAX(DataOra) AS maxData
FROM T_WEB_Autori
GROUP BY IdAutore
) aa ON a.IdAutore = aa.IdAutore AND a.DataOra = aa.maxData
) A2 ON CA.AutoreID = A2.IdAutore
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)'), 1, 1, '') AS AutoriCompleti
FROM T_WEB_Articoli T1
GROUP BY T1.IdArticolo, T1.ListaAutori
) z ON T.IdArticolo = z.IdArticolo
LEFT JOIN(
SELECT a3.IdMarchioEditoriale, a3.Descrizione as CasaEditrice
FROM T_WEB_MarchiEditoriali a3
JOIN(
SELECT IdMarchioEditoriale, MAX(DataOra) as maxData
FROM T_WEB_MarchiEditoriali
GROUP BY IdMarchioEditoriale
) aa3 ON a3.IdMarchioEditoriale = aa3.IdMarchioEditoriale AND a3.DataOra = aa3.maxData
) z3 ON T.IdMarchioEditoriale = z3.IdMarchioEditoriale LEFT JOIN(
SELECT o.Codice, o.QtaDisponibile
FROM T_WEB_Disponibile o
JOIN(
SELECT Codice, MAX(DataOra) as data1
FROM T_WEB_Disponibile
GROUP BY Codice
) p ON o.Codice = p.Codice AND o.DataOra = p.data1
) q ON T.IdArticolo = q.Codice WHERE
(DescrizioneStatoProdotto = 'In commercio' OR
DescrizioneStatoProdotto = 'Prossima uscita/pubblicazione' OR
DescrizioneStatoProdotto = 'Prossima uscita' OR
DescrizioneStatoProdotto = 'In prevendita' OR
DescrizioneStatoProdotto = '2023 in commercio')
AND
(DescrizioneTipologia = 'Libri' OR
DescrizioneTipologia = 'Cartolibro' OR
DescrizioneTipologia = 'Carte')
AND
(Ean13 NOT LIKE 'USATO%')

View File

@@ -10,7 +10,7 @@
<meta name="description" content="<%= productDescription %>"> <meta name="description" content="<%= productDescription %>">
<meta name="format-detection" content="telephone=no"> <meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no"> <meta name="msapplication-tap-highlight" content="no">
<meta name="version" content="1.2.56"> <meta name="version" content="1.2.57">
<meta name="viewport" <meta name="viewport"
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>"> content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">

View File

@@ -1,6 +1,6 @@
{ {
"name": "gruppomacro", "name": "gruppomacro",
"version": "1.2.56", "version": "1.2.57",
"description": "Gruppo Macro", "description": "Gruppo Macro",
"productName": "Gruppo Macro", "productName": "Gruppo Macro",
"author": "Surya", "author": "Surya",
@@ -9,20 +9,20 @@
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "PORT=8089 APP_VERSION='1.2.56' quasar dev", "dev": "PORT=8089 APP_VERSION='1.2.57' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev", "dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build", "build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"type-check": "vue-tsc --noEmit", "type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch", "type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "APP_VERSION='1.2.56' quasar build -m spa", "buildspa": "APP_VERSION='1.2.57' quasar build -m spa",
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"", "lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.56' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.57' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.56' quasar dev", "spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.57' quasar dev",
"debug": "quasar dev --mode debug", "debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0", "test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js", "generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{ {
"name": "cnm", "name": "cnm",
"version": "1.2.56", "version": "1.2.57",
"description": "Comunita Nuovo Mondo", "description": "Comunita Nuovo Mondo",
"productName": "ComunitaNuovoMondo", "productName": "ComunitaNuovoMondo",
"author": "Surya", "author": "Surya",
@@ -9,7 +9,7 @@
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "PORT=8083 APP_VERSION='1.2.56' quasar dev", "dev": "PORT=8083 APP_VERSION='1.2.57' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev", "dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build", "build": "quasar build",
"buildpwa": "NODE_ENV=production quasar build -m pwa", "buildpwa": "NODE_ENV=production quasar build -m pwa",
@@ -21,8 +21,8 @@
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.56' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.57' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.56' quasar dev", "spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.57' quasar dev",
"debug": "quasar dev --mode debug", "debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0", "test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js", "generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{ {
"name": "freeplanet", "name": "freeplanet",
"version": "1.2.56", "version": "1.2.57",
"description": "freeplanet", "description": "freeplanet",
"productName": "freeplanet", "productName": "freeplanet",
"author": "Surya", "author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "PORT=8087 APP_VERSION='1.2.56' quasar dev", "dev": "PORT=8087 APP_VERSION='1.2.57' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev", "dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build", "build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"type-check": "vue-tsc --noEmit", "type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch", "type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "quasar build -m spa", "buildspa": "quasar build -m spa",
@@ -21,8 +21,8 @@
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.56' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8097 APP_VERSION='1.2.57' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.56' quasar dev", "spa": "NODE_ENV=development PORT=8087 APP_VERSION='1.2.57' quasar dev",
"debug": "quasar dev --mode debug", "debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0", "test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js", "generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{ {
"name": "gruppomacro", "name": "gruppomacro",
"version": "1.2.56", "version": "1.2.57",
"description": "Gruppo Macro", "description": "Gruppo Macro",
"productName": "Gruppo Macro", "productName": "Gruppo Macro",
"author": "Surya", "author": "Surya",
@@ -9,20 +9,20 @@
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "PORT=8089 APP_VERSION='1.2.56' quasar dev", "dev": "PORT=8089 APP_VERSION='1.2.57' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev", "dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build", "build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"type-check": "vue-tsc --noEmit", "type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch", "type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "APP_VERSION='1.2.56' quasar build -m spa", "buildspa": "APP_VERSION='1.2.57' quasar build -m spa",
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"", "lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.56' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.57' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.56' quasar dev", "spa": "NODE_ENV=development PORT=8089 APP_VERSION='1.2.57' quasar dev",
"debug": "quasar dev --mode debug", "debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0", "test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js", "generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{ {
"name": "kolibrilab", "name": "kolibrilab",
"version": "1.2.56", "version": "1.2.57",
"description": "kolibrilab", "description": "kolibrilab",
"productName": "kolibrilab", "productName": "kolibrilab",
"author": "Surya Paolo", "author": "Surya Paolo",
@@ -8,11 +8,11 @@
"keywords": [], "keywords": [],
"license": "MIT", "license": "MIT",
"scripts": { "scripts": {
"dev": "PORT=8083 APP_VERSION='1.2.56' quasar dev", "dev": "PORT=8083 APP_VERSION='1.2.57' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev", "dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build", "build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"type-check": "vue-tsc --noEmit", "type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch", "type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "quasar build -m spa", "buildspa": "quasar build -m spa",
@@ -20,8 +20,8 @@
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > file.out.txt", "fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.56' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.57' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.56' quasar dev", "spa": "NODE_ENV=development PORT=8083 APP_VERSION='1.2.57' quasar dev",
"spanorefresh": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa", "spanorefresh": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa",
"test": "echo \"No test specified\" && exit 0", "test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js" "generate-sw": "workbox generateSW workbox-config.js"

View File

@@ -1,6 +1,6 @@
{ {
"name": "nutriben", "name": "nutriben",
"version": "1.2.56", "version": "1.2.57",
"description": "Nutriben", "description": "Nutriben",
"productName": "Nutriben", "productName": "Nutriben",
"author": "Surya", "author": "Surya",
@@ -9,20 +9,20 @@
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "PORT=8093 APP_VERSION='1.2.56' quasar dev", "dev": "PORT=8093 APP_VERSION='1.2.57' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev", "dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build", "build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"type-check": "vue-tsc --noEmit", "type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch", "type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "APP_VERSION='1.2.56' quasar build -m spa", "buildspa": "APP_VERSION='1.2.57' quasar build -m spa",
"lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"", "lint": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\"",
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.56' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8099 APP_VERSION='1.2.57' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.56' quasar dev", "spa": "NODE_ENV=development PORT=8093 APP_VERSION='1.2.57' quasar dev",
"debug": "quasar dev --mode debug", "debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0", "test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js", "generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{ {
"name": "piuchebuono", "name": "piuchebuono",
"version": "1.2.56", "version": "1.2.57",
"description": "PiuCheBuono", "description": "PiuCheBuono",
"productName": "PiuCheBuono", "productName": "PiuCheBuono",
"author": "Surya", "author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "PORT=8085 APP_VERSION='1.2.56' quasar dev", "dev": "PORT=8085 APP_VERSION='1.2.57' quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev", "dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build", "build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"type-check": "vue-tsc --noEmit", "type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch", "type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "quasar build -m spa", "buildspa": "quasar build -m spa",
@@ -21,8 +21,8 @@
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.56' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.57' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.56' quasar dev", "spa": "NODE_ENV=development PORT=8085 APP_VERSION='1.2.57' quasar dev",
"debug": "quasar dev --mode debug", "debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0", "test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js", "generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -1,6 +1,6 @@
{ {
"name": "riso", "name": "riso",
"version": "1.2.56", "version": "1.2.57",
"description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.", "description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.",
"productName": "Riso", "productName": "Riso",
"author": "Surya", "author": "Surya",
@@ -9,11 +9,11 @@
"license": "MIT", "license": "MIT",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "APP_VERSION='1.2.56' PORT=8084 quasar dev", "dev": "APP_VERSION='1.2.57' PORT=8084 quasar dev",
"dev_noCheck": "SKIP_TSC=true quasar dev", "dev_noCheck": "SKIP_TSC=true quasar dev",
"build": "quasar build", "build": "quasar build",
"buildpwa": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwa": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"buildpwatest": "NODE_ENV=production APP_VERSION='1.2.56' quasar build -m pwa", "buildpwatest": "NODE_ENV=production APP_VERSION='1.2.57' quasar build -m pwa",
"type-check": "vue-tsc --noEmit", "type-check": "vue-tsc --noEmit",
"type-check:watch": "vue-tsc --noEmit --watch", "type-check:watch": "vue-tsc --noEmit --watch",
"buildspa": "quasar build -m spa", "buildspa": "quasar build -m spa",
@@ -21,8 +21,8 @@
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt", "lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
"fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt", "fix": "eslint -c ./eslint.config.js \"./src*/**/*.{ts,js,cjs,mjs,vue}\" --ignore-pattern .gitignore ./ --fix > file.out.txt",
"pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.56' quasar dev -m pwa", "pwa": "NODE_ENV=development PORT=8094 APP_VERSION='1.2.57' quasar dev -m pwa",
"spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.56' quasar dev", "spa": "NODE_ENV=development PORT=8084 APP_VERSION='1.2.57' quasar dev",
"debug": "quasar dev --mode debug", "debug": "quasar dev --mode debug",
"test": "echo \"No test specified\" && exit 0", "test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js", "generate-sw": "workbox generateSW workbox-config.js",

View File

@@ -3,7 +3,7 @@
/* global workbox */ /* global workbox */
/* global cfgenv */ /* global cfgenv */
const VITE_APP_VERSION = '1.2.56'; const VITE_APP_VERSION = '1.2.57';
// Costanti di configurazione // Costanti di configurazione
const DYNAMIC_CACHE = 'dynamic-cache-v2'; const DYNAMIC_CACHE = 'dynamic-cache-v2';

View File

@@ -657,7 +657,7 @@ export default defineComponent({
const numfatturati = const numfatturati =
props.scheda.etichette?.bestseller?.quantiFattRaggiunti ?? 50; props.scheda.etichette?.bestseller?.quantiFattRaggiunti ?? 50;
return myproduct.value!.productInfo.fatLast6M > numfatturati; return myproduct.value!.productInfo.fatLast1Y > numfatturati;
} }
} catch (e) { } catch (e) {
return false; return false;

View File

@@ -2015,9 +2015,6 @@
map-options map-options
> >
</q-select> </q-select>
LL: {{Products.getFilePathByLinkIdTemplate(
recscheda.scheda.linkIdTemplate
)}}
<q-btn <q-btn
v-if="recscheda.scheda.linkIdTemplate" v-if="recscheda.scheda.linkIdTemplate"
icon="fas fa-edit" icon="fas fa-edit"

View File

@@ -787,6 +787,7 @@ export interface IAreaDiStampa {
margini?: IBorder margini?: IBorder
unit?: string unit?: string
format?: number[] format?: number[]
format_printable: number[]
orientation?: string orientation?: string
compress?: boolean compress?: boolean
scalex?: number scalex?: number

View File

@@ -62,6 +62,7 @@ export interface IProductInfo {
vLast3M?: number, vLast3M?: number,
fatLast3M?: number, fatLast3M?: number,
fatLast6M?: number, fatLast6M?: number,
fatLast1Y?: number,
vLast6M?: number, vLast6M?: number,
vLast1Y?: number, vLast1Y?: number,
vLast2Y?: number, vLast2Y?: number,

View File

@@ -47,6 +47,7 @@ import type {
IPagina, IPagina,
IMyScheda, IMyScheda,
ICollana, ICollana,
ISchedaSingola,
} from '@model'; } from '@model';
import { Privacy, TipoVisu } from '@model'; import { Privacy, TipoVisu } from '@model';
@@ -10130,7 +10131,7 @@ export const tools = {
return myrec; return myrec;
}, },
getScaleX(optcatalogo: IOptCatalogo, scheda?: ISchedaSingola, options?: any): number | undefined { getScaleX(optcatalogo: IOptCatalogo, scheda?: IMyScheda, options?: any): number | undefined {
let scalex = 1; let scalex = 1;
if ( if (
optcatalogo.printable && optcatalogo.printable &&
@@ -10149,13 +10150,13 @@ export const tools = {
} }
if (scheda) { if (scheda) {
scalex *= scheda.scalex || 1; scalex *= scheda.scalexscheda || 1;
} }
return scalex; return scalex;
}, },
getScaleY(optcatalogo: IOptCatalogo, scheda?: ISchedaSingola, options?: any): number | undefined { getScaleY(optcatalogo: IOptCatalogo, scheda?: IMyScheda, options?: any): number | undefined {
let scaley = 1; let scaley = 1;
if ( if (
optcatalogo.printable && optcatalogo.printable &&
@@ -10174,7 +10175,7 @@ export const tools = {
} }
if (scheda) { if (scheda) {
scaley *= scheda?.scaley || 1; scaley *= scheda?.scaleyscheda || 1;
} }
return scaley; return scaley;

View File

@@ -78,6 +78,11 @@
color="negative" color="negative"
@click="EseguiFunz('removeProductInfoWithoutDateUpdatedFromGM')" @click="EseguiFunz('removeProductInfoWithoutDateUpdatedFromGM')"
></q-btn> ></q-btn>
<q-btn
label="Resetta Flag: Image Not Found dei Prodotti che non erano stati trovati l'img"
color="primary"
@click="EseguiFunz('resetImageNotFound')"
></q-btn>
<q-btn <q-btn
label="Estrapola ed Aggiorna TUTTI i dati Mancanti da Amazon (Scraper)" label="Estrapola ed Aggiorna TUTTI i dati Mancanti da Amazon (Scraper)"
color="negative" color="negative"

View File

@@ -1612,13 +1612,10 @@ export default defineComponent({
// Se la lista è vuota allora mostra il Tab Lista: // Se la lista è vuota allora mostra il Tab Lista:
if (myCatalog.value && !showListaFiltrata.value) { if (myCatalog.value && !showListaFiltrata.value) {
if (myCatalog.value.lista_prodotti.length === 0) { if (myCatalog.value.lista_prodotti.length === 0) {
tabcatalogo.value = 'lista' tabcatalogo.value = 'lista';
} }
} }
optrigenera.value.visibilitaDisp = tools.getCookie( optrigenera.value.visibilitaDisp = tools.getCookie(
(showListaFiltrata.value ? 'INC_ES_' : '') + 'VIS_DISP', (showListaFiltrata.value ? 'INC_ES_' : '') + 'VIS_DISP',
costanti.DISP.DISPONIBILI costanti.DISP.DISPONIBILI
@@ -2493,6 +2490,23 @@ export default defineComponent({
if (ris && !ris.error) { if (ris && !ris.error) {
const catalog = myCatalog.value; const catalog = myCatalog.value;
if (catalog) { if (catalog) {
if (instampa) {
catalog.pdf_generato_stampa = ris.fileout;
catalog.pdf_generato_stampa_compressed = ris.fileout_compressed;
catalog.pdf_generato_stampa_size = ris.filesize;
catalog.pdf_generato_stampa_compr_size = ris.filesize_compressed;
catalog.data_generato_stampa = tools.getDateNow();
} else {
catalog.pdf_generato_compressed = ris.fileout_compressed;
catalog.pdf_generato = ris.fileout;
catalog.pdf_generato_size = ris.filesize;
catalog.pdf_generato_compr_size = ris.filesize_compressed;
catalog.data_generato = tools.getDateNow();
}
} else { } else {
strout.value = JSON.stringify(ris, null, 2); strout.value = JSON.stringify(ris, null, 2);

View File

@@ -332,6 +332,7 @@ export default defineComponent({
dbop: 'onlinePdfRaccolta', dbop: 'onlinePdfRaccolta',
options: { options: {
idRaccolta: getRaccoltaCataloghiByMyPage.value._id, idRaccolta: getRaccoltaCataloghiByMyPage.value._id,
compresso: !stampa,
stampa, stampa,
}, },
}); });