menambahkan filter report request log

This commit is contained in:
2024-02-02 14:22:36 +07:00
parent 1dc7b99d42
commit 8caed2469c
2 changed files with 166 additions and 148 deletions

View File

@@ -17,6 +17,7 @@ use Illuminate\Support\Facades\Storage;
use App\Exceptions\ImportRowException;
use App\Events\RequestLoged;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder;
use Maatwebsite\Excel\Facades\Excel;
use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
@@ -41,39 +42,52 @@ class ReportLogController extends Controller
public function index(Request $request)
{
$requestLog = RequestLog::query()
->where('deleted_at', null)
->when($request->final_log, function($q, $final_log) {
$q->where('final_log', $final_log);
})
->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->orderBy, function ($q, $orderBy) use ($request) {
if (in_array($orderBy, ['submission_date', 'code', 'service_code', 'status'])) {
$q->orderBy($orderBy, $request->order);
}
})
->when(empty($request->orderBy), function ($q) {
$q->orderBy('submission_date', 'desc');
})
->when($request->service_code, function($q, $service_code) {
if ($service_code == 'IP'){ // Penjagaan sementara agar ini hanya muncul di inpatient monitoring
$q->where('service_code', $service_code);
} else {
$q->where('service_code', '!=', 'IP'); // Dan selain IP muncul di final LOG
}
})
// ->where('status', $request->status)
->with(['member', 'files', 'service', 'member.currentPolicy'])
->paginate();
// Membuat objek DateTime dari string tanggal
$start_date = $request->start_date ? Carbon::parse($request->start_date)->toDateTimeString() : null;
$end_date = $request->end_date ? Carbon::parse($request->end_date) : null;
$requestLog = RequestLog::query()
->where('deleted_at', null)
->when($request->final_log, function ($q, $final_log) {
$q->where('final_log', $final_log);
})
->when($request->start_date, function ($q) use ($request) {
$q->where('created_at', '>=', $request->start_date);
})
->when($request->end_date, function ($q) use ($request) {
$q->where('created_at', '<=', Carbon::parse($request->end_date)->addDay());
})
->when($request->search, function ($q, $search) {
$q->where(function ($subQuery) use ($search) {
$subQuery->where('code', 'LIKE', '%' . $search . '%')
->orWhereHas('member', function ($subSubQuery) use ($search) {
$subSubQuery->where('name', 'LIKE', '%' . $search . '%');
});
});
})
->when($request->orderBy, function ($q, $orderBy) use ($request) {
if (in_array($orderBy, ['submission_date', 'code', 'service_code', 'status'])) {
$q->orderBy($orderBy, $request->order);
}
})
->when(empty($request->orderBy), function ($q) {
$q->orderBy('submission_date', 'desc');
})
->when($request->service_code, function ($q, $service_code) {
if ($service_code == 'IP') {
$q->where('service_code', $service_code);
} else {
$q->where('service_code', '!=', 'IP');
}
})
->with(['member', 'files', 'service', 'member.currentPolicy']);
$requestLog = $requestLog->paginate();
return Helper::paginateResources(ReportLogResource::collection($requestLog));
}
/**
* Show the form for creating a new resource.
* @return Renderable
@@ -145,7 +159,7 @@ class ReportLogController extends Controller
* Generate Export Excel Request LOG
*/
public function generateDataRequestLogExcel(){
public function generateDataRequestLogExcel(Request $request){
Helper::setCustomPHPIniSettings();
$file_name = 'Data Request LOG';
// Membuat penulis entitas Spout
@@ -178,9 +192,16 @@ class ReportLogController extends Controller
$writer->addRow($headerRow);
$dataRequestLog = RequestLog::query()
->where('deleted_at', null)
// ->whereHas('corporatePlan', function ($corporatePlan) use ($corporate_id) {
// $corporatePlan->where('corporate_id', $corporate_id);
// })
->when($request->start_date, function ($q) use ($request) {
$q->where('created_at', '>=', $request->start_date);
})
->when($request->end_date, function ($q) use ($request) {
$q->where('created_at', '<=', Carbon::parse($request->end_date)->addDay());
})
->with('member')
->orderBy('id', 'desc')
->get()->toArray();