to = $to; } /** * Execute the job. * * @return void * @throws \Exception */ public function handle() { $api = $this->to->API(); $ref = Tax::select(['id','description'])->get(); foreach ($api->getTaxCodes() as $acc) { $o = NULL; // See if we are already linked if (($x=$this->to->provider->taxes->where('pivot.ref',$acc->id))->count() === 1) { $o = $x->pop(); /* // If not, see if our reference matches } elseif (($x=$ref->filter(function($item) use ($acc) { return $item->sid == $acc->ref; }))->count() === 1) { $o = $x->pop(); */ // Look based on Name } elseif (($x=$ref->filter(function($item) use ($acc) { return $item->description === $acc->name; }))->count() === 1) { $o = $x->pop(); } else { // Log not found Log::alert(sprintf('%s:Tax not found [%s:%s]',self::LOGKEY,$acc->id,$acc->name)); continue; } $o->providers()->syncWithoutDetaching([ $this->to->provider->id => [ 'ref' => $acc->id, 'synctoken' => $acc->synctoken, 'created_at'=>Carbon::create($acc->created_at), 'updated_at'=>Carbon::create($acc->updated_at), 'site_id'=>$this->to->site_id, ], ]); Log::alert(sprintf('%s:Tax updated [%s:%s]',self::LOGKEY,$o->id,$acc->id)); } } }