From 4553d438ae3b9e1208ab2d999d01cb700a801cbe Mon Sep 17 00:00:00 2001 From: paoloar77 Date: Thu, 19 Dec 2024 10:59:33 +0100 Subject: [PATCH] venduti e fatturati nello stesso file --- app/Http/Controllers/ArticleController.php | 30 +++++++++++++++---- .../views/export_articles_sales.blade.php | 15 +++++++--- .../views/view-lista-ordini-totale.blade.php | 18 ++++++----- 3 files changed, 46 insertions(+), 17 deletions(-) diff --git a/app/Http/Controllers/ArticleController.php b/app/Http/Controllers/ArticleController.php index 60044ff6..e6143d2c 100755 --- a/app/Http/Controllers/ArticleController.php +++ b/app/Http/Controllers/ArticleController.php @@ -26,8 +26,8 @@ class ArticleController extends Controller $join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo') ->on('T_WEB_Articoli.DataOra', '=', 'b.data'); }) - //->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totVen, MAX(DataOra) as ultimaDataOra FROM T_WEB_Ordini WHERE DataOra > \'' . $data_start . '\' GROUP BY CodArticoloGM) O'), 'T_WEB_Articoli.IdArticolo', '=', 'O.CodArticoloGM') - ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(Qta) as totVen, MAX(DataOra) as ultimaDataOra FROM T_WEB_ArticoliFatturati WHERE DataOra > \'' . $data_start . '\' GROUP BY CodArticolo) O'), 'T_WEB_Articoli.IdArticolo', '=', 'O.CodArticolo') + ->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totVen, MAX(DataOra) as ultimaDataOra FROM T_WEB_Ordini WHERE DataOra > \'' . $data_start . '\' GROUP BY CodArticoloGM) O'), 'T_WEB_Articoli.IdArticolo', '=', 'O.CodArticoloGM') + // ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(Qta) as totVen, MAX(DataOra) as ultimaDataOra FROM T_WEB_ArticoliFatturati WHERE DataOra > \'' . $data_start . '\' GROUP BY CodArticolo) O'), 'T_WEB_Articoli.IdArticolo', '=', 'O.CodArticolo') ->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 GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) { $join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia'); }) @@ -72,6 +72,7 @@ class ArticleController extends Controller 'O.DataOra', 'O.Qta', 'A.Titolo', + 'A.CodArticolo', 'A.Ean13' ) ->orderBy('O.DataOra', 'desc') @@ -107,6 +108,7 @@ class ArticleController extends Controller 'O.DataOra', 'O.Qta', 'A.Titolo', + 'A.CodArticolo', 'A.Ean13' ) ->orderBy('O.DataOra', 'desc') @@ -142,6 +144,7 @@ class ArticleController extends Controller 'O.DataOra', 'O.Qta', 'A.Titolo', + 'A.CodArticolo', 'A.Ean13' ) ->orderBy('O.DataOra', 'desc') @@ -196,12 +199,21 @@ class ArticleController extends Controller ->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totVen FROM T_WEB_Ordini GROUP BY CodArticoloGM) o'), function ($join) { $join->on('T_WEB_Articoli.IdArticolo', '=', 'o.CodArticoloGM'); }) + ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as totFat FROM T_WEB_ArticoliFatturati GROUP BY CodArticolo) u'), function ($join) { + $join->on('T_WEB_Articoli.IdArticolo', '=', 'u.CodArticolo'); + }) ->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as venduti3mesi, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank3M FROM T_WEB_Ordini WHERE DataOra >= DATEADD(MONTH, -3, GETDATE()) GROUP BY CodArticoloGM) p'), function ($join) { $join->on('T_WEB_Articoli.IdArticolo', '=', 'p.CodArticoloGM'); }) + ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as fat3mesi, RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as fatrank3M + FROM T_WEB_ArticoliFatturati + WHERE DataOra >= DATEADD(MONTH, -3, GETDATE()) + GROUP BY CodArticolo) t'), function ($join) { + $join->on('T_WEB_Articoli.IdArticolo', '=', 't.CodArticolo'); + }) ->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as venduti6mesi, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank6M FROM T_WEB_Ordini WHERE DataOra >= DATEADD(MONTH, -6, GETDATE()) @@ -225,7 +237,10 @@ class ArticleController extends Controller 'i.DescrizioneTipologia', 'n.DescrizioneFormato', DB::raw('COALESCE(o.totVen, 0) as totVen'), + DB::raw('COALESCE(o.totFat, 0) as totFat'), DB::raw('COALESCE(p.venduti3mesi, 0) as venduti3mesi'), + DB::raw('COALESCE(t.fat3mesi, 0) as fat3mesi'), + DB::raw('COALESCE(t.fatrank3M, 0) as fatrank3M'), DB::raw('COALESCE(p.rank3M, 0) as rank3M'), DB::raw('COALESCE(q.venduti6mesi, 0) as venduti6mesi'), DB::raw('COALESCE(q.rank6M, 0) as rank6M'), @@ -269,7 +284,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(TRY_CAST(Qta AS INT)) AS totVen FROM T_WEB_ArticoliFatturati WHERE ISNUMERIC(Qta) = 1 GROUP BY CodArticolo) o'), function ($join) { + ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) AS totFat FROM T_WEB_ArticoliFatturati WHERE ISNUMERIC(Qta) = 1 GROUP BY CodArticolo) o'), function ($join) { $join->on('T_WEB_Articoli.IdArticolo', '=', 'o.CodArticolo'); }) ->leftJoin(DB::raw('(SELECT CodArticolo, SUM(TRY_CAST(Qta AS INT)) as venduti3mesi, RANK() OVER (ORDER BY SUM(TRY_CAST(Qta AS INT)) DESC) as rank3M @@ -301,7 +316,7 @@ class ArticleController extends Controller 'f.DescrizioneStatoProdotto', 'i.DescrizioneTipologia', 'n.DescrizioneFormato', - DB::raw('COALESCE(o.totVen, 0) as totVen'), + DB::raw('COALESCE(o.totFat, 0) as totFat'), DB::raw('COALESCE(p.venduti3mesi, 0) as venduti3mesi'), DB::raw('COALESCE(p.rank3M, 0) as rank3M'), DB::raw('COALESCE(q.venduti6mesi, 0) as venduti6mesi'), @@ -313,7 +328,7 @@ class ArticleController extends Controller ->where('DescrizioneStatoProdotto', 'In commercio') ->where('DescrizioneTipologia', 'Libri') //->orderBy('rank1Y', 'asc') - ->orderBy('totVen', 'desc') + ->orderBy('totFat', 'desc') ->get(); if ($articoliVenduti->isEmpty()) { @@ -498,9 +513,12 @@ class ArticleController extends Controller 'IdTipoFormato' => $articoloVenduto->IdTipoFormato, 'misure' => $articoloVenduto->misure, 'totVen' => $articoloVenduto->totVen, + 'totFat' => $articoloVenduto->totFat, 'rank3M' => $articoloVenduto->rank3M, + 'fatrank3M' => $articoloVenduto->fatrank3M, 'rank6M' => $articoloVenduto->rank6M, 'rank1Y' => $articoloVenduto->rank1Y, + 'fatLast3M' => $articoloVenduto->fat3mesi, 'vLast3M' => $articoloVenduto->venduti3mesi, 'vLast6M' => $articoloVenduto->venduti6mesi, 'vLastY' => $articoloVenduto->venduti1anno, @@ -511,7 +529,7 @@ class ArticleController extends Controller // 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"'); + $response->headers->set('Content-Disposition', 'attachment; filename="ranking_' . $cosa . '_' . date('Y-m-d') . '.json"'); return $response; } else { diff --git a/resources/views/export_articles_sales.blade.php b/resources/views/export_articles_sales.blade.php index 08c66336..4f62fe5b 100644 --- a/resources/views/export_articles_sales.blade.php +++ b/resources/views/export_articles_sales.blade.php @@ -81,17 +81,24 @@ @if (isset($articolo->totVen)) - - {{ $articolo->totVen }} @endif - @if (isset($articolo->venduti3mesi)) {{ $articolo->venduti3mesi }} @endif + @if (isset($articolo->totFat)) + {{ $articolo->totFat }} + @endif + + + @if (isset($articolo->fat3mesi)) + {{ $articolo->fat3mesi }} + @endif + @if (isset($articolo->venduti6mesi)) {{ $articolo->venduti6mesi }} @endif diff --git a/resources/views/view-lista-ordini-totale.blade.php b/resources/views/view-lista-ordini-totale.blade.php index ee1c201c..3f0c0693 100644 --- a/resources/views/view-lista-ordini-totale.blade.php +++ b/resources/views/view-lista-ordini-totale.blade.php @@ -26,7 +26,8 @@ @if (isset($articolo)) @if (isset($articolo->IdArticolo)) - {{ $articolo->IdArticolo }} + {{ $articolo->IdArticolo }} @endif @if (isset($articolo->Titolo)) @@ -37,12 +38,15 @@ @if (isset($articolo->totVen)) - - {{ $articolo->totVen }} - @endif - + {{ $articolo->totVen }} + @endif + + @if (isset($articolo->totFat)) + {{ $articolo->totFat }} + @endif + @endif @endforeach