diff --git a/app/Http/Controllers/ArticleController.php b/app/Http/Controllers/ArticleController.php index b72ce5ed..3c09fe7a 100755 --- a/app/Http/Controllers/ArticleController.php +++ b/app/Http/Controllers/ArticleController.php @@ -225,11 +225,20 @@ class ArticleController extends Controller }) ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as fat3mesi, RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as fatrank3M FROM T_WEB_ArticoliFatturati - WHERE DataOra >= DATEADD(MONTH, -3, GETDATE()) AND ISNUMERIC(Qta) = 1 + WHERE DataOra >= DATEADD(MONTH, -3, GETDATE()) GROUP BY CodArticolo) t'), function ($join) { $join->on('T_WEB_Articoli.IdArticolo', '=', 't.CodArticolo'); }) - ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as totFat FROM T_WEB_ArticoliFatturati WHERE ISNUMERIC(Qta) = 1 GROUP BY CodArticolo) u'), function ($join) { + ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as fat6mesi, RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as fatrank6M + FROM T_WEB_ArticoliFatturati + WHERE DataOra >= DATEADD(MONTH, -6, GETDATE()) + GROUP BY CodArticolo) t2'), function ($join) { + $join->on('T_WEB_Articoli.IdArticolo', '=', 't2.CodArticolo'); + }) + ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS BIGINT)) as totFat + FROM T_WEB_ArticoliFatturati + WHERE TRY_CAST(Qta AS BIGINT) IS NOT NULL + GROUP BY CodArticolo) u'), function ($join) { $join->on('T_WEB_Articoli.IdArticolo', '=', 'u.CodArticolo'); }) ->leftJoin(DB::raw('( @@ -268,6 +277,7 @@ class ArticleController extends Controller DB::raw('COALESCE(t.fat3mesi, 0) as fat3mesi'), DB::raw('COALESCE(p.rank3M, 0) as rank3M'), DB::raw('COALESCE(t.fatrank3M, 0) as fatrank3M'), + DB::raw('COALESCE(t2.fatrank6M, 0) as fatrank6M'), DB::raw('COALESCE(q.venduti6mesi, 0) as venduti6mesi'), DB::raw('COALESCE(q.rank6M, 0) as rank6M'), DB::raw('COALESCE(r.venduti1anno, 0) as venduti1anno'), @@ -319,36 +329,36 @@ class ArticleController extends Controller $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) { + 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 + WHERE DataOra >= DATEADD(MONTH, -3, GETDATE()) 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 + WHERE DataOra >= DATEADD(MONTH, -6, GETDATE()) 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 + WHERE DataOra >= DATEADD(MONTH, -12, GETDATE()) 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) { - $join->on('T_WEB_Articoli.IdArticolo', '=', 's.CodArticolo'); - }) + ->addSelect(DB::raw('( + SELECT MAX(DataOra) + FROM T_WEB_ArticoliFatturati + WHERE ISNUMERIC(Qta) = 1 + AND CodArticolo = T_WEB_Articoli.IdArticolo + ) as ultimoOrdine')) ->leftJoin(DB::raw('(SELECT v.IdCollana, v.Descrizione as DescrizioneCollana FROM T_WEB_Collane v INNER JOIN (SELECT IdCollana, MAX(ID) as MaxID @@ -575,9 +585,11 @@ class ArticleController extends Controller 'totFat' => $articoloVenduto->totFat, 'rank3M' => $articoloVenduto->rank3M, 'fatrank3M' => $articoloVenduto->fatrank3M, + 'fatrank6M' => $articoloVenduto->fatrank6M, 'rank6M' => $articoloVenduto->rank6M, 'rank1Y' => $articoloVenduto->rank1Y, 'fatLast3M' => $articoloVenduto->fat3mesi, + 'fatLast6M' => $articoloVenduto->fat6mesi, 'vLast3M' => $articoloVenduto->venduti3mesi, 'vLast6M' => $articoloVenduto->venduti6mesi, 'vLastY' => $articoloVenduto->venduti1anno,