Ejemplo n.º 1
0
 /**
  * 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]);
 }
Ejemplo n.º 2
0
 /**
  * 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');
 }