fix same column for quick-search table with pbg

This commit is contained in:
arifal hidayat
2025-08-23 22:25:06 +07:00
parent 954b2d8716
commit 38493063c4
6 changed files with 39 additions and 15 deletions

View File

@@ -56,7 +56,8 @@ class RequestAssignmentController extends Controller
'attachments' => function ($q) { 'attachments' => function ($q) {
$q->whereIn('pbg_type', ['berita_acara', 'bukti_bayar']); $q->whereIn('pbg_type', ['berita_acara', 'bukti_bayar']);
}, },
'pbg_task_retributions' 'pbg_task_retributions',
'pbg_task_detail'
])->orderBy('id', 'desc'); ])->orderBy('id', 'desc');
// Log final query count for debugging // Log final query count for debugging

View File

@@ -9,6 +9,7 @@ use App\Models\PbgTask;
use App\Models\TaskAssignment; use App\Models\TaskAssignment;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\DB;
class QuickSearchController extends Controller class QuickSearchController extends Controller
{ {
@@ -25,9 +26,13 @@ class QuickSearchController extends Controller
public function quick_search_datatable(Request $request) public function quick_search_datatable(Request $request)
{ {
try { try {
$query = PbgTask::leftJoin('pbg_task_details', 'pbg_task.uuid', '=', 'pbg_task_details.pbg_task_uid') // Gunakan subquery untuk performa yang lebih baik dan menghindari duplikasi
->select('pbg_task.*') $query = PbgTask::select([
->orderBy('pbg_task.id', 'desc'); 'pbg_task.*',
DB::raw('(SELECT name_building FROM pbg_task_details WHERE pbg_task_details.pbg_task_uid = pbg_task.uuid LIMIT 1) as name_building'),
DB::raw('(SELECT nilai_retribusi_bangunan FROM pbg_task_retributions WHERE pbg_task_retributions.pbg_task_uid = pbg_task.uuid LIMIT 1) as nilai_retribusi_bangunan')
])
->orderBy('pbg_task.id', 'desc');
if ($request->filled('search')) { if ($request->filled('search')) {
$search = trim($request->get('search')); $search = trim($request->get('search'));
@@ -36,7 +41,12 @@ class QuickSearchController extends Controller
->orWhere('pbg_task.name', 'LIKE', "%$search%") ->orWhere('pbg_task.name', 'LIKE', "%$search%")
->orWhere('pbg_task.owner_name', 'LIKE', "%$search%") ->orWhere('pbg_task.owner_name', 'LIKE', "%$search%")
->orWhere('pbg_task.address', 'LIKE', "%$search%") ->orWhere('pbg_task.address', 'LIKE', "%$search%")
->orWhere('pbg_task_details.name_building', 'LIKE', "%$search%"); ->orWhereExists(function ($subQuery) use ($search) {
$subQuery->select(DB::raw(1))
->from('pbg_task_details')
->whereColumn('pbg_task_details.pbg_task_uid', 'pbg_task.uuid')
->where('pbg_task_details.name_building', 'LIKE', "%$search%");
});
}); });
} }

View File

@@ -43,6 +43,7 @@ class RequestAssignmentResouce extends JsonResource
->sortByDesc('created_at') ->sortByDesc('created_at')
->first(), ->first(),
'pbg_task_retributions' => $this->pbg_task_retributions, 'pbg_task_retributions' => $this->pbg_task_retributions,
'pbg_task_detail' => $this->pbg_task_detail,
]; ];
} }
} }

View File

@@ -113,6 +113,7 @@ class PbgTasks {
{ name: "Alamat" }, { name: "Alamat" },
"Status", "Status",
"Jenis Fungsi", "Jenis Fungsi",
{ name: "Nama Bangunan" },
"Jenis Konsultasi", "Jenis Konsultasi",
{ name: "Tanggal Jatuh Tempo" }, { name: "Tanggal Jatuh Tempo" },
{ {
@@ -221,6 +222,9 @@ class PbgTasks {
item.address, item.address,
item.status_name, item.status_name,
item.function_type, item.function_type,
item.pbg_task_detail
? item.pbg_task_detail.name_building
: "-",
item.consultation_type, item.consultation_type,
item.due_date, item.due_date,
item.pbg_task_retributions item.pbg_task_retributions

View File

@@ -1,4 +1,5 @@
import { Grid, html } from "gridjs"; import { Grid, html } from "gridjs";
import { addThousandSeparators } from "../global-config";
class QuickSearchResult { class QuickSearchResult {
constructor() { constructor() {
@@ -62,15 +63,18 @@ class QuickSearchResult {
const config = { const config = {
columns: [ columns: [
"ID", "ID",
{ name: "Name" }, { name: "Nama Pemohon" },
{ name: "Condition" }, { name: "Nama Pemilik" },
"Registration Number", { name: "Kondisi" },
"Document Number", "Nomor Registrasi",
{ name: "Address" }, "Nomor Dokumen",
{ name: "Alamat" },
"Status", "Status",
"Function Type", "Jenis Fungsi",
"Consultation Type", { name: "Nama Bangunan" },
{ name: "Due Date" }, "Jenis Konsultasi",
{ name: "Tanggal Jatuh Tempo" },
{ name: "Retribusi" },
{ {
name: "Action", name: "Action",
formatter: (cell) => { formatter: (cell) => {
@@ -101,14 +105,17 @@ class QuickSearchResult {
data.data.map((item) => [ data.data.map((item) => [
item.id, item.id,
item.name, item.name,
item.owner_name,
item.condition, item.condition,
item.registration_number, item.registration_number,
item.document_number, item.document_number,
item.address, item.address,
item.status_name, item.status_name,
item.function_type, item.function_type,
item.name_building,
item.consultation_type, item.consultation_type,
item.due_date, item.due_date,
addThousandSeparators(item.nilai_retribusi_bangunan),
item, item,
]), ]),
total: (data) => data.total, total: (data) => data.total,

View File

@@ -124,7 +124,8 @@
<div class="col-md-6"> <div class="col-md-6">
<dl class="row mb-0"> <dl class="row mb-0">
<dt class="col-sm-4">Nilai Retribusi Bangunan</dt> <dt class="col-sm-4">Nilai Retribusi Bangunan</dt>
<dd class="col-sm-8">{{$data->pbg_task_retributions->nilai_retribusi_bangunan ?? '-'}}</dd> <dd class="col-sm-8">{{ number_format($data->pbg_task_retributions->nilai_retribusi_bangunan, 2, ',', '.') }}</dd>
<dt class="col-sm-4">Nilai Prasarana</dt> <dt class="col-sm-4">Nilai Prasarana</dt>
<dd class="col-sm-8">{{$data->pbg_task_retributions->nilai_prasarana ?? '-'}}</dd> <dd class="col-sm-8">{{$data->pbg_task_retributions->nilai_prasarana ?? '-'}}</dd>
@@ -136,7 +137,7 @@
<dd class="col-sm-8">{{$data->pbg_task_retributions->underpayment ?? '-'}}</dd> <dd class="col-sm-8">{{$data->pbg_task_retributions->underpayment ?? '-'}}</dd>
<dt class="col-sm-4">SKRD Amount</dt> <dt class="col-sm-4">SKRD Amount</dt>
<dd class="col-sm-8">{{$data->pbg_task_retributions->skrd_amount ?? '-'}}</dd> <dd class="col-sm-8">{{ number_format($data->pbg_task_retributions->skrd_amount, 2, ',', '.') }}</dd>
</dl> </dl>
</div> </div>
</div> </div>