diff --git a/app/Http/Controllers/LaporanController.php b/app/Http/Controllers/LaporanController.php index 3057ed5..3d80fd6 100644 --- a/app/Http/Controllers/LaporanController.php +++ b/app/Http/Controllers/LaporanController.php @@ -31,11 +31,22 @@ class LaporanController extends Controller /** * Show the specified resource. */ - public function show($id) {} + public function show($id) { + $permohonan = Permohonan::with([ + 'penilai'])->find($id); + return view('lpj::laporan.show', compact('permohonan')); + } /** * Store form inspeksi. */ - public function store(Request $request) {} + public function store(Request $request) { + $permohonan = Permohonan::find($request->permohonan_id); + if($request->nilai_liquidasi) { + $permohonan->nilai_liquidasi = $request->liquidasi; + $permohonan->save(); + return redirect()->route('laporan.index')->with('success', 'Nilai Liquidasi updated successfully'); + } + } public function update(Request $request, $id) {} @@ -46,7 +57,11 @@ class LaporanController extends Controller } // Retrieve data from the database - $query = Permohonan::query()->whereIn('status',['proses-laporan','done']); + $query = Permohonan::query()->whereIn('status',['proses-laporan','done'])->whereNotNull('approval_so_at')->whereNotNull('approval_eo_at')->where(function ($q) { + $q->whereIn('nilai_plafond_id', [1,4]) + ->whereNotNull('approval_dd_at') + ->orWhereIn('nilai_plafond_id', [2,3]); + }); $query = $query->orderBy('nomor_registrasi', 'desc'); // Apply search filter if provided diff --git a/app/Http/Controllers/PembayaranController.php b/app/Http/Controllers/PembayaranController.php index 729d0a3..ada9491 100644 --- a/app/Http/Controllers/PembayaranController.php +++ b/app/Http/Controllers/PembayaranController.php @@ -173,14 +173,30 @@ if ($request->keterangan) { $data['approve_keterangan_bayar'] = $request->keterangan; } - $output['data'] = $data; - $modal = Permohonan::find($id); - $modal->update($data); - // + // Update the status of the related permohonan to 'spk' + $permohonan = Permohonan::find($id); + + if ($permohonan) { + $data['status_bayar'] = 'sudah_bayar'; + if($permohonan->jenis_penilaian_id == 2) { + $data['status'] = 'spk'; + } + + $permohonan->update($data); + + if($permohonan->jenis_penilaian_id == 2) { + PenawaranTender::where('nomor_registrasi', $permohonan->nomor_registrasi)->update([ + 'status' => 'spk', + 'updated_by' => Auth::id(), + 'updated_at' => now(), + ]); + } + } + $output['status'] = 'success'; - $output['message'] = ['Otorisasi' . $modal->nomor_registrasi . 'berhasil di lakukan']; + $output['message'] = ['Otorisasi' . $permohonan->nomor_registrasi . 'berhasil di lakukan']; } catch (Exception $e) { $output['status'] = 'error'; $output['message'] = ['Otorisasi gagal di lakukan.']; diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 39af828..faf91ea 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -550,7 +550,7 @@ class PenilaianController extends Controller $filteredRecords = $query->count(); // Ambil data dengan relasi - $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'approveSo'])->get(); + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'approveSo', 'approveEo', 'approveDd'])->get(); // Hitung jumlah halaman diff --git a/app/Http/Controllers/PersetujuanPenawaranController.php b/app/Http/Controllers/PersetujuanPenawaranController.php index 6172030..1486fbe 100644 --- a/app/Http/Controllers/PersetujuanPenawaranController.php +++ b/app/Http/Controllers/PersetujuanPenawaranController.php @@ -67,24 +67,6 @@ $persetujuanPenawaran->save(); - // Update the status of the related permohonan to 'spk' - $permohonan = Permohonan::find(request()->get('permohonan_id')); - if ($permohonan) { - $permohonan->status_bayar = request()->get('status_bayar'); - $permohonan->status = 'noc'; - $permohonan->save(); - - // andy add, update status penawaran.status='spk' - // $penawaran = PenawaranTender::where('nomor_registrasi',$permohonan->nomor_registrasi)->first(); - PenawaranTender::where('nomor_registrasi', $permohonan->nomor_registrasi)->update([ - 'status' => 'noc', - 'updated_by' => Auth::id(), - 'updated_at' => now(), - ]); - // andy add, update status penawaran.status='spk' - - } - return redirect() ->route('persetujuan-penawaran.index')->with('success', 'Persetujuan Penawaran berhasil disimpan.'); } diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php index 435496b..d2bb6fa 100644 --- a/app/Http/Controllers/RegistrasiFinalController.php +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -46,12 +46,11 @@ } // Retrieve data from the database - $query = PenawaranTender::with(['permohonan', 'tujuanPenilaianKjpp'])->whereHas( - 'permohonan', - function ($q) { - $q->where('status', '=', 'spk'); - }, - )->withCount('penawarandetails'); + $query =PenawaranTender::query() + ->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name') + ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') + ->where('penawaran.status','=','spk') + ->withCount('penawarandetails'); // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { diff --git a/app/Models/Permohonan.php b/app/Models/Permohonan.php index 0ed5c0a..562da21 100644 --- a/app/Models/Permohonan.php +++ b/app/Models/Permohonan.php @@ -161,6 +161,10 @@ return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi'); } + public function penilai(){ + return $this->belongsTo(Penilai::class, 'id', 'permohonan_id'); + } + public function penawaranTender() { return $this->belongsTo(PenawaranTender::class, 'nomor_registrasi', 'nomor_registrasi'); diff --git a/database/migrations/2024_12_31_020608_update_permohonan_table.php b/database/migrations/2024_12_31_020608_update_permohonan_table.php new file mode 100644 index 0000000..e9f71eb --- /dev/null +++ b/database/migrations/2024_12_31_020608_update_permohonan_table.php @@ -0,0 +1,28 @@ +string('nilai_liquidasi')->nullable()->after('nilai_plafond_id'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('permohonan', function (Blueprint $table) { + $table->dropColumn('nilai_liquidasi'); + }); + } +}; diff --git a/module.json b/module.json index 9f089e1..f1a7700 100644 --- a/module.json +++ b/module.json @@ -14,7 +14,7 @@ "menu": { "otorisator": [ { - "title": "Permohonan", + "title": "Otorisasi Permohonan", "path": "authorization", "icon": "ki-filled ki-security-user text-lg text-info", "classes": "", @@ -25,6 +25,19 @@ "pemohon-eo" ] }, + { + "title": "Otorisasi Pembatalan Permohonan", + "path": "otorisator.pembatalan", + "icon": "ki-filled ki-file-deleted text-lg text-info", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "senior-officer", + "pemohon-eo" + ] + }, { "title": "Otorisasi Penawaran", "path": "otorisasitender.penawaran", @@ -40,7 +53,7 @@ ] }, { - "title": "Pembayaran", + "title": "Otorisasi Pembayaran", "path": "pembayaran.approval", "icon": "ki-filled ki-ensure text-lg text-info", "classes": "", @@ -49,12 +62,11 @@ "roles": [ "administrator", "admin", - "EO Appraisal", - "DD Appraisal" + "pemohon-eo" ] }, { - "title": "Pelaporan", + "title": "Otorisasi Pelaporan", "path": "otorisator.pelaporan", "icon": "ki-filled ki-filter-tablet text-lg text-info", "classes": "", @@ -68,21 +80,7 @@ ] }, { - "title": "Pembatalan", - "path": "otorisator.pembatalan", - "icon": "ki-filled ki-file-deleted text-lg text-info", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "administrator", - "senior-officer", - "EO Appraisal", - "DD Appraisal" - ] - }, - { - "title": "SLA", + "title": "Otorisasi SLA", "path": "otorisator.sla", "icon": "ki-filled ki-calendar-tick text-lg text-info", "classes": "", @@ -522,17 +520,6 @@ "admin" ] }, - { - "title": "SLA", - "path": "basicdata.sla", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "administrator", - "admin" - ] - }, { "title": "Bentuk", "path": "basicdata.bentuk-tanah", diff --git a/resources/views/activity/progres_activity/index.blade.php b/resources/views/activity/progres_activity/index.blade.php index 1f706d8..7f97ae8 100644 --- a/resources/views/activity/progres_activity/index.blade.php +++ b/resources/views/activity/progres_activity/index.blade.php @@ -94,7 +94,7 @@
diff --git a/resources/views/laporan/index.blade.php b/resources/views/laporan/index.blade.php index 35140a7..3a895c2 100644 --- a/resources/views/laporan/index.blade.php +++ b/resources/views/laporan/index.blade.php @@ -186,18 +186,32 @@ actions: { title: 'Actions', render: (item, data) => { - const inspeksiId = data.debiture?.documents[0]?.inspeksi[0].id || '-'; + const inspeksiId = data.debiture?.documents[0]?.inspeksi[0]?.id || '-'; const dokumenID = data.debiture?.documents[0]?.id || '-'; const jenisJaminanID = data.debiture?.documents[0]?.jenis_jaminan_id || '-'; - return ` - - Resume - - - Laporan - - `; + let laporanButton = ''; + const resumeButton = ` + + Resume + `; + + if(data.nilai_liquidasi==null) { + laporanButton = ` + + Input NL + `; + } + + console.log(data.nilai_liquidasi); + if(data.status_bayar=="sudah_bayar" && data.nilai_liquidasi >0) { + + laporanButton = ` + + Laporan + `; + } + + return `${resumeButton} ${laporanButton}`; }, } }, diff --git a/resources/views/laporan/show.blade.php b/resources/views/laporan/show.blade.php new file mode 100644 index 0000000..a586c96 --- /dev/null +++ b/resources/views/laporan/show.blade.php @@ -0,0 +1,114 @@ +@extends('layouts.main') + +@section('content') +
+
+
+
+ Input Nilai Liquidasi (LPJ) +
+
+ Back +
+
+
+ @php + $lpj = json_decode($permohonan->penilai->lpj); + @endphp +
+ @csrf + + +
+ +
+ + @error('nomor_registrasi') + {{ $message }} + @enderror +
+
+ +
+ +
+ + @error('debitur') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('total_niilai_pasar_wajar') + {{ $message }} + @enderror +
+
+ +
+ +
+ + @error('liquidasi') + {{ $message }} + @enderror +
+
+ +
+ +
+ + @error('nilai_liquidasi') + {{ $message }} + @enderror +
+
+ +
+ +
+ +
+
+
+@endsection + + +@push('scripts') + +@endpush diff --git a/resources/views/pembayaran/approval.blade.php b/resources/views/pembayaran/approval.blade.php index 24f479e..5dd98a4 100644 --- a/resources/views/pembayaran/approval.blade.php +++ b/resources/views/pembayaran/approval.blade.php @@ -67,12 +67,8 @@ Nominal bayar - - + + @@ -190,8 +191,11 @@ render: (item, data) => { if (data.permohonan) { return `${data.permohonan.nomor_registrasi}`; + } else if(data.penawaran) { + return `${data.penawaran.permohonan.nomor_registrasi}`; } - return `${data.penawaran.permohonan.nomor_registrasi}`; + return ""; + }, }, tanggal_permohonan: { @@ -199,8 +203,10 @@ render: (item, data) => { if (data.permohonan) { return `${data.permohonan.tanggal_permohonan}`; + } else if(data.penawaran) { + return `${data.penawaran.permohonan.tanggal_permohonan}`; } - return `${data.penawaran.permohonan.tanggal_permohonan}`; + return ""; }, }, user_id: { @@ -209,7 +215,11 @@ if (data.permohonan) { return `${data.permohonan.user.name}`; } - return `${data.penawaran.permohonan.user.name}`; + else if(data.penawaran) { + return `${data.penawaran.permohonan.user.name}`; + } + return ""; + }, }, branch_id: { @@ -218,7 +228,11 @@ if (data.permohonan) { return `${data.permohonan.branch.name}`; } - return `${data.penawaran.permohonan.branch.name}`; + else if(data.penawaran) { + return `${data.penawaran.permohonan.branch.name}`; + } + return ""; + }, }, debitur_id: { @@ -227,7 +241,11 @@ if (data.permohonan) { return `${data.permohonan.debiture.name}`; } - return `${data.penawaran.permohonan.debiture.name}`; + else if(data.penawaran) { + return `${data.penawaran.permohonan.debiture.name}`; + } + return ""; + }, }, status_bayar: { @@ -235,17 +253,22 @@ render: (item, data) => { if(data.permohonan){ var permohonan = data.permohonan; - } else { + } else if(data.penawaran){ var permohonan = data.penawaran.permohonan; } - const status = permohonan.status_bayar.replace(/_/g, - ' '); - const statusClass = permohonan.status_bayar === 'belum_bayar' ? 'text-red-600' : - 'text-green-600'; - return ` + if(permohonan) { + + const status = permohonan.status_bayar.replace(/_/g, + ' '); + const statusClass = permohonan.status_bayar === 'belum_bayar' ? 'text-red-600' : + 'text-green-600'; + return ` ${status} `; + } + + return "-"; }, }, tanggal_setor: { @@ -260,11 +283,11 @@ return `${window.formatRupiah(data.nominal_bayar)}`; }, }, - bukti_ksl: { - title: 'Bukti KSL', + bukti_bayar:{ + title: 'Bukti Bayar', render: (item, data) => { - if (data.bukti_ksl) { - return ` + if (data.bukti_bayar) { + return ` Download `; } else { @@ -272,47 +295,62 @@ } }, }, - tanggal_penyelesaian: { - title: 'Tanggal Penyelesaian', - render: (item, data) => { - if(data.status==1) { - return `${window.formatTanggalIndonesia(data.updated_at)}`; - } - return "-"; - }, - }, approve_bayar_by: { title: 'Status Approve', render: (item, data) => { if(data.permohonan){ var permohonan = data.permohonan; - } else { + } else if(data.penawaran){ var permohonan = data.penawaran.permohonan; } - if(permohonan.approve_bayar_by) { - return `${permohonan.approve_bayar.name}`; + if(permohonan) { + if(permohonan.approve_bayar) { + return `${permohonan.approve_bayar.name}`; + } + return ""; } return "Menunggu Approval"; }, }, + approve_keterangan_bayar: { + title: 'Status Approve', + render: (item, data) => { + if(data.permohonan){ + var permohonan = data.permohonan; + } else if(data.penawaran){ + var permohonan = data.penawaran.permohonan; + } + + if(permohonan) { + return `${permohonan.approve_keterangan_bayar}`; + } + + return ""; + }, + }, actions: { title: 'Status', render: (item, data) => { - var iconPembayaranOtorisator = ''; - if (!data.approve_bayar_by) { - iconPembayaranOtorisator = ` - - `; + if(data.permohonan){ + var permohonan = data.permohonan; + } else if(data.penawaran){ + var permohonan = data.penawaran.permohonan; } - return `
- - - ` - + iconPembayaranOtorisator + ` -
`; + if(permohonan) { + var iconPembayaranOtorisator = ''; + if (!permohonan.approve_bayar_by) { + iconPembayaranOtorisator = ` + + `; + } + + return `
` + iconPembayaranOtorisator + `
`; + } + + return ""; }, } diff --git a/resources/views/penilaian/index.blade.php b/resources/views/penilaian/index.blade.php index 5355d22..112fabf 100644 --- a/resources/views/penilaian/index.blade.php +++ b/resources/views/penilaian/index.blade.php @@ -57,6 +57,10 @@ Tujuan Penilaian +
+ @if($permohonan->approval_eo!=null) + @endif + @if(in_array($permohonan->nilai_plafond_id,[1,4]) && $permohonan->approval_dd!=null) + @endif
- Bukti KSL - - - Tanggal Penyelesaian + + Bukti Bayar @@ -80,6 +76,11 @@ + Keterangan + + Action
+ Jenis Penilaian + + Status @@ -135,6 +139,12 @@ return `${data.tujuan_penilaian.name}`; }, }, + jenis_penilaian_id: { + title: 'Jenis Penilaian', + render: (item, data) => { + return `${data.jenis_penilaian.name}`; + }, + }, status: { title: 'Status' }, diff --git a/resources/views/penilaian/otorisator/index.blade.php b/resources/views/penilaian/otorisator/index.blade.php index 5c09fa6..b00b238 100644 --- a/resources/views/penilaian/otorisator/index.blade.php +++ b/resources/views/penilaian/otorisator/index.blade.php @@ -259,7 +259,7 @@ `; - } else if ((isAdmin || userRoles.includes('DD Appraisal')) && data.approval_eo && !data.approval_dd) { + } else if ((isAdmin || userRoles.includes('DD Appraisal')) && data.approval_eo && !data.approval_dd && [1, 4].includes(data.nilai_plafond_id)) { buttons += ` diff --git a/resources/views/penilaian/otorisator/show.blade.php b/resources/views/penilaian/otorisator/show.blade.php index 5290994..744de21 100644 --- a/resources/views/penilaian/otorisator/show.blade.php +++ b/resources/views/penilaian/otorisator/show.blade.php @@ -85,16 +85,20 @@ {{ getUser($permohonan->approval_so)->name ?? 'N/A' }} {{ $permohonan->approval_so_at ? formatTanggalIndonesia($permohonan->approval_so_at,1) : 'N/A' }}
Disetujui Oleh (EO) {{ getUser($permohonan->approval_eo)->name ?? 'N/A' }} {{ $permohonan->approval_eo_at ? formatTanggalIndonesia($permohonan->approval_eo_at,1) : 'N/A' }}
Disetujui Oleh (DD) {{ getUser($permohonan->approval_dd)->name ?? 'N/A' }} {{ $permohonan->approval_dd_at ? formatTanggalIndonesia($permohonan->approval_dd_at,1) : 'N/A' }}
@@ -137,7 +141,7 @@ @endif - @if(Auth::user()->hasAnyRole(['administrator','DD Appraisal']) && $permohonan->approval_eo && $permohonan->approval_dd==null) + @if(Auth::user()->hasAnyRole(['administrator','DD Appraisal']) && $permohonan->approval_eo && $permohonan->approval_dd==null && in_array($permohonan->nilai_plafond_id,[1,4]))