логика работы с компаниями перенесена в модуль main
This commit is contained in:
parent
b61f246b51
commit
67b31948bd
@ -86,7 +86,6 @@ protected static function booted()
|
||||
break;
|
||||
}
|
||||
throw new \Exception('Error of bitrix identifier getter for ' . $bitrixId->bitrixable_type . ' with id ' . $bitrixId->bitrixable_id);
|
||||
|
||||
});
|
||||
static::created(function (BitrixId $bitrixId)
|
||||
{
|
||||
|
||||
@ -38,9 +38,9 @@ public function send()
|
||||
$result = file_get_contents($this->url, false, $context);
|
||||
$result = json_decode($result, $associative = true);
|
||||
$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
|
||||
{
|
||||
|
||||
@ -5,17 +5,21 @@
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
use Modules\Main\Models\Agent\Agent;
|
||||
use Modules\Main\Models\Complex;
|
||||
use Modules\Main\Models\Company\Company;
|
||||
class SendCompany extends BitrixSender
|
||||
{
|
||||
use HasFactory;
|
||||
public function __construct(Agent $agent)
|
||||
public function __construct(Company $company)
|
||||
{
|
||||
$this->data = [
|
||||
'name' => $agent->user->name,
|
||||
'phones' => [$agent->user->phone],
|
||||
'name' => $company->name,
|
||||
'inn' => $company->inn,
|
||||
'email' => $company->email,
|
||||
'address' => $company->legal_address
|
||||
//'phone' => $company->phone,
|
||||
|
||||
];
|
||||
//dd($company);
|
||||
$this->url = 'https://b24alfa.pro/channels/lk/createCompany/';
|
||||
}
|
||||
}
|
||||
|
||||
@ -48,8 +48,16 @@ protected static function create(array $attributes = [])
|
||||
$model = new static();
|
||||
$model->fill($attributes);
|
||||
$model->save();
|
||||
$model->setBitrixId();
|
||||
return $model;
|
||||
try
|
||||
{
|
||||
$model->setBitrixId();
|
||||
return $model;
|
||||
}
|
||||
catch (\Exception $e)
|
||||
{
|
||||
$model->delete();
|
||||
throw new \Exception('Error of bitrix identifier getter');
|
||||
}
|
||||
}
|
||||
|
||||
public static function firstOrCreate($attributes = [], $values = [])
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Company;
|
||||
namespace Modules\Main\Http\Controllers\Company;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
@ -28,7 +28,7 @@ public function index(Request $request)
|
||||
$agents->withTrashed();
|
||||
}
|
||||
|
||||
return view('company.agents.table', [
|
||||
return view('main::company.agents.table', [
|
||||
'agents' => $agents->get(),
|
||||
'status' => $request->status,
|
||||
'cities' => City::all()
|
||||
@ -1,46 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Company;
|
||||
namespace Modules\Main\Http\Controllers\Company;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||
use App\Models\Company\Company;
|
||||
use App\Models\Company\CompanyAdmin;
|
||||
use Modules\Main\Models\Company\Company;
|
||||
use Modules\Main\Models\Company\CompanyAdmin;
|
||||
use App\Models\User;
|
||||
|
||||
class ConfirmCompanyController extends Controller
|
||||
{
|
||||
{
|
||||
use RegistersUsers;
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
{
|
||||
$company = Company::find($request->company_id);
|
||||
if ($company->secret == $request->secret)
|
||||
{
|
||||
{
|
||||
$company->status = $request->status;
|
||||
$company->save();
|
||||
$user = User::where('email', $company->email);
|
||||
if ($user->count() == 1)
|
||||
{
|
||||
{
|
||||
$user = $user->first();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
$user = User::create([
|
||||
'name' => $request->user_name,
|
||||
'name' => $request->user_name,
|
||||
'email' => $company->email,
|
||||
'phone' => $request->user_phone
|
||||
]);
|
||||
$user->setForcedPassword();
|
||||
}
|
||||
}
|
||||
CompanyAdmin::where('user_id', $user->id)->delete();//удаляю, если уже была админская учетка
|
||||
CompanyAdmin::create([
|
||||
'user_id' => $user->id,
|
||||
'user_id' => $user->id,
|
||||
'company_id' => $company->id
|
||||
]);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -1,11 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Company;
|
||||
namespace Modules\Main\Http\Controllers\Company;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Company\CompanyAdmin;
|
||||
use App\Models\Agent\Agent;
|
||||
use Modules\Main\Models\Company\CompanyAdmin;
|
||||
use Modules\Main\Models\Agent\Agent;
|
||||
use App\Models\User;
|
||||
|
||||
use App\Notifications\UserRegistered;
|
||||
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Company;
|
||||
namespace Modules\Main\Http\Controllers\Company;
|
||||
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Company\Company;
|
||||
use App\Models\Company\CompanyType;
|
||||
use Modules\Main\Models\Company\Company;
|
||||
use Modules\Main\Models\Company\CompanyType;
|
||||
use App\Models\Bitrix\SendCompany;
|
||||
class CreateCompanyController extends Controller
|
||||
{
|
||||
@ -16,6 +16,7 @@ class CreateCompanyController extends Controller
|
||||
*/
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
$company = false;
|
||||
$request->enum('type', CompanyType::class);
|
||||
$validated = $request->validate([
|
||||
'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');
|
||||
$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', [
|
||||
'company_id' => $company->id,
|
||||
'secret' => $company->secret
|
||||
]);
|
||||
$companyConfirmByBitrix = new SendCompany($company->id, $data);
|
||||
/*$companyConfirmByBitrix = new SendCompany($company->id, $data);
|
||||
if (!$sender = $companyConfirmByBitrix->send())
|
||||
{
|
||||
$company->delete();
|
||||
return back()->withErrors(['msg' => 'Error with bitrix sender'])->withInput();
|
||||
}
|
||||
return view('company.created');
|
||||
}*/
|
||||
return view('main::company.created');
|
||||
}
|
||||
}
|
||||
@ -1,12 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Company;
|
||||
namespace Modules\Main\Http\Controllers\Company;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Company\Company;
|
||||
use App\Models\Company\CompanyType;
|
||||
use App\Models\City;
|
||||
use Modules\Main\Models\Company\Company;
|
||||
use Modules\Main\Models\Company\CompanyType;
|
||||
use Modules\Main\Models\City;
|
||||
|
||||
class CreateCompanyFormController extends Controller
|
||||
{
|
||||
@ -28,7 +28,7 @@ public function __invoke(Request $request)
|
||||
$city_id = $request->city_id;
|
||||
}
|
||||
;
|
||||
return view('company.create', [
|
||||
return view('main::company.create', [
|
||||
'type' => $type,
|
||||
'city_id' => $city_id,
|
||||
'typesList' => CompanyType::cases(),
|
||||
@ -1,11 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Company;
|
||||
namespace Modules\Main\Http\Controllers\Company;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Company\CompanyAdmin;
|
||||
use App\Models\Agent\Agent;
|
||||
use Modules\Main\Models\Company\CompanyAdmin;
|
||||
use Modules\Main\Models\Agent\Agent;
|
||||
use App\Models\User;
|
||||
|
||||
class DeleteAgentController extends Controller
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Company;
|
||||
namespace Modules\Main\Http\Controllers\Company;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
@ -37,7 +37,7 @@ public function index($companyId = null)
|
||||
$details = $details->get();
|
||||
if ($company->type == CompanyType::SelfEmployer || $company->type == CompanyType::SoleProperty)
|
||||
{
|
||||
return view('company.details.selfemp', [
|
||||
return view('main::company.details.selfemp', [
|
||||
'company' => $company,
|
||||
'details' => $details
|
||||
]);
|
||||
@ -45,7 +45,7 @@ public function index($companyId = null)
|
||||
;
|
||||
if ($company->type == CompanyType::Agency)
|
||||
{
|
||||
return view('company.details.agency', [
|
||||
return view('main::company.details.agency', [
|
||||
'company' => $company,
|
||||
'details' => $details
|
||||
]);
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Company;
|
||||
namespace Modules\Main\Http\Controllers\Company;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
@ -1,11 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Company;
|
||||
namespace Modules\Main\Http\Controllers\Company;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Company\CompanyAdmin;
|
||||
use App\Models\Agent\Agent;
|
||||
use Modules\Main\Models\Company\CompanyAdmin;
|
||||
use Modules\Main\Models\Agent\Agent;
|
||||
use App\Models\User;
|
||||
|
||||
class RestoreAgentController extends Controller
|
||||
@ -38,4 +38,13 @@ public function city()
|
||||
{
|
||||
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()
|
||||
{
|
||||
if (!$this->company->details)
|
||||
{
|
||||
$this->create();
|
||||
}
|
||||
return $this->details = $this->company->details;
|
||||
}
|
||||
|
||||
public function create()
|
||||
{
|
||||
if (!$this->company->details)
|
||||
{
|
||||
|
||||
@ -3,11 +3,37 @@
|
||||
use Illuminate\Support\Facades\Route;
|
||||
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::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 - Маршруты которые нужно защитить */
|
||||
});
|
||||
});
|
||||
@ -70,9 +70,9 @@
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<main class="px-3">
|
||||
<main class="p-3">
|
||||
@foreach ($errors->all() as $error)
|
||||
{{ $error }}
|
||||
<div class="alert alert-danger">{{ $error }}</div>
|
||||
@endforeach
|
||||
@yield('content')
|
||||
</main>
|
||||
|
||||
@ -19,12 +19,11 @@
|
||||
*/
|
||||
|
||||
Route::middleware('auth:sanctum')->get('/user', function (Request $request)
|
||||
{
|
||||
{
|
||||
return $request->user();
|
||||
});
|
||||
});
|
||||
|
||||
Route::post('/client', [ClientsApiController::class, 'index'])->name('api.client');
|
||||
|
||||
//Route::post('/client/confirm', [ConfirmClientFromBitrix::class, 'confirm'])->name('deal.confirm');
|
||||
//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');
|
||||
})->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::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('/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