lk.zachem.info/app/Modules/Main/Http/Controllers/Company/CreateAgentController.php
Thekindbull b5b50159a7 - обновлена работа с администраированием агентств: сделано редактирование данных, а также управление агентами из админки (добавление, удаление)
- проведен рефакторинг компоненты создания агента
- в админку добавлена работа с url на стороне битрикса
- проведен рефакторинг кода по отправке данных в битрикс
- разнесены оставшиеся миграции по модулям
2025-11-11 15:29:04 +08:00

74 lines
2.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace Modules\Main\Http\Controllers\Company;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Modules\Main\Models\Company\Company;
use Modules\Main\Models\Company\CompanyAdmin;
use Modules\Main\Models\Agent\Agent;
use Modules\User\Models\User;
use App\Notifications\UserRegistered;
class CreateAgentController extends Controller
{
public function __invoke(Request $request, Company $company)
{
if (!$company)
{
$admin = CompanyAdmin::where('user_id', auth()->id());
if (!$admin->count())
{
abort(404);
return;
}
$admin = $admin->first();
$company = Company::find($admin->company_id);
}
if (!$company)
{
return back()->with('error', 'Не удалось установить принадлежность создаваемого агента');
}
$user = User::where('email', $request->email)->orWhere('phone', $request->phone)->first();
if ($user)
{
if ($user->id !== auth()->id()) //если это не текущий пользователь-админ, который хочет себя сделать агентом, то ошибка
{
if (Agent::where('user_id', $user->id)->count()) // и если этот пользователь уже агент
{
return back()->with('error', __('Agent is not unique'));
}
}
}
else
{
$user = $user = User::create($request->all());
}
if ($user)
{
Agent::where('user_id', $user->id)->delete(); //на случай, если где-то этот пользователь уже был агентом
$agent = Agent::create([
'user_id' => $user->id,
'company_id' => $company->id
]);
}
if ($request->sendToEmail)
{
$user->setForcedPassword();
}
else
{
$password = $user->setForcedPassword(false);
//$adminUser = User::find($admin->user_id);
//$adminUser->notify(new UserRegistered($user->email, password: $password));
//return redirect()->route('company.agents.table')->with('success', 'thank you');
return back()->with('success', 'Пароль для пользователя установлен: ' . $password);
}
return to_route('company.agents.table');
}
}