/** * Get all companies data together with related models. * * @param int|\Carbon\Carbon $lastVisit * @return \Illuminate\Database\Eloquent\Collection|static[] */ public static function getAllData($lastVisit) { return Company::with(['directors', 'stocks' => function ($query) { $query->latest(); }, 'errors' => function ($query) use($lastVisit) { $query->latest()->where('created_at', '>=', $lastVisit); }])->get(); }
/** * Show Companies page. * * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function index() { $lastVisit = $this->getLastVisit(); $this->setLastVisit(); $pageTitle = 'Companies'; $generalErrors = Error::getLastGeneralErrors($lastVisit); $companies = Company::getAllData($lastVisit); return view('companies', compact('companies', 'generalErrors', 'pageTitle')); }
/** * Get companies and save to database. * * @return array * @throws \SoapFault */ protected function getCompanies() { $companies = $this->soap->getCompanies($this->options); Company::saveResponse($companies); return $companies; }