registration
parent
1078f7d973
commit
d216994ef6
|
|
@ -102,7 +102,6 @@ class LoginController extends Controller
|
||||||
$request->session()->put('user.segment', Acl::getSegment(Acl::company_id()));
|
$request->session()->put('user.segment', Acl::getSegment(Acl::company_id()));
|
||||||
$request->session()->put('user.name', Auth::user()->name);
|
$request->session()->put('user.name', Auth::user()->name);
|
||||||
|
|
||||||
Accounting::session_extend($request);
|
|
||||||
$this->resetAttempt($request);
|
$this->resetAttempt($request);
|
||||||
}
|
}
|
||||||
return $this->sendLoginResponse($request);
|
return $this->sendLoginResponse($request);
|
||||||
|
|
|
||||||
|
|
@ -1,285 +0,0 @@
|
||||||
<?php
|
|
||||||
/*
|
|
||||||
* Copyright (c) 2023.
|
|
||||||
*
|
|
||||||
* A.Сапаргалиев
|
|
||||||
* ТОО "Дизайн лаборатория А7"
|
|
||||||
* Астана
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace modules\Auth\Http\Controllers;
|
|
||||||
|
|
||||||
use A7kz\Platform\Helpers\Facade\Helper;
|
|
||||||
use A7kz\Platform\Http\Controllers\Controller;
|
|
||||||
use A7kz\Platform\Models\UniModel;
|
|
||||||
use A7kz\Platform\Modules\Platform\Acl\Facades\Acl;
|
|
||||||
use A7kz\Platform\Modules\Platform\Segment\Facades\Segment;
|
|
||||||
use Carbon\Carbon;
|
|
||||||
use Illuminate\Http\RedirectResponse;
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Auth;
|
|
||||||
use Illuminate\Support\Facades\Cache;
|
|
||||||
use Illuminate\Support\Facades\Session;
|
|
||||||
use Illuminate\Support\Facades\Validator;
|
|
||||||
|
|
||||||
class RegisterCompanyController extends Controller
|
|
||||||
{
|
|
||||||
const COWORKER_ROLE = 'coworker';
|
|
||||||
const DIRECTOR_ROLE = 'director';
|
|
||||||
const DEFAULT_COMPANY_ID = 0;
|
|
||||||
|
|
||||||
public function checkBiniinAjax(Request $request) {
|
|
||||||
$validation = Validator::make(['biniin' => $request->get('biniin')], $this->getBiniinRules());
|
|
||||||
|
|
||||||
if ($validation->fails()) {
|
|
||||||
return [
|
|
||||||
'status' => 'error',
|
|
||||||
'message' => __('Неправильно введен БИН/ИИН')
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
$biniin = $validation->validated()['biniin'];
|
|
||||||
$company = $this->getCompanyByBiniin($biniin);
|
|
||||||
|
|
||||||
if ($company) {
|
|
||||||
return [
|
|
||||||
'status' => 'success',
|
|
||||||
'data' => [
|
|
||||||
'biniin' => $biniin,
|
|
||||||
'name' => $company->name,
|
|
||||||
'fullname' => $company->fullname,
|
|
||||||
'companyExists' => true
|
|
||||||
]
|
|
||||||
];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$inputData = [
|
|
||||||
'biniin' => $biniin
|
|
||||||
];
|
|
||||||
$minStat = $this->minStat($biniin);
|
|
||||||
|
|
||||||
if ($minStat['status'] == 2) {
|
|
||||||
$inputData['name'] = $minStat['data']['name'];
|
|
||||||
$inputData['fullname'] = $minStat['data']['name'];
|
|
||||||
}
|
|
||||||
|
|
||||||
return [
|
|
||||||
'status' => 'success',
|
|
||||||
'data' => array_merge($inputData, ['registerNewCompany' => true])
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getCompanyByBiniin(string $biniin) {
|
|
||||||
return UniModel::model(config('platform.company.tables.company'))
|
|
||||||
->where('biniin', trim($biniin))
|
|
||||||
->first();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a new company.
|
|
||||||
*
|
|
||||||
* @param Request $request
|
|
||||||
* @return RedirectResponse
|
|
||||||
* @throws \Exception
|
|
||||||
*/
|
|
||||||
public function registerCompany(Request $request) {
|
|
||||||
if (!Auth::check()) {
|
|
||||||
return redirect(lurl("/"));
|
|
||||||
}
|
|
||||||
|
|
||||||
$userId = Auth::id();
|
|
||||||
$biniin = $this->getBiniin($request);
|
|
||||||
|
|
||||||
if ($company = $this->getCompanyByBiniin($biniin)) {
|
|
||||||
return $this->applyToCompany($company);
|
|
||||||
}
|
|
||||||
|
|
||||||
$minStat = $this->minStat($biniin);
|
|
||||||
|
|
||||||
[$name, $fullname] = $this->getNameAndFullName($request);
|
|
||||||
|
|
||||||
$company = $this->saveCompany([
|
|
||||||
'name' => $name,
|
|
||||||
'biniin' => $biniin,
|
|
||||||
'fullname' => $fullname
|
|
||||||
]);
|
|
||||||
|
|
||||||
$this->saveOrganization($minStat, $company);
|
|
||||||
|
|
||||||
Helper::company()->addUserToCompany($userId, $company->id);
|
|
||||||
Helper::company()->addUserRoleToCompany($userId, $company->id, self::COWORKER_ROLE);
|
|
||||||
Helper::company()->addUserRoleToCompany($userId, $company->id, self::DIRECTOR_ROLE);
|
|
||||||
|
|
||||||
$this->updateSession($company->id);
|
|
||||||
|
|
||||||
return redirect(lurl("/"));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function minStat(string $biniin){
|
|
||||||
if (Cache::has($biniin)) {
|
|
||||||
return Cache::get($biniin);
|
|
||||||
}
|
|
||||||
|
|
||||||
$i = 0;
|
|
||||||
|
|
||||||
while($i < 3) {
|
|
||||||
try {
|
|
||||||
$i++;
|
|
||||||
$res = $this->getMinStatData($biniin);
|
|
||||||
if($res['status']){
|
|
||||||
Cache::put($biniin, $res, 10);
|
|
||||||
return $res;
|
|
||||||
}
|
|
||||||
sleep(10);
|
|
||||||
} catch (\Exception $e){
|
|
||||||
// ExceptionControl::message($e);
|
|
||||||
return ["status" => 0, "message" => "Данные не найдены"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ["status" => 0, "message" => "Данные не найдены"];
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getMinStatData(string $biniin){
|
|
||||||
$curl = curl_init();
|
|
||||||
curl_setopt_array($curl, array(
|
|
||||||
CURLOPT_URL => 'https://stat.gov.kz/api/juridicalusr/counter/gov/?bin=' . $biniin . '&lang=ru',
|
|
||||||
CURLOPT_RETURNTRANSFER => true,
|
|
||||||
CURLOPT_MAXREDIRS => 10,
|
|
||||||
CURLOPT_CUSTOMREQUEST => 'GET',
|
|
||||||
CURLOPT_HTTPHEADER => array(
|
|
||||||
'Referer: https://stat.gov.kz/jur-search/bin'
|
|
||||||
),
|
|
||||||
));
|
|
||||||
|
|
||||||
$result = curl_exec($curl);
|
|
||||||
if (!curl_error($curl)) {
|
|
||||||
curl_close($curl);
|
|
||||||
$response = json_decode($result, 1);
|
|
||||||
if(!is_null($response)) {
|
|
||||||
if (array_key_exists("error", $response)) {
|
|
||||||
return ['status' => 0, 'message' => "Ошибка при запросе данных с stat gov kz"];
|
|
||||||
} else {
|
|
||||||
if ($response["success"] == true) {
|
|
||||||
return ['status' => 2, 'data' => $response['obj']];
|
|
||||||
} else {
|
|
||||||
if(is_null($response['obj'])){
|
|
||||||
return ["status" => 1, "message" => "Данные не найдены"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ["status" => 0, "message" => "Сервер занят"];
|
|
||||||
} else {
|
|
||||||
return ["status" => 0, "message" => "Данные не найдены"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @throws \Exception
|
|
||||||
*/
|
|
||||||
private function saveCompany(array $data) {
|
|
||||||
$company = UniModel::model(config('platform.company.tables.company'));
|
|
||||||
|
|
||||||
$company->fill(array_merge($data, ['segment' => Segment::random()]));
|
|
||||||
|
|
||||||
$company->save();
|
|
||||||
return $company;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function saveOrganization(array $minStat, $company) {
|
|
||||||
$data = $this->getOrganizationData($minStat, $company);
|
|
||||||
$organization = UniModel::model(config('platform.company.tables.organization'));
|
|
||||||
$organization->fill($data);
|
|
||||||
$organization->save();
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getBiniin(Request $request) {
|
|
||||||
return $request->validate($this->getBiniinRules())['biniin'];
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getNameAndFullName(Request $request) {
|
|
||||||
$data = $request->validate([
|
|
||||||
'name' => ['required', 'string', 'max:255'],
|
|
||||||
'fullname' => ['required', 'string', 'max:255'],
|
|
||||||
]);
|
|
||||||
|
|
||||||
return array($data['name'], $data['fullname']);
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getOrganizationData(array $minStat, $company) {
|
|
||||||
|
|
||||||
if ($minStat['status'] == 2) {
|
|
||||||
$organizationData = $minStat['data'];
|
|
||||||
|
|
||||||
$organizationData['biniin'] = $organizationData['bin'];
|
|
||||||
unset($organizationData['bin']);
|
|
||||||
|
|
||||||
$organizationData['registerDate'] = Carbon::parse($organizationData['registerDate'])
|
|
||||||
->format('Y-m-d H:i:s');
|
|
||||||
|
|
||||||
unset($organizationData['id']);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$organizationData = [
|
|
||||||
"name" => $company->name,
|
|
||||||
"biniin" => $company->biniin
|
|
||||||
];
|
|
||||||
}
|
|
||||||
$organizationData['company_id'] = $company->id;
|
|
||||||
|
|
||||||
return $organizationData;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function showRegisterCompanyForm() {
|
|
||||||
return view('platform.auth::registerCompany');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function applyToCompany($company) {
|
|
||||||
if ($this->issetApplication($company->id)) {
|
|
||||||
return back()
|
|
||||||
->withInput([
|
|
||||||
'name' => $company->name,
|
|
||||||
'biniin' => $company->biniin,
|
|
||||||
'fullname' => $company->name
|
|
||||||
])
|
|
||||||
->with('companyExists', true)
|
|
||||||
->withErrors(['company' => __('Your application already exists')]);
|
|
||||||
}
|
|
||||||
|
|
||||||
$addRequest = UniModel::model(config('platform.company.tables.company_request'));
|
|
||||||
|
|
||||||
$addRequest->fill([
|
|
||||||
'user_id' => Auth::id(),
|
|
||||||
'company_id' => $company->id,
|
|
||||||
]);
|
|
||||||
|
|
||||||
$addRequest->save();
|
|
||||||
|
|
||||||
$this->updateSession();
|
|
||||||
|
|
||||||
return redirect(lurl("/"));
|
|
||||||
}
|
|
||||||
|
|
||||||
private function issetApplication(int|string $companyId) {
|
|
||||||
return UniModel::model(config('platform.company.tables.company_request'))
|
|
||||||
->where('user_id', Auth::id())
|
|
||||||
->where('company_id', $companyId)
|
|
||||||
->count();
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getBiniinRules(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'biniin' => ['required', 'string', 'size:12', 'regex:/^[0-9]+$/']
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
private function updateSession(int $companyId = self::DEFAULT_COMPANY_ID): void
|
|
||||||
{
|
|
||||||
Session::put('user.company_id', $companyId);
|
|
||||||
Session::put('user.rights', Acl::getUserRights(Auth::id(), $companyId));
|
|
||||||
Session::put('user.segment', Acl::getSegment($companyId));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -15,6 +15,7 @@ use App\Models\User;
|
||||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||||
use Illuminate\Support\Facades\Validator;
|
use Illuminate\Support\Facades\Validator;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
|
use JetBrains\PhpStorm\NoReturn;
|
||||||
|
|
||||||
class RegisterController extends Controller
|
class RegisterController extends Controller
|
||||||
{
|
{
|
||||||
|
|
@ -46,7 +47,7 @@ class RegisterController extends Controller
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
$this->middleware('guest');
|
$this->middleware('guest');
|
||||||
$this->redirectTo = lurl('register_company');
|
$this->redirectTo = lurl('/');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -64,6 +65,8 @@ class RegisterController extends Controller
|
||||||
'username' => ['required', 'string', 'max:255', Rule::unique($usersTable, 'username')],
|
'username' => ['required', 'string', 'max:255', Rule::unique($usersTable, 'username')],
|
||||||
'email' => ['required', 'string', 'email', 'max:255', Rule::unique($usersTable, 'email')],
|
'email' => ['required', 'string', 'email', 'max:255', Rule::unique($usersTable, 'email')],
|
||||||
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
||||||
|
'biniin' => ['required', 'string', 'min:12', 'max:12'],
|
||||||
|
'isorg' => ['boolean'],
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -73,7 +76,7 @@ class RegisterController extends Controller
|
||||||
* @param array $data
|
* @param array $data
|
||||||
* @return User;
|
* @return User;
|
||||||
*/
|
*/
|
||||||
protected function create(array $data)
|
#[NoReturn] protected function create(array $data)
|
||||||
{
|
{
|
||||||
$user = new User();
|
$user = new User();
|
||||||
|
|
||||||
|
|
@ -100,6 +103,35 @@ class RegisterController extends Controller
|
||||||
|
|
||||||
$userRoleModel->save();
|
$userRoleModel->save();
|
||||||
}
|
}
|
||||||
|
$company = UniModel::model(config('platform.company.tables.company'))
|
||||||
|
->firstOrCreate([
|
||||||
|
'name' => $data['name'],
|
||||||
|
'biniin' => $data['biniin'],
|
||||||
|
'fullname' => $data['name'],
|
||||||
|
'segment' => 'sol'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$ucr = UniModel::model(config('platform.company.tables.company_user_role'))
|
||||||
|
->firstOrCreate([
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'role_id' => 7,
|
||||||
|
'company_id' => $company->id
|
||||||
|
]);
|
||||||
|
if (!$ucr) {
|
||||||
|
UniModel::model(config('platform.company.tables.company_user_role'))
|
||||||
|
->create([
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'role_id' => 6,
|
||||||
|
'company_id' => $company->id
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
UniModel::model(config('platform.company.tables.company_user'))
|
||||||
|
->firstOrCreate([
|
||||||
|
'company_id' => $company->id,
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'default' => true,
|
||||||
|
]);
|
||||||
|
|
||||||
return $user;
|
return $user;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,18 +10,6 @@ Route::any("/logout", [modules\Auth\Http\Controllers\LoginController::class,'log
|
||||||
Route::get('/register',[modules\Auth\Http\Controllers\RegisterController::class,'showRegistrationForm'])->name('registerForm');
|
Route::get('/register',[modules\Auth\Http\Controllers\RegisterController::class,'showRegistrationForm'])->name('registerForm');
|
||||||
Route::post('/register',[modules\Auth\Http\Controllers\RegisterController::class,'register'])->name('register');
|
Route::post('/register',[modules\Auth\Http\Controllers\RegisterController::class,'register'])->name('register');
|
||||||
|
|
||||||
Route::group([
|
|
||||||
'middleware' => ['auth', 'web'],
|
|
||||||
], function () {
|
|
||||||
Route::get('register_company/',[modules\Auth\Http\Controllers\RegisterCompanyController::class,'showRegisterCompanyForm'])
|
|
||||||
->name('registerCompanyForm');
|
|
||||||
Route::post('register_company/',[modules\Auth\Http\Controllers\RegisterCompanyController::class,'registerCompany'])
|
|
||||||
->name('registerCompany');
|
|
||||||
|
|
||||||
Route::post('register_company/check_biniin_ajax',[modules\Auth\Http\Controllers\RegisterCompanyController::class,'checkBiniinAjax'])
|
|
||||||
->name('checkBiniinAjax');
|
|
||||||
});
|
|
||||||
|
|
||||||
Route::get('/password/reset', [modules\Auth\Http\Controllers\ForgotPasswordController::class,'showLinkRequestForm'])->name('password.request');
|
Route::get('/password/reset', [modules\Auth\Http\Controllers\ForgotPasswordController::class,'showLinkRequestForm'])->name('password.request');
|
||||||
Route::post('/password/email',[modules\Auth\Http\Controllers\ForgotPasswordController::class,'sendResetLinkEmail'])->name('password.email');
|
Route::post('/password/email',[modules\Auth\Http\Controllers\ForgotPasswordController::class,'sendResetLinkEmail'])->name('password.email');
|
||||||
Route::get('/password/reset/{token}',[modules\Auth\Http\Controllers\ResetPasswordController::class,'showResetForm'])->name('password.reset');
|
Route::get('/password/reset/{token}',[modules\Auth\Http\Controllers\ResetPasswordController::class,'showResetForm'])->name('password.reset');
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@
|
||||||
<div class="log-reg-container">
|
<div class="log-reg-container">
|
||||||
<div class="log-reg-content">
|
<div class="log-reg-content">
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
{{-- <a href="/" class="btn btn-light"><i class="bi bi-chevron-left me-1"></i> На главную</a>--}}
|
|
||||||
<div class="item-nav-lang">
|
<div class="item-nav-lang">
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<span class="dropdown-trigger" data-bs-toggle="dropdown">
|
<span class="dropdown-trigger" data-bs-toggle="dropdown">
|
||||||
|
|
@ -25,10 +24,8 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{-- <img src="{{asset('img/logo.svg')}}" alt="logo" class="logo-log">--}}
|
<img src="{{asset('img/logo.svg')}}" alt="logo" class="logo-log">
|
||||||
<div class="main-logo main-logo-login"><span style="font-weight: 600">ERP.ESEP</span><br><p>{{ __('ОБЛАЧНАЯ БУХГАЛТЕРИЯ') }}</p></div>
|
|
||||||
</div>
|
</div>
|
||||||
{{-- <span>{{ __('Login') }}</span>--}}
|
|
||||||
<form method="POST" action="{{ lurl('login') }}">
|
<form method="POST" action="{{ lurl('login') }}">
|
||||||
@csrf
|
@csrf
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
@ -73,8 +70,7 @@
|
||||||
</form>
|
</form>
|
||||||
<div class="contact-us-wrapper d-flex flex-column justify-content-center align-items-center">
|
<div class="contact-us-wrapper d-flex flex-column justify-content-center align-items-center">
|
||||||
<div class="phone-cont d-flex flex-column align-items-center mb-1">
|
<div class="phone-cont d-flex flex-column align-items-center mb-1">
|
||||||
<p><i class="bi bi-telephone-fill"></i> +7 7172 97-20-76</p>
|
<p>7 776 350 41 41<span>({{ __('звонок бесплатный') }})</span></p>
|
||||||
<p>8 800 004-04-33 <span>({{ __('звонок бесплатный') }})</span></p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
<div class="d-flex flex-row justify-content-between" style="column-gap: 10px">
|
<div class="d-flex flex-row justify-content-between" style="column-gap: 10px">
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@
|
||||||
<div class="log-reg-container">
|
<div class="log-reg-container">
|
||||||
<div class="log-reg-content">
|
<div class="log-reg-content">
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
{{-- <a href="/" class="btn btn-light"><i class="bi bi-chevron-left me-1"></i> На главную</a>--}}
|
|
||||||
<div class="item-nav-lang">
|
<div class="item-nav-lang">
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<span class="dropdown-trigger" data-bs-toggle="dropdown">
|
<span class="dropdown-trigger" data-bs-toggle="dropdown">
|
||||||
|
|
@ -30,11 +29,10 @@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{-- <img src="{{asset('img/logo.svg')}}" alt="logo" class="logo-log">--}}
|
<img src="{{asset('img/logo.svg')}}" alt="logo" class="logo-log">
|
||||||
<h5>ПланФакт - УЧЕТ</h5>
|
|
||||||
</div>
|
</div>
|
||||||
{{-- <span>{{ __('Register') }}</span>--}}
|
<span>{{ __('Register') }}</span>
|
||||||
{{-- <form method="POST" action="{{ lurl('/register') }}">--}}
|
<form method="POST" action="{{ lurl('/register') }}">
|
||||||
@csrf
|
@csrf
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|
@ -64,6 +62,15 @@
|
||||||
@enderror
|
@enderror
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="biniin" class="col-form-label">{{ __('BinIin') }}</label>
|
||||||
|
<input id="biniin" type="text" class="form-control @error('biniin') is-invalid @enderror"
|
||||||
|
name="biniin" value="{{ old('biniin') }}" required autocomplete="biniin" autofocus>
|
||||||
|
@error('biniin')
|
||||||
|
<div class="invalid-feedback form-text text-danger" role="alert">{{ $message }}</div>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="password" class="col-form-label">{{ __('Password') }}</label>
|
<label for="password" class="col-form-label">{{ __('Password') }}</label>
|
||||||
<input id="password" type="password"
|
<input id="password" type="password"
|
||||||
|
|
@ -80,6 +87,11 @@
|
||||||
required autocomplete="new-password">
|
required autocomplete="new-password">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="isorg" class="col-form-label">{{ __('isOrg') }}</label>
|
||||||
|
<input type="checkbox" id="isorg" name="isorg" value="1">
|
||||||
|
</div>
|
||||||
|
|
||||||
<button type="submit" class="btn btn-success mt-4">
|
<button type="submit" class="btn btn-success mt-4">
|
||||||
{{ __('Register') }}
|
{{ __('Register') }}
|
||||||
</button>
|
</button>
|
||||||
|
|
|
||||||
|
|
@ -1,129 +0,0 @@
|
||||||
@extends('layouts.app')
|
|
||||||
|
|
||||||
@section('content')
|
|
||||||
@include('ajax-loader')
|
|
||||||
<div class="log-reg-container">
|
|
||||||
<div class="card">
|
|
||||||
<a href="/" class="btn btn-primary return"><i class="bi bi-arrow-left me-1"></i> Вернуться назад</a>
|
|
||||||
<div class="card-header">
|
|
||||||
<span>{{ __('Register Company') }}</span>
|
|
||||||
<img src="{{asset('img/logo-white.png')}}" alt="logo" class="logo-log">
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
|
||||||
<form id="register-company-form" method="POST" action="{{ lurl('register_company/') }}">
|
|
||||||
@csrf
|
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="biniin" class="col-form-label">{{ __('BIN/IIN') }}</label>
|
|
||||||
<input id="biniin" type="text" class="form-control @error('biniin') is-invalid @enderror"
|
|
||||||
name="biniin" value="{{ old('biniin') }}" required autocomplete="biniin" autofocus
|
|
||||||
oninput="checkBiniinLength(event)"
|
|
||||||
>
|
|
||||||
@error('biniin')
|
|
||||||
<div class="invalid-feedback form-text text-danger" role="alert">{{ $message }}</div>
|
|
||||||
@enderror
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group" id="name-group" hidden>
|
|
||||||
<label for="name" class="col-form-label">{{ __('Name') }}</label>
|
|
||||||
<input id="name" type="text" class="form-control @error('name') is-invalid @enderror"
|
|
||||||
name="name" value="{{ old('name') }}" required
|
|
||||||
autocomplete="name" autofocus>
|
|
||||||
@error('name')
|
|
||||||
<div class="invalid-feedback form-text text-danger" role="alert">{{ $message }}</div>
|
|
||||||
@enderror
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="form-group" id="fullname-group" hidden>
|
|
||||||
<label for="fullname" class="col-form-label">{{ __('Full name') }}</label>
|
|
||||||
<input id="fullname" type="text" class="form-control @error('fullname') is-invalid @enderror"
|
|
||||||
name="fullname" value="{{ old('fullname') }}" required
|
|
||||||
autocomplete="fullname" autofocus>
|
|
||||||
@error('fullname')
|
|
||||||
<div class="invalid-feedback form-text text-danger" role="alert">{{ $message }}</div>
|
|
||||||
@enderror
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<button type="submit" class="btn btn-light mt-4" id="submit-button" style="visibility: hidden">
|
|
||||||
{{ __('Register Company') }}
|
|
||||||
</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endsection
|
|
||||||
|
|
||||||
@push('scripts-bottom')
|
|
||||||
<script>
|
|
||||||
document.getElementById("ajax-loader-on").click();
|
|
||||||
|
|
||||||
function checkBiniinLength(event) {
|
|
||||||
console.log(event.target.value)
|
|
||||||
let valueLength = event.target.value.length;
|
|
||||||
|
|
||||||
if (valueLength === 12) {
|
|
||||||
let form = document.getElementById('register-company-form');
|
|
||||||
|
|
||||||
binAjax(form.querySelectorAll('input[name="biniin"]')[0].value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function binAjax(biniin) {
|
|
||||||
$.ajax({
|
|
||||||
method:'post',
|
|
||||||
type:'post',
|
|
||||||
dataType: 'json',
|
|
||||||
data: {
|
|
||||||
'biniin': biniin
|
|
||||||
},
|
|
||||||
url: '{{lurl('register_company/check_biniin_ajax')}}',
|
|
||||||
success: function(response){
|
|
||||||
if (response.status === 'error') {
|
|
||||||
alert(response.message);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
setDataToForm(response.data)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
error: function(){
|
|
||||||
alert("Ошибка сервера");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function setDataToForm(data) {
|
|
||||||
let form = document.getElementById('register-company-form');
|
|
||||||
let biniinField = form.querySelectorAll('#biniin')[0];
|
|
||||||
let nameField = form.querySelectorAll('#name')[0];
|
|
||||||
let fullnameField = form.querySelectorAll('#fullname')[0];
|
|
||||||
let submitButton = form.querySelectorAll('#submit-button')[0];
|
|
||||||
|
|
||||||
document.getElementById('name-group').removeAttribute('hidden');
|
|
||||||
document.getElementById('fullname-group').removeAttribute('hidden');
|
|
||||||
submitButton.removeAttribute('hidden');
|
|
||||||
|
|
||||||
biniinField.value = data.biniin;
|
|
||||||
if ('name' in data) {
|
|
||||||
nameField.value = data.name;
|
|
||||||
fullnameField.value = data.fullname;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
nameField.value = '';
|
|
||||||
fullnameField.value = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ('companyExists' in data) {
|
|
||||||
nameField.setAttribute('disabled', true);
|
|
||||||
fullnameField.setAttribute('disabled', true);
|
|
||||||
submitButton.innerHTML = '{{ __('Add Request') }}';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
nameField.removeAttribute('disabled');
|
|
||||||
fullnameField.removeAttribute('disabled');
|
|
||||||
submitButton.innerHTML = '{{ __('Register Company') }}';
|
|
||||||
}
|
|
||||||
|
|
||||||
submitButton.removeAttribute('style');
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
@endpush
|
|
||||||
|
|
@ -13,11 +13,6 @@ use A7kz\Platform\Models\UniModel;
|
||||||
$companies = Acl::myCompanies();
|
$companies = Acl::myCompanies();
|
||||||
}
|
}
|
||||||
|
|
||||||
$orgs_rows = \A7kz\Accounting\Facades\Accounting::my_organizations(\Illuminate\Support\Facades\Request::get('filter'));
|
|
||||||
foreach ($orgs_rows as $orgs_row){
|
|
||||||
$orgs[$orgs_row->id] = $orgs_row;
|
|
||||||
}
|
|
||||||
|
|
||||||
$active = Acl::activeCompany();
|
$active = Acl::activeCompany();
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
@ -52,11 +47,9 @@ use A7kz\Platform\Models\UniModel;
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
@foreach($companies as $company)
|
@foreach($companies as $company)
|
||||||
@if((empty($active) || $active->id != $company->id) && isset($orgs[$company->id]))
|
@if((empty($active) || $active->id != $company->id))
|
||||||
<tr>
|
<tr>
|
||||||
<td>{{$company->biniin}}</td>
|
<td>{{$company->biniin}}</td>
|
||||||
<td>{{$orgs[$company->id]->code_gu ?? ''}}</td>
|
|
||||||
<td>{{ $orgs[$company->id]->{'name_'.app()->getLocale()} ?? $company->name}}</td>
|
|
||||||
<td>
|
<td>
|
||||||
<a href="{{lurl('/app/user.profile/changecompany')."?pk=".$company->id}}"
|
<a href="{{lurl('/app/user.profile/changecompany')."?pk=".$company->id}}"
|
||||||
class="btn btn-success">@lang("Выбрать")</a>
|
class="btn btn-success">@lang("Выбрать")</a>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,12 @@
|
||||||
{
|
{
|
||||||
"Добавить": "Добавить",
|
"Добавить": "Добавить",
|
||||||
"Закрыть": "Закрыть"
|
"Закрыть": "Закрыть",
|
||||||
|
"Register": "Регистрация",
|
||||||
|
"Name": "Имя",
|
||||||
|
"Email Address": "Почтовый адрес",
|
||||||
|
"Username": "Логин",
|
||||||
|
"BinIin": "БИН\/ИИН",
|
||||||
|
"Password": "Пароль",
|
||||||
|
"Confirm Password": "Подтвердите пароль",
|
||||||
|
"isOrg": "Организация?"
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue