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) {
$q->whereIn('pbg_type', ['berita_acara', 'bukti_bayar']);
},
'pbg_task_retributions'
'pbg_task_retributions',
'pbg_task_detail'
])->orderBy('id', 'desc');
// Log final query count for debugging

View File

@@ -9,6 +9,7 @@ use App\Models\PbgTask;
use App\Models\TaskAssignment;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\DB;
class QuickSearchController extends Controller
{
@@ -25,9 +26,13 @@ class QuickSearchController extends Controller
public function quick_search_datatable(Request $request)
{
try {
$query = PbgTask::leftJoin('pbg_task_details', 'pbg_task.uuid', '=', 'pbg_task_details.pbg_task_uid')
->select('pbg_task.*')
->orderBy('pbg_task.id', 'desc');
// Gunakan subquery untuk performa yang lebih baik dan menghindari duplikasi
$query = PbgTask::select([
'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')) {
$search = trim($request->get('search'));
@@ -36,7 +41,12 @@ class QuickSearchController extends Controller
->orWhere('pbg_task.name', 'LIKE', "%$search%")
->orWhere('pbg_task.owner_name', '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')
->first(),
'pbg_task_retributions' => $this->pbg_task_retributions,
'pbg_task_detail' => $this->pbg_task_detail,
];
}
}

View File

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

View File

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

View File

@@ -124,7 +124,8 @@
<div class="col-md-6">
<dl class="row mb-0">
<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>
<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>
<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>
</div>
</div>