first change

This commit is contained in:
2025-07-27 17:40:56 +05:45
commit f8b9a6725b
3152 changed files with 229528 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
<?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 (!empty($filters['date'])) {
$dateFilter = explode("to", $filters['date']);
$startDate = trim($dateFilter[0]);
$endDate = trim($dateFilter[1]);
if ($startDate === $endDate) {
$query->where("created_at", '=', $startDate);
} else {
$query->where("created_at", '>=', $startDate);
$query->where("created_at", '<=', $endDate);
}
}
// if (isset($filters["date"])) {
// $explodeDate = explode("to", $filters['date']);
// dd($explodeDate);
// $query->whereBetween("start_date", [$explodeDate[0], preg_replace('/\s+/', '', $explodeDate[1])]);
// }
})->latest()
->get();
}
public function getLeaveById($leaveId)
{
return Leave::findOrFail($leaveId);
}
public function where(array $filter)
{
return Leave::where($filter);
}
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);
}
public function getLeaveByEmployeeId(int $id)
{
return Leave::where([
['employee_id', $id],
])
->latest()
->get();
}
}