Fatturati
This commit is contained in:
@@ -26,7 +26,8 @@ class ArticleController extends Controller
|
|||||||
$join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
|
$join->on('T_WEB_Articoli.IdArticolo', '=', 'b.IdArticolo')
|
||||||
->on('T_WEB_Articoli.DataOra', '=', 'b.data');
|
->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) {
|
->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');
|
$join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
|
||||||
})
|
})
|
||||||
@@ -119,6 +120,41 @@ class ArticleController extends Controller
|
|||||||
|
|
||||||
return $ordini;
|
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)
|
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)
|
public function showInfoArticolo($idArticolo)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -81,7 +81,9 @@
|
|||||||
|
|
||||||
|
|
||||||
<td>@if (isset($articolo->totVen))
|
<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>
|
target="_blank">{{ $articolo->totVen }}</a>
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</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>
|
||||||
|
|
||||||
<td>@if (isset($articolo->totVen))
|
<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>
|
target="_blank">{{ $articolo->totVen }}</a>
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</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-lista-ordini-totale/{data_start}', [ArticleController::class, 'showArticoliByDataStart']);
|
||||||
Route::get('/view-ordini-test/{numrec}', [ArticleController::class, 'showOrdini']);
|
Route::get('/view-ordini-test/{numrec}', [ArticleController::class, 'showOrdini']);
|
||||||
Route::get('/view-ordini-by-idarticolo/{idarticolo}', [ArticleController::class, 'showOrdiniByIdArticolo']);
|
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('/article-test', [ArticleController::class, 'test']);
|
||||||
Route::get('/view-info-articolo/{idarticolo}', [ArticleController::class, 'showInfoArticolo']);
|
Route::get('/view-info-articolo/{idarticolo}', [ArticleController::class, 'showInfoArticolo']);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user