логика работы с компаниями перенесена в модуль main
This commit is contained in:
parent
b61f246b51
commit
67b31948bd
@ -86,7 +86,6 @@ protected static function booted()
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
throw new \Exception('Error of bitrix identifier getter for ' . $bitrixId->bitrixable_type . ' with id ' . $bitrixId->bitrixable_id);
|
throw new \Exception('Error of bitrix identifier getter for ' . $bitrixId->bitrixable_type . ' with id ' . $bitrixId->bitrixable_id);
|
||||||
|
|
||||||
});
|
});
|
||||||
static::created(function (BitrixId $bitrixId)
|
static::created(function (BitrixId $bitrixId)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -38,9 +38,9 @@ public function send()
|
|||||||
$result = file_get_contents($this->url, false, $context);
|
$result = file_get_contents($this->url, false, $context);
|
||||||
$result = json_decode($result, $associative = true);
|
$result = json_decode($result, $associative = true);
|
||||||
$this->resultData = $result;
|
$this->resultData = $result;
|
||||||
if (array_key_exists('result', $result))
|
if (is_array($this->resultData) && array_key_exists('result', $result))
|
||||||
{
|
{
|
||||||
return $result['result'];
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -5,17 +5,21 @@
|
|||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
use Modules\Main\Models\Agent\Agent;
|
use Modules\Main\Models\Company\Company;
|
||||||
use Modules\Main\Models\Complex;
|
|
||||||
class SendCompany extends BitrixSender
|
class SendCompany extends BitrixSender
|
||||||
{
|
{
|
||||||
use HasFactory;
|
use HasFactory;
|
||||||
public function __construct(Agent $agent)
|
public function __construct(Company $company)
|
||||||
{
|
{
|
||||||
$this->data = [
|
$this->data = [
|
||||||
'name' => $agent->user->name,
|
'name' => $company->name,
|
||||||
'phones' => [$agent->user->phone],
|
'inn' => $company->inn,
|
||||||
|
'email' => $company->email,
|
||||||
|
'address' => $company->legal_address
|
||||||
|
//'phone' => $company->phone,
|
||||||
|
|
||||||
];
|
];
|
||||||
|
//dd($company);
|
||||||
$this->url = 'https://b24alfa.pro/channels/lk/createCompany/';
|
$this->url = 'https://b24alfa.pro/channels/lk/createCompany/';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -48,9 +48,17 @@ protected static function create(array $attributes = [])
|
|||||||
$model = new static();
|
$model = new static();
|
||||||
$model->fill($attributes);
|
$model->fill($attributes);
|
||||||
$model->save();
|
$model->save();
|
||||||
|
try
|
||||||
|
{
|
||||||
$model->setBitrixId();
|
$model->setBitrixId();
|
||||||
return $model;
|
return $model;
|
||||||
}
|
}
|
||||||
|
catch (\Exception $e)
|
||||||
|
{
|
||||||
|
$model->delete();
|
||||||
|
throw new \Exception('Error of bitrix identifier getter');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static function firstOrCreate($attributes = [], $values = [])
|
public static function firstOrCreate($attributes = [], $values = [])
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Company;
|
namespace Modules\Main\Http\Controllers\Company;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@ -28,7 +28,7 @@ public function index(Request $request)
|
|||||||
$agents->withTrashed();
|
$agents->withTrashed();
|
||||||
}
|
}
|
||||||
|
|
||||||
return view('company.agents.table', [
|
return view('main::company.agents.table', [
|
||||||
'agents' => $agents->get(),
|
'agents' => $agents->get(),
|
||||||
'status' => $request->status,
|
'status' => $request->status,
|
||||||
'cities' => City::all()
|
'cities' => City::all()
|
||||||
@ -1,17 +1,17 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Company;
|
namespace Modules\Main\Http\Controllers\Company;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Hash;
|
use Illuminate\Support\Facades\Hash;
|
||||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||||
use App\Models\Company\Company;
|
use Modules\Main\Models\Company\Company;
|
||||||
use App\Models\Company\CompanyAdmin;
|
use Modules\Main\Models\Company\CompanyAdmin;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
class ConfirmCompanyController extends Controller
|
class ConfirmCompanyController extends Controller
|
||||||
{
|
{
|
||||||
use RegistersUsers;
|
use RegistersUsers;
|
||||||
public function __invoke(Request $request)
|
public function __invoke(Request $request)
|
||||||
{
|
{
|
||||||
@ -43,4 +43,4 @@ public function __invoke(Request $request)
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Company;
|
namespace Modules\Main\Http\Controllers\Company;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\Company\CompanyAdmin;
|
use Modules\Main\Models\Company\CompanyAdmin;
|
||||||
use App\Models\Agent\Agent;
|
use Modules\Main\Models\Agent\Agent;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
use App\Notifications\UserRegistered;
|
use App\Notifications\UserRegistered;
|
||||||
@ -1,13 +1,13 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Company;
|
namespace Modules\Main\Http\Controllers\Company;
|
||||||
|
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\Company\Company;
|
use Modules\Main\Models\Company\Company;
|
||||||
use App\Models\Company\CompanyType;
|
use Modules\Main\Models\Company\CompanyType;
|
||||||
use App\Models\Bitrix\SendCompany;
|
use App\Models\Bitrix\SendCompany;
|
||||||
class CreateCompanyController extends Controller
|
class CreateCompanyController extends Controller
|
||||||
{
|
{
|
||||||
@ -16,6 +16,7 @@ class CreateCompanyController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function __invoke(Request $request)
|
public function __invoke(Request $request)
|
||||||
{
|
{
|
||||||
|
$company = false;
|
||||||
$request->enum('type', CompanyType::class);
|
$request->enum('type', CompanyType::class);
|
||||||
$validated = $request->validate([
|
$validated = $request->validate([
|
||||||
'name' => 'required|max:255',
|
'name' => 'required|max:255',
|
||||||
@ -33,23 +34,31 @@ public function __invoke(Request $request)
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
$data = $request->only('name', 'email', 'inn', 'legal_address', 'secret', 'status', 'type', 'phone', 'city_id');
|
$data = $request->only('name', 'email', 'inn', 'legal_address', 'secret', 'status', 'type', 'phone', 'city_id');
|
||||||
$company = Company::create($data);
|
|
||||||
|
|
||||||
if (!$company)
|
try
|
||||||
{
|
{
|
||||||
return back()->withErrors(['msg' => 'Company creation error'])->withInput();
|
$company = Company::create($data);
|
||||||
|
}
|
||||||
|
catch (\Exception $e)
|
||||||
|
{
|
||||||
|
if ($e->getMessage() == 'Error of bitrix identifier getter')
|
||||||
|
{
|
||||||
|
return back()->withErrors(['msg' => 'Не удалось отправить данные на проверку. Попробуйте позже'])->withInput();
|
||||||
|
}
|
||||||
|
return back()->withErrors(['msg' => 'Не удалось создать агентство. Попробуйте позже'])->withInput();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$data['callback_url'] = route('company.status.update', [
|
$data['callback_url'] = route('company.status.update', [
|
||||||
'company_id' => $company->id,
|
'company_id' => $company->id,
|
||||||
'secret' => $company->secret
|
'secret' => $company->secret
|
||||||
]);
|
]);
|
||||||
$companyConfirmByBitrix = new SendCompany($company->id, $data);
|
/*$companyConfirmByBitrix = new SendCompany($company->id, $data);
|
||||||
if (!$sender = $companyConfirmByBitrix->send())
|
if (!$sender = $companyConfirmByBitrix->send())
|
||||||
{
|
{
|
||||||
$company->delete();
|
$company->delete();
|
||||||
return back()->withErrors(['msg' => 'Error with bitrix sender'])->withInput();
|
return back()->withErrors(['msg' => 'Error with bitrix sender'])->withInput();
|
||||||
}
|
}*/
|
||||||
return view('company.created');
|
return view('main::company.created');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,12 +1,12 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Company;
|
namespace Modules\Main\Http\Controllers\Company;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\Company\Company;
|
use Modules\Main\Models\Company\Company;
|
||||||
use App\Models\Company\CompanyType;
|
use Modules\Main\Models\Company\CompanyType;
|
||||||
use App\Models\City;
|
use Modules\Main\Models\City;
|
||||||
|
|
||||||
class CreateCompanyFormController extends Controller
|
class CreateCompanyFormController extends Controller
|
||||||
{
|
{
|
||||||
@ -28,7 +28,7 @@ public function __invoke(Request $request)
|
|||||||
$city_id = $request->city_id;
|
$city_id = $request->city_id;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
return view('company.create', [
|
return view('main::company.create', [
|
||||||
'type' => $type,
|
'type' => $type,
|
||||||
'city_id' => $city_id,
|
'city_id' => $city_id,
|
||||||
'typesList' => CompanyType::cases(),
|
'typesList' => CompanyType::cases(),
|
||||||
@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Company;
|
namespace Modules\Main\Http\Controllers\Company;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\Company\CompanyAdmin;
|
use Modules\Main\Models\Company\CompanyAdmin;
|
||||||
use App\Models\Agent\Agent;
|
use Modules\Main\Models\Agent\Agent;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
class DeleteAgentController extends Controller
|
class DeleteAgentController extends Controller
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Company;
|
namespace Modules\Main\Http\Controllers\Company;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@ -37,7 +37,7 @@ public function index($companyId = null)
|
|||||||
$details = $details->get();
|
$details = $details->get();
|
||||||
if ($company->type == CompanyType::SelfEmployer || $company->type == CompanyType::SoleProperty)
|
if ($company->type == CompanyType::SelfEmployer || $company->type == CompanyType::SoleProperty)
|
||||||
{
|
{
|
||||||
return view('company.details.selfemp', [
|
return view('main::company.details.selfemp', [
|
||||||
'company' => $company,
|
'company' => $company,
|
||||||
'details' => $details
|
'details' => $details
|
||||||
]);
|
]);
|
||||||
@ -45,7 +45,7 @@ public function index($companyId = null)
|
|||||||
;
|
;
|
||||||
if ($company->type == CompanyType::Agency)
|
if ($company->type == CompanyType::Agency)
|
||||||
{
|
{
|
||||||
return view('company.details.agency', [
|
return view('main::company.details.agency', [
|
||||||
'company' => $company,
|
'company' => $company,
|
||||||
'details' => $details
|
'details' => $details
|
||||||
]);
|
]);
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Company;
|
namespace Modules\Main\Http\Controllers\Company;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@ -1,11 +1,11 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace App\Http\Controllers\Company;
|
namespace Modules\Main\Http\Controllers\Company;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use App\Models\Company\CompanyAdmin;
|
use Modules\Main\Models\Company\CompanyAdmin;
|
||||||
use App\Models\Agent\Agent;
|
use Modules\Main\Models\Agent\Agent;
|
||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
|
|
||||||
class RestoreAgentController extends Controller
|
class RestoreAgentController extends Controller
|
||||||
@ -38,4 +38,13 @@ public function city()
|
|||||||
{
|
{
|
||||||
return $this->belongsTo(City::class);
|
return $this->belongsTo(City::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static function booted()
|
||||||
|
{
|
||||||
|
static::created(function (Company $company)
|
||||||
|
{
|
||||||
|
$details = new Details($company);
|
||||||
|
$details->create();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,6 +17,15 @@ public function __construct(Company $company)
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function get()
|
public function get()
|
||||||
|
{
|
||||||
|
if (!$this->company->details)
|
||||||
|
{
|
||||||
|
$this->create();
|
||||||
|
}
|
||||||
|
return $this->details = $this->company->details;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
{
|
{
|
||||||
if (!$this->company->details)
|
if (!$this->company->details)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -3,11 +3,37 @@
|
|||||||
use Illuminate\Support\Facades\Route;
|
use Illuminate\Support\Facades\Route;
|
||||||
use Modules\Main\Http\Controllers\MainController;
|
use Modules\Main\Http\Controllers\MainController;
|
||||||
|
|
||||||
Route::middleware(['auth'])->group(function() {
|
//Company
|
||||||
|
Route::get('/company/create', Modules\Main\Http\Controllers\Company\CreateCompanyFormController::class)->name('company.form.create');
|
||||||
|
Route::post('/company/create', Modules\Main\Http\Controllers\Company\CreateCompanyController::class)->name('company.create');
|
||||||
|
Route::post('/company/status/update', Modules\Main\Http\Controllers\Company\ConfirmCompanyController::class)->name('company.status.update');
|
||||||
|
|
||||||
|
Route::middleware(['auth'])->group(function ()
|
||||||
|
{
|
||||||
|
|
||||||
Route::get('/main', [MainController::class, 'index']);
|
Route::get('/main', [MainController::class, 'index']);
|
||||||
|
|
||||||
Route::middleware(['hasAccess'])->group(function() {
|
|
||||||
|
|
||||||
|
Route::get('/company/confirmer', function ()
|
||||||
|
{
|
||||||
|
return view(view: 'company.post_confirmer');
|
||||||
|
});
|
||||||
|
|
||||||
|
Route::middleware(['auth'])->group(function ()
|
||||||
|
{
|
||||||
|
Route::get('/company/details/{company?}', [Modules\Main\Http\Controllers\Company\DetailsController::class, 'index'])->name('company.details');
|
||||||
|
Route::post('/company/{company}/details/', [Modules\Main\Http\Controllers\Company\DetailsController::class, 'store'])->name('company.details.store');
|
||||||
|
Route::get('/agents/table', [Modules\Main\Http\Controllers\Company\AgentsTableController::class, 'index'])->name('company.agents.table');
|
||||||
|
Route::post('/company/agents/store/', Modules\Main\Http\Controllers\Company\CreateAgentController::class)->name('company.agents.store');
|
||||||
|
Route::post('/company/agents/{agent}/password/reset/', Modules\Main\Http\Controllers\Company\ResetAgentPasswordController::class)->name('company.agent.password.reset');
|
||||||
|
Route::get('/company/agents/{agent}/delete', Modules\Main\Http\Controllers\Company\DeleteAgentController::class)->name('company.agents.delete');
|
||||||
|
Route::get('/company/agents/{agent}/restore', Modules\Main\Http\Controllers\Company\RestoreAgentController::class)->name('company.agents.restore');
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
Route::middleware(['hasAccess'])->group(function ()
|
||||||
|
{
|
||||||
/** Routes that need to be protected - Маршруты которые нужно защитить */
|
/** Routes that need to be protected - Маршруты которые нужно защитить */
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -70,9 +70,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<main class="px-3">
|
<main class="p-3">
|
||||||
@foreach ($errors->all() as $error)
|
@foreach ($errors->all() as $error)
|
||||||
{{ $error }}
|
<div class="alert alert-danger">{{ $error }}</div>
|
||||||
@endforeach
|
@endforeach
|
||||||
@yield('content')
|
@yield('content')
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
@ -19,12 +19,11 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
Route::middleware('auth:sanctum')->get('/user', function (Request $request)
|
Route::middleware('auth:sanctum')->get('/user', function (Request $request)
|
||||||
{
|
{
|
||||||
return $request->user();
|
return $request->user();
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::post('/client', [ClientsApiController::class, 'index'])->name('api.client');
|
Route::post('/client', [ClientsApiController::class, 'index'])->name('api.client');
|
||||||
|
|
||||||
//Route::post('/client/confirm', [ConfirmClientFromBitrix::class, 'confirm'])->name('deal.confirm');
|
//Route::post('/client/confirm', [ConfirmClientFromBitrix::class, 'confirm'])->name('deal.confirm');
|
||||||
//Route::post('/client/{$deal}/contract', CoController::class)->name('company.status.update');
|
//Route::post('/client/{$deal}/contract', CoController::class)->name('company.status.update');
|
||||||
Route::post('/company/status/update', ConfirmCompanyController::class)->name('company.status.update');
|
|
||||||
|
|||||||
@ -27,27 +27,10 @@
|
|||||||
return redirect('/home');
|
return redirect('/home');
|
||||||
})->middleware(['auth', 'signed'])->name('verification.verify');
|
})->middleware(['auth', 'signed'])->name('verification.verify');
|
||||||
|
|
||||||
//Company
|
|
||||||
Route::get('/company/create', App\Http\Controllers\Company\CreateCompanyFormController::class)->name('company.form.create');
|
|
||||||
Route::post('/company/create', CreateCompanyController::class)->name('company.create');
|
|
||||||
Route::get('/company/confirmer', function ()
|
|
||||||
{
|
|
||||||
return view(view: 'company.post_confirmer');
|
|
||||||
});
|
|
||||||
|
|
||||||
Route::middleware(['auth'])->group(function ()
|
Route::middleware(['auth'])->group(function ()
|
||||||
{
|
{
|
||||||
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
|
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
|
||||||
Route::get('/clients/table', [App\Http\Controllers\ClientsTableController::class, 'index'])->name('clients.table');
|
Route::get('/clients/table', [App\Http\Controllers\ClientsTableController::class, 'index'])->name('clients.table');
|
||||||
Route::get('/company/details/{company?}', [App\Http\Controllers\Company\DetailsController::class, 'index'])->name('company.details');
|
|
||||||
|
|
||||||
Route::post('/company/{company}/details/', [App\Http\Controllers\Company\DetailsController::class, 'store'])->name('company.details.store');
|
|
||||||
Route::get('/agents/table', [App\Http\Controllers\Company\AgentsTableController::class, 'index'])->name('company.agents.table');
|
|
||||||
Route::post('/company/agents/store/', App\Http\Controllers\Company\CreateAgentController::class)->name('company.agents.store');
|
|
||||||
Route::post('/company/agents/{agent}/password/reset/', App\Http\Controllers\Company\ResetAgentPasswordController::class)->name('company.agent.password.reset');
|
|
||||||
Route::get('/company/agents/{agent}/delete', App\Http\Controllers\Company\DeleteAgentController::class)->name('company.agents.delete');
|
|
||||||
Route::get('/company/agents/{agent}/restore', App\Http\Controllers\Company\RestoreAgentController::class)->name('company.agents.restore');
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
//МАКЕТЫ
|
//МАКЕТЫ
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user