admin module added
This commit is contained in:
@ -5,19 +5,22 @@ 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 Modules\Employee\Repositories\EmployeeRepository;
|
||||
use Modules\Leave\Repositories\LeaveRepository;
|
||||
use Modules\Leave\Repositories\LeaveTypeRepository;
|
||||
use Yoeunes\Toastr\Facades\Toastr;
|
||||
|
||||
class LeaveController extends Controller
|
||||
{
|
||||
private $leaveRepository;
|
||||
private $employeeRepository;
|
||||
private $leaveTypeRepository;
|
||||
|
||||
public function __construct(LeaveInterface $leaveRepository, EmployeeInterface $employeeRepository)
|
||||
public function __construct(LeaveRepository $leaveRepository, EmployeeRepository $employeeRepository, LeaveTypeRepository $leaveTypeRepository)
|
||||
{
|
||||
$this->leaveRepository = $leaveRepository;
|
||||
$this->employeeRepository = $employeeRepository;
|
||||
$this->leaveTypeRepository = $leaveTypeRepository;
|
||||
|
||||
$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']]);
|
||||
@ -42,7 +45,9 @@ class LeaveController extends Controller
|
||||
public function create()
|
||||
{
|
||||
$data['title'] = 'Create Leave';
|
||||
$data['editable'] = false;
|
||||
$data['employeeList'] = $this->employeeRepository->pluck();
|
||||
$data['leaveTypeList'] = $this->leaveTypeRepository->pluck();
|
||||
return view('leave::leave.create', $data);
|
||||
}
|
||||
|
||||
@ -76,6 +81,8 @@ class LeaveController extends Controller
|
||||
{
|
||||
$data['title'] = 'Edit Leave';
|
||||
|
||||
$data['editable'] = true;
|
||||
|
||||
$data['leave'] = $this->leaveRepository->getLeaveById($id);
|
||||
|
||||
return view('leave::leave.edit', $data);
|
||||
|
@ -5,18 +5,14 @@ namespace Modules\Leave\Http\Controllers;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\RedirectResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Modules\Leave\Repositories\LeaveInterface;
|
||||
use Modules\Leave\Repositories\LeaveTypeInterface;
|
||||
|
||||
class LeaveTypeController extends Controller
|
||||
{
|
||||
|
||||
private $leaveRepository;
|
||||
private $leaveTypeRepository;
|
||||
|
||||
public function __construct(LeaveInterface $leaveRepository, LeaveTypeInterface $leaveTypeRepository)
|
||||
public function __construct(LeaveTypeInterface $leaveTypeRepository)
|
||||
{
|
||||
$this->leaveRepository = $leaveRepository;
|
||||
$this->leaveTypeRepository = $leaveTypeRepository;
|
||||
}
|
||||
/**
|
||||
@ -24,7 +20,8 @@ class LeaveTypeController extends Controller
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$data['leaveTypes'] = $this->leaveTypeRepository->findAll();
|
||||
$data['title'] = 'LeaveType List';
|
||||
$data['leaveTypeLists'] = $this->leaveTypeRepository->findAll();
|
||||
return view('leave::leave-type.index', $data);
|
||||
}
|
||||
|
||||
@ -33,7 +30,9 @@ class LeaveTypeController extends Controller
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$data['title'] = 'Create Leave Type';
|
||||
$data['title'] = 'Create LeaveType';
|
||||
|
||||
$data['editable'] = false;
|
||||
|
||||
return view('leave::leave-type.create', $data);
|
||||
}
|
||||
@ -43,7 +42,12 @@ class LeaveTypeController extends Controller
|
||||
*/
|
||||
public function store(Request $request): RedirectResponse
|
||||
{
|
||||
//
|
||||
try {
|
||||
$this->leaveTypeRepository->create($request->all());
|
||||
return redirect()->route('leaveType.index')->with('success', 'Leave Type Created Successfully');
|
||||
} catch (\Throwable $th) {
|
||||
throw $th;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -59,7 +63,11 @@ class LeaveTypeController extends Controller
|
||||
*/
|
||||
public function edit($id)
|
||||
{
|
||||
return view('leave::leave-type.edit');
|
||||
$data['editable'] = false;
|
||||
|
||||
$data['title'] = 'Edit LeaveType';
|
||||
|
||||
return view('leave::leave-type.edit', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -4,19 +4,12 @@ namespace Modules\Leave\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Modules\Leave\Database\factories\LeaveTypeFactory;
|
||||
|
||||
class LeaveType extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
*/
|
||||
protected $fillable = [];
|
||||
|
||||
protected static function newFactory(): LeaveTypeFactory
|
||||
{
|
||||
//return LeaveTypeFactory::new();
|
||||
}
|
||||
protected $table = 'tbl_leave_types';
|
||||
protected $primaryKey = 'leave_type_id';
|
||||
protected $guarded = [];
|
||||
}
|
||||
|
@ -4,9 +4,10 @@ namespace Modules\Leave\Repositories;
|
||||
|
||||
interface LeaveTypeInterface
|
||||
{
|
||||
public function pluck();
|
||||
public function findAll();
|
||||
public function getLeaveById($leaveId);
|
||||
public function delete($leaveId);
|
||||
public function create(array $LeaveDetails);
|
||||
public function update($leaveId, array $newDetails);
|
||||
public function getLeaveTypeById($leaveTypeId);
|
||||
public function delete($leaveTypeId);
|
||||
public function create(array $LeaveTypeDetails);
|
||||
public function update($leaveTypeId, array $newDetails);
|
||||
}
|
||||
|
@ -6,29 +6,33 @@ use Modules\Leave\Models\LeaveType;
|
||||
|
||||
class LeaveTypeRepository implements LeaveTypeInterface
|
||||
{
|
||||
public function pluck()
|
||||
{
|
||||
return LeaveType::pluck('title', 'leave_type_id');
|
||||
}
|
||||
public function findAll()
|
||||
{
|
||||
return LeaveType::get();
|
||||
}
|
||||
|
||||
public function getLeaveById($leaveId)
|
||||
public function getLeaveTypeById($leaveTypeId)
|
||||
{
|
||||
return LeaveType::findOrFail($leaveId);
|
||||
return LeaveType::findOrFail($leaveTypeId);
|
||||
}
|
||||
|
||||
public function delete($leaveId)
|
||||
public function delete($leaveTypeId)
|
||||
{
|
||||
LeaveType::destroy($leaveId);
|
||||
LeaveType::destroy($leaveTypeId);
|
||||
}
|
||||
|
||||
public function create(array $leaveDetails)
|
||||
public function create(array $leaveTypeDetails)
|
||||
{
|
||||
return LeaveType::create($leaveDetails);
|
||||
return LeaveType::create($leaveTypeDetails);
|
||||
}
|
||||
|
||||
public function update($leaveId, array $newDetails)
|
||||
public function update($leaveTypeId, array $newDetails)
|
||||
{
|
||||
return LeaveType::where('leave_id', $leaveId)->update($newDetails);
|
||||
return LeaveType::where('leave_type_id', $leaveTypeId)->update($newDetails);
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user