menambahkan filter report request log
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user