admin module added

This commit is contained in:
2024-04-14 18:29:29 +05:45
parent c7c79e69a5
commit efe174e3b3
63 changed files with 1454 additions and 182 deletions

View File

@ -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);

View File

@ -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);
}
/**

View File

@ -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 = [];
}

View File

@ -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);
}

View File

@ -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);
}
}