Merge branch 'feature/senior-officer' into lpj-db-migratio

This commit is contained in:
majid
2025-07-21 10:17:51 +07:00
9 changed files with 393 additions and 392 deletions

View File

@@ -1,8 +1,10 @@
<?php
namespace Modules\Lpj\Services;
use Modules\Lpj\Models\Permohonan;
use Illuminate\Http\Request;
use Modules\Usermanagement\Models\User;
class LaporanUserService
{
@@ -25,36 +27,15 @@ class LaporanUserService
{
// Retrieve data from the database
$query = Permohonan::query();
$query = $query->where('status', 'done');
$query = User::query();
// Apply search filter if provided
if ($request->has('search') && !empty($request->get('search'))) {
$search = json_decode($request->get('search'));
if (isset($search->start_date) || isset($search->end_date)) {
$query->whereBetween('tanggal_permohonan', [
$search->start_date ?? '1900-01-01',
$search->end_date ?? now()->toDateString()
]);
}
// Filter by branch if provided
if (isset($search->user_id) && !empty($search->user_id)) {
$query->where('user_id', $search->user_id);
}
if (isset($search->search)) {
$query->where(function ($q) use ($search) {
$q->where('nomor_registrasi', 'LIKE', '%' . $search->search . '%');
$q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('jenisFasilitasKredit', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhereRelation('jenisPenilaian', 'name', 'LIKE', '%' . $search->search . '%');
$q->orWhere('status', 'LIKE', '%' . $search->search . '%');
$q->whereRaw('LOWER(name) LIKE ?', ['%' . strtolower($search) . '%']);
$q->where('nik', 'LIKE', '%' . $search->search . '%');
});
}
}
@@ -82,28 +63,16 @@ class LaporanUserService
$filteredRecords = $query->count();
// Get the data for the current page
$data = $query->with(['debiture.branch'])->get();
$data = $query->with(['branch', 'roles'])->get();
$data = $data->map(function ($permohonan) {
$npw = 0;
if (isset($permohonan->penilai->lpj)) {
$lpj = json_decode($permohonan->penilai->lpj, true);
$npw = str_replace('.', '', $lpj['total_nilai_pasar_wajar'] ?? 0);
}
$data = $data->map(function ($user) {
return [
'id' => $permohonan->id,
'nomor_registrasi' => $permohonan->nomor_registrasi,
'branch' => $permohonan->debiture->branch?->name,
'name' => $permohonan->debiture?->name,
'pemohon' => $permohonan->creator?->name,
'tanggal_permohonan' => $permohonan->tanggal_permohonan,
'nama_penilai' => $permohonan->penilaian?->_user_penilai?->userPenilaiTeam?->name,
'tanggal_laporan' => $permohonan->approval_dd_at ?? $permohonan->approval_eo_at ?? '',
'nilai_pasar_wajar' => formatRupiah($npw, 2)
'id' => $user->id,
'nik' => $user->nik,
'name' => $user->name,
'level' => $user->roles->pluck('name')->implode(', '),
'approval_limit' => 0,
];
});