lk.zachem.info/app/Http/Controllers/Company/CreateAgentController.php
2025-04-03 17:21:05 +08:00

52 lines
1.7 KiB
PHP

<?php
namespace App\Http\Controllers\Company;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Company\CompanyAdmin;
use App\Models\Agent\Agent;
use App\Models\User;
class CreateAgentController extends Controller
{
public function __invoke(Request $request)
{
$request->only(['name', 'email', 'phone']);
$admin = CompanyAdmin::where('user_id', auth()->id());
if (!$admin->count())
{
abort(404);
return;
}
$admin = $admin->first();
$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());
$user->setForcedPassword();
}
if ($user)
{
Agent::where('user_id', $user->id)->delete(); //на случай, если где-то этот пользователь уже был агентом
$agent = Agent::create([
'user_id' => $user->id,
'company_id' => $admin->company_id
]);
}
return to_route('company.agents.table');
}
}