Commit ddaaf559 authored by Kenneth Kaigu's avatar Kenneth Kaigu

Adding employee validation is done:

parent 509774b0
This diff is collapsed.
...@@ -7,12 +7,6 @@ use Illuminate\Support\Facades\DB; ...@@ -7,12 +7,6 @@ use Illuminate\Support\Facades\DB;
class EmployeeTest extends Model class EmployeeTest extends Model
{ {
protected $fillable = ['FirstName','LastName','Email','Gender','DateofJoining','YearsofExperience'];
public static function getEmployees(){
$records = DB::table('employee_tests')->select('FirstName','LastName','Email','Gender','DateofJoining','YearsofExperience')->orderBy('EmployeeId', 'desc')->get()->toArray();
return $records;
}
} }
...@@ -37,24 +37,38 @@ class EmployeeController extends Controller ...@@ -37,24 +37,38 @@ class EmployeeController extends Controller
$businessunits = DB::table('business_units')->get(); $businessunits = DB::table('business_units')->get();
$emergency = DB::table('emergency_contacts')->get(); $emergency = DB::table('emergency_contacts')->get();
$dependants = DB::table('dependants')->get(); $dependants = DB::table('dependants')->get();
return view('Employees.Registration', compact(['departments','businessunits','emergency','dependants'])); return view('Employees.Registration', compact(['departments', 'businessunits', 'emergency', 'dependants']));
} }
/** /**
* Store a newly created resource in storage. * Store a newly created resource in storage.
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
* @throws \Illuminate\Validation\ValidationException
*/ */
public function store(Request $request) public function store(Request $request, EmployeeTest $employeeTest)
{ {
//
$this->validate($request, [
'prefix' => ['required'],
'firstname' => ['required'],
'middlename' => ['required'],
'lastname' => ['required'],
'phonenumber' => ['required'],
'krapin' => ['required'],
'nhif' => ['required'],
'nssf' => ['required'],
'employmentdate' => ['required'],
'gender' => ['required'],
'yearsofexperience' => ['required'],
]);
} }
/** /**
* Display the specified resource. * Display the specified resource.
* *
* @param int $id * @param int $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function show($id) public function show($id)
...@@ -65,7 +79,7 @@ class EmployeeController extends Controller ...@@ -65,7 +79,7 @@ class EmployeeController extends Controller
/** /**
* Show the form for editing the specified resource. * Show the form for editing the specified resource.
* *
* @param int $id * @param int $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function edit($id) public function edit($id)
...@@ -76,8 +90,8 @@ class EmployeeController extends Controller ...@@ -76,8 +90,8 @@ class EmployeeController extends Controller
/** /**
* Update the specified resource in storage. * Update the specified resource in storage.
* *
* @param \Illuminate\Http\Request $request * @param \Illuminate\Http\Request $request
* @param int $id * @param int $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function update(Request $request, $id) public function update(Request $request, $id)
...@@ -88,115 +102,122 @@ class EmployeeController extends Controller ...@@ -88,115 +102,122 @@ class EmployeeController extends Controller
/** /**
* Remove the specified resource from storage. * Remove the specified resource from storage.
* *
* @param int $id * @param int $id
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function destroy($id) public function destroy($id)
{ {
// //
} }
public function export()
public function export()
{ {
try { try {
$export=Excel::download(new Employee_detailsExport, 'Employees.xls'); $export = Excel::download(new Employee_detailsExport, 'Employees.xls');
return $export; return $export;
} catch (\Exception $e) { } catch (\Exception $e) {
return redirect('/employees')->with('error','Something wrong happened'); return redirect('/employees')->with('error', 'Something wrong happened');
} }
} }
//importation function //importation function
public function import(Request $request) public function import(Request $request)
{ {
$import = Excel::import(new Imports, request()->file('file')); $import = Excel::import(new Imports, request()->file('file'));
dd($import); dd($import);
return redirect('/employees')->with('success','File has been successfully imported'); return redirect('/employees')->with('success', 'File has been successfully imported');
/* $this->validate($request, array( /* $this->validate($request, array(
'file' => 'required' 'file' => 'required'
)); ));
try { try {
if ($request -> hasFile('file')) { if ($request -> hasFile('file')) {
$extension = $request ->file ->getClientOriginalExtension(); $extension = $request ->file ->getClientOriginalExtension();
if ($extension == "xlsx" || $extension == "xls" || $extension == "csv" || $extension == "xlsm" || $extension == "xlsx") { if ($extension == "xlsx" || $extension == "xls" || $extension == "csv" || $extension == "xlsm" || $extension == "xlsx") {
$name = $request->file->getClientOriginalName(); $name = $request->file->getClientOriginalName();
$import = Excel::import(new Employee_detailsImport, request()->file('file')); $import = Excel::import(new Employee_detailsImport, request()->file('file'));
dd($import); dd($import);
return redirect('/employees')->with('success','File has been successfully imported'); return redirect('/employees')->with('success','File has been successfully imported');
} }
else { else {
return redirect('/employees')->with('error','File is a '.$extension.' file.!! Please upload a valid xls/csv file..!!'); return redirect('/employees')->with('error','File is a '.$extension.' file.!! Please upload a valid xls/csv file..!!');
} }
} }
} }
catch (\Maatwebsite\Excel\Validators\ValidationException $e) { catch (\Maatwebsite\Excel\Validators\ValidationException $e) {
$failures = $e->failures(); $failures = $e->failures();
// dd($failures); // dd($failures);
foreach ($failures as $failure) { foreach ($failures as $failure) {
$failure->row(); // row that went wrong $failure->row(); // row that went wrong
$failure->attribute(); // column index $failure->attribute(); // column index
$failure->errors(); // Actual error messages from Laravel validator $failure->errors(); // Actual error messages from Laravel validator
return redirect('/employees')->withErrors($failures); return redirect('/employees')->withErrors($failures);
} }
} */ } */
/* catch(\Exception $e){ /* catch(\Exception $e){
return redirect('/employees')->with('error','Something wrong happened'); return redirect('/employees')->with('error','Something wrong happened');
} */ } */
} }
public function personalinfo(Request $request) public function personalinfo(Request $request)
{ {
$request->validate([ $request->validate([
'name'=>'required', 'name' => 'required',
'dateofBirth' =>'required', 'dateofBirth' => 'required',
'relation'=>'required', 'relation' => 'required',
]); ]);
$dependant = new Dependants([ $dependant = new Dependants([
'name' => $request->get('name'), 'name' => $request->get('name'),
'dateofBirth'=> $request->get('dateofBirth'), 'dateofBirth' => $request->get('dateofBirth'),
'relation'=> $request->get('relation'), 'relation' => $request->get('relation'),
]); ]);
$dependant->save(); $dependant->save();
return redirect('/employees/create')->with('success', 'Dependant has been added'); return redirect('/employees/create')->with('success', 'Dependant has been added');
} }
public function dependantedit($id){
public function dependantedit($id)
{
$dependant = Dependants::find($id); $dependant = Dependants::find($id);
return redirect('/employees/create', compact('dependant')); return redirect('/employees/create', compact('dependant'));
} }
public function updateDependant(Request $request, $id) public function updateDependant(Request $request, $id)
{ {
$request->validate([ $request->validate([
'name'=>'required', 'name' => 'required',
'dateofBirth' => 'required', 'dateofBirth' => 'required',
'relation'=>'required', 'relation' => 'required',
]); ]);
$dependant = Dependants::find($id); $dependant = Dependants::find($id);
$dependant->name = $request->get('name'); $dependant->name = $request->get('name');
$dependant->dateofBirth = $request->get('dateofBirth'); $dependant->dateofBirth = $request->get('dateofBirth');
$dependant->relation = $request->get('relation'); $dependant->relation = $request->get('relation');
$dependant->save(); $dependant->save();
return redirect('/employees/create')->with('success', 'Dependant has been updated'); return redirect('/employees/create')->with('success', 'Dependant has been updated');
} }
public function dependantdestroy($id) public function dependantdestroy($id)
{ {
$dependant = Dependants::find($id); $dependant = Dependants::find($id);
dd($dependant); dd($dependant);
$dependant->delete(); $dependant->delete();
return redirect('/employees/create')->with('success', 'Dependant has been deleted successfully'); return redirect('/employees/create')->with('success', 'Dependant has been deleted successfully');
} }
} }
...@@ -14,14 +14,18 @@ class EmployeeTests extends Migration ...@@ -14,14 +14,18 @@ class EmployeeTests extends Migration
public function up() public function up()
{ {
Schema::create('employee_tests', function (Blueprint $table) { Schema::create('employee_tests', function (Blueprint $table) {
$table->increments('EmployeeId'); $table->increments('id');
$table->string('FirstName'); $table->string('prefix');
$table->string('LastName'); $table->string('firstname');
$table->string('Email'); $table->string('middlename');
$table->string('Gender'); $table->string('lastname');
$table->date('DateofJoining'); $table->string('phonenumber');
$table->integer('YearsofExperience'); $table->string('krapin');
$table->rememberToken(); $table->string('nhif');
$table->string('gender');
$table->string('nssf');
$table->date('employmentdate');
$table->integer('yearsofexperience');
$table->timestamps(); $table->timestamps();
}); });
} }
......
This diff is collapsed.
...@@ -3,10 +3,9 @@ ...@@ -3,10 +3,9 @@
<head> <head>
<meta charset="utf-8"/> <meta charset="utf-8"/>
<title>Kinetic HRM</title> <title>Kinetic HRM</title>
<meta name="description" content=""/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<meta name="csrf-token" content="{{ csrf_token() }}"> <meta name="csrf-token" content="{{ csrf_token() }}">
<link rel="shortcut icon" href="/images/favicon.ico"> <link rel="shortcut icon" href="{{ asset('images/favicon.ico') }}">
<link rel="stylesheet" href="{{ asset('css/bootstrap.css') }}" type="text/css"/> <link rel="stylesheet" href="{{ asset('css/bootstrap.css') }}" type="text/css"/>
<link rel="stylesheet" href="{{ asset('css/animate.css') }}" type="text/css"/> <link rel="stylesheet" href="{{ asset('css/animate.css') }}" type="text/css"/>
<link rel="stylesheet" href="{{ asset('css/font-awesome.min.css') }}" type="text/css"/> <link rel="stylesheet" href="{{ asset('css/font-awesome.min.css') }}" type="text/css"/>
...@@ -26,19 +25,12 @@ ...@@ -26,19 +25,12 @@
<a class="btn btn-link visible-xs" data-toggle="class:nav-off-screen,open" data-target="#nav,html"> <a class="btn btn-link visible-xs" data-toggle="class:nav-off-screen,open" data-target="#nav,html">
<i class="fa fa-bars"></i> <i class="fa fa-bars"></i>
</a> </a>
<a href="#" class="navbar-brand" data-toggle="fullscreen"><img src="/images/kinetic.png" class="m-r-sm"></a> <a href="#" class="navbar-brand" data-toggle="fullscreen">
<img src="{{ asset('/images/kinetic.png') }}" class="m-r-sm" alt="Logo"></a>
<a class="btn btn-link visible-xs" data-toggle="dropdown" data-target=".nav-user"> <a class="btn btn-link visible-xs" data-toggle="dropdown" data-target=".nav-user">
<i class="fa fa-cog"></i> <i class="fa fa-cog"></i>
</a> </a>
</div> </div>
<ul class="nav navbar-nav hidden-xs">
<li class="dropdown">
<a href="#" class="dropdown-toggle dker" data-toggle="dropdown">
<i class="fa fa-reply"></i>
<span class="font-bold">Shortcut</span>
</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right m-n hidden-xs nav-user"> <ul class="nav navbar-nav navbar-right m-n hidden-xs nav-user">
<li class="hidden-xs"> <li class="hidden-xs">
<a href="#" class="dropdown-toggle dk" data-toggle="dropdown"> <a href="#" class="dropdown-toggle dk" data-toggle="dropdown">
...@@ -48,24 +40,9 @@ ...@@ -48,24 +40,9 @@
<section class="dropdown-menu aside-xl"> <section class="dropdown-menu aside-xl">
<section class="panel bg-white"> <section class="panel bg-white">
<header class="panel-heading b-light bg-light"> <header class="panel-heading b-light bg-light">
<strong>You have <span class="count">2</span> notifications</strong> <strong>You have <span class="count">0</span> notifications</strong>
</header> </header>
<div class="list-group list-group-alt animated fadeInRight"> <div class="list-group list-group-alt animated fadeInRight">
<a href="#" class="media list-group-item">
<span class="pull-left thumb-sm">
<img src="/images/avatar.jpg" alt="John said" class="img-circle">
</span>
<span class="media-body block m-b-none">
Use awesome animate.css<br>
<small class="text-muted">10 minutes ago</small>
</span>
</a>
<a href="#" class="media list-group-item">
<span class="media-body block m-b-none">
1.0 initial released<br>
<small class="text-muted">1 hour ago</small>
</span>
</a>
</div> </div>
<footer class="panel-footer text-sm"> <footer class="panel-footer text-sm">
<a href="#" class="pull-right"><i class="fa fa-cog"></i></a> <a href="#" class="pull-right"><i class="fa fa-cog"></i></a>
...@@ -83,9 +60,9 @@ ...@@ -83,9 +60,9 @@
<div class="input-group"> <div class="input-group">
<input type="text" class="form-control" placeholder="Search"> <input type="text" class="form-control" placeholder="Search">
<span class="input-group-btn"> <span class="input-group-btn">
<button type="submit" class="btn btn-info btn-icon"><i <button type="submit" class="btn btn-info btn-icon"><i
class="fa fa-search"></i></button> class="fa fa-search"></i></button>
</span> </span>
</div> </div>
</div> </div>
</form> </form>
...@@ -94,10 +71,10 @@ ...@@ -94,10 +71,10 @@
</li> </li>
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">
<span class="thumb-sm avatar pull-left"> <span class="thumb-sm avatar pull-left">
<img src="/images/avatar.jpg"> <img src="{{ asset('/images/avatar.jpg') }}" alt="avata">
</span> </span>
Michael Jackson User Name
<b class="caret"></b> <b class="caret"></b>
</a> </a>
<ul class="dropdown-menu animated fadeInRight"> <ul class="dropdown-menu animated fadeInRight">
...@@ -106,7 +83,7 @@ ...@@ -106,7 +83,7 @@
<a href="#">Settings</a> <a href="#">Settings</a>
</li> </li>
<li> <li>
<a href="profile.html">Profile</a> <a href="#">Profile</a>
</li> </li>
<li> <li>
<a href="#"> <a href="#">
...@@ -115,11 +92,11 @@ ...@@ -115,11 +92,11 @@
</a> </a>
</li> </li>
<li> <li>
<a href="docs.html">Help</a> <a href="#">Help</a>
</li> </li>
<li class="divider"></li> <li class="divider"></li>
<li> <li>
<a href="modal.lockme.html" data-toggle="ajaxModal">Logout</a> <a href="#" data-toggle="ajaxModal">Logout</a>
</li> </li>
</ul> </ul>
</li> </li>
...@@ -150,7 +127,6 @@ ...@@ -150,7 +127,6 @@
<section class="w-f scrollable"> <section class="w-f scrollable">
<div class="slim-scroll" data-height="auto" data-disable-fade-out="true" data-distance="0" <div class="slim-scroll" data-height="auto" data-disable-fade-out="true" data-distance="0"
data-size="5px" data-color="#333333"> data-size="5px" data-color="#333333">
<!-- nav --> <!-- nav -->
<nav class="nav-primary hidden-xs"> <nav class="nav-primary hidden-xs">
<ul class="nav"> <ul class="nav">
...@@ -168,9 +144,9 @@ ...@@ -168,9 +144,9 @@
<b class="bg-danger"></b> <b class="bg-danger"></b>
</i> </i>
<span class="pull-right"> <span class="pull-right">
<i class="fa fa-angle-down text"></i> <i class="fa fa-angle-down text"></i>
<i class="fa fa-angle-up text-active"></i> <i class="fa fa-angle-up text-active"></i>
</span> </span>
<span>Employees</span> <span>Employees</span>
</a> </a>
<ul class="nav lt"> <ul class="nav lt">
...@@ -231,7 +207,6 @@ ...@@ -231,7 +207,6 @@
<span>Pay Frequency</span> <span>Pay Frequency</span>
</a> </a>
</li> </li>
</ul> </ul>
</ul> </ul>
</li> </li>
...@@ -240,7 +215,6 @@ ...@@ -240,7 +215,6 @@
<!-- / nav --> <!-- / nav -->
</div> </div>
</section> </section>
<footer class="footer lt hidden-xs b-t b-dark"> <footer class="footer lt hidden-xs b-t b-dark">
<div id="chat" class="dropup"> <div id="chat" class="dropup">
<section class="dropdown-menu on aside-md m-l-n"> <section class="dropdown-menu on aside-md m-l-n">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment