Fatturati
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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>
|
||||
|
||||
51
resources/views/fatturati.blade.php
Normal file
51
resources/views/fatturati.blade.php
Normal 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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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']);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user