CRUD laboratory
This commit is contained in:
@@ -32,8 +32,7 @@ class RoleController extends Controller
|
||||
public function index(Request $request){
|
||||
if(!GlobalController::user_can(Auth::user()->role_id, ['view_user_role'])) return redirect(url('my-profile'));
|
||||
$recordStatusCondition = Auth::id()==1 ? [RecordStatusEnum::DELETE, RecordStatusEnum::ACTIVE] : [RecordStatusEnum::ACTIVE];
|
||||
$roles = $this->roleModel::with('lab')->whereIn(BaseModel::RECORD_STATUS_FIELD, $recordStatusCondition)
|
||||
->where('organization_id', $this->baseOrganizationId)
|
||||
$roles = $this->roleModel::query()->whereIn(BaseModel::RECORD_STATUS_FIELD, $recordStatusCondition)
|
||||
->whereNotIn('id', [UtilEnum::ADMINISTRATOR_ROLE])
|
||||
->when(!empty($request->kword), function ($roles) use($request){
|
||||
$roles->whereRaw("replace(name_en, ' ','') like '%".str_replace(" ","",$request->kword)."%'");
|
||||
|
||||
@@ -62,17 +62,15 @@ class UserController extends Controller
|
||||
$this->labs = parent::getAccessAbleLabs();
|
||||
$roles = $this->roleModel::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
|
||||
->whereNotIn('id', [UtilEnum::ADMINISTRATOR_ROLE])->get();
|
||||
$sample_sources = $this->sampleSourceModel::query()->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
|
||||
->where('organization_id', Session::get('base_organization_id'))->get();
|
||||
|
||||
$users = $this->userModel::with(['role','lab_covers'])->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
|
||||
->whereIn('id', $this->labs->pluck('labUsers')->flatten()->pluck('user_id')->toArray())
|
||||
$users = $this->userModel::with(['role','userOrganizations'])->where(BaseModel::RECORD_STATUS_FIELD, RecordStatusEnum::ACTIVE)
|
||||
->whereIn('id', $this->labs->pluck('userOrganizations')->flatten()->pluck('user_id')->toArray())
|
||||
->whereNotIn('role_id', [UtilEnum::ADMINISTRATOR_ROLE])
|
||||
->when(!empty($request->kword), function($users) use ($request) {
|
||||
$users->whereRaw("replace(name, ' ','') like '%".str_replace(" ","",$request->kword)."%'")
|
||||
->orWhereRaw("replace(email, ' ','') like '%".str_replace(" ","",$request->kword)."%'");
|
||||
})->orderBy(BaseModel::CREATED_AT,'desc')->paginate(config('labis.pagination.perpage', 10));
|
||||
return view('user_account', ['users' => $users, 'roles' => $roles, 'labs' => $this->labs, 'sample_sources' => $sample_sources]);
|
||||
return view('user_account', ['users' => $users, 'roles' => $roles, 'labs' => $this->labs]);
|
||||
}
|
||||
|
||||
public function save(Request $request){
|
||||
@@ -82,16 +80,13 @@ class UserController extends Controller
|
||||
'name' => 'required',
|
||||
'email' => 'required|email|unique:users',
|
||||
'password' => 'required',
|
||||
'role_id' => 'required',
|
||||
'sample_source_id' => 'nullable'
|
||||
'role_id' => 'required'
|
||||
]);
|
||||
if ($validator->fails()) return response()->json(['success' => false, 'message' => __('user_account.create_fail'), 'errors' => $validator->errors()->all()]);
|
||||
$data = array(
|
||||
'name' => $request->name,
|
||||
'email' => $request->email,
|
||||
'password' => Hash::make($request->password),
|
||||
'is_manager' => ($request->role_id==3 ? 1: 0),
|
||||
'sample_source_id' => $request->sample_source_id,
|
||||
'role_id' => $request->role_id,
|
||||
'created_at' => date('Y-m-d H:i:s'),
|
||||
'created_by' => Auth::id(),
|
||||
@@ -120,8 +115,6 @@ class UserController extends Controller
|
||||
'name' => $request->name,
|
||||
'email' => $request->email,
|
||||
'role_id' => $request->role_id,
|
||||
'is_manager' => ($request->role_id==3 ? 1: 0),
|
||||
'sample_source_id' => $request->sample_source_id,
|
||||
'updated_at' => date('Y-m-d H:i:s'),
|
||||
'updated_by' => Auth::id()
|
||||
);
|
||||
@@ -155,7 +148,7 @@ class UserController extends Controller
|
||||
|
||||
public function get(Request $request){
|
||||
try{
|
||||
$user = $this->userModel::with(['lab_covers'])->find($request->uid);
|
||||
$user = $this->userModel::with(['userOrganizations'])->find($request->uid);
|
||||
return response()->json(['success' => true, 'message' => __('user_account.get_success'), 'data' => $user]);
|
||||
} catch (\Exception $e){
|
||||
return response()->json(['success' => false, 'message' => __('user_account.get_fail'), 'errors' => $e->getMessage()]);
|
||||
@@ -186,7 +179,7 @@ class UserController extends Controller
|
||||
if(!GlobalController::user_can(Auth::user()->role_id, ['assign_lab'])) return false;
|
||||
$validator = \Validator::make($request->all(), [ 'uid' => 'required']);
|
||||
if ($validator->fails()) return response()->json(['success' => false, 'message' => __('user_account.assign_lab_fail'), 'errors'=>$validator->errors()->all()]);
|
||||
$this->userLabCover::query()->where('user_id', $request->uid)
|
||||
$this->userOrganizations::query()->where('user_id', $request->uid)
|
||||
->update(['end_date' => date('Y-m-d'), BaseModel::RECORD_STATUS_FIELD => RecordStatusEnum::DELETE, BaseModel::UPDATED_AT_FIELD => date('Y-m-d H:i:s'), BaseModel::UPDATED_BY_FIELD =>Auth::id()]);
|
||||
$data = array();
|
||||
foreach ($request->organization_ids as $organization_id){
|
||||
@@ -198,7 +191,7 @@ class UserController extends Controller
|
||||
'created_by' => Auth::id()
|
||||
);
|
||||
}
|
||||
$this->userLabCover::query()->insert($data);
|
||||
$this->userOrganizations::query()->insert($data);
|
||||
return response()->json(['success' => true, 'message' => __('user_account.assign_lab_success')]);
|
||||
} catch (\Exception $e){
|
||||
return response()->json(['success' => false, 'message' => __('user_account.assign_lab_fail'), 'errors' => $e->getMessage()]);
|
||||
|
||||
Reference in New Issue
Block a user