From 7a64b527b3f61b50fc0a30d3722a036205dfb69b Mon Sep 17 00:00:00 2001 From: paoloar77 Date: Wed, 18 Dec 2024 09:14:02 +0100 Subject: [PATCH] Fatturati --- app/Http/Controllers/ArticleController.php | 52 ++++++++++++++++++- .../views/export_articles_sales.blade.php | 4 +- resources/views/fatturati.blade.php | 51 ++++++++++++++++++ .../views/view-lista-ordini-totale.blade.php | 4 +- routes/web.php | 1 + 5 files changed, 109 insertions(+), 3 deletions(-) create mode 100644 resources/views/fatturati.blade.php diff --git a/app/Http/Controllers/ArticleController.php b/app/Http/Controllers/ArticleController.php index 642e96c5..36ff0058 100755 --- a/app/Http/Controllers/ArticleController.php +++ b/app/Http/Controllers/ArticleController.php @@ -26,7 +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 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'); }) @@ -119,6 +120,41 @@ class ArticleController extends Controller return $ordini; + } + private function queryFatturatiByIdArticolo($idArticolo) + { + ini_set("memory_limit", "512M"); + try { + $ordini = DB::table('T_WEB_ArticoliFatturati as O') + ->leftJoin(DB::raw('( + SELECT + IdArticolo, + MAX(DataOra) as data + FROM T_WEB_Articoli + GROUP BY IdArticolo + ) b'), 'O.CodArticolo', '=', 'b.IdArticolo') + ->join('T_WEB_Articoli as A', function ($join) { + $join->on('O.CodArticolo', '=', 'A.IdArticolo') + ->on('b.data', '=', 'A.DataOra'); + }) + ->select( + DB::raw('ROW_NUMBER() OVER (ORDER BY O.DataOra DESC) AS progressivo'), + 'O.DataOra', + 'O.Qta', + 'A.Titolo', + 'A.Ean13' + ) + ->orderBy('O.DataOra', 'desc') + ->where('O.CodArticolo', '=', $idArticolo) + ->get(); + + } catch (\Exception $e) { + // Registrazione dell'errore + return response()->json(['error' => 'Si è verificato un errore durante il recupero dei dati: ' . $e->getMessage()], 500); + } + + return $ordini; + } private function queryshowInfoArticolo($idArticolo) { @@ -289,6 +325,20 @@ class ArticleController extends Controller } } + public function showFatturatiByIdArticolo($idArticolo) + { + try { + + $ordini = $this->queryFatturatiByIdArticolo($idArticolo); + + return view('fatturati', ['ordini' => $ordini]); + + } catch (\Exception $e) { + // Potresti considerare di registrare l'errore per debugging + return new Response('Error exporting articles: ' . $e->getMessage(), 500); + + } + } public function showInfoArticolo($idArticolo) { try { diff --git a/resources/views/export_articles_sales.blade.php b/resources/views/export_articles_sales.blade.php index 2480e653..08c66336 100644 --- a/resources/views/export_articles_sales.blade.php +++ b/resources/views/export_articles_sales.blade.php @@ -81,7 +81,9 @@ @if (isset($articolo->totVen)) - {{ $articolo->totVen }}--> + {{ $articolo->totVen }} @endif diff --git a/resources/views/fatturati.blade.php b/resources/views/fatturati.blade.php new file mode 100644 index 00000000..310522b7 --- /dev/null +++ b/resources/views/fatturati.blade.php @@ -0,0 +1,51 @@ + + + + + + + Articoli Fatturati + + + + +
+

Tutti gli Articoli Fatturati

+ + + + + + + + + + + + + + + @foreach($ordini as $ordine) + + + + + + + + + @endforeach + +
NumData OraQuantitàCod ArticoloTitolo ArticoloEan13
@if (isset($ordine->progressivo)){{ $ordine->progressivo }}@endif + @if (isset($ordine->DataOra)) + {{ \Carbon\Carbon::parse($ordine->DataOra)->format('d/m/Y H:i:s') }} + @endif + @if (isset($ordine->Qta)){{ $ordine->Qta }}@endif + @if (isset($ordine->CodArticolo)){{ $ordine->CodArticolo }}@endif + @if (isset($ordine->Titolo)){{ $ordine->Titolo }}@endif + @if (isset($ordine->Ean13)){{ $ordine->Ean13 }}@endif +
+
+ + + \ No newline at end of file diff --git a/resources/views/view-lista-ordini-totale.blade.php b/resources/views/view-lista-ordini-totale.blade.php index 674fc495..ee1c201c 100644 --- a/resources/views/view-lista-ordini-totale.blade.php +++ b/resources/views/view-lista-ordini-totale.blade.php @@ -37,7 +37,9 @@ @if (isset($articolo->totVen)) - {{ $articolo->totVen }}--> + {{ $articolo->totVen }} @endif diff --git a/routes/web.php b/routes/web.php index c4c53090..4615ed3c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -6469,6 +6469,7 @@ Route::get('/view-articles-sales', [ArticleController::class, 'showArticlesSales Route::get('/view-lista-ordini-totale/{data_start}', [ArticleController::class, 'showArticoliByDataStart']); Route::get('/view-ordini-test/{numrec}', [ArticleController::class, 'showOrdini']); Route::get('/view-ordini-by-idarticolo/{idarticolo}', [ArticleController::class, 'showOrdiniByIdArticolo']); +Route::get('/view-fatturati-by-idarticolo/{idarticolo}', [ArticleController::class, 'showFatturatiByIdArticolo']); Route::get('/article-test', [ArticleController::class, 'test']); Route::get('/view-info-articolo/{idarticolo}', [ArticleController::class, 'showInfoArticolo']);