function ($q) { $q->whereIn('pbg_type', ['berita_acara', 'bukti_bayar']); }, 'pbg_task_retributions' ])->orderBy('id', 'desc'); if ($request->has('filter') && !empty($request->get('filter'))) { $filter = strtolower(trim($request->get('filter'))); // Log filter for debugging Log::info('RequestAssignmentController filter applied', ['filter' => $filter, 'original' => $request->get('filter')]); switch ($filter) { case 'non-business': $query->where(function ($q) { $q->where(function ($q2) { $q2->where(function ($q3) { $q3->whereRaw("LOWER(TRIM(function_type)) NOT LIKE ?", ['%fungsi usaha%']) ->whereRaw("LOWER(TRIM(function_type)) NOT LIKE ?", ['%sebagai tempat usaha%']); }) ->orWhereNull('function_type'); }) ->whereIn("status", PbgTaskStatus::getNonVerified()); }); break; case 'business': $query->where(function ($q) { $q->where(function ($q2) { $q2->whereRaw("LOWER(TRIM(function_type)) LIKE ?", ['%fungsi usaha%']) ->orWhereRaw("LOWER(TRIM(function_type)) LIKE ?", ['%sebagai tempat usaha%']); }) ->whereIn("status", PbgTaskStatus::getNonVerified()); }); break; case 'verified': $query->whereIn("status", PbgTaskStatus::getVerified()); break; case 'non-verified': $query->whereIn("status", PbgTaskStatus::getNonVerified()); break; case 'potention': $potentionStatuses = PbgTaskStatus::getPotention(); $rejectedStatuses = PbgTaskStatus::getRejected(); $query->whereIn("status", $potentionStatuses) ->whereNotIn("status", $rejectedStatuses); Log::info('Potention filter applied', [ 'status_list' => $potentionStatuses, 'excluded_rejected' => $rejectedStatuses, 'count_before_filter' => PbgTask::count(), 'count_after_filter' => $query->count() ]); break; case 'issuance-realization-pbg': $query->whereIn("status", PbgTaskStatus::getIssuanceRealizationPbg()); break; case 'process-in-technical-office': $query->whereIn("status", PbgTaskStatus::getProcessInTechnicalOffice()); break; case 'waiting-click-dpmptsp': $query->whereIn("status", PbgTaskStatus::getWaitingClickDpmptsp()); break; default: // Log unrecognized filter for debugging Log::warning('Unrecognized filter value', ['filter' => $filter, 'original' => $request->get('filter')]); break; } } if ($request->has('search') && !empty($request->get("search"))) { $search = $request->get('search'); $query->where(function ($q) use ($search) { $q->where('name', 'LIKE', "%$search%") ->orWhere('registration_number', 'LIKE', "%$search%") ->orWhere('document_number', 'LIKE', "%$search%"); }); } // Log final query count for debugging $finalCount = $query->count(); Log::info('RequestAssignmentController final result', [ 'filter' => $request->get('filter'), 'search' => $request->get('search'), 'total_count' => $finalCount, 'request_url' => $request->fullUrl(), 'all_params' => $request->all() ]); // Additional logging for potention filter if ($request->get('filter') === 'potention') { $rejectedCount = PbgTask::whereIn('status', PbgTaskStatus::getRejected())->count(); Log::info('Potention filter details', [ 'potention_count' => $finalCount, 'rejected_count' => $rejectedCount, 'total_all_records' => PbgTask::count(), 'note' => 'Potention filter excludes rejected data' ]); } // Also log to console for immediate debugging if ($request->has('filter')) { error_log('RequestAssignment Filter Debug: ' . $request->get('filter') . ' -> Count: ' . $finalCount); } return RequestAssignmentResouce::collection($query->paginate()); } public function report_payment_recaps(Request $request) { try { // Query dengan group by kecamatan dan sum nilai_retribusi_keseluruhan_simbg $query = PbgTaskGoogleSheet::select( 'kecamatan', DB::raw('SUM(nilai_retribusi_keseluruhan_simbg) as total') ) ->groupBy('kecamatan') ->paginate(10); // Return hasil dalam JSON format return response()->json([ 'success' => true, 'data' => $query ]); } catch (Exception $e) { Log::error($e->getMessage()); return response()->json(['message' => 'Terjadi kesalahan: ' . $e->getMessage()], 500); } } public function export_excel_district_payment_recaps(){ return Excel::download(new DistrictPaymentRecapExport, 'laporan-rekap-data-pembayaran.xlsx'); } public function export_pdf_district_payment_recaps(){ $data = PbgTaskGoogleSheet::select( 'kecamatan', DB::raw('SUM(nilai_retribusi_keseluruhan_simbg) as total') ) ->groupBy('kecamatan')->get(); $pdf = Pdf::loadView('exports.district_payment_report', compact('data')); return $pdf->download('laporan-rekap-data-pembayaran.pdf'); } public function report_pbg_ptsp() { try { // Query dengan group by status dan count total per status $query = PbgTask::select( 'status', 'status_name', DB::raw('COUNT(*) as total') ) ->groupBy('status', 'status_name') ->paginate(10); // Return hasil dalam JSON format return response()->json([ 'success' => true, 'data' => $query ]); } catch (Exception $e) { Log::error($e->getMessage()); return response()->json(['message' => 'Terjadi kesalahan: ' . $e->getMessage()], 500); } } /** * Store a newly created resource in storage. */ public function store(Request $request) { // } /** * Display the specified resource. */ public function show(string $id) { // } /** * Update the specified resource in storage. */ public function update(Request $request, string $id) { // } /** * Remove the specified resource from storage. */ public function destroy(string $id) { // } }