From 62e76d3613a6df9f4edf2a3294e1ec25eee58632 Mon Sep 17 00:00:00 2001 From: paoloar77 Date: Sat, 7 Dec 2024 19:42:33 +0100 Subject: [PATCH] aa --- app/Http/Controllers/ArticleController.php | 31 ++++++++++++------- .../views/export_articles_sales.blade.php | 2 +- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/ArticleController.php b/app/Http/Controllers/ArticleController.php index a074b754..a2c0c109 100755 --- a/app/Http/Controllers/ArticleController.php +++ b/app/Http/Controllers/ArticleController.php @@ -14,7 +14,8 @@ class ArticleController extends Controller private function queryArticlesSales() { try { - $articoliVenduti = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) { + $chunks = []; + Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) { $join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo') ->on('T_WEB_Articoli.DataOra', '=', 'b.data'); }) @@ -33,18 +34,24 @@ class ArticleController extends Controller ->leftJoin(DB::raw('(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'), function ($join) { $join->on('T_WEB_Articoli.IdArticolo', '=', 'q.Codice'); }) - - ->select('T_WEB_Articoli.*', - 'f.DescrizioneStatoProdotto', - 'i.DescrizioneTipologia', - 'n.DescrizioneFormato', - 'q.QtaDisponibile', - DB::raw('COALESCE(o.totaleVenduti, 0) as totaleVenduti')) - ->where('DescrizioneStatoProdotto','In commercio') - ->where('DescrizioneTipologia','Libri') - ->where(DB::raw('CONVERT(INT, q.QtaDisponibile)'),'<>',0) + ->select( + 'T_WEB_Articoli.*', + 'f.DescrizioneStatoProdotto', + 'i.DescrizioneTipologia', + 'n.DescrizioneFormato', + 'q.QtaDisponibile', + DB::raw('COALESCE(o.totaleVenduti, 0) as totaleVenduti') + ) + ->where('DescrizioneStatoProdotto', 'In commercio') + ->where('DescrizioneTipologia', 'Libri') + ->where(DB::raw('CONVERT(INT, q.QtaDisponibile)'), '<>', 0) ->orderBy('totaleVenduti', 'desc') - ->get(); + ->chunk(1000, function ($records) use (&$chunks) { + $chunks[] = $records; + }); + + $articoliVenduti = collect($chunks)->flatten(1); + if ($articoliVenduti->isEmpty()) { return response()->json(['message' => 'Nessun articolo trovato.'], 404); diff --git a/resources/views/export_articles_sales.blade.php b/resources/views/export_articles_sales.blade.php index 0a22eabf..d2ee21e5 100644 --- a/resources/views/export_articles_sales.blade.php +++ b/resources/views/export_articles_sales.blade.php @@ -25,7 +25,7 @@ Rank 1 Y Ult Ordi Tot Venduti - QtaDisponibile + QtaDisp Ult Mese Ult 6 Mesi Ult Anno