This commit is contained in:
paoloar77
2024-12-07 19:43:32 +01:00
parent 62e76d3613
commit b641999fcd

View File

@@ -14,8 +14,7 @@ class ArticleController extends Controller
private function queryArticlesSales() private function queryArticlesSales()
{ {
try { try {
$chunks = []; $articoliVenduti = Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
Article::join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli GROUP BY IdArticolo) b'), function ($join) {
$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');
}) })
@@ -31,27 +30,15 @@ class ArticleController extends Controller
->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totaleVenduti FROM T_WEB_Ordini GROUP BY CodArticoloGM) o'), function ($join) { ->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totaleVenduti FROM T_WEB_Ordini GROUP BY CodArticoloGM) o'), function ($join) {
$join->on('T_WEB_Articoli.IdArticolo', '=', 'o.CodArticoloGM'); $join->on('T_WEB_Articoli.IdArticolo', '=', 'o.CodArticoloGM');
}) })
->leftJoin(DB::raw('(SELECT o.Codice, o.QtaDisponibile FROM T_WEB_Disponibile o JOIN (SELECT Codice, MAX(DataOra) as data1 from T_WEB_Disponibile GROUP BY Codice) p ON o.Codice = p.Codice AND o.DataOra = p.data1 ) q'), function ($join) { ->select('T_WEB_Articoli.*',
$join->on('T_WEB_Articoli.IdArticolo', '=', 'q.Codice'); 'f.DescrizioneStatoProdotto',
}) 'i.DescrizioneTipologia',
->select( 'n.DescrizioneFormato',
'T_WEB_Articoli.*', DB::raw('COALESCE(o.totaleVenduti, 0) as totaleVenduti'))
'f.DescrizioneStatoProdotto', ->where('DescrizioneStatoProdotto','In commercio')
'i.DescrizioneTipologia', ->where('DescrizioneTipologia','Libri')
'n.DescrizioneFormato',
'q.QtaDisponibile',
DB::raw('COALESCE(o.totaleVenduti, 0) as totaleVenduti')
)
->where('DescrizioneStatoProdotto', 'In commercio')
->where('DescrizioneTipologia', 'Libri')
->where(DB::raw('CONVERT(INT, q.QtaDisponibile)'), '<>', 0)
->orderBy('totaleVenduti', 'desc') ->orderBy('totaleVenduti', 'desc')
->chunk(1000, function ($records) use (&$chunks) { ->get();
$chunks[] = $records;
});
$articoliVenduti = collect($chunks)->flatten(1);
if ($articoliVenduti->isEmpty()) { if ($articoliVenduti->isEmpty()) {
return response()->json(['message' => 'Nessun articolo trovato.'], 404); return response()->json(['message' => 'Nessun articolo trovato.'], 404);