This commit is contained in:
paoloar77
2025-02-14 20:28:04 +01:00
parent e1a09fc316
commit a8c5ad7018

View File

@@ -295,59 +295,70 @@ class ArticleController extends Controller
$join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
->on('T_WEB_Articoli.DataOra', '=', 'b.data');
})
->leftJoin(DB::raw('(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'), function ($join) {
->leftJoin(DB::raw('(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'), function ($join) {
$join->on('T_WEB_Articoli.IdStatoProdotto', '=', 'f.IdStatoProdotto');
})
->leftJoin(DB::raw('(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'), function ($join) {
->leftJoin(DB::raw('(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'), function ($join) {
$join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
})
->leftJoin(DB::raw('(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'), function ($join) {
->leftJoin(DB::raw('(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'), function ($join) {
$join->on('T_WEB_Articoli.IdTipoFormato', '=', 'n.IdTipoFormato');
})
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) AS totFat FROM T_WEB_ArticoliFatturati WHERE ISNUMERIC(Qta) = 1 GROUP BY CodArticolo) o'), function ($join) {
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) AS totFat FROM T_WEB_ArticoliFatturati
WHERE ISNUMERIC(Qta) = 1 GROUP BY CodArticolo) o'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'o.CodArticolo');
})
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as venduti3mesi, RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as rank3M
FROM T_WEB_ArticoliFatturati
WHERE DataOra >= DATEADD(MONTH, -3, GETDATE()) AND ISNUMERIC(Qta) = 1
GROUP BY CodArticolo) p'), function ($join) {
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as venduti3mesi,
RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as rank3M
FROM T_WEB_ArticoliFatturati
WHERE DataOra >= DATEADD(MONTH, -3, GETDATE()) AND ISNUMERIC(Qta) = 1
GROUP BY CodArticolo) p'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'p.CodArticolo');
})
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as venduti6mesi, RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as rank6M
FROM T_WEB_ArticoliFatturati
WHERE DataOra >= DATEADD(MONTH, -6, GETDATE()) AND ISNUMERIC(Qta) = 1
GROUP BY CodArticolo) q'), function ($join) {
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as venduti6mesi,
RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as rank6M
FROM T_WEB_ArticoliFatturati
WHERE DataOra >= DATEADD(MONTH, -6, GETDATE()) AND ISNUMERIC(Qta) = 1
GROUP BY CodArticolo) q'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'q.CodArticolo');
})
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as venduti1anno, RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as rank1Y
FROM T_WEB_ArticoliFatturati
WHERE DataOra >= DATEADD(MONTH, -12, GETDATE()) AND ISNUMERIC(Qta) = 1
GROUP BY CodArticolo) r'), function ($join) {
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as venduti1anno,
RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as rank1Y
FROM T_WEB_ArticoliFatturati
WHERE DataOra >= DATEADD(MONTH, -12, GETDATE()) AND ISNUMERIC(Qta) = 1
GROUP BY CodArticolo) r'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'r.CodArticolo');
})
->leftJoin(DB::raw('(SELECT CodArticolo, MAX(DataOra) as ultimoOrdine
FROM T_WEB_ArticoliFatturati
WHERE ISNUMERIC(Qta) = 1
GROUP BY CodArticolo) s'), function ($join) {
FROM T_WEB_ArticoliFatturati
WHERE ISNUMERIC(Qta) = 1
GROUP BY CodArticolo) s'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 's.CodArticolo');
})
->leftJoin(DB::raw('(
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'), function ($join) {
->leftJoin(DB::raw('(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'), function ($join) {
$join->on('T_WEB_Articoli.IdCollana', '=', 'y.IdCollana');
})
->leftJoin(DB::raw('(SELECT g2.IdArgomento, g2.Descrizione as DescrArgomento FROM T_WEB_Argomenti g2
JOIN (SELECT IdArgomento, MAX(DataOra) as data12 from T_WEB_Argomenti GROUP BY IdArgomento) h2
ON g2.IdArgomento = h.IdArgomento AND g2.DataOra = h.data12 ) i2'), function ($join) {
->leftJoin(DB::raw('(SELECT g2.IdArgomento, g2.Descrizione as DescrArgomento
FROM T_WEB_Argomenti g2
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'), function ($join) {
$join->on('T_WEB_Articoli.ListaArgomenti', '=', 'i2.IdArgomento');
})
->select(
'T_WEB_Articoli.*',
'f.DescrizioneStatoProdotto',