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); } } } catch (\Exception $e) { //code error } } $ora_fine = Carbon::now(); $lognrprodotti = 'Prodotti qta aggiornati '.$nrprodotti."\n"; $logfine = 'Terminato il '.$ora_fine."\n"; $settingora->value = $ora_update; $settingora->save(); Log::channel('updateproductsqta')->notice($loginizio . $lognrprodotti . $logfine); } }