aa
This commit is contained in:
@@ -16,20 +16,20 @@ class ArticleController extends Controller
|
|||||||
ini_set("memory_limit", "512M");
|
ini_set("memory_limit", "512M");
|
||||||
try {
|
try {
|
||||||
$articoli = Article::whereRaw('DataOra >= ?', [$data_start])
|
$articoli = Article::whereRaw('DataOra >= ?', [$data_start])
|
||||||
->join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli WHERE DataOra >= ? GROUP BY IdArticolo) b'), function ($join) use ($data_start) {
|
->join(DB::raw('(SELECT IdArticolo, MAX(DataOra) AS data FROM T_WEB_Articoli WHERE DataOra >= ? GROUP BY IdArticolo) b'), function ($join) use ($data_start) {
|
||||||
$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');
|
||||||
}, [$data_start])
|
}, [$data_start])
|
||||||
->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totaleVenduti FROM T_WEB_Ordini WHERE DataOra >= ? GROUP BY CodArticoloGM) O'), function ($join) use ($data_start) {
|
->leftJoin(DB::raw('(SELECT CodArticoloGM, SUM(Qta) as totaleVenduti FROM T_WEB_Ordini WHERE DataOra >= ? GROUP BY CodArticoloGM) O'), function ($join) use ($data_start) {
|
||||||
$join->on('T_WEB_Articoli.IdArticolo', '=', 'O.CodArticoloGM');
|
$join->on('T_WEB_Articoli.IdArticolo', '=', 'O.CodArticoloGM');
|
||||||
}, [$data_start])
|
}, [$data_start])
|
||||||
->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 WHERE DataOra >= ? GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) use ($data_start) {
|
->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 WHERE DataOra >= ? GROUP BY IdTipologia) h ON g.IdTipologia = h.IdTipologia AND g.DataOra = h.data1 ) i'), function ($join) use ($data_start) {
|
||||||
$join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
|
$join->on('T_WEB_Articoli.IdTipologia', '=', 'i.IdTipologia');
|
||||||
}, [$data_start])
|
}, [$data_start])
|
||||||
->select('T_WEB_Articoli.*', 'b.data as ultimaDataOra', DB::raw('COALESCE(O.totaleVenduti, 0) as totaleVenduti'))
|
->select('T_WEB_Articoli.*', 'b.data as ultimaDataOra', DB::raw('COALESCE(O.totaleVenduti, 0) as totaleVenduti'))
|
||||||
->where('DescrizioneTipologia', 'Libri')
|
->where('DescrizioneTipologia', 'Libri')
|
||||||
->orderBy('totaleVenduti', 'desc')
|
->orderBy('totaleVenduti', 'desc')
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
if ($articoli->isEmpty()) {
|
if ($articoli->isEmpty()) {
|
||||||
return response()->json(['message' => 'Nessun articolo trovato.'], 404);
|
return response()->json(['message' => 'Nessun articolo trovato.'], 404);
|
||||||
@@ -172,9 +172,7 @@ class ArticleController extends Controller
|
|||||||
public function showArticoliByDataStart($data_start)
|
public function showArticoliByDataStart($data_start)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$validatedData = request()->validate([
|
$this->validateDate($data_start);
|
||||||
'data_start' => 'required|date_format:Y-m-d',
|
|
||||||
]);
|
|
||||||
|
|
||||||
$articoliVenduti = $this->articoliByDataStart($data_start);
|
$articoliVenduti = $this->articoliByDataStart($data_start);
|
||||||
|
|
||||||
@@ -188,8 +186,20 @@ class ArticleController extends Controller
|
|||||||
// Potresti considerare di registrare l'errore per debugging
|
// Potresti considerare di registrare l'errore per debugging
|
||||||
return new Response('Error exporting articles: ' . $e->getMessage(), 500);
|
return new Response('Error exporting articles: ' . $e->getMessage(), 500);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
protected function validateDate($date)
|
||||||
|
{
|
||||||
|
$validator = \Validator::make(['data_start' => $date], [
|
||||||
|
'data_start' => 'required|date_format:Y-m-d'
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($validator->fails()) {
|
||||||
|
throw new ValidationException($validator);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function showOrdini($numrec)
|
public function showOrdini($numrec)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user