tambah kolom dan fitur search code log

This commit is contained in:
2025-02-12 09:38:56 +07:00
parent 7e41f543ae
commit b163ba5547
7 changed files with 46 additions and 43 deletions

View File

@@ -41,41 +41,39 @@ class ClaimRequestController extends Controller
*/
public function index(Request $request)
{
$claimRequests = ClaimRequest::query()
->when($request->search, function ($q, $search) {
$q->where('code', 'LIKE', "%".$search."%");
$q->orWhereHas('member', function ($subQuery) use ($search) {
$subQuery->where('name', 'LIKE', "%".$search."%");
});
})
->when($request->start_date, function ($q, $startDate) {
$q->where('submission_date', '>', Carbon::parse($startDate)->subDay());
})
->when($request->end_date, function ($q, $endDate) use ($request) {
// Jika tanggal akhir diberikan dan tidak sama dengan tanggal mulai
if ($request->start_date != $request->end_date) {
$q->where('submission_date', '<', Carbon::parse($endDate)->addDay());
} else {
$q->where('submission_date', '<', Carbon::parse($endDate)->addDay());
}
})
->when($request->service_code, function ($q, $serviceCode) {
$q->whereIn('service_code', $serviceCode);
})
->when($request->orderBy, function ($q, $orderBy) use ($request) {
if (in_array($orderBy, ['submission_date', 'code'])) {
$q->orderBy($orderBy, $request->order);
}
})
->when(empty($request->orderBy), function ($q) {
$q->orderBy('created_at', 'desc');
})
->when($request->status, function($q, $status) {
$q->where('status', $status);
})
->with(['member', 'files', 'service', 'member.currentPolicy'])
->paginate();
$claimRequests = ClaimRequest::with(['requestLog', 'member', 'files', 'service', 'member.currentPolicy'])
->when($request->search, function ($q, $search) {
$q->where(function ($query) use ($search) {
$query->where('code', 'LIKE', "%".$search."%")
->orWhereHas('member', function ($subQuery) use ($search) {
$subQuery->where('name', 'LIKE', "%".$search."%");
})
->orWhereHas('requestLog', function ($subQuery) use ($search) {
$subQuery->where('code', 'LIKE', "%".$search."%");
});
});
})
->when($request->start_date, function ($q, $startDate) {
$q->where('submission_date', '>=', Carbon::parse($startDate));
})
->when($request->end_date, function ($q, $endDate) {
$q->where('submission_date', '<=', Carbon::parse($endDate));
})
->when($request->service_code, function ($q, $serviceCode) {
$q->whereIn('service_code', (array) $serviceCode);
})
->when($request->orderBy, function ($q, $orderBy) use ($request) {
$order = in_array($request->order, ['asc', 'desc']) ? $request->order : 'desc';
if (in_array($orderBy, ['submission_date', 'code'])) {
$q->orderBy($orderBy, $order);
}
}, function ($q) {
$q->orderBy('created_at', 'desc');
})
->when($request->status, function($q, $status) {
$q->where('status', $status);
})
->paginate();
return Helper::paginateResources(ClaimRequestResource::collection($claimRequests));
}