This commit is contained in:
paoloar77
2024-12-19 10:09:38 +01:00
parent f2b3c8d006
commit 865e941139

View File

@@ -269,7 +269,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(Qta) as totVen FROM T_WEB_ArticoliFatturati GROUP BY CodArticolo) o'), function ($join) {
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(CAST(Qta AS INT)) AS totVen FROM T_WEB_ArticoliFatturati GROUP BY CodArticolo) o'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'o.CodArticolo');
})
->leftJoin(DB::raw('(SELECT CodArticolo, SUM(Qta) as venduti3mesi, RANK() OVER (ORDER BY SUM(Qta) DESC) as rank3M
@@ -484,33 +484,38 @@ class ArticleController extends Controller
$articoliVenduti = $this->queryArticlesSales();
}
// Mappa i risultati nella struttura JSON desiderata
$result = $articoliVenduti->map(function ($articoloVenduto) {
return [
'IdArticolo' => $articoloVenduto->IdArticolo,
'title' => $articoloVenduto->Titolo,
'DataPubblicazione' => $articoloVenduto->DataPubblicazione,
'isbn' => $articoloVenduto->Ean13,
'Pagine' => $articoloVenduto->Pagine,
'IdTipoFormato' => $articoloVenduto->IdTipoFormato,
'misure' => $articoloVenduto->misure,
'totVen' => $articoloVenduto->totVen,
'rank3M' => $articoloVenduto->rank3M,
'rank6M' => $articoloVenduto->rank6M,
'rank1Y' => $articoloVenduto->rank1Y,
'vLast3M' => $articoloVenduto->venduti3mesi,
'vLast6M' => $articoloVenduto->venduti6mesi,
'vLastY' => $articoloVenduto->venduti1anno,
'dataUltimoOrdine' => $articoloVenduto->ultimoOrdine,
];
});
if ($articoliVenduti) {
// 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"');
// Mappa i risultati nella struttura JSON desiderata
$result = $articoliVenduti->map(function ($articoloVenduto) {
return [
'IdArticolo' => $articoloVenduto->IdArticolo,
'title' => $articoloVenduto->Titolo,
'DataPubblicazione' => $articoloVenduto->DataPubblicazione,
'isbn' => $articoloVenduto->Ean13,
'Pagine' => $articoloVenduto->Pagine,
'IdTipoFormato' => $articoloVenduto->IdTipoFormato,
'misure' => $articoloVenduto->misure,
'totVen' => $articoloVenduto->totVen,
'rank3M' => $articoloVenduto->rank3M,
'rank6M' => $articoloVenduto->rank6M,
'rank1Y' => $articoloVenduto->rank1Y,
'vLast3M' => $articoloVenduto->venduti3mesi,
'vLast6M' => $articoloVenduto->venduti6mesi,
'vLastY' => $articoloVenduto->venduti1anno,
'dataUltimoOrdine' => $articoloVenduto->ultimoOrdine,
];
});
return $response;
// 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"');
return $response;
} else {
return new Response('Nessun articolo', 500);
}
} catch (\Exception $e) {
return new Response('Error exporting exportArticlesSalesByJSON_Base: ' . $e->getMessage() . 'Articoli: ' . json_decode($articoliVenduti), 500);