diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index 0011df5..78a11c2 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -8,6 +8,7 @@ use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; + use Log; use Modules\Location\Models\City; use Modules\Location\Models\District; use Modules\Location\Models\Province; @@ -20,6 +21,7 @@ use Modules\Lpj\Models\JenisJaminan; use Modules\Lpj\Models\JenisLegalitasJaminan; use Modules\Lpj\Models\PemilikJaminan; + use Modules\Lpj\Models\Permohonan; use ZipArchive; class DokumenJaminanController extends Controller @@ -31,6 +33,13 @@ { $debitur = Debiture::find($id); $documents = DokumenJaminan::with('pemilik', 'detail')->where('debiture_id', $id)->get(); + if (request()->get('permohonan_id') !== null) { + $permohonan_id = request()->get('permohonan_id'); + $documents = DokumenJaminan::with('pemilik', 'detail') + ->where('debiture_id', $id) + ->where('permohonan_id', $permohonan_id) + ->get(); + } return view( 'lpj::debitur.edit', @@ -127,7 +136,10 @@ $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); $pemilikJaminan = PemilikJaminan::where('debiture_id', $id)->get(); $hubunganPemilik = HubunganPemilikJaminan::all(); - + $permohonan = null; + if(request()->get('permohonan_id')) { + $permohonan = Permohonan::where('id', request()->get('permohonan_id'))->first(); + } return view( 'lpj::debitur.jaminan', compact( @@ -137,6 +149,7 @@ 'jenisLegalitasJaminan', 'pemilikJaminan', 'hubunganPemilik', + 'permohonan' ), ); } @@ -238,7 +251,7 @@ ]; $dokumenJaminan = []; - $dokumenNomor=[]; + $dokumenNomor = []; if (isset($request->dokumen_jaminan[$key]) && is_array($request->dokumen_jaminan[$key])) { foreach ($request->dokumen_jaminan[$key] as $index => $file) { @@ -311,7 +324,8 @@ public function edit( $id, $jaminan, - ) { + ) + { $document = DokumenJaminan::find($jaminan); $details = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get(); @@ -325,9 +339,9 @@ $jenisJaminan = JenisJaminan::all(); $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); - $_jenisJaminan = JenisJaminan::find($document->jenis_jaminan_id); - $legalitas=''; - if($_jenisJaminan) { + $_jenisJaminan = JenisJaminan::find($document->jenis_jaminan_id); + $legalitas = ''; + if ($_jenisJaminan) { $legalitasJaminan = json_decode($_jenisJaminan->jenis_legalitas_jaminan_id, true); $currentLegalitasJaminan = JenisLegalitasJaminan::whereIn( @@ -367,7 +381,8 @@ public function destroy( $id, $jaminan_id, - ) { + ) + { try { $jaminan = DokumenJaminan::find($jaminan_id); $details = DetailDokumenJaminan::where('dokumen_jaminan_id', $jaminan->id)->get(); @@ -385,7 +400,7 @@ public function bulkDownload() { $dokumenIds = request()->get('jaminan'); // Expecting an array of dokumen_jaminan_id - $documents = DokumenJaminan::where('id', $dokumenIds)->with(['jenisJaminan', 'detail','debiture'])->get(); + $documents = DokumenJaminan::where('id', $dokumenIds)->with(['jenisJaminan', 'detail', 'debiture'])->get(); if ($documents->isEmpty()) { return redirect()->back()->with('error', 'No documents found for the provided IDs.'); @@ -397,23 +412,23 @@ if ($zip->open($zipFilePath, ZipArchive::CREATE) === true) { foreach ($documents as $document) { - $jenisJaminan = $document->debiture->permohonan->nomor_registrasi ?? 'Uncategorized'; - $folderName = $this->sanitizeFolderName($jenisJaminan); + $jenisJaminan = $document->debiture->permohonan->nomor_registrasi ?? 'Uncategorized'; + $folderName = $this->sanitizeFolderName($jenisJaminan); foreach ($document->detail as $detail) { - if($detail->dokumen_jaminan) { - $folderJaminanName = $this->sanitizeFolderName($detail->jenisLegalitasJaminan->name?? 'Uncategorized'); - $files = is_array(json_decode($detail->dokumen_jaminan)) + if ($detail->dokumen_jaminan) { + $folderJaminanName = $this->sanitizeFolderName($detail->jenisLegalitasJaminan->name ?? 'Uncategorized'); + $files = is_array(json_decode($detail->dokumen_jaminan)) ? json_decode($detail->dokumen_jaminan) : [$detail->dokumen_jaminan]; foreach ($files as $file) { $filePath = storage_path('app/public/' . $file); if (file_exists($filePath)) { - $zip->addFile($filePath, $folderName . '/' .$folderJaminanName.'/'.basename($filePath)); + $zip->addFile($filePath, $folderName . '/' . $folderJaminanName . '/' . basename($filePath)); } else { // Log or display an error message for missing files - \Log::warning('File not found: ' . $filePath); + Log::warning('File not found: ' . $filePath); } } } @@ -463,7 +478,8 @@ public function getLegalitasJaminan($id = 10, $jenisJaminanId = 1) - : JsonResponse { + : JsonResponse + { $jenisJaminan = JenisJaminan::findOrFail($jenisJaminanId); $legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id; $newLegalitasJaminan = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get(); @@ -487,7 +503,7 @@ 'dokumen_jaminan' => json_decode( $detail->dokumen_jaminan, ) ?? $detail->dokumen_jaminan, - 'dokumen_nomor' => json_decode( + 'dokumen_nomor' => json_decode( $detail->dokumen_nomor, ) ?? $detail->dokumen_nomor, 'custom_field' => $detail->jenisLegalitasJaminan->custom_field, @@ -508,7 +524,7 @@ 'jenis_legalitas_jaminan_id' => $legalitas->id, 'name' => $legalitas->name, 'dokumen_jaminan' => null, - 'dokumen_nomor' => null, + 'dokumen_nomor' => null, 'custom_field' => $legalitas->custom_field, 'custom_field_type' => $legalitas->custom_field_type, 'details' => null, diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 67315fe..55ab922 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -8,6 +8,7 @@ use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Modules\Lpj\Http\Requests\PenilaianRequest; +use Modules\Lpj\Models\Authorization; use Modules\Lpj\Models\JenisPenilaian; use Modules\Lpj\Models\Penilaian; use Modules\Lpj\Models\PenilaianTeam; @@ -376,6 +377,9 @@ class PenilaianController extends Controller $header = $headers[$type] ?? 'Pelaporan'; + if($header==='SLA') { + return view('lpj::penilaian.otorisator.index-sla', compact('header')); + } return view('lpj::penilaian.otorisator.index', compact('header')); } @@ -389,14 +393,32 @@ class PenilaianController extends Controller ]; $header = $headers[$type] ?? 'Pelaporan'; - $permohonan = Permohonan::find($id); - - return view('lpj::penilaian.otorisator.show', compact('permohonan', 'header')); + $authorization=null; + if($header === 'SLA') { + $authorization = Authorization::with(['user'])->find($id); + $permohonan = Permohonan::find($authorization->permohonan_id); + } else { + $permohonan = Permohonan::find($id); + } + if($header === 'SLA') { + return view('lpj::penilaian.otorisator.sla', compact('permohonan', 'header','authorization')); + } + return view('lpj::penilaian.otorisator.show', compact('permohonan', 'header','authorization')); } public function otorisatorUpdate(Request $request, $id, $context) { - $permohonan = Permohonan::find($id); + if($context==='SLA'){ + $authorization = Authorization::with(['user'])->find($id); + if (!$authorization) { + return response()->json([ + 'message' => 'Data authorization SLA tidak ditemukan.', + ], 404); + } + $permohonan = Permohonan::find($authorization->permohonan_id); + } else { + $permohonan = Permohonan::find($id); + } if (!$permohonan) { return response()->json([ 'message' => 'Data permohonan tidak ditemukan.', @@ -447,13 +469,41 @@ class PenilaianController extends Controller break; case 'sla': + if (Auth::user()->roles[0]->name === 'senior-officer') { + $authorization->update([ + 'status' => '3', + 'approve_so' => Auth::user()->id, + 'approve_so_at' => now(), + 'keterangan_so' => $request->message, + ]); + } elseif (Auth::user()->roles[0]->name === 'EO Appraisal' || Auth::user()->roles[0]->name === 'administrator') { + $status = '2'; + if(!in_array($permohonan->nulai_plafond_id,[1,4])){ + $status = '1'; + $permohonan->update([ + 'status' => $authorization->request + ]); + } - $permohonan->update([ - 'status' => 'proses-sla', - 'keterangan' => $request->message, - ]); + $authorization->update([ + 'status' => $status, + 'approve_eo' => Auth::user()->id, + 'approve_eo_at' => now(), + 'keterangan_eo' => $request->message, + ]); + } elseif (Auth::user()->roles[0]->name === 'DD Appraisal') { + $authorization->update([ + 'status' => '1', + 'approve_dd' => Auth::user()->id, + 'approve_dd_at' => now(), + 'keterangan_dd' => $request->message, + ]); + + $permohonan->update([ + 'status' => $authorization->request + ]); + } break; - default: return response()->json([ diff --git a/app/Http/Controllers/PermohonanController.php b/app/Http/Controllers/PermohonanController.php index 45ce083..76f7ce3 100644 --- a/app/Http/Controllers/PermohonanController.php +++ b/app/Http/Controllers/PermohonanController.php @@ -69,6 +69,11 @@ $permohonan->toArray(), $filePath, ); + + $documents = DokumenJaminan::where('permohonan_id', $permohonan->id)->get(); + if(count($documents)<1){ + return redirect()->route('debitur.jaminan.create', array_merge(['permohonan_id'=>$permohonan->id],['id'=> $permohonan->debiture->id]))->with('success', 'Permohonan created successfully, Lengkapi data jaminan terlebih dahulu'); + } return redirect() ->route('permohonan.index')->with('success', 'Permohonan created successfully'); } catch (Exception $e) { @@ -151,6 +156,11 @@ } $permohonan->update($validate); + $documents = DokumenJaminan::where('permohonan_id', $permohonan->id)->get(); + if(count($documents)<1){ + return redirect()->route('debitur.jaminan.create', array_merge(['permohonan_id'=>$permohonan->id],['id'=> $permohonan->debiture->id]))->with('success', 'Permohonan created successfully, Lengkapi data jaminan terlebih dahulu'); + } + return redirect() ->route('permohonan.index')->with('success', 'Permohonan updated successfully'); } catch (Exception $e) { @@ -228,7 +238,7 @@ $filteredRecords = $query->count(); // Get the data for the current page - $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian'])->get(); + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian','documents'])->get(); // Calculate the page count $pageCount = ceil($totalRecords / $size); @@ -265,7 +275,7 @@ } // Retrieve data from the database - $query = Permohonan::query(); + $query = Permohonan::query()->with('documents')->has('documents', '>', 0)->where('status', '=', 'order'); // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { @@ -304,7 +314,7 @@ $filteredRecords = $query->count(); // Get the data for the current page - $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->where('status', '=', 'order')->get( + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get( ); // Calculate the page count diff --git a/app/Http/Controllers/SLAController.php b/app/Http/Controllers/SLAController.php index f411dc4..2c70d1d 100644 --- a/app/Http/Controllers/SLAController.php +++ b/app/Http/Controllers/SLAController.php @@ -4,9 +4,11 @@ namespace Modules\Lpj\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\Request; +use Modules\Lpj\Models\Authorization; class SLAController extends Controller { + public $user; /** * Display a listing of the resource. */ @@ -62,4 +64,74 @@ class SLAController extends Controller { // } + + public function dataForDatatables(Request $request) + { + if (is_null($this->user) || !$this->user->can('debitur.view')) { + // abort(403, 'Sorry! You are not allowed to view users.'); + } + + $query = Authorization::query()->with('permohonan.debiture','user','approveSo','approveEo','approveDd'); + + // Pencarian berdasarkan parameter search + if ($request->has('search') && !empty($request->get('search'))) { + $search = $request->get('search'); + $query->where(function ($q) use ($search) { + $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%'); + $q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('jenisPenilaian', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhere('status', 'LIKE', '%' . $search . '%'); + }); + } + + // Sorting berdasarkan sortField dan sortOrder + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + // Hitung total records + $totalRecords = $query->count(); + + // Pagination (default page size 10) + $size = $request->get('size', 10); + if ($size == 0) { + $size = 10; + } + + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page', 1); + $offset = ($page - 1) * $size; + + $query->skip($offset)->take($size); + } + + // Filtered records + $filteredRecords = $query->count(); + + // Ambil data dengan relasi + $data = $query->get(); + + + // Hitung jumlah halaman + $pageCount = ceil($totalRecords / $size); + + // Ambil current page + $currentPage = max(1, $request->get('page', 1)); + + // Return JSON response + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); + } } diff --git a/app/Models/Authorization.php b/app/Models/Authorization.php new file mode 100644 index 0000000..9249c73 --- /dev/null +++ b/app/Models/Authorization.php @@ -0,0 +1,71 @@ + 'boolean', + 'approve_eo' => 'boolean', + 'approve_dd' => 'boolean', + 'approve_so_at' => 'datetime', + 'approve_eo_at' => 'datetime', + 'approve_dd_at' => 'datetime', + ]; + + /** + * Get the permohonan that owns the authorization. + */ + public function permohonan(): BelongsTo + { + return $this->belongsTo(Permohonan::class); + } + + /** + * Get the user that owns the authorization. + */ + public function user(): BelongsTo + { + return $this->belongsTo(User::class); + } + + public function approveEo(){ + return $this->belongsTo(User::class, 'approve_eo', 'id'); + } + + public function approveDd(){ + return $this->belongsTo(User::class, 'approve_dd', 'id'); + } + + public function approveSo(){ + return $this->belongsTo(User::class, 'approve_so', 'id'); + } +} diff --git a/database/migrations/2025_01_01_101141_create_authorizations_table.php b/database/migrations/2025_01_01_101141_create_authorizations_table.php new file mode 100644 index 0000000..220601a --- /dev/null +++ b/database/migrations/2025_01_01_101141_create_authorizations_table.php @@ -0,0 +1,48 @@ +id(); + $table->foreignId('permohonan_id')->constrained('permohonan')->onDelete('cascade'); + $table->string('jenis'); + + // SO fields + $table->boolean('approve_so')->default(false); + $table->string('status_so')->nullable(); + $table->text('keterangan_so')->nullable(); + $table->timestamp('approve_so_at')->nullable(); + + // EO fields + $table->boolean('approve_eo')->default(false); + $table->string('status_eo')->nullable(); + $table->text('keterangan_eo')->nullable(); + $table->timestamp('approve_eo_at')->nullable(); + + // DD fields + $table->boolean('approve_dd')->default(false); + $table->string('status_dd')->nullable(); + $table->text('keterangan_dd')->nullable(); + $table->timestamp('approve_dd_at')->nullable(); + + $table->string('status')->nullable(); + $table->text('keterangan')->nullable(); + $table->text('request')->nullable(); + $table->text('alasan')->nullable(); + $table->foreignId('user_id')->nullable()->constrained('users')->onDelete('set null'); + + $table->timestamps(); + }); + } + + public function down() + { + Schema::dropIfExists('authorizations'); + } + }; diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index 3f85357..f3a4db8 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -16,6 +16,16 @@

+
+ +
+

+ {{ $permohonan->nomor_registrasi ?? "-" }} +

+
+
`; return buttons; }, diff --git a/resources/views/penilaian/otorisator/sla.blade.php b/resources/views/penilaian/otorisator/sla.blade.php new file mode 100644 index 0000000..382f6bd --- /dev/null +++ b/resources/views/penilaian/otorisator/sla.blade.php @@ -0,0 +1,239 @@ +@extends('layouts.main') + +@php + if($header=="sla"){ + $header = "Freze SLA"; + } +@endphp + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName(), $permohonan->id, $header) }} +@endsection + +@section('content') +
+ + @php + $dataHeader = strtolower($header ?? ''); + @endphp + + @include('lpj::component.detail-jaminan', ['backLink' => 'otorisator.' . $dataHeader . '.index']) + + @foreach ($permohonan->debiture->documents as $dokumen) +
+
+

+ Team +

+
+ +
+
+ @php + $surveyor = $permohonan->penilaian->userPenilai->where('role', 'surveyor')->first(); + $penilai = $permohonan->penilaian->userPenilai->where('role', 'penilai')->first(); + + @endphp + +
+ +

+ {{ $surveyor->userPenilaiTeam->name }} +

+ +

{{ checkRegionUserName($surveyor->userPenilaiTeam->id) }} +

+
+ +
+ +

+ {{ $penilai->userPenilaiTeam->name }} +

+ +

+ {{ checkRegionUserName($penilai->userPenilaiTeam->id) }} +

+
+
+
+ @php + $inspeksiId = null; + foreach ($dokumen->inspeksi as $item) { + $inspeksiId = $item->id; + } + @endphp +
+ @endforeach + +
+
+

+ Alasan Freze SLA +

+
+ +
+ {{ $authorization->alasan ?? ''}} + + + + + + + + + + + + + + + +
Pemohon{{ $authorization->user->name }}
Alasan{{ $authorization->alasan }}
Tanggal Permohonan{{ formatTanggalIndonesia($authorization->created_at,1) }}
+
+
+ + @php + if($header=="SLA"){ + $header = "Freze SLA"; + } + @endphp + + @if($authorization->approve_so) +
+
+

+ Approval +

+
+ +
+ + + + + + + + @if($authorization->approve_eo!=null) + + + + + + @endif + @if(in_array($authorization->nilai_eafond_id,[1,4]) && $authorization->approve_dd!=null) + + + + + + @endif + +
Diperiksa Oleh{{ getUser($authorization->approve_so)->name ?? 'N/A' }}{{ $authorization->approve_so_at ? formatTanggalIndonesia($authorization->approve_so_at,1) : 'N/A' }}
Disetujui Oleh (EO){{ getUser($authorization->approve_eo)->name ?? 'N/A' }}{{ $authorization->approve_eo_at ? formatTanggalIndonesia($authorization->approve_eo_at,1) : 'N/A' }}
Disetujui Oleh (DD){{ getUser($authorization->approve_dd)->name ?? 'N/A' }}{{ $authorization->approve_dd_at ? formatTanggalIndonesia($authorization->approve_dd_at,1) : 'N/A' }}
+
+
+ @endif +
+
+
+ @php + $inspeksiId = null; + $documentId = null; + $jenisJaminanId = null; + foreach ($permohonan->debiture->documents as $item) { + foreach ($item->inspeksi as $key => $value) { + $inspeksiId = $item->id; + } + $documentId = $item->id; + $jenisJaminanId = $item->jenis_jaminan_id; + } + @endphp + + @if ($dataHeader == 'pelaporan') + + Lihat Laporan + + @endif + + @if(Auth::user()->hasAnyRole(['administrator','senior-officer']) && $authorization->approve_so==null) + + @endif + + @if(Auth::user()->hasAnyRole(['administrator','EO Appraisal']) && $authorization->approve_so && $authorization->approve_eo==null) + + @endif + + @if(Auth::user()->hasAnyRole(['administrator','DD Appraisal']) && $authorization->approve_eo && $authorization->approve_dd==null && in_array($permohonan->nilai_plafond_id,[1,4])) + + @endif +
+
+
+@endsection + +@push('scripts') + +@endpush diff --git a/resources/views/permohonan/index.blade.php b/resources/views/permohonan/index.blade.php index a1093d8..f0e5cdd 100644 --- a/resources/views/permohonan/index.blade.php +++ b/resources/views/permohonan/index.blade.php @@ -188,7 +188,12 @@ status: { title: 'Status', render: (item, data) => { - return `${data.status}`; + console.log(data.documents.length); + if(data.documents.length > 0) { + return `${data.status}`; + } + return `Lengkapi Aset Jaminan`; + } }, keterangan: { diff --git a/resources/views/spk/documentSPK.blade.php b/resources/views/spk/documentSPK.blade.php index b1e3a0e..08460ad 100644 --- a/resources/views/spk/documentSPK.blade.php +++ b/resources/views/spk/documentSPK.blade.php @@ -105,43 +105,76 @@ : - @foreach ($data->dokumenjaminan as $dokumen_jaminans) - @if ($dokumen->id== $dokumen_jaminans->id) + @php + $excludedDocuments = ['Bukti Bayar', 'NPWP']; // Add more document types to exclude as needed + @endphp - @php $details = $dokumen_jaminans->detail; @endphp - @foreach ($details as $index => $detail) - @if($detail->dokumen_nomor) - @foreach(json_decode($detail->dokumen_nomor) as $item) - {{ $item }}
- @endforeach - @endif - @endforeach + @foreach ($data->dokumenjaminan as $dokumen_jaminans) + @if ($dokumen->id== $dokumen_jaminans->id) + @php + $shouldExclude = false; + $shouldExcludeNomor = false; + foreach ($excludedDocuments as $excludedDoc) { + if (str_contains(strtolower($dokumen_jaminans->name), strtolower($excludedDoc))) { + $shouldExclude = true; + break; + } + } + @endphp + + @if(!$shouldExclude) + @php $details = $dokumen_jaminans->detail; @endphp + @foreach ($details as $index => $detail) + @php + $shouldExcludeNomor = false; + foreach ($excludedDocuments as $excludedDoc) { + if (str_contains(strtolower($detail->dokumen_nomor), strtolower($excludedDoc))) { + $shouldExcludeNomor = true; + break; + } + } + @endphp + @if(!$shouldExcludeNomor) + @if($detail->dokumen_nomor) + @foreach(json_decode($detail->dokumen_nomor) as $item) + {{ $item }}
+ @endforeach + @endif + @endif + @endforeach + @endif @endif @endforeach - - Fee / Harga Penilaian - : - - {{ formatRupiah($penawaran->detail_penawaran_biaya_penawaran) }} (include ppn 11%) - - - - Jangka Waktu - : - {{ $jangka_waktu }} - - - i - - Resume akan disampaikan dalam {{ $persetujuan_sla_resume }} hari kerja terhitung setelah proses inspeksi dilaksanakan serta data yang diperlukan diterima dan lengkap, kecuali terdapat kesepakatan lain antara kedua belah pihak. - - - - ii - - Laporan penilaian lengkap akan disampaikan dalam {{ $persetujuan_sla_final }} hari kerja sesuai proposal penawaran. - - +
+ + + + Fee / Harga Penilaian + : + + {{ formatRupiah($penawaran->detail_penawaran_biaya_penawaran) }} (include ppn 11%) + + + + Jangka Waktu + : + {{ $jangka_waktu }} + + + i + + Resume akan disampaikan dalam + {{ $persetujuan_sla_resume }} hari kerja terhitung setelah proses inspeksi dilaksanakan serta data yang diperlukan diterima dan lengkap, kecuali terdapat kesepakatan lain antara kedua belah pihak. + + + + ii + + Laporan penilaian lengkap akan disampaikan dalam + {{ $persetujuan_sla_final }} hari kerja sesuai proposal penawaran. + + + @endforeach

Dengan ketentuan dalam melaksanakan pekerjaan sebagai berikut:

diff --git a/resources/views/spk/edit.blade.php b/resources/views/spk/edit.blade.php index 916d3fe..0f9f699 100644 --- a/resources/views/spk/edit.blade.php +++ b/resources/views/spk/edit.blade.php @@ -122,17 +122,44 @@ : - @foreach ($data->dokumenjaminan as $dokumen_jaminans) - @if ($dokumen->id== $dokumen_jaminans->id) + @php + $excludedDocuments = ['Bukti Bayar', 'NPWP']; // Add more document types to exclude as needed + @endphp - @php $details = $dokumen_jaminans->detail; @endphp - @foreach ($details as $index => $detail) - @if($detail->dokumen_nomor) - @foreach(json_decode($detail->dokumen_nomor) as $item) - {{ $item }}
- @endforeach - @endif - @endforeach + @foreach ($data->dokumenjaminan as $dokumen_jaminans) + @if ($dokumen->id== $dokumen_jaminans->id) + @php + $shouldExclude = false; + $shouldExcludeNomor = false; + foreach ($excludedDocuments as $excludedDoc) { + if (str_contains(strtolower($dokumen_jaminans->name), strtolower($excludedDoc))) { + $shouldExclude = true; + break; + } + } + @endphp + + @if(!$shouldExclude) + @php $details = $dokumen_jaminans->detail; @endphp + @foreach ($details as $index => $detail) + @php + $shouldExcludeNomor = false; + foreach ($excludedDocuments as $excludedDoc) { + if (str_contains(strtolower($detail->dokumen_nomor), strtolower($excludedDoc))) { + $shouldExcludeNomor = true; + break; + } + } + @endphp + @if(!$shouldExcludeNomor) + @if($detail->dokumen_nomor) + @foreach(json_decode($detail->dokumen_nomor) as $item) + {{ $item }}
+ @endforeach + @endif + @endif + @endforeach + @endif @endif @endforeach
diff --git a/routes/web.php b/routes/web.php index 9d41ae1..bcb087d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -521,6 +521,9 @@ Route::middleware(['auth'])->group(function () { ); Route::get('sla', [PenilaianController::class, 'otorisator'])->name('sla.index')->defaults('type', 'sla'); + Route::get('/datatables/sla', [SLAController::class, 'dataForDatatables'])->name( + 'sla.datatables', + ); Route::get('/datatables/{otorisator}', [PenilaianController::class, 'dataForAuthorization'])->name( 'datatables', );