/** * Displays homepage. * * @return mixed */ public function actionIndex() { $dataProvider = new ActiveDataProvider(['query' => Firms::find()]); $dataProviderPhones = new ActiveDataProvider(['query' => Phones::find()]); $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id"; $query = Firms::findBySql($sql); $dataProvider1 = new ActiveDataProvider(['query' => $query]); $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id HAVING count(p.phone_id) = '0'"; $query = Firms::findBySql($sql); $dataProvider2 = new ActiveDataProvider(['query' => $query]); $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id HAVING count(p.phone_id) >= '2'"; $query = Firms::findBySql($sql); $dataProvider3 = new ActiveDataProvider(['query' => $query]); $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id HAVING count(p.phone_id) < '2'"; $query = Firms::findBySql($sql); $dataProvider4 = new ActiveDataProvider(['query' => $query]); $sql = "SELECT id, Name, p.Phone as pPhone FROM " . Firms::tableName() . " LEFT JOIN " . Phones::tableName() . " as p ON id = p.FirmID " . " GROUP BY id HAVING count(p.phone_id) = (SELECT MAX( cpid) AS mcpid\n FROM (\n SELECT count(FirmID) AS cpid\n FROM " . Firms::tableName() . "\n LEFT JOIN " . Phones::tableName() . " ON id = FirmID\n GROUP BY FirmID\n ) AS cphone)"; $query = Firms::findBySql($sql); $dataProvider5 = new ActiveDataProvider(['query' => $query]); return $this->render('index', ['dataProvider' => $dataProvider, 'dataProviderPhones' => $dataProviderPhones, 'dataProvider1' => $dataProvider1, 'dataProvider2' => $dataProvider2, 'dataProvider3' => $dataProvider3, 'dataProvider4' => $dataProvider4, 'dataProvider5' => $dataProvider5]); }
/** * Update the specified resource in storage. * * @param Request $request * @param int $id * @return Response */ public function update($id, Request $request) { $company = Companies::findOrFail($id); if (isset($request['add_new']) && $request['add_new']) { $mediaData = $this->mediaValidator($request); $company->mediaContacts()->save(new \App\Models\MediaContacts($mediaData)); return Redirect::back()->withInput($request->except(["Full_Name_Media_Contact", "Media_contact_Email", "Media_Contact_Phone"])); } else { if (isset($request['attach_file']) && $request['attach_file']) { $attachmentFields = $this->attachFileValidator($request); $company->attachments()->save(new \App\Models\Attachments($attachmentFields)); return Redirect::back()->withInput($request->except(["attached_file"])); } } $address = $this->addressValidator($request); $phone = $this->phoneValidator($request); if ($company->headquaters()->get()->count()) { Addresses::findOrNew($company->headquaters()->first()->AddressId)->fill($address)->save(); } else { $addressModel = Addresses::create($address); } if ($company->headquaters()->get()->count()) { Phones::findOrNew($company->headquaters()->first()->PhoneId)->fill($phone)->save(); } else { $phoneModel = Phones::create($phone); } if (!$company->headquaters()->count()) { $company->headquaters()->save(new \App\Models\HeadquartersInformation(['PhoneId' => $phoneModel->PhoneId, 'AddressId' => $addressModel->AddressId])); } $companyFields = $this->companyValidator($request); $company->fill($companyFields)->save(); return redirect(route('admin.companies.index'))->with('flash', 'The Company was updated'); }