to = $to; } /** * Execute the job. * * @return void * @throws \Exception */ public function handle() { $api = $this->to->API(); $ref = Invoice::select('id')->get(); foreach ($api->getInvoices() as $acc) { $o = NULL; // See if we are already linked if (($x=$this->to->provider->accounts->where('pivot.ref',$acc->id))->count() === 1) { $o = $x->pop(); // If not, see if our reference matches } elseif (($x=$ref->filter(fn($item)=>$item->lid == $acc->DocNumber))->count() === 1) { $o = $x->pop(); } else { // Log not found Log::alert(sprintf('%s:Invoice not found [%s:%s]',self::LOGKEY,$acc->id,$acc->DocNumber)); 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:Invoice updated [%s:%s]',self::LOGKEY,$o->id,$acc->DocNumber)); } } }