close #72 Fixed: Validation for create customer

This commit is contained in:
cuneytsenturk 2017-11-23 13:38:43 +03:00
parent b95414b921
commit 73a7b21c25
9 changed files with 113 additions and 10 deletions

View File

@ -4,6 +4,7 @@ namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Http\Requests\Auth\User as Request;
use Illuminate\Http\Request as ARequest;
use App\Models\Auth\User;
use App\Models\Auth\Role;
@ -226,4 +227,31 @@ class Users extends Controller
// Redirect to items
return redirect('items/items');
}
public function autocomplete(ARequest $request)
{
$user = false;
$column = $request['column'];
$value = $request['value'];
if (!empty($column) && !empty($value)) {
switch ($column) {
case 'id':
$user = User::find();
break;
case 'email':
$user = User::where('email', $value)->first();
break;
default:
$user = User::where($column, $value)->first();
}
}
return response()->json([
'errors' => ($user) ? false: true,
'success' => ($user) ? true: false,
'data' => $user
]);
}
}

View File

@ -44,10 +44,24 @@ class Customers extends Controller
*/
public function store(Request $request)
{
$customer = Customer::create($request->all());
if (empty($request->input('create_user'))) {
Customer::create($request->all());
} else {
$user = User::where('email', $request['email'])->first();
if (!empty($request->input('create_user'))) {
$user = User::create($request->input());
if (!empty($user)) {
$message = trans('messages.error.customer', ['name' => $user->name]);
flash($message)->error();
return redirect()->back()->withInput($request->except('create_user'))->withErrors(
['email' => trans('customer.error.email')]
);
//$user = User::create($request->input());
}
$customer = Customer::create($request->all());
$request['user_id'] = $user->id;
$request['roles'] = array('3');
@ -93,10 +107,22 @@ class Customers extends Controller
*/
public function update(Customer $customer, Request $request)
{
$customer->update($request->all());
if (empty($request->input('create_user'))) {
$customer->update($request->all());
} else {
$user = User::where('email', $request['email'])->first();
if (!empty($request->input('create_user'))) {
$user = User::create($request->input());
if (!empty($user)) {
$message = trans('messages.error.customer', ['name' => $user->name]);
flash($message)->error();
return redirect()->back()->withInput($request->except('create_user'))->withErrors(
['email' => trans('customer.error.email')]
);
//$user = User::create($request->input());
}
$request['user_id'] = $user->id;
$request['roles'] = array('3');

View File

@ -58,5 +58,4 @@ class Modules extends Controller
return redirect('settings/apps/' . $alias);
}
}

View File

@ -32,7 +32,7 @@ class Customer extends Request
$id = null;
}
if (!empty($this->request->get('create_user'))) {
if (!empty($this->request->get('create_user')) && empty($this->request->get('user_id'))) {
$required = 'required|';
}

View File

@ -2,4 +2,8 @@
return [
'all' => 'All Customers',
'error' => [
'email' => 'The email has already been taken.'
]
];

View File

@ -9,6 +9,7 @@ return [
],
'error' => [
'not_user_company' => 'Error: You are not allowed to manage this company!',
'customer' => 'Error: You can not created customer! :name use this email address.',
],
'warning' => [
'deleted' => 'Warning: You are not allowed to delete <b>:name</b> because it has :text related.',

View File

@ -77,10 +77,32 @@
});
$('#create_user').on('ifClicked', function (event) {
$('input[name="user_id"]').remove();
if ($(this).prop('checked')) {
$('.col-md-6.password').addClass('hidden');
} else {
$('.col-md-6.password').removeClass('hidden');
$.ajax({
url: '{{ url("auth/users/autocomplete") }}',
type: 'GET',
dataType: 'JSON',
data: {column: 'email', value: $('input[name="email"]').val()},
beforeSend: function() {
$('.box-footer .btn').attr('disabled', true);
},
complete: function() {
$('.box-footer .btn').attr('disabled', false);
},
success: function(json) {
if (json['errors']) {
$('.col-md-6.password').removeClass('hidden');
}
if (json['success']) {
$('input[name="password_confirmation"]').after('<input name="user_id" type="hidden" value="' + json['data']['id'] + '" id="user-id">');
}
}
});
}
});
});

View File

@ -82,10 +82,32 @@
});
$('#create_user').on('ifClicked', function (event) {
$('input[name="user_id"]').remove();
if ($(this).prop('checked')) {
$('.col-md-6.password').addClass('hidden');
} else {
$('.col-md-6.password').removeClass('hidden');
$.ajax({
url: '{{ url("auth/users/autocomplete") }}',
type: 'GET',
dataType: 'JSON',
data: {column: 'email', value: $('input[name="email"]').val()},
beforeSend: function() {
$('.box-footer .btn').attr('disabled', true);
},
complete: function() {
$('.box-footer .btn').attr('disabled', false);
},
success: function(json) {
if (json['errors']) {
$('.col-md-6.password').removeClass('hidden');
}
if (json['success']) {
$('input[name="password_confirmation"]').after('<input name="user_id" type="hidden" value="' + json['data']['id'] + '" id="user-id">');
}
}
});
}
});
});

View File

@ -29,6 +29,7 @@ Route::group(['middleware' => 'language'], function () {
Route::group(['prefix' => 'auth'], function () {
Route::get('logout', 'Auth\Login@destroy')->name('logout');
Route::get('users/autocomplete', 'Auth\Users@autocomplete');
Route::get('users/{user}/read-bills', 'Auth\Users@readUpcomingBills');
Route::get('users/{user}/read-invoices', 'Auth\Users@readOverdueInvoices');
Route::get('users/{user}/read-items', 'Auth\Users@readItemsOutOfStock');