diff --git a/app/Http/Controllers/ArticleController.php b/app/Http/Controllers/ArticleController.php index ff56ac96..0a888378 100755 --- a/app/Http/Controllers/ArticleController.php +++ b/app/Http/Controllers/ArticleController.php @@ -269,7 +269,7 @@ class ArticleController extends Controller ->leftJoin(DB::raw('(SELECT l.IdTipoFormato, l.Descrizione as DescrizioneFormato FROM T_WEB_TipiFormato l JOIN (SELECT IdTipoFormato, MAX(DataOra) as data1 from T_WEB_TipiFormato GROUP BY IdTipoFormato) m ON l.IdTipoFormato = m.IdTipoFormato AND l.DataOra = m.data1 ) n'), function ($join) { $join->on('T_WEB_Articoli.IdTipoFormato', '=', 'n.IdTipoFormato'); }) - ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(Qta) as totVen FROM T_WEB_ArticoliFatturati GROUP BY CodArticolo) o'), function ($join) { + ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(CAST(Qta AS INT)) AS totVen FROM T_WEB_ArticoliFatturati GROUP BY CodArticolo) o'), function ($join) { $join->on('T_WEB_Articoli.IdArticolo', '=', 'o.CodArticolo'); }) ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(Qta) as venduti3mesi, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank3M @@ -484,33 +484,38 @@ class ArticleController extends Controller $articoliVenduti = $this->queryArticlesSales(); } - // Mappa i risultati nella struttura JSON desiderata - $result = $articoliVenduti->map(function ($articoloVenduto) { - return [ - 'IdArticolo' => $articoloVenduto->IdArticolo, - 'title' => $articoloVenduto->Titolo, - 'DataPubblicazione' => $articoloVenduto->DataPubblicazione, - 'isbn' => $articoloVenduto->Ean13, - 'Pagine' => $articoloVenduto->Pagine, - 'IdTipoFormato' => $articoloVenduto->IdTipoFormato, - 'misure' => $articoloVenduto->misure, - 'totVen' => $articoloVenduto->totVen, - 'rank3M' => $articoloVenduto->rank3M, - 'rank6M' => $articoloVenduto->rank6M, - 'rank1Y' => $articoloVenduto->rank1Y, - 'vLast3M' => $articoloVenduto->venduti3mesi, - 'vLast6M' => $articoloVenduto->venduti6mesi, - 'vLastY' => $articoloVenduto->venduti1anno, - 'dataUltimoOrdine' => $articoloVenduto->ultimoOrdine, - ]; - }); + if ($articoliVenduti) { - // Imposta il contenuto della risposta come JSON - $response = new Response($result->toJson(), 200); - $response->headers->set('Content-Type', 'application/json'); - $response->headers->set('Content-Disposition', 'attachment; filename="ranking_' . date('Y-m-d') . '.json"'); + // Mappa i risultati nella struttura JSON desiderata + $result = $articoliVenduti->map(function ($articoloVenduto) { + return [ + 'IdArticolo' => $articoloVenduto->IdArticolo, + 'title' => $articoloVenduto->Titolo, + 'DataPubblicazione' => $articoloVenduto->DataPubblicazione, + 'isbn' => $articoloVenduto->Ean13, + 'Pagine' => $articoloVenduto->Pagine, + 'IdTipoFormato' => $articoloVenduto->IdTipoFormato, + 'misure' => $articoloVenduto->misure, + 'totVen' => $articoloVenduto->totVen, + 'rank3M' => $articoloVenduto->rank3M, + 'rank6M' => $articoloVenduto->rank6M, + 'rank1Y' => $articoloVenduto->rank1Y, + 'vLast3M' => $articoloVenduto->venduti3mesi, + 'vLast6M' => $articoloVenduto->venduti6mesi, + 'vLastY' => $articoloVenduto->venduti1anno, + 'dataUltimoOrdine' => $articoloVenduto->ultimoOrdine, + ]; + }); - return $response; + // Imposta il contenuto della risposta come JSON + $response = new Response($result->toJson(), 200); + $response->headers->set('Content-Type', 'application/json'); + $response->headers->set('Content-Disposition', 'attachment; filename="ranking_' . date('Y-m-d') . '.json"'); + + return $response; + } else { + return new Response('Nessun articolo', 500); + } } catch (\Exception $e) { return new Response('Error exporting exportArticlesSalesByJSON_Base: ' . $e->getMessage() . 'Articoli: ' . json_decode($articoliVenduti), 500);