Fatturati

This commit is contained in:
paoloar77
2024-12-18 09:14:02 +01:00
parent 852e9838e2
commit 7a64b527b3
5 changed files with 109 additions and 3 deletions

View File

@@ -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 {

View File

@@ -81,7 +81,9 @@
<td>@if (isset($articolo->totVen))
<a href="/apimacro/public/view-ordini-by-idarticolo/{{$articolo->IdArticolo}}"
<!--<a href="/apimacro/public/view-ordini-by-idarticolo/{{$articolo->IdArticolo}}"
target="_blank">{{ $articolo->totVen }}</a>-->
<a href="/apimacro/public/view-fatturati-by-idarticolo/{{$articolo->IdArticolo}}"
target="_blank">{{ $articolo->totVen }}</a>
@endif
</td>

View File

@@ -0,0 +1,51 @@
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Articoli Fatturati</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<h1>Tutti gli Articoli Fatturati</h1>
<table class="table table-striped">
<thead>
<tr>
<th>Num</th>
<th>Data Ora</th>
<th>Quantità</th>
<th>Cod Articolo</th>
<th>Titolo Articolo</th>
<th>Ean13</th>
</tr>
</thead>
<tbody>
<!--<pre>{{ print_r($ordini, true) }}</pre>-->
@foreach($ordini as $ordine)
<tr>
<td>@if (isset($ordine->progressivo)){{ $ordine->progressivo }}@endif
</td>
<td>@if (isset($ordine->DataOra))
{{ \Carbon\Carbon::parse($ordine->DataOra)->format('d/m/Y H:i:s') }}
@endif
</td>
<td>@if (isset($ordine->Qta)){{ $ordine->Qta }}@endif
</td>
<td>@if (isset($ordine->CodArticolo)){{ $ordine->CodArticolo }}@endif
</td>
<td>@if (isset($ordine->Titolo)){{ $ordine->Titolo }}@endif
</td>
<td>@if (isset($ordine->Ean13)){{ $ordine->Ean13 }}@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</body>
</html>

View File

@@ -37,7 +37,9 @@
</td>
<td>@if (isset($articolo->totVen))
<a href="/apimacro/public/view-ordini-by-idarticolo/{{$articolo->IdArticolo}}"
<!--<a href="/apimacro/public/view-ordini-by-idarticolo/{{$articolo->IdArticolo}}"
target="_blank">{{ $articolo->totVen }}</a>-->
<a href="/apimacro/public/view-fatturati-by-idarticolo/{{$articolo->IdArticolo}}"
target="_blank">{{ $articolo->totVen }}</a>
@endif
</td>

View File

@@ -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']);