diff --git a/app/Http/Controllers/ArticleController.php b/app/Http/Controllers/ArticleController.php index a2c0c109..6d89c249 100755 --- a/app/Http/Controllers/ArticleController.php +++ b/app/Http/Controllers/ArticleController.php @@ -14,8 +14,7 @@ class ArticleController extends Controller private function queryArticlesSales() { try { - $chunks = []; - Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) { + $articoliVenduti = 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'); }) @@ -31,27 +30,15 @@ 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'); }) - ->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', + DB::raw('COALESCE(o.totaleVenduti, 0) as totaleVenduti')) + ->where('DescrizioneStatoProdotto','In commercio') + ->where('DescrizioneTipologia','Libri') ->orderBy('totaleVenduti', 'desc') - ->chunk(1000, function ($records) use (&$chunks) { - $chunks[] = $records; - }); - - $articoliVenduti = collect($chunks)->flatten(1); - + ->get(); if ($articoliVenduti->isEmpty()) { return response()->json(['message' => 'Nessun articolo trovato.'], 404);