first(); $fromtime = str_replace('-', '', $settingora->value); $loginizio = 'Inizio da ' . $ora_update . "\n"; /* $stocks = Stock::join(DB::raw('(SELECT Codice, MAX(DataOra) as data1 from T_WEB_Disponibile GROUP BY Codice ) b'), function($join) { $join->on('T_WEB_Disponibile.Codice', '=', 'b.Codice') ->on('T_WEB_Disponibile.DataOra', '=', 'b.data1'); } ) ->where('data1','>=',$fromtime) ->orderBy('DataOra') ->get(); */ $stocks = Stock::select('Codice', 'QtaDisponibile', DB::raw('MAX(DataOra) as data_recente')) ->where('DataOra', '>=', $fromtime) ->groupBy('Codice', 'QtaDisponibile') ->get(); $nrprodotti = $stocks->count(); foreach ($stocks as $stock) { try { $productsku = Product::where('sku', $stock->Codice)->first(); if ($productsku->count() > 0) { $data1 = [ 'stock_quantity' => $stock->QtaDisponibile, ]; $idprodotto = $productsku['parent_id']; if ($idprodotto > 0) { $variation = Variation::update($idprodotto, $productsku['id'], $data1); } else { Product::update($productsku['id'], $data1); } $aggiornato = true; } } catch (\Exception $e) { //code error } } $ora_fine = Carbon::now(); $title = '*** SITO DI PRODUZIONE *** '; $lognrprodotti = $title . ' Prodotti qta aggiornati ' . $nrprodotti . "\n"; $logfine = 'Terminato il ' . $ora_fine . "\n"; $settingora->value = $ora_update; $settingora->save(); if ($aggiornato) { Log::channel('updateproductsqta')->notice($loginizio . $lognrprodotti . $logfine); Mail::raw($loginizio . $lognrprodotti . $logfine, function ($message) { $message->to("log@fioredellavita.it"); $message->subject(Mylog::getSubjectEmail("Aggiornam. Qtà Prodotti:")); }); } } }