first commit

This commit is contained in:
Sampanna Rimal
2024-08-27 17:48:06 +05:45
commit 53c0140f58
10839 changed files with 1125847 additions and 0 deletions

View File

View File

@ -0,0 +1,12 @@
<?php
namespace Modules\Leave\Repositories;
interface LeaveInterface
{
public function findAll($filters = [], $limit = null, $offset = null);
public function getLeaveById($leaveId);
public function delete($leaveId);
public function create(array $LeaveDetails);
public function update($leaveId, array $newDetails);
}

View File

@ -0,0 +1,52 @@
<?php
namespace Modules\Leave\Repositories;
use Illuminate\Contracts\Database\Eloquent\Builder;
use Modules\Leave\Models\Leave;
class LeaveRepository implements LeaveInterface
{
public function findAll($filters = [], $limit = null, $offset = null)
{
return Leave::with(['leaveType', 'employee'])->when($filters, function ($query) use ($filters) {
if (isset($filters["employee_id"])) {
$query->whereHas('employee', function (Builder $query) use ($filters) {
$query->where('id', '=', $filters["employee_id"]);
});
}
if (isset($filters["status"])) {
$query->where("status", $filters["status"]);
}
if (isset($filters["date"])) {
$explodeDate = explode("to", $filters['date']);
$query->whereBetween("start_date", [$explodeDate[0], preg_replace('/\s+/', '', $explodeDate[1])]);
}
})->get();
}
public function getLeaveById($leaveId)
{
return Leave::findOrFail($leaveId);
}
public function delete($leaveId)
{
Leave::destroy($leaveId);
}
public function create(array $leaveDetails)
{
return Leave::create($leaveDetails);
}
public function update($leaveId, array $newDetails)
{
return Leave::where('leave_id', $leaveId)->update($newDetails);
}
}

View File

@ -0,0 +1,13 @@
<?php
namespace Modules\Leave\Repositories;
interface LeaveTypeInterface
{
public function pluck();
public function findAll();
public function getLeaveTypeById($leaveTypeId);
public function delete($leaveTypeId);
public function create(array $LeaveTypeDetails);
public function update($leaveTypeId, array $newDetails);
}

View File

@ -0,0 +1,38 @@
<?php
namespace Modules\Leave\Repositories;
use Modules\Leave\Models\LeaveType;
class LeaveTypeRepository implements LeaveTypeInterface
{
public function pluck()
{
return LeaveType::pluck('name', 'leave_type_id');
}
public function findAll()
{
return LeaveType::get();
}
public function getLeaveTypeById($leaveTypeId)
{
return LeaveType::findOrFail($leaveTypeId);
}
public function create(array $leaveTypeDetails)
{
return LeaveType::create($leaveTypeDetails);
}
public function update($leaveTypeId, array $newDetails)
{
return LeaveType::where('leave_type_id', $leaveTypeId)->update($newDetails);
}
public function delete($leaveTypeId)
{
LeaveType::destroy($leaveTypeId);
}
}