69 lines
2.4 KiB
PHP
69 lines
2.4 KiB
PHP
<?php
|
||
|
||
namespace Modules\Admin\Http\Controllers;
|
||
|
||
use App\Http\Controllers\Controller;
|
||
use Illuminate\Http\Request;
|
||
use Modules\Main\Models\Company\Company;
|
||
use Modules\Main\Models\Company\CompanyStatus;
|
||
|
||
use Modules\Main\Models\Agent\Agent;
|
||
use Modules\Main\Models\Company\CompanyAdmin;
|
||
|
||
class AdminCompaniesController extends Controller
|
||
{
|
||
public function index(Request $request)
|
||
{
|
||
$companies = Company::orderBy('name');
|
||
//if ($request->filter) {
|
||
if ($request->filter)
|
||
{
|
||
if ($request->filter == 'trashed') {
|
||
$companies->onlyTrashed();
|
||
} else {
|
||
if ($request->filter != 'all') {
|
||
$companies->where('status', $request->filter);
|
||
}
|
||
}
|
||
}
|
||
$companies = $companies->get();
|
||
return view('admin::companies.index', [
|
||
'companies' => $companies,
|
||
'statuses' => CompanyStatus::cases(),
|
||
'filter' => $request->filter
|
||
]);
|
||
}
|
||
public function edit(Company $company)
|
||
{
|
||
return view('admin::companies.edit', [
|
||
'company' => $company,
|
||
'companyAgentsRelation' => Agent::where('company_id', $company->id)->get(),
|
||
'companyAdminsRelation' => CompanyAdmin::where('company_id', $company->id)->get(),
|
||
]);
|
||
}
|
||
|
||
public function update(Request $request, Company $company)
|
||
{
|
||
$company->update($request->only('name', 'email', 'phone'));
|
||
if ($request->token) {
|
||
$company->bitrixy->token = $request->token;
|
||
$company->bitrixy->save();
|
||
}
|
||
return to_route('admin.companies.edit', ['company' => $company]);
|
||
}
|
||
public function delete(Company $company) {
|
||
$company->delete();
|
||
return back()->withSuccess('Агентство было перемещено в корзину. Все пользователи, прикрепленные к агентству не смогут войти на портал.');
|
||
}
|
||
|
||
public function restore(Company $company) {
|
||
$company->restore();
|
||
return to_route('admin.companies.edit', ['company' => $company])->withSuccess('Агентство "' . $company->name . '" было восстановлено из корзины');
|
||
}
|
||
|
||
public function deleteAdmin(CompanyAdmin $companyAdmin) {
|
||
$companyAdmin->delete();
|
||
return back();
|
||
}
|
||
}
|