From efdedba34b91d7cf20aefb9e47c5cebc0f44357e Mon Sep 17 00:00:00 2001 From: paoloar77 Date: Sun, 8 Dec 2024 12:44:30 +0100 Subject: [PATCH] aa --- app/Http/Controllers/ArticleController.php | 44 +++++++++++++--------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/app/Http/Controllers/ArticleController.php b/app/Http/Controllers/ArticleController.php index 46e0947c..f51ad1c1 100755 --- a/app/Http/Controllers/ArticleController.php +++ b/app/Http/Controllers/ArticleController.php @@ -16,20 +16,20 @@ class ArticleController extends Controller ini_set("memory_limit", "512M"); try { $articoli = Article::whereRaw('DataOra >= ?', [$data_start]) - ->join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli WHERE DataOra >= ? GROUP BY IdArticolo) b'), function ($join) use ($data_start) { - $join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo') - ->on('T_WEB_Articoli.DataOra', '=', 'b.data'); - }, [$data_start]) - ->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totaleVenduti FROM T_WEB_Ordini WHERE DataOra >= ? GROUP BY CodArticoloGM) O'), function ($join) use ($data_start) { - $join->on('T_WEB_Articoli.IdArticolo', '=', 'O.CodArticoloGM'); - }, [$data_start]) - ->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 WHERE DataOra >= ? GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) use ($data_start) { - $join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia'); - }, [$data_start]) - ->select('T_WEB_Articoli.*', 'b.data as ultimaDataOra', DB::raw('COALESCE(O.totaleVenduti, 0) as totaleVenduti')) - ->where('DescrizioneTipologia', 'Libri') - ->orderBy('totaleVenduti', 'desc') - ->get(); + ->join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli WHERE DataOra >= ? GROUP BY IdArticolo) b'), function ($join) use ($data_start) { + $join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo') + ->on('T_WEB_Articoli.DataOra', '=', 'b.data'); + }, [$data_start]) + ->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totaleVenduti FROM T_WEB_Ordini WHERE DataOra >= ? GROUP BY CodArticoloGM) O'), function ($join) use ($data_start) { + $join->on('T_WEB_Articoli.IdArticolo', '=', 'O.CodArticoloGM'); + }, [$data_start]) + ->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 WHERE DataOra >= ? GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) use ($data_start) { + $join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia'); + }, [$data_start]) + ->select('T_WEB_Articoli.*', 'b.data as ultimaDataOra', DB::raw('COALESCE(O.totaleVenduti, 0) as totaleVenduti')) + ->where('DescrizioneTipologia', 'Libri') + ->orderBy('totaleVenduti', 'desc') + ->get(); if ($articoli->isEmpty()) { return response()->json(['message' => 'Nessun articolo trovato.'], 404); @@ -172,9 +172,7 @@ class ArticleController extends Controller public function showArticoliByDataStart($data_start) { try { - $validatedData = request()->validate([ - 'data_start' => 'required|date_format:Y-m-d', - ]); + $this->validateDate($data_start); $articoliVenduti = $this->articoliByDataStart($data_start); @@ -188,8 +186,20 @@ class ArticleController extends Controller // Potresti considerare di registrare l'errore per debugging return new Response('Error exporting articles: ' . $e->getMessage(), 500); + } } + protected function validateDate($date) + { + $validator = \Validator::make(['data_start' => $date], [ + 'data_start' => 'required|date_format:Y-m-d' + ]); + + if ($validator->fails()) { + throw new ValidationException($validator); + } + } + public function showOrdini($numrec) { try {