diff --git a/app/Http/Controllers/ArticleController.php b/app/Http/Controllers/ArticleController.php index 6d89c249..0d8a08f8 100755 --- a/app/Http/Controllers/ArticleController.php +++ b/app/Http/Controllers/ArticleController.php @@ -30,13 +30,45 @@ class ArticleController extends Controller ->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totaleVenduti FROM T_WEB_Ordini GROUP BY CodArticoloGM) o'), function ($join) { $join->on('T_WEB_Articoli.IdArticolo', '=', 'o.CodArticoloGM'); }) - ->select('T_WEB_Articoli.*', - 'f.DescrizioneStatoProdotto', - 'i.DescrizioneTipologia', - 'n.DescrizioneFormato', - DB::raw('COALESCE(o.totaleVenduti, 0) as totaleVenduti')) - ->where('DescrizioneStatoProdotto','In commercio') - ->where('DescrizioneTipologia','Libri') + ->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as venduti3mesi, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank3M + FROM T_WEB_Ordini + WHERE DataOra >= DATE_SUB(NOW(), INTERVAL 3 MONTH) + GROUP BY CodArticoloGM) p'), function ($join) { + $join->on('T_WEB_Articoli.IdArticolo', '=', 'p.CodArticoloGM'); + }) + ->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as venduti6mesi, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank6M + FROM T_WEB_Ordini + WHERE DataOra >= DATE_SUB(NOW(), INTERVAL 6 MONTH) + GROUP BY CodArticoloGM) q'), function ($join) { + $join->on('T_WEB_Articoli.IdArticolo', '=', 'q.CodArticoloGM'); + }) + ->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as venduti1anno, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank1Y + FROM T_WEB_Ordini + WHERE DataOra >= DATE_SUB(NOW(), INTERVAL 1 YEAR) + GROUP BY CodArticoloGM) r'), function ($join) { + $join->on('T_WEB_Articoli.IdArticolo', '=', 'r.CodArticoloGM'); + }) + ->leftJoin(DB::raw('(SELECT CodArticoloGM, MAX(DataOra) as ultimoOrdine + FROM T_WEB_Ordini + GROUP BY CodArticoloGM) s'), function ($join) { + $join->on('T_WEB_Articoli.IdArticolo', '=', 's.CodArticoloGM'); + }) + ->select( + 'T_WEB_Articoli.*', + 'f.DescrizioneStatoProdotto', + 'i.DescrizioneTipologia', + 'n.DescrizioneFormato', + DB::raw('COALESCE(o.totaleVenduti, 0) as totaleVenduti'), + DB::raw('COALESCE(p.venduti3mesi, 0) as venduti3mesi'), + DB::raw('COALESCE(p.rank3M, 0) as rank3M'), + DB::raw('COALESCE(q.venduti6mesi, 0) as venduti6mesi'), + DB::raw('COALESCE(q.rank6M, 0) as rank6M'), + DB::raw('COALESCE(r.venduti1anno, 0) as venduti1anno'), + DB::raw('COALESCE(r.rank1Y, 0) as rank1Y'), + DB::raw('s.ultimoOrdine') + ) + ->where('DescrizioneStatoProdotto', 'In commercio') + ->where('DescrizioneTipologia', 'Libri') ->orderBy('totaleVenduti', 'desc') ->get(); diff --git a/resources/views/export_articles_sales.blade.php b/resources/views/export_articles_sales.blade.php index d2ee21e5..4c75f4eb 100644 --- a/resources/views/export_articles_sales.blade.php +++ b/resources/views/export_articles_sales.blade.php @@ -25,11 +25,9 @@