public function getPublicProfilePage($id, $slug) { $_hash = new Hash(); $_hash = $_hash->getHasher(); $agency = \Agency::findAgencyById($_hash->decode($id)); if (!$agency) { return abort(404); } return view('front.agency.publicProfile')->with('model', $agency); }
public function postRemoveAffiliate() { $_hash = new Hash(); $_hash = $_hash->getHasher(); $id = $_hash->decode(trim(\Input::get('id'))); if (!($agency = \Agency::findAgencyById($id))) { return \Response::json(['type' => 'danger', 'message' => 'Agency not found.']); } try { $affiliate = \Company::removeAffiliate($agency); return \Response::json(['type' => 'success', 'message' => 'Affiliate "' . $agency->name . '" removed.']); } catch (\Exception $e) { return \Response::json(['type' => 'danger', 'message' => $e->getMessage()]); } }
public function updateExpense($id, $company, $status) { if (!($expense = \Contractor::findExpenseById($id))) { throw new \Exception("Expense not found.", 1); return; } $job = $expense->job; if ($company->id !== $job->company_id) { throw new \Exception("Expense does not belong to the company.", 1); return; } if ($status) { $expense->auth_company = true; $expense->save(); if (!is_null($job->agency_id) && !$expense->auth_agency) { $_hash = new Hash(); $_hash = $_hash->getHasher(); if ($agency = \Agency::findAgencyById($job->agency_id)) { $notificationData = ['agency_id' => $agency->id, 'alert_from' => 'System: Programme Chameleon', 'has_read' => false, 'title' => 'Expense "' . $expense->title . '" for "' . $job->title . '" has been accepted by "' . $company->name . '". Please authorize it.', 'description' => 'Accepted by ' . $company->name, 'url' => route('agency.job.detail') . '?i=' . $_hash->encode($job->id)]; \Agency::addNotification($agency, $notificationData); } } else { if ($contractor = $expense->contractor) { $notificationData = ['contractor_id' => $contractor->id, 'alert_from' => 'System: Programme Chameleon', 'has_read' => false, 'title' => 'Your expense "' . $expense->title . '" for "' . $job->title . '" has been accepted.', 'description' => 'Accepted by ' . $company->name, 'url' => '#']; \Contractor::addNotification($contractor, $notificationData); } } } else { $expense->auth_company = false; $expense->save(); if ($contractor = $expense->contractor) { $notificationData = ['contractor_id' => $contractor->id, 'alert_from' => 'System: Programme Chameleon', 'has_read' => false, 'title' => 'Your expense "' . $expense->title . '" for "' . $job->title . '" has been de-authorized.', 'description' => 'De-authorize by ' . $company->name, 'url' => '#']; \Contractor::addNotification($contractor, $notificationData); } if (!is_null($job->agency_id)) { if ($agency = \Agency::findAgencyById($job->agency_id)) { $notificationData = ['agency_id' => $agency->id, 'alert_from' => 'System: Programme Chameleon', 'has_read' => false, 'title' => 'Expense "' . $expense->title . '" for "' . $job->title . '" has been de-authorized.', 'description' => 'De-authorize by ' . $company->name, 'url' => '#']; \Agency::addNotification($agency, $notificationData); } } } return $expense; }
public function getJobListingFrame($id, $type) { $_hash = new Hash(); $_hash = $_hash->getHasher(); switch ($type) { case 'company': if (!($company = \Company::findCompanyById($_hash->decode($id)))) { return view('frame.job')->with('flashMessage', ['class' => 'danger', 'message' => 'Company not found.']); } if (!($jobs = $company->jobs()->get())) { return view('frame.job')->with('flashMessage', ['class' => 'danger', 'message' => 'Jobs not found.']); } return view('frame.job')->with('jobs', $jobs); break; case 'agency': if (!($agency = \Agency::findAgencyById($_hash->decode($id)))) { return view('frame.job')->with('flashMessage', ['class' => 'danger', 'message' => 'Agency not found.']); } if (!($jobs = $agency->jobs()->get())) { return view('frame.job')->with('flashMessage', ['class' => 'danger', 'message' => 'Jobs not found.']); } return view('frame.job')->with('jobs', $jobs); break; default: return view('frame.job')->with('flashMessage', ['class' => 'danger', 'message' => 'Type is incorrectly defined.']); break; } }