employee module

This commit is contained in:
2024-04-11 16:37:12 +05:45
parent b5c603ceec
commit 91e7943546
9 changed files with 417 additions and 14 deletions

View File

@ -10,6 +10,12 @@ class Employee extends Model
protected $table = 'tbl_employees';
protected $primaryKey = 'id';
protected $guarded = [];
protected $appends = (['full_name']);
protected function getFullNameAttribute()
{
return $this->first_name . ' ' . $this->middle_name . ' ' . $this->last_name;
}
public function user()
{

View File

@ -10,4 +10,6 @@ interface EmployeeInterface
public function delete($employeeId);
public function create($EmployeeDetails);
public function update($employeeId, array $newDetails);
public function pluck();
}

View File

@ -8,7 +8,7 @@ class EmployeeRepository implements EmployeeInterface
{
public function findAll()
{
return Employee::with('user.roles')->paginate(20);
return Employee::paginate(20);
}
public function getEmployeeById($employeeId)
@ -36,6 +36,11 @@ class EmployeeRepository implements EmployeeInterface
return Employee::whereId($employeeId)->update($newDetails);
}
public function pluck()
{
return Employee::pluck('first_name', 'id');
}
// public function uploadImage($file)
// {
// if ($req->file()) {

View File

@ -21,3 +21,5 @@ Route::group(['middleware' => 'auth'], function () {
});
});

View File

@ -5,16 +5,19 @@ namespace Modules\Leave\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Modules\Employee\Repositories\EmployeeInterface;
use Modules\Leave\Repositories\LeaveInterface;
use Yoeunes\Toastr\Facades\Toastr;
class LeaveController extends Controller
{
private LeaveInterface $leaveRepository;
private $leaveRepository;
private $employeeRepository;
public function __construct(LeaveInterface $leaveRepository)
public function __construct(LeaveInterface $leaveRepository, EmployeeInterface $employeeRepository)
{
$this->leaveRepository = $leaveRepository;
$this->employeeRepository = $employeeRepository;
$this->middleware('role_or_permission:access leaves|create leaves|edit leaves|delete leaves', ['only' => ['index', 'show']]);
$this->middleware('role_or_permission:create leaves', ['only' => ['create', 'store']]);
@ -29,8 +32,9 @@ class LeaveController extends Controller
public function index()
{
$data['leaves'] = $this->leaveRepository->findAll();
return view('leave::index',$data);
$data['employeeList'] = $this->employeeRepository->pluck();
return view('leave::index', $data);
}
/**
@ -39,7 +43,7 @@ class LeaveController extends Controller
public function create()
{
$data['title'] = 'Create Leave';
$data['employeeList'] = $this->employeeRepository->pluck();
return view('leave::create', $data);
}
@ -49,13 +53,9 @@ class LeaveController extends Controller
public function store(Request $request): RedirectResponse
{
$inputData = $request->all();
try {
$this->leaveRepository->create($inputData);
toastr()->success('Leave Created Succesfully');
} catch (\Throwable $th) {
toastr()->error($th->getMessage());
}
@ -79,7 +79,7 @@ class LeaveController extends Controller
$data['leave'] = $this->leaveRepository->getLeaveById($id);
return view('leave::edit',$data);
return view('leave::edit', $data);
}
/**

View File

@ -24,7 +24,7 @@
<div class="col-lg-8">
<div class="card">
<div class="card-body">
{{ html()->modelForm($leave, 'PUT')->route('leave.update', $leave->id)->class(['needs-validation'])->attributes(['novalidate'])->open() }}
@include('leave::partials.action')

View File

@ -1,8 +1,7 @@
<div class="mb-3">
<label for="employee_id" class="form-label">Employee Name</label>
<input type="text" class="form-control" id="employee_id" placeholder="Enter employee name" name="employee_id"
value="{{ old('end_date', $leave->employee_id ?? '') }}" required>
{{ html()->select('employee_id', $employeeList)->class('form-select')->placeholder('Select Employee') }}
</div>
<div class="mb-3">