feat: penambahan pencarian berdasarkan nama debiture

This commit is contained in:
majid
2025-05-26 11:17:41 +07:00
parent 39424b5df5
commit f69128e18e
6 changed files with 237 additions and 226 deletions

View File

@@ -13,6 +13,7 @@ use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\Branch; use Modules\Lpj\Models\Branch;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
class LaporanHasilPenilaianJaminanInternalExternalExport implements FromCollection, WithHeadings, WithMapping, WithTitle, WithCustomStartCell, WithEvents class LaporanHasilPenilaianJaminanInternalExternalExport implements FromCollection, WithHeadings, WithMapping, WithTitle, WithCustomStartCell, WithEvents
{ {
@@ -66,6 +67,8 @@ class LaporanHasilPenilaianJaminanInternalExternalExport implements FromCollecti
$q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('debiture', DB::raw('LOWER(name)'), 'LIKE', '%' . strtolower($search) . '%');
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('jenisPenilaian', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('jenisPenilaian', 'name', 'LIKE', '%' . $search . '%');

View File

@@ -12,6 +12,7 @@ use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Modules\Lpj\Models\Debiture; use Modules\Lpj\Models\Debiture;
use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Helpers\Lpj; use Modules\Lpj\Helpers\Lpj;
use Illuminate\Support\Facades\DB;
class LaporanPenilaiJaminanExport implements FromCollection, WithHeadings, WithMapping, ShouldAutoSize class LaporanPenilaiJaminanExport implements FromCollection, WithHeadings, WithMapping, ShouldAutoSize
{ {
@@ -76,6 +77,7 @@ class LaporanPenilaiJaminanExport implements FromCollection, WithHeadings, WithM
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('debiture', DB::raw('LOWER(name)'), 'LIKE', '%' . strtolower($search) . '%');
$q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('jenisPenilaian', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('jenisPenilaian', 'name', 'LIKE', '%' . $search . '%');
$q->orWhere('status', 'LIKE', '%' . $search . '%'); $q->orWhere('status', 'LIKE', '%' . $search . '%');

View File

@@ -13,7 +13,7 @@ use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\Branch; use Modules\Lpj\Models\Branch;
use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Auth;
use Carbon\Carbon; use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
class LaporanPenilaianJaminanExport implements FromCollection, WithHeadings, WithMapping, WithTitle, WithCustomStartCell, WithEvents class LaporanPenilaianJaminanExport implements FromCollection, WithHeadings, WithMapping, WithTitle, WithCustomStartCell, WithEvents
{ {
protected $request; protected $request;
@@ -67,6 +67,7 @@ class LaporanPenilaianJaminanExport implements FromCollection, WithHeadings, Wit
$q->where('nomor_registrasi', 'LIKE', '%' . $search . '%'); $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
$q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('debiture', DB::raw('LOWER(name)'), 'LIKE', '%' . strtolower($search) . '%');
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search . '%'); $q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search . '%');

View File

@@ -1,15 +1,16 @@
<?php <?php
namespace Modules\Lpj\Http\Controllers; namespace Modules\Lpj\Http\Controllers;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel; use Maatwebsite\Excel\Facades\Excel;
use Modules\Lpj\Exports\LaporanHasilPenilaianJaminanInternalExternalExport; use Modules\Lpj\Exports\LaporanHasilPenilaianJaminanInternalExternalExport;
use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\Permohonan;
use Illuminate\Support\Facades\DB;
class LaporanHasilPenilaianJaminanInternalExternalController extends Controller class LaporanHasilPenilaianJaminanInternalExternalController extends Controller
{ {
public $user; public $user;
/** /**
@@ -60,6 +61,7 @@
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('debiture', DB::raw('LOWER(name)'), 'LIKE', '%' . strtolower($search->search) . '%');
$q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('jenisPenilaian', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('jenisPenilaian', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhere('status', 'LIKE', '%' . $search->search . '%'); $q->orWhere('status', 'LIKE', '%' . $search->search . '%');
@@ -129,7 +131,7 @@
'alamat_agunan' => $permohonan->documents?->map(function ($document) { 'alamat_agunan' => $permohonan->documents?->map(function ($document) {
return formatAlamat($document); return formatAlamat($document);
})->unique()->implode(', '), })->unique()->implode(', '),
'bukti_kepemilikan' => (function() use ($permohonan) { 'bukti_kepemilikan' => (function () use ($permohonan) {
$legalitasItems = $permohonan->documents?->flatMap(function ($document) { $legalitasItems = $permohonan->documents?->flatMap(function ($document) {
return $document->detail->map(function ($detail) { return $document->detail->map(function ($detail) {
// Jika tidak ada jenis legalitas jaminan, lewati // Jika tidak ada jenis legalitas jaminan, lewati
@@ -208,4 +210,4 @@
{ {
return Excel::download(new LaporanHasilPenilaianJaminanInternalExternalExport($request), 'laporan_hasil_penilaian_jaminan_internal_external.xlsx'); return Excel::download(new LaporanHasilPenilaianJaminanInternalExternalExport($request), 'laporan_hasil_penilaian_jaminan_internal_external.xlsx');
} }
} }

View File

@@ -66,20 +66,18 @@ class LaporanPenilaiJaminanController extends Controller
$endDate = $search->end_date ?? now()->toDateString(); $endDate = $search->end_date ?? now()->toDateString();
$query->where(function ($q) use ($startDate, $endDate) { $query->where(function ($q) use ($startDate, $endDate) {
$q->whereExists(function ($subQuery) use ($startDate, $endDate) {
$subQuery->select(DB::raw(1)) $q->whereHas('penilaian', function ($q2) use ($startDate, $endDate) {
->from('penilaian') $q2->whereBetween('tanggal_kunjungan', [$startDate, $endDate]);
->whereColumn('penilaian.nomor_registrasi', 'permohonan.nomor_registrasi') });
->whereBetween('penilaian.tanggal_kunjungan', [$startDate, $endDate]);
}) // OR check if has penawaran with date in range
->orWhereExists(function ($subQuery) use ($startDate, $endDate) { $q->orWhereHas('penawaran', function ($q3) use ($startDate, $endDate) {
$subQuery->select(DB::raw(1)) $q3->whereBetween('tanggal_penilaian_sebelumnya', [$startDate, $endDate]);
->from('penawaran')
->whereColumn('penawaran.nomor_registrasi', 'permohonan.nomor_registrasi')
->whereBetween('penawaran.tanggal_penilaian_sebelumnya', [$startDate, $endDate]);
}); });
}); });
} }
@@ -106,6 +104,8 @@ class LaporanPenilaiJaminanController extends Controller
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('debiture', DB::raw('LOWER(name)'), 'LIKE', '%' . strtolower($search->search) . '%');
$q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('jenisPenilaian', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('jenisPenilaian', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhere('status', 'LIKE', '%' . $search->search . '%'); $q->orWhere('status', 'LIKE', '%' . $search->search . '%');

View File

@@ -9,6 +9,7 @@ use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\Penilaian; use Modules\Lpj\Models\Penilaian;
use Modules\Lpj\Models\PenawaranTender; use Modules\Lpj\Models\PenawaranTender;
use Maatwebsite\Excel\Facades\Excel; use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Support\Facades\DB;
class LaporanPenilaianJaminanController extends Controller class LaporanPenilaianJaminanController extends Controller
{ {
@@ -70,6 +71,8 @@ class LaporanPenilaianJaminanController extends Controller
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('debiture', DB::raw('LOWER(name)'), 'LIKE', '%' . strtolower($search->search) . '%');
$q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('jenisPenilaian', 'name', 'LIKE', '%' . $search->search . '%'); $q->orWhereRelation('jenisPenilaian', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhere('status', 'LIKE', '%' . $search->search . '%'); $q->orWhere('status', 'LIKE', '%' . $search->search . '%');
@@ -167,7 +170,7 @@ class LaporanPenilaianJaminanController extends Controller
public function export(Request $request) public function export(Request $request)
{ {
$startDate = $request->start_date; $startDate = $request->start_date;
$endDate =$request->end_date; $endDate = $request->end_date;
// name of the file // name of the file
$fileName = 'laporan_penilaian_jaminan_' . $startDate . '_' . $endDate . '.xlsx'; $fileName = 'laporan_penilaian_jaminan_' . $startDate . '_' . $endDate . '.xlsx';
return Excel::download(new LaporanPenilaianJaminanExport($request), $fileName); return Excel::download(new LaporanPenilaianJaminanExport($request), $fileName);