Merge branch 'staging' of https://git.putrakuningan.com/daengdeni/lpj into tender

This commit is contained in:
2024-11-01 11:05:15 +07:00
11 changed files with 1040 additions and 602 deletions

View File

@@ -3,6 +3,7 @@
namespace Modules\Lpj\Http\Controllers;
use App\Http\Controllers\Controller;
use Barryvdh\DomPDF\Facade\Pdf;
use Exception;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
@@ -304,4 +305,19 @@
return redirect()->route('authorization.index')->with('success', 'Permohonan updated successfully');
}
public function show($id)
{
$permohonan = Permohonan::find($id);
return view('lpj::permohonan.show', compact('permohonan'));
}
public function print($id){
$permohonan = Permohonan::find($id);
return view('lpj::permohonan.print', compact('permohonan'));
// $pdf = Pdf::loadView('lpj::permohonan.print', compact('permohonan'));
// return $pdf->stream();
}
}

View File

@@ -74,7 +74,9 @@
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
@if(isset($detail->dokumen_jaminan))
@if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo']))
<a href="{{ route('debitur.jaminan.download',['id'=>$permohonan->debiture->id,'dokumen'=>$detail->id]) }}" class="badge badge-sm badge-outline mt-2 badge-info"><i class="ki-filled ki-cloud-download mr-2"></i> Download</a>
) @endif
<span class="badge badge-sm badge-outline badge-warning mt-2" onclick="viewPDF('{{ Storage::url($detail->dokumen_jaminan) }}')"><i class="ki-filled ki-eye mr-2"></i>Preview</span>
@endif
</td>
@@ -96,28 +98,4 @@
</div>
</div>
<!-- Modal for PDF viewing -->
<div id="pdfModal" class="fixed inset-0 bg-gray-800 bg-opacity-75 flex items-center justify-center hidden w-full">
<div class="bg-white rounded-lg overflow-hidden shadow-xl transform transition-all min-w-3xl w-[1500px] h-[1200px]">
<div class="p-4 h-full">
<button onclick="closePDFModal()" class="float-right text-2xl">
<i class="ki-filled ki-cross-square text-red-600"></i>
</button>
<div id="pdfViewer" class="h-full"></div>
</div>
</div>
</div>
@push('scripts')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.3.0/pdfobject.min.js"></script>
<script>
function viewPDF(url) {
PDFObject.embed(url, "#pdfViewer");
document.getElementById('pdfModal').classList.remove('hidden');
}
function closePDFModal() {
document.getElementById('pdfModal').classList.add('hidden');
}
</script>
@endpush
@include('lpj::component.pdfviewer')

View File

@@ -0,0 +1,25 @@
<!-- Modal for PDF viewing -->
<div id="pdfModal" class="fixed inset-0 bg-gray-800 bg-opacity-75 flex items-center justify-center hidden w-full">
<div class="bg-white rounded-lg overflow-hidden shadow-xl transform transition-all min-w-3xl w-[1500px] h-[1200px]">
<div class="p-4 h-full">
<button onclick="closePDFModal()" class="float-right text-2xl">
<i class="ki-filled ki-cross-square text-red-600"></i>
</button>
<div id="pdfViewer" class="h-full"></div>
</div>
</div>
</div>
@push('scripts')
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfobject/2.3.0/pdfobject.min.js"></script>
<script>
function viewPDF(url) {
PDFObject.embed(url, "#pdfViewer");
document.getElementById('pdfModal').classList.remove('hidden');
}
function closePDFModal() {
document.getElementById('pdfModal').classList.add('hidden');
}
</script>
@endpush

View File

@@ -23,9 +23,11 @@
</div>
<div class="menu inline-flex" data-menu="true">
<div class="flex flex-nowrap justify-center gap-1.5">
@if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo']))
<a href="{{ route('debitur.jaminan.bulk.download',['id' => $debitur->id,'jaminan' => $document->id]) }}" class="btn btn-sm btn-icon btn-dark">
<i class="ki-outline ki-cloud-download"></i>
</a>
@endif
<a href="{{ route('debitur.jaminan.edit',['id' => $debitur->id,'jaminan' => $document->id]) }}" class="btn btn-sm btn-icon btn-outline btn-info">
<i class="ki-outline ki-notepad-edit"></i>
</a>
@@ -68,7 +70,12 @@
<span class="text-2xs text-gray-600 uppercase">
{{ $loop->index+1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</span>
<a href="{{ route('debitur.jaminan.download',['id'=>$debitur->id, 'dokumen'=>$detail->id]) }}" class="badge badge-sm badge-outline">{{ basename($detail->dokumen_jaminan) }} <i class="ki-filled ki-cloud-download"></i></a>
<div>
@if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo']))
<a href="{{ route('debitur.jaminan.download',['id'=>$debitur->id,'dokumen'=>$detail->id]) }}" class="badge badge-sm badge-outline mt-2 badge-info"><i class="ki-filled ki-cloud-download mr-2"></i> Download</a>
@endif
<span class="badge badge-sm badge-outline badge-warning mt-2" onclick="viewPDF('{{ Storage::url($detail->dokumen_jaminan) }}')"><i class="ki-filled ki-eye mr-2"></i>Preview</span>
</div>
</div>
<div class="border-t border-gray-300 border-dashed">
</div>
@@ -129,6 +136,7 @@
</a>
</div>
@include('lpj::component.pdfviewer')
@push('scripts')
<script type="text/javascript">

View File

@@ -148,7 +148,7 @@
Catatan
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea" rows="3" type="number" id="address" name="address"></textarea>
<textarea class="textarea" rows="3" type="number" id="keterangan" name="keterangan"></textarea>
</div>
</div>
</div>

View File

@@ -155,38 +155,15 @@
@enderror
</div>
</div>
@if($permohonan->status=='revisi')
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Status Permohonan
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('branch_id') border-danger bg-danger-light @enderror" name="status" id="status">
<option value="">Pilih Status Permohonan</option>
@if(isset($status))
@foreach($status as $row)
@if(isset($permohonan))
<option value="{{ $row->slug }}" {{ isset($permohonan->status) && $permohonan->status == $row->slug ?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->slug }}">
{{ $row->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('status')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
Catatan : <br>
<em class="text-red-500">{{ $permohonan->keterangan }}</em>
</div>
</div>
@endif
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
{{ $permohonan->status=='revisi' ? 'Submit Ulang' : 'Save' }}
</button>
</div>
</form>

View File

@@ -63,6 +63,10 @@
<span class="sort"> <span class="sort-label"> Status </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="keterangan">
<span class="sort"> <span class="sort-label"> Keterangan </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th>
</tr>
</thead>
@@ -158,7 +162,10 @@
debitur_id: {
title: 'Debitur',
render: (item, data) => {
if(data.debiture) {
return `${data.debiture.name}`;
}
return "-";
},
},
tujuan_penilaian_id: {
@@ -170,11 +177,20 @@
status: {
title: 'Status'
},
keterangan: {
title: 'Keterangan'
},
actions: {
title: 'Status',
title: 'Actions',
render: (item, data) => {
return `
<div class="flex flex-nowrap justify-center gap-1.5">
var actionHtml = `
<div class="flex flex-nowrap justify-center gap-1.5">`;
if(data.status !== 'order'){
actionHtml += `<a class="btn btn-sm btn-outline btn-success" href="permohonan/${data.id}">
<i class="ki-filled ki-document"></i>
</a>`;
}
actionHtml += `
<a class="btn btn-sm btn-outline btn-info" href="permohonan/${data.id}/edit">
<i class="ki-outline ki-notepad-edit"></i>
</a>
@@ -182,6 +198,8 @@
<i class="ki-outline ki-trash"></i>
</a>
</div>`;
return actionHtml;
},
}
},

View File

@@ -0,0 +1,221 @@
@extends('layouts.auth')
@section('content')
<div class="w-full gap-5 mx-auto" id="printtable">
<div class="gap-5 w-full">
<div class="card">
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900 w-1/2">
Nomor Register Permohonan
</h3>
<span class="text-md font-medium text-gray-900 w-1/2">
: {{ $permohonan->nomor_registrasi }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900 w-1/2">
Pemohon
</h3>
<span class="text-md font-medium text-gray-900 w-1/2">
: {{ $permohonan->user->nik }} | {{ $permohonan->user->name }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900 w-1/2">
Tujan Permohonan
</h3>
<span class="text-md font-medium text-gray-900 w-1/2">
: {{ $permohonan->tujuanPenilaian->name }}
</span>
</div>
</div>
<div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900 w-1/2">
Status Permohonan
</h3>
<span class="text-md font-medium text-gray-900 w-1/2">
: {{ ucwords($permohonan->status) }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900 w-1/2">
Cabang Pemohon
</h3>
<span class="text-md font-medium text-gray-900 w-1/2">
: {{ $permohonan->user->branch->name }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900 w-1/2">
Tanggal Permohonan
</h3>
<span class="text-md font-medium text-gray-900 w-1/2">
: {{ formatTanggalIndonesia($permohonan->created_at) }}
</span>
</div>
</div>
</div>
</div>
</div>
<div class="gap-5 w-full grid grid-cols-3 mt-5">
<div>
<div class="card min-w-full">
<div class="card-header" id="advanced_settings_appearance">
<h3 class="card-title">
1. Fasilitas Kredit
</h3>
</div>
<div class="card-body lg:py-7.5">
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900">
Jenis Fasilitas
</h3>
<span class="text-md font-medium text-gray-900">
: {{ $permohonan->jenisFasilitasKredit->name }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900">
Nilai Plafond
</h3>
<span class="text-md font-medium text-gray-900">
: {{ $permohonan->nilaiPlafond->name }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900">
Nilai NJOP
</h3>
<span class="text-md font-medium text-gray-900">
: {{ $permohonan->nilai_njop }}
</span>
</div>
</div>
</div>
<div class="card mt-5 min-w-full">
<div class="card-header">
<h3 class="card-title">
2. Identitas Debutur
</h3>
</div>
<div class="card-table scrollable-x-auto pb-3">
<div class="grid grid-cols-1 xl:grid-cols-2 gap-5 lg:gap-7.5">
<div class="col-span-1">
<table class="table align-middle text-sm text-gray-500">
<tr>
<td class="py-2 text-gray-600 font-normal">
Name
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->name ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
Cabang
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->branch->name ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
CIF
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->cif ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
Address
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
{{ $permohonan->debiture->address ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
&nbsp;
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
{{ $permohonan->debiture->village->name ?? "" }}, {{ $permohonan->debiture->district->name ?? "" }}, {{ $permohonan->debiture->city->name ?? "" }}, {{ $permohonan->debiture->province->name ?? "" }} - {{ $permohonan->debiture->village->postal_code ?? "" }}
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="col-span-2">
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">
Data Jaminan
</h3>
</div>
<div class="card-table scrollable-x-auto pb-3">
@foreach($permohonan->debiture->documents as $dokumen)
<div class="card-body lg:py-7.5">
<span class="text-base text-gray-900 font-bold mb-5">
Jaminan {{ $loop->index + 1 }}
</span>
<div class="mb-5 grid grid-cols-2 mt-5">
<h3 class="text-md text-gray-900">
Pemilik Jaminan
</h3>
<span class="text-md font-medium text-gray-900">
: {{ $dokumen->pemilik->name?? "" }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900">
Jenis Jaminan:
</h3>
<span class="text-md font-medium text-gray-900">
: {{ $dokumen->jenisJaminan->name?? "" }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900">
Hubungan Pemilik Jaminan:
</h3>
<span class="text-md font-medium text-gray-900">
: {{ $dokumen->pemilik->hubungan_pemilik->name?? "" }}
</span>
</div>
<div class="mb-5 grid grid-cols-2">
<h3 class="text-md text-gray-900">
Alamat Pemilik Jaminan:
</h3>
<span class="text-md font-medium text-gray-900">
: {{ $dokumen->pemilik->address ?? ""}},
<br> {{ $dokumen->pemilik->village->name ?? "" }}, {{ $dokumen->pemilik->district->name ?? "" }}, {{ $dokumen->pemilik->city->name ?? "" }}, {{ $dokumen->pemilik->province->name ?? "" }} - {{ $dokumen->pemilik->village->postal_code ?? "" }}
</span>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
@endsection
@push('scripts')
<script type="module">
var printtable = document.getElementById('printtable');
window.print(printtable);
</script>
@endpush

View File

@@ -0,0 +1,189 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="flex gap-5 flex-row w-full">
<div class="card flex-1">
<div class="card-header" id="advanced_settings_appearance">
<h3 class="card-title">
Data Permohonan
</h3>
</div>
<div class="card-body lg:py-7.5 grid grid-cols-3">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Nomor Register Permohonan:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->nomor_registrasi }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Pemohon:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->user->nik }} | {{ $permohonan->user->name }} | {{ $permohonan->user->branch->name }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Tujan Permohonan:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->tujuanPenilaian->name }}
</span>
</div>
</div>
</div>
<div class="card flex-1">
<div class="card-header" id="advanced_settings_appearance">
<h3 class="card-title">
Fasilitas Kredit
</h3>
</div>
<div class="card-body lg:py-7.5 grid grid-cols-3">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Jenis Fasilitas
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->jenisFasilitasKredit->name }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Nilai Plafond:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->nilaiPlafond->name }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Nilai NJOP:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->nilai_njop }}
</span>
</div>
</div>
</div>
</div>
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">
Detail Debutur
</h3>
</div>
<div class="card-table scrollable-x-auto pb-3">
<div class="grid grid-cols-1 xl:grid-cols-2 gap-5 lg:gap-7.5">
<div class="col-span-1">
<table class="table align-middle text-sm text-gray-500">
<tr>
<td class="py-2 text-gray-600 font-normal">
Name
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->name ?? "" }}
</td>
</tr>
<tr>
<td class="py-3">
Email
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $permohonan->debiture->email ?? "" }}
</td>
</tr>
<tr>
<td class="py-3">
Phone
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $permohonan->debiture->phone ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
Address
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
{{ $permohonan->debiture->address ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
&nbsp;
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
{{ $permohonan->debiture->village->name ?? "" }}, {{ $permohonan->debiture->district->name ?? "" }}, {{ $permohonan->debiture->city->name ?? "" }}, {{ $permohonan->debiture->province->name ?? "" }} - {{ $permohonan->debiture->village->postal_code ?? "" }}
</td>
</tr>
</table>
</div>
<div class="col-span-1">
<table class="table align-middle text-sm text-gray-500">
<tr>
<td class="py-3 text-gray-600 font-normal">
Cabang
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->branch->name ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
CIF
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->cif ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
Nomor Rekening
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
{{ $permohonan->debiture->nomor_rekening ?? "" }}
</td>
</tr>
<tr>
<td class="py-3">
NPWP
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $permohonan->debiture->npwp ?? "" }}
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
@include('lpj::component.detail-jaminan')
<div class="card">
<form action="{{ route('permohonan.print', $permohonan->id) }}" method="GET">
<input type="hidden" name="_method" value="PUT">
@csrf
<div class="card-footer flex justify-end">
<button type="submit" name="status" value="print" class="btn btn-success">
<i class="ki-filled ki-printer mr-2"></i> Print Laporan
</button>
</div>
</form>
</div>
</div>
@endsection

View File

@@ -277,6 +277,12 @@ Breadcrumbs::for('permohonan.index', function (BreadcrumbTrail $trail) {
$trail->push('Permohonan', route('permohonan.index'));
});
Breadcrumbs::for('permohonan.show', function (BreadcrumbTrail $trail) {
$trail->parent('permohonan.index');
$trail->push('Show Permohonan');
});
Breadcrumbs::for('permohonan.create', function (BreadcrumbTrail $trail) {
$trail->parent('permohonan.index');
$trail->push('Tambah Permohonan', route('permohonan.create'));
@@ -530,7 +536,6 @@ Breadcrumbs::for('resume.show', function (BreadcrumbTrail $trail) {
$trail->push('Detail');
});
Breadcrumbs::for('penilai', function (BreadcrumbTrail $trail) {
$trail->push('Penilai', route('penilai.index'));
});

View File

@@ -344,6 +344,7 @@ Route::middleware(['auth'])->group(function () {
Route::get('restore/{id}', [PermohonanController::class, 'restore'])->name('restore');
Route::get('datatables', [PermohonanController::class, 'dataForDatatables'])->name('datatables');
Route::get('export', [PermohonanController::class, 'export'])->name('export');
Route::get('print/{id}', [PermohonanController::class, 'print'])->name('print');
});
Route::name('spk.')->prefix('spk')->group(function () {