diff --git a/app/Helpers/Lpj.php b/app/Helpers/Lpj.php index 1f6a711..27d1ec4 100644 --- a/app/Helpers/Lpj.php +++ b/app/Helpers/Lpj.php @@ -15,6 +15,8 @@ use Modules\Lpj\Models\Penilaian; use Modules\Lpj\Models\TeamsUsers; use Modules\Usermanagement\Models\User; + use Illuminate\Support\Facades\File; + use Illuminate\Support\Facades\Storage; function formatTanggalIndonesia($date, $time = false) { @@ -542,3 +544,37 @@ return $notifikasi; } +/** + * get full path to internal storage file or external storage file + * + * @param string $path + * @return string + */ + + function getFilePath($path) + { + // define base path external storage (use .env) example: 'F:\path\to\storage' in windows + $externalBase = env('EXTERNAL_STORAGE_BASE_PATH', 'F:LPJ/lpj/LPJ Gambar/001/'); + + $segments = explode('/', $path); + + if(strtoupper($segments[0]) === 'SURVEYOR'){ + $year = $segments[1]; + $month = ucfirst(strtolower($segments[2])); + $date = $segments[3]; + $code = $segments[4]; + $file = $segments[5] ?? ''; + + $extenalFullpath = $externalBase . $year . '/' . $month . '/' . $date . '/' . $code . '/' . $file; + + if(File::exists($extenalFullpath)){ + return $extenalFullpath; + } + } + + // if not found in external storage, try to find in internal storage + if (Storage::exists($path)) { + return Storage::url('app/' . $path); + } + return $path; + } diff --git a/app/Services/LaporanUserService.php b/app/Services/LaporanUserService.php index 9890aaa..d3b6d2c 100644 --- a/app/Services/LaporanUserService.php +++ b/app/Services/LaporanUserService.php @@ -1,8 +1,10 @@ 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, ]; }); diff --git a/resources/views/laporan-user/index.blade.php b/resources/views/laporan-user/index.blade.php index dae9788..512bbfd 100644 --- a/resources/views/laporan-user/index.blade.php +++ b/resources/views/laporan-user/index.blade.php @@ -6,63 +6,27 @@ @section('content')