Merge branch 'staging' into feature/senior-officer

This commit is contained in:
majid
2024-11-05 08:38:22 +07:00
130 changed files with 8934 additions and 2169 deletions

View File

@@ -0,0 +1,8 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render('sla') }}
@endsection
@section('content')
@endsection

View File

@@ -1,4 +1,45 @@
<script>
<style>
.notification_success {
position: fixed;
top: 20px;
right: 20px;
background-color: #51a351;
color: white;
padding: 15px;
border-radius: 5px;
z-index: 1000;
transition: opacity 0.5s;
box-shadow: 0 0 12px #000;
cursor: pointer;
}
.notification_error {
position: fixed;
top: 20px;
right: 20px;
background-color: #AE342C;
color: white;
padding: 15px;
border-radius: 5px;
z-index: 1000;
transition: opacity 0.5s;
box-shadow: 0 0 12px #000;
cursor: pointer;
}
</style>
<div id="notificationSuccess" class="notification_success" style="display: none;">
<div style="display: flex; align-items: center;">
<img style="margin-right: 10px;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==">
<span id="notification-message-success"></span>
</div>
</div>
<div id="notificationError" class="notification_error" style="display: none;">
<div style="display: flex; align-items: center;">
<img style="margin-right: 10px;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=">
<span id="notification-message-error"></span>
</div>
</div>
<script tipe="module">
function removeErrorCssMsg() {
$(".inputku").removeClass("border-danger");
$("em").text('');
@@ -99,4 +140,56 @@ function numbersonly(ini, e){
}
}
function toastrku(flag, message)
{
$.each(message, function (key, value) {
var msg = '';
var lengthnya = value.length;
for (let i = 0; i < lengthnya; i++)
{
if(0!=i && (lengthnya-1)==i)
msg+=", ";
msg+=value[i];
}
if('success'==flag)
toastrSuccessBuild(msg);
else if('error' ==flag)
toastrErrorBuild(msg);
});
}
function toastrSuccessBuild(message) {
const notification = document.getElementById('notificationSuccess');
const messageElement = document.getElementById('notification-message-success');
messageElement.textContent = message;
notification.style.display = 'block';
notification.style.opacity = '1';
setTimeout(() => {
notification.style.opacity = '0';
setTimeout(() => {
notification.style.display = 'none';
}, 500);
}, 3000);
}
function toastrErrorBuild(message) {
const notification = document.getElementById('notificationError');
const messageElement = document.getElementById('notification-message-error');
messageElement.textContent = message;
notification.style.display = 'block';
notification.style.opacity = '1';
setTimeout(() => {
notification.style.opacity = '0';
setTimeout(() => {
notification.style.display = 'none';
}, 500);
}, 3000);
}
</script>

View File

@@ -1,58 +0,0 @@
@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">
@if(isset($branch->id))
<form action="{{ route('basicdata.branch.update', $branch->id) }}" method="POST">
<input type="hidden" name="id" value="{{ $branch->id }}">
@method('PUT')
@else
<form method="POST" action="{{ route('basicdata.branch.store') }}">
@endif
@csrf
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
{{ isset($branch->id) ? 'Edit' : 'Tambah' }} Branch
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('basicdata.branch.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $branch->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $branch->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
</form>
</div>
@endsection

View File

@@ -0,0 +1,101 @@
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">
Data Jaminan
</h3>
</div>
<div data-accordion="true">
@foreach($permohonan->debiture->documents as $dokumen)
<div class="accordion-item [&:not(:last-child)]:border-b border-b-gray-200" data-accordion-item="true" id="accordion_detail_jaminan">
<button class="accordion-toggle py-4 group mx-8" data-accordion-toggle="#accordion_detail_jaminan_{{ $loop->index }}">
<span class="text-base text-gray-900 font-medium">
Jaminan {{ $loop->index + 1 }}
</span>
<i class="ki-outline ki-plus text-gray-600 text-2sm accordion-active:hidden block">
</i>
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
</i>
</button>
<div class="accordion-content hidden" id="accordion_detail_jaminan_{{ $loop->index }}">
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->name?? "" }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Jenis Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->jenisJaminan->name?? "" }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Hubungan Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->hubungan_pemilik->name?? "" }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Alamat Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $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>
<div class="card-table scrollable-x-auto pb-3">
<a href="{{ route('debitur.jaminan.bulk.download',['id' => $permohonan->debiture->id,'jaminan' => $dokumen->id]) }}" class="ml-6 btn btn-dark dark:btn-light">
<i class="ki-outline ki-cloud-download"></i> Download Semua Dokumen
</a>
<table class="table align-middle text-sm text-gray-500">
@foreach($dokumen->detail as $detail)
<tr>
<td class="py-2 text-gray-600 font-normal max-w-[100px]">
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $detail->name ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Dokumen Jaminan
</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>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Keterangan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $detail->keterangan ?? "" }}
</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
@endforeach
</div>
</div>
@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

@@ -1,69 +0,0 @@
@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">
@if(isset($currency->id))
<form action="{{ route('basicdata.currency.update', $currency->id) }}" method="POST">
<input type="hidden" name="id" value="{{ $currency->id }}">
@method('PUT')
@else
<form method="POST" action="{{ route('basicdata.currency.store') }}">
@endif
@csrf
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
{{ isset($currency->id) ? 'Edit' : 'Tambah' }} Currency
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('basicdata.currency.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $currency->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $currency->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Decimal Places
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('decimal_places') border-danger bg-danger-light @enderror" type="number" min="0" max="3" name="decimal_places" value="{{ $currency->decimal_places ?? '' }}">
@error('decimal_places')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
</form>
</div>
@endsection

View File

@@ -22,9 +22,10 @@
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<select class="input tomselect w-full @error('branch_id') border-danger bg-danger-light @enderror" name="pemilik_jaminan_id" id="pemilik_jaminan_id">
<select onchange="changePemilikJaminan()" class="input tomselect w-full @error('branch_id') border-danger bg-danger-light @enderror" name="pemilik_jaminan_id" id="pemilik_jaminan_id">
<option value="">Pilih Pemilik Jaminan</option>
<option value="0">Sama Dengan Debitur</option>
<option value="00">Tidak Sama Dengan Debitur</option>
@if(isset($pemilikJaminan))
@foreach($pemilikJaminan as $pemilik)
@if(isset($document))
@@ -39,19 +40,71 @@
@endforeach
@endif
</select>
@if(isset($document->id))
<a href="{{ route('debitur.pemilik.create',$debitur->id) }}?from=update-document&document={{ $document->id }}" class="btn btn-light">
<i class="ki-outline ki-plus-squared"></i> Tambah Pemilik Jaminan
</a>
@else
<a href="{{ route('debitur.pemilik.create',$debitur->id) }}?from=create-document" class="btn btn-light">
<i class="ki-outline ki-plus-squared"></i> Tambah Pemilik Jaminan
</a>
@endif
</div>
@error('pemilik_jaminan_id')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<fieldset id="pemilik_jaminan" class="hidden border border-solid border-gray-300 p-3 w-full mt-5 grid gap-5">
<legend class="text-sm">Pemilik Jaminan</legend>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Hubungan Pemilik Jaminan
</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="hubungan_pemilik_jaminan_id" id="hubungan_pemilik_jaminan_id">
<option value="">Pilih Hubungan Pemilik Jaminan</option>
@if(isset($hubunganPemilik))
@foreach($hubunganPemilik as $hubungan)
@if(isset($pemilik))
<option value="{{ $hubungan->id }}" {{ isset($pemilik->hubungan_pemilik_jaminan_id) && $pemilik->hubungan_pemilik_jaminan_id == $hubungan->id?'selected' : '' }}>
{{ $hubungan->name }}
</option>
@else
<option value="{{ $hubungan->id }}">
{{ $hubungan->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('hubungan_pemilik_jaminan_id')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Nama Lengkap
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('pemilik_name') border-danger bg-danger-light @enderror" type="text " id="pemilik_name" name="pemilik_name" value="{{ $pemilik->name ?? '' }}" placeholder="Nama Pemilik Jaminan">
@error('pemilik_name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('nomor_id') border-danger bg-danger-light @enderror" type="number" name="nomor_id" value="{{ $debitur->nomor_id ?? '' }}" placeholder="Nomor ID/KTP">
@error('nomor_id')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
</div>
<div id="nama_sertifikat">
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
&nbsp;
</label>
<div class="flex flex-wrap items-baseline w-full">
<button type="button" id="tambah_sertifikat" class="btn btn-primary btn-xs">Tambah Nama di Sertifikat</button>
</div>
</div>
</fieldset>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
@@ -112,6 +165,18 @@
</div>
</div>
@if($detail->details)
@php $custom_field = json_decode($detail->details,true) @endphp
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 capitalize">
{{ str_replace('_',' ',$detail->jenisLegalitasJaminan->custom_field) }}
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input" type="text" name="custom_field[][$detail->jenisLegalitasJaminan->custom_field]" value="{{ $custom_field[$detail->jenisLegalitasJaminan->custom_field] }}">
</div>
</div>
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Keterangan
@@ -244,14 +309,69 @@
</form>
@push('scripts')
{{--Pemilik Jaminan--}}
<script>
document.addEventListener("DOMContentLoaded", function() {
const namaSertifikatDiv = document.getElementById("nama_sertifikat");
// Function to add delete event listeners to existing buttons
function addDeleteListeners() {
document.querySelectorAll(".delete-button").forEach(button => {
button.addEventListener("click", function() {
this.closest(".flex.items-baseline.flex-wrap.lg\\:flex-nowrap.gap-2\\.5.mb-5").remove();
});
});
}
// Add delete listeners to existing buttons
addDeleteListeners();
document.getElementById("tambah_sertifikat").addEventListener("click", function() {
const newDiv = document.createElement("div");
newDiv.className = "flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-5";
newDiv.innerHTML = `
<label class="form-label max-w-56">
Nama Lengkap
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="flex flex-wrap items-baseline w-full">
<input class="input" type="text" name="detail_sertifikat[name][]" value="" placeholder="Nama Pemilik Jaminan">
</div>
<div class="flex flex-wrap items-baseline w-full">
<input class="input" type="number" name="detail_sertifikat[nomor_id][]" value="" placeholder="Nomor ID/KTP">
</div>
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
</div>
</div>
`;
namaSertifikatDiv.appendChild(newDiv);
// Add delete listener to the new button
addDeleteListeners();
});
});
function changePemilikJaminan() {
var pemilikJaminan = document.getElementById("pemilik_jaminan_id").value;
var fieldsetPemilikJaminan = document.getElementById("pemilik_jaminan");
if (pemilikJaminan === "00") {
fieldsetPemilikJaminan.classList.remove("hidden");
} else {
fieldsetPemilikJaminan.classList.add("hidden");
}
}
</script>
{{--Legalitas Jaminan--}}
<script>
function getLegalitasJaminan() {
var legalitasJaminan = document.getElementById('jenis_jaminan_id').value;
var url = '/basic-data/jenis-jaminan/legalitas/' + legalitasJaminan;
var legalitasJaminan = document.getElementById("jenis_jaminan_id").value;
var url = "/basic-data/jenis-jaminan/legalitas/" + legalitasJaminan;
fetch(url, {
method: 'GET',
method: "GET",
headers: {
'Content-Type': 'application/json'
"Content-Type": "application/json"
}
})
.then(response => {
@@ -261,9 +381,8 @@
return response.json();
})
.then(data => {
console.log(data);
var doctainer = document.getElementById('doctainer');
doctainer.innerHTML = '';
var doctainer = document.getElementById("doctainer");
doctainer.innerHTML = "";
data.forEach((item, index) => {
doctainer.innerHTML += `
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
@@ -291,6 +410,27 @@
</div>
</div>
${item.custom_field && item.custom_field.length > 0 ? `
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56 capitalize">
${item.custom_field.replace(/_/g, " ")}
</label>
<div class="flex flex-wrap items-baseline w-full">
${item.custom_field_type === "text" ? `
<input class="input" type="text" name="custom_field[][${item.custom_field}]">
` : item.custom_field_type === "number" ? `
<input class="input" type="number" name="custom_field[][${item.custom_field}]">
` : item.custom_field_type === "date" ? `
<input class="input" type="date" name="custom_field[][${item.custom_field}]">
` : item.custom_field_type === "textarea" ? `
<textarea class="textarea" rows="3" name="custom_field[][${item.custom_field}]"></textarea>
` : `
<input class="input" type="text" name="custom_field[][${item.custom_field}]">
`}
</div>
</div>
` : ""}
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Keterangan
@@ -299,10 +439,10 @@
<textarea class="textarea" rows="3" type="number" name="keterangan[]"></textarea>
</div>
</div>`;
})
});
})
.catch(error => {
console.error('Error:', error);
console.error("Error:", error);
// Handle the error here
});
}

View File

@@ -23,6 +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>
@@ -65,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>
@@ -126,6 +136,7 @@
</a>
</div>
@include('lpj::component.pdfviewer')
@push('scripts')
<script type="text/javascript">

View File

@@ -10,51 +10,83 @@
<form action="{{ route('basicdata.jenis-legalitas-jaminan.update', $jenisLegalitasJaminan->id) }}" method="POST">
<input type="hidden" name="id" value="{{ $jenisLegalitasJaminan->id }}">
@method('PUT')
@else
<form method="POST" action="{{ route('basicdata.jenis-legalitas-jaminan.store') }}">
@endif
@csrf
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
{{ isset($jenisLegalitasJaminan->id) ? 'Edit' : 'Tambah' }} Jenis Legalitas Jaminan
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('basicdata.jenis-legalitas-jaminan.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</div>
<div class="card-body grid gap-5">
@if(isset($jenisLegalitasJaminan->id))
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input readonly class="input border-warning bg-warning-light @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $jenisLegalitasJaminan->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $jenisLegalitasJaminan->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
</form>
@else
<form method="POST" action="{{ route('basicdata.jenis-legalitas-jaminan.store') }}">
@endif
@csrf
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
{{ isset($jenisLegalitasJaminan->id) ? 'Edit' : 'Tambah' }} Jenis Legalitas Jaminan
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('basicdata.jenis-legalitas-jaminan.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</div>
<div class="card-body grid gap-5">
@if(isset($jenisLegalitasJaminan->id))
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input readonly class="input border-warning bg-warning-light @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $jenisLegalitasJaminan->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $jenisLegalitasJaminan->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<!-- Tambahkan inputan custom_field -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Custom Field
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('custom_field') border-danger bg-danger-light @enderror" type="text" name="custom_field" value="{{ $jenisLegalitasJaminan->custom_field ?? '' }}">
@error('custom_field')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<!-- Tambahkan inputan custom_field_type -->
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Custom Field Type
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect @error('custom_field_type') border-danger bg-danger-light @enderror" name="custom_field_type">
<option value="">Pilih Tipe</option>
<option value="text" {{ (isset($jenisLegalitasJaminan) && $jenisLegalitasJaminan->custom_field_type == 'text') ? 'selected' : '' }}>Text</option>
<option value="number" {{ (isset($jenisLegalitasJaminan) && $jenisLegalitasJaminan->custom_field_type == 'number') ? 'selected' : '' }}>Number</option>
<option value="date" {{ (isset($jenisLegalitasJaminan) && $jenisLegalitasJaminan->custom_field_type == 'date') ? 'selected' : '' }}>Date</option>
</select>
@error('custom_field_type')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
</form>
</div>
@endsection

View File

@@ -80,28 +80,8 @@
</div>
<label class="form-label max-w-56">Nomor Ijin Usaha</label>
<div class="flex flex-wrap items-baseline w-full">
<select id="nomor_ijin_usaha"
class="select w-full @error('nomor_ijin_usaha') border-danger @enderror"
name="nomor_ijin_usaha">
<option value="">Pilih Nomor Ijin Usaha</option>
@if (isset($ijin_usaha))
@if (isset($kjpp))
@foreach ($ijin_usaha as $branches)
<option value="{{ $branches->code }}"
{{ old('nomor_ijin_usaha', $kjpp->nomor_ijin_usaha) == $branches->code ? 'selected' : '' }}>
{{ $branches->code }}
</option>
@endforeach
@else
@foreach ($ijin_usaha as $branches)
<option value="{{ $branches->code }}"
{{ old('nomor_ijin_usaha') == $branches->code ? 'selected' : '' }}>
{{ $branches->code }}
</option>
@endforeach
@endif
@endif
</select>
<input class="input @error('nomor_ijin_usaha') border-danger @enderror" type="text"
name="nomor_ijin_usaha" value="{{ $kjpp->nomor_ijin_usaha ?? old('nomor_ijin_usaha') }}">
@error('nomor_ijin_usaha')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@@ -0,0 +1,487 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render('laporan.sederhana.index') }}
@endsection
@section('content')
<style>
.input-group {
position: relative;
width: 100%;
}
.left-group {
padding-right: 2.5rem;
}
.right-group {
padding-left: 2.5rem;
}
.input-group .input-unit {
position: absolute;
top: 50%;
transform: translateY(-50%);
pointer-events: none;
color: #6b7280;
}
.input-group .input-unit.left {
left: 0.75rem;
}
.input-group .input-unit.right {
right: 0.75rem;
}
</style>
<div class="grid">
<div class="card card-grid min-w-full" id="debitur-table">
<div class="card-header py-5 flex-wrap">
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<form action="" method="POST" class="grid gap-5">
<input type="hidden" name="id" value="">
@csrf
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
CADEB AN
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('cadeb') border-danger bg-danger-light @enderror"
type="text" name="cadeb" value="">
@error('cadeb')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Jenis Aset
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('aset') border-danger bg-danger-light @enderror"
type="text" name="aset" value="">
@error('aset')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Fasilitas Kredit
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('kredit') border-danger bg-danger-light @enderror"
type="text" name="kredit" value="">
@error('kredit')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Alamat Objek
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('alamat') border-danger bg-danger-light @enderror"
type="text" name="alamat" value="">
@error('alamat')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Cabang Pemohon
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('cabang') border-danger bg-danger-light @enderror"
type="text" name="cabang" value="">
@error('cabang')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
AO
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('ao') border-danger bg-danger-light @enderror" type="text"
name="ao" value="">
@error('ao')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<hr>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Surveyor
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('surveyor') border-danger bg-danger-light @enderror"
type="text" name="surveyor" value="">
@error('surveyor')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Penilai
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('penilai') border-danger bg-danger-light @enderror"
type="text" name="penilai" value="">
@error('penilai')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tanggal Survey
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('tanggal_survey') border-danger bg-danger-light @enderror"
type="date" name="tanggal_survey" value="">
@error('tanggal_survey')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Nomor Resume
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('nomor_resume') border-danger bg-danger-light @enderror"
type="number" name="nomor_resume" value="">
@error('nomor_resume')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Tanggal Resume
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('tanggal_resume') border-danger bg-danger-light @enderror"
type="date" name="tanggal_resume" value="">
@error('tanggal_resume')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<hr>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Faktor Positif
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('faktor_positif') border-danger bg-danger-light @enderror" rows="3"
type="number" id="faktor_positif" name="faktor_positif"></textarea>
@error('faktor_positif')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Faktor Negatif
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('faktor_negatif') border-danger bg-danger-light @enderror" rows="3"
type="number" id="faktor_negatif" name="faktor_negatif"></textarea>
@error('faktor_negatif')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<hr>
<label class="form-label">Kesimpulan Nilai Pasar</label>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Sesuai Fisik
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="input-group w-full">
<input
class="input w-full @error('sertifikat') border-danger bg-danger-light @enderror"
type="text" name="sertifikat" placeholder="Sertifikat" value="">
@error('sertifikat')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_tanah') border-danger bg-danger-light @enderror"
type="number" name="luas_tanah" placeholder="Luas tanah" value="">
<span class="input-unit right"></span>
@error('luas_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_bangunan') border-danger bg-danger-light @enderror"
type="number" name="luas_bangunan" placeholder="Luas bangunan"
value="">
<span class="input-unit right"></span>
@error('luas_bangunan')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<span class="input-unit left">Rp</span>
<input
class="right-group input w-full pl-8 @error('pasar_wajar') border-danger bg-danger-light @enderror"
type="number" name="pasar_wajar" placeholder="Nilai pasar wajar"
value="">
@error('pasar_wajar')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Sesuai IMB
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="input-group w-full">
<input
class="input w-full @error('sertifikat') border-danger bg-danger-light @enderror"
type="text" name="sertifikat" placeholder="Sertifikat" value="">
@error('sertifikat')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_tanah') border-danger bg-danger-light @enderror"
type="number" name="luas_tanah" placeholder="Luas tanah" value="">
<span class="input-unit right"></span>
@error('luas_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_bangunan') border-danger bg-danger-light @enderror"
type="number" name="luas_bangunan" placeholder="Luas bangunan"
value="">
<span class="input-unit right"></span>
@error('luas_bangunan')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<span class="input-unit left">Rp</span>
<input
class="right-group input w-full pl-8 @error('pasar_wajar') border-danger bg-danger-light @enderror"
type="number" name="pasar_wajar" placeholder="Nilai pasar wajar"
value="">
@error('pasar_wajar')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Asumsi nilai terpotong jalan/GSB
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="input-group w-full">
<input
class="input w-full @error('sertifikat') border-danger bg-danger-light @enderror"
type="text" name="sertifikat" placeholder="Sertifikat" value="">
@error('sertifikat')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_tanah') border-danger bg-danger-light @enderror"
type="number" name="luas_tanah" placeholder="Luas tanah" value="">
<span class="input-unit right"></span>
@error('luas_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_bangunan') border-danger bg-danger-light @enderror"
type="number" name="luas_bangunan" placeholder="Luas bangunan"
value="">
<span class="input-unit right"></span>
@error('luas_bangunan')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<span class="input-unit left">Rp</span>
<input
class="right-group input w-full pl-8 @error('pasar_wajar') border-danger bg-danger-light @enderror"
type="number" name="pasar_wajar" placeholder="Nilai pasar wajar"
value="">
@error('pasar_wajar')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
</div>
<hr>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Catatan perlu diperhatikan
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('catatan') border-danger bg-danger-light @enderror" rows="3" type="number"
id="catatan" name="catatan"></textarea>
@error('catatan')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<hr>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
DISCLAIMER
</label>
<div class="flex flex-wrap items-baseline w-full">
<ol>
<li>Laporan Resume ini dikeluarkan dikarenakan belum dilakukannya pembayaran biaya
penilaian jaminan</li>
<li>Laporan Resume ini tidak bisa dijadikan sebagai dasar pengajuan dan atau pencairan
kredit, laporan yang digunakan tetap wajib berupa Laporan Penilaian Jaminan (LPJ)
</li>
<li>Detail per meter tanah dan bangunan, sarana pelengkap dll akan tercatat di Laporan
Penilaian Jaminan (LPJ) nanti</li>
<li>Laporan Resume ini hanya digunakan untuk kepentingan internal bagi</li>
<li>Laporan resume ini hanya berlaku <span class="text-red-500">14 hari</span> kerja
terhitung dari tanggal resume ini dibuat sesuai aturan yang berlaku, apabila lewat
maka harus dilakukan order ulang sesuai prosedur yang berlaku</li>
<li>Apabila sudah melewati 6 bulan, maka harus penilaian ulang kembali</li>
</ol>
</div>
</div>
<hr>
<label class="form-label">Salam,</label>
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
PENILAI
</label>
<label class="form-label max-w-56 lg:w-32">
SENIOR OFICER
</label>
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</form>
</div>
</div>
</div>
{{-- <form method="POST" action="">
<div class="card pb-2.5">
<input type="hidden" name="action" value="">
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text"
name="code" value="">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text"
name="name" value="">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
</form> --}}
</div>
@endsection

View File

@@ -0,0 +1,486 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render('laporan.standard.index') }}
@endsection
@section('content')
<style>
.input-group {
position: relative;
width: 100%;
}
.left-group {
padding-right: 2.5rem;
}
.right-group {
padding-left: 2.5rem;
}
.input-group .input-unit {
position: absolute;
top: 50%;
transform: translateY(-50%);
pointer-events: none;
color: #6b7280;
}
.input-group .input-unit.left {
left: 0.75rem;
}
.input-group .input-unit.right {
right: 0.75rem;
}
</style>
<div class="grid">
<div class="card card-grid min-w-full" id="debitur-table">
<div class="card-header py-5 flex-wrap">
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<form action="" method="POST" class="grid gap-5">
<input type="hidden" name="id" value="">
@csrf
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
CADEB AN
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('cadeb') border-danger bg-danger-light @enderror"
type="text" name="cadeb" value="">
@error('cadeb')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Jenis Aset
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('aset') border-danger bg-danger-light @enderror"
type="text" name="aset" value="">
@error('aset')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Fasilitas Kredit
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('kredit') border-danger bg-danger-light @enderror"
type="text" name="kredit" value="">
@error('kredit')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Alamat Objek
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('alamat') border-danger bg-danger-light @enderror"
type="text" name="alamat" value="">
@error('alamat')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Cabang Pemohon
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('cabang') border-danger bg-danger-light @enderror"
type="text" name="cabang" value="">
@error('cabang')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
AO
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('ao') border-danger bg-danger-light @enderror" type="text"
name="ao" value="">
@error('ao')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<hr>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Surveyor
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('surveyor') border-danger bg-danger-light @enderror"
type="text" name="surveyor" value="">
@error('surveyor')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Penilai
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('penilai') border-danger bg-danger-light @enderror"
type="text" name="penilai" value="">
@error('penilai')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tanggal Survey
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('tanggal_survey') border-danger bg-danger-light @enderror"
type="date" name="tanggal_survey" value="">
@error('tanggal_survey')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Nomor Resume
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('nomor_resume') border-danger bg-danger-light @enderror"
type="number" name="nomor_resume" value="">
@error('nomor_resume')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Tanggal Resume
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('tanggal_resume') border-danger bg-danger-light @enderror"
type="date" name="tanggal_resume" value="">
@error('tanggal_resume')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<hr>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Faktor Positif
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('faktor_positif') border-danger bg-danger-light @enderror" rows="3"
type="number" id="faktor_positif" name="faktor_positif"></textarea>
@error('faktor_positif')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Faktor Negatif
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('faktor_negatif') border-danger bg-danger-light @enderror" rows="3"
type="number" id="faktor_negatif" name="faktor_negatif"></textarea>
@error('faktor_negatif')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<hr>
<label class="form-label">Kesimpulan Nilai Pasar</label>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Sesuai Fisik
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="input-group w-full">
<input
class="input w-full @error('sertifikat') border-danger bg-danger-light @enderror"
type="text" name="sertifikat" placeholder="Sertifikat" value="">
@error('sertifikat')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_tanah') border-danger bg-danger-light @enderror"
type="number" name="luas_tanah" placeholder="Luas tanah" value="">
<span class="input-unit right"></span>
@error('luas_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_bangunan') border-danger bg-danger-light @enderror"
type="number" name="luas_bangunan" placeholder="Luas bangunan"
value="">
<span class="input-unit right"></span>
@error('luas_bangunan')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<span class="input-unit left">Rp</span>
<input
class="right-group input w-full pl-8 @error('pasar_wajar') border-danger bg-danger-light @enderror"
type="number" name="pasar_wajar" placeholder="Nilai pasar wajar"
value="">
@error('pasar_wajar')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Sesuai IMB
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="input-group w-full">
<input
class="input w-full @error('sertifikat') border-danger bg-danger-light @enderror"
type="text" name="sertifikat" placeholder="Sertifikat" value="">
@error('sertifikat')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_tanah') border-danger bg-danger-light @enderror"
type="number" name="luas_tanah" placeholder="Luas tanah" value="">
<span class="input-unit right"></span>
@error('luas_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_bangunan') border-danger bg-danger-light @enderror"
type="number" name="luas_bangunan" placeholder="Luas bangunan"
value="">
<span class="input-unit right"></span>
@error('luas_bangunan')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<span class="input-unit left">Rp</span>
<input
class="right-group input w-full pl-8 @error('pasar_wajar') border-danger bg-danger-light @enderror"
type="number" name="pasar_wajar" placeholder="Nilai pasar wajar"
value="">
@error('pasar_wajar')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Asumsi nilai terpotong jalan/GSB
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="input-group w-full">
<input
class="input w-full @error('sertifikat') border-danger bg-danger-light @enderror"
type="text" name="sertifikat" placeholder="Sertifikat" value="">
@error('sertifikat')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_tanah') border-danger bg-danger-light @enderror"
type="number" name="luas_tanah" placeholder="Luas tanah" value="">
<span class="input-unit right"></span>
@error('luas_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_bangunan') border-danger bg-danger-light @enderror"
type="number" name="luas_bangunan" placeholder="Luas bangunan"
value="">
<span class="input-unit right"></span>
@error('luas_bangunan')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<span class="input-unit left">Rp</span>
<input
class="right-group input w-full pl-8 @error('pasar_wajar') border-danger bg-danger-light @enderror"
type="number" name="pasar_wajar" placeholder="Nilai pasar wajar"
value="">
@error('pasar_wajar')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
</div>
<hr>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Catatan perlu diperhatikan
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('catatan') border-danger bg-danger-light @enderror" rows="3" type="number"
id="catatan" name="catatan"></textarea>
@error('catatan')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<hr>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
DISCLAIMER
</label>
<div class="flex flex-wrap items-baseline w-full">
<ol>
<li>Laporan Resume ini dikeluarkan dikarenakan belum dilakukannya pembayaran biaya
penilaian jaminan</li>
<li>Laporan Resume ini tidak bisa dijadikan sebagai dasar pengajuan dan atau pencairan
kredit, laporan yang digunakan tetap wajib berupa Laporan Penilaian Jaminan (LPJ)
</li>
<li>Detail per meter tanah dan bangunan, sarana pelengkap dll akan tercatat di Laporan
Penilaian Jaminan (LPJ) nanti</li>
<li>Laporan Resume ini hanya digunakan untuk kepentingan internal bagi</li>
<li>Laporan resume ini hanya berlaku <span class="text-red-500">14 hari</span> kerja
terhitung dari tanggal resume ini dibuat sesuai aturan yang berlaku, apabila lewat
maka harus dilakukan order ulang sesuai prosedur yang berlaku</li>
<li>Apabila sudah melewati 6 bulan, maka harus penilaian ulang kembali</li>
</ol>
</div>
</div>
<hr>
<label class="form-label">Salam,</label>
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
PENILAI
</label>
<label class="form-label max-w-56 lg:w-32">
SENIOR OFICER
</label>
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</form>
</div>
</div>
</div>
{{-- <form method="POST" action="">
<div class="card pb-2.5">
<input type="hidden" name="action" value="">
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text"
name="code" value="">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text"
name="name" value="">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
</form> --}}
</div>
@endsection

View File

@@ -0,0 +1,121 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@php
// $route = Route::currentRouteName();
// dd($route);
$route = explode('.', Route::currentRouteName());
@endphp
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<input type="hidden" id="id" name="id" value="{{ $id }}">
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
Tambah Data Otorisasi Penawaran
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('otorisasitender.penawaran.show', $id) }}" class="btn btn-xs btn-primary" title="Detail"><i class="ki-filled ki-abstract-26"></i> Detail</a>
<a href="{{ route('otorisasitender.penawaran.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</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">
<label class="card-title" id="textReg">
No. registrasi
</label>
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Kode Penawaran:
</h3>
<span class="text-2sm text-gray-700">
<label class="card-title" id="textCodePenawaran">
Kode Penawaran
</label>
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Status Penawaran:
</h3>
<span class="text-2sm text-gray-700">
<label class="card-title" id="textStatusPenawaran">
Status
</label>
</span>
</div>
</div>
<div class="card-body grid gap-5">
<!-- datatables -->
<div class="grid">
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">Data KJPP</h3>
</div>
<div class="card-table scrollable-x-auto">
<table class="table table-border align-middle text-gray-700 font-medium text-sm">
<thead>
<tr>
<th class="w-14 text-center">No</th>
<th class="min-w-[250px]">KJPP</th>
<th>Biaya Penawaran</th>
<th>Dokumen Penawaran</th>
<th class="min-w-[50px] text-center">Action</th>
</tr>
</thead>
<tbody id="tbodyKJPP1">
</tbody>
</table>
</div>
</div>
</div>
<!-- datatables -->
<div class="flex justify-end">
&nbsp;
</div>
</div>
<div class="card-body grid gap-5">
<!-- datatables -->
<div class="grid">
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">Data KJPP Sebelumnya</h3>
</div>
<div class="card-table scrollable-x-auto">
<table class="table table-border align-middle text-gray-700 font-medium text-sm">
<thead>
<tr>
<th class="w-14 text-center">No</th>
<th class="min-w-[250px]">KJPP</th>
<th>Biaya Penawaran</th>
<th>Dokumen Penawaran</th>
<th>created_at</th>
</tr>
</thead>
<tbody id="tbodyKJPPLog">
</tbody>
</table>
</div>
</div>
</div>
<!-- datatables -->
<div class="flex justify-end">
&nbsp;
</div>
</div>
</div>
</div>
@endsection
@include('lpj::otorisasipenawaran.js.editjs')

View File

@@ -1,26 +1,25 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render('basicdata.currency') }}
{{ Breadcrumbs::render('otorisasitender.penawaran') }}
@endsection
@section('content')
<div class="grid">
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="currency-table" data-api-url="{{ route('basicdata.currency.datatables') }}">
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="otorisasipenawaran-table" data-api-url="{{ route('otorisasitender.penawaran.datatables') }}">
<div class="card-header py-5 flex-wrap">
<h3 class="card-title">
Daftar Mata Uang
Daftar Otorisasi Penawaran
</h3>
<div class="flex flex-wrap gap-2 lg:gap-5">
<div class="flex">
<label class="input input-sm"> <i class="ki-filled ki-magnifier"> </i>
<input placeholder="Search Currency" id="search" type="text" value="">
<input placeholder="Search Otorisasi penawaran" id="search" type="text" value="">
</label>
</div>
<div class="flex flex-wrap gap-2.5">
<div class="h-[24px] border border-r-gray-200"></div>
<a class="btn btn-sm btn-light" href="{{ route('basicdata.currency.export') }}"> Export to Excel </a>
<a class="btn btn-sm btn-primary" href="{{ route('basicdata.currency.create') }}"> Tambah Mata Uang </a>
<a class="btn btn-sm btn-light" href="#"> Export to Excel </a>
</div>
</div>
</div>
@@ -32,16 +31,28 @@
<th class="w-14">
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox"/>
</th>
<th class="min-w-[250px]" data-datatable-column="code">
<span class="sort"> <span class="sort-label"> Code </span>
<th class="min-w-[150px]" data-datatable-column="nomor_registrasi">
<span class="sort"> <span class="sort-label"> Nomor Registrasi </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[250px]" data-datatable-column="name">
<span class="sort"> <span class="sort-label"> Mata Uang </span>
<th class="min-w-[150px]" data-datatable-column="code">
<span class="sort"> <span class="sort-label"> Kode Penawaran </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px]" data-datatable-column="decimal_places">
<span class="sort"> <span class="sort-label"> Decimal Places </span>
<th class="min-w-[150px]" data-datatable-column="start_date">
<span class="sort"> <span class="sort-label"> Tanggal Penawaran </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_kjpp_id">
<span class="sort"> <span class="sort-label"> Tujuan Penilaian </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="penawarandetails_count">
<span class="sort"> <span class="sort-label"> Total KJPP </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="status">
<span class="sort"> <span class="sort-label"> Status </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th>
@@ -67,39 +78,14 @@
@push('scripts')
<script type="text/javascript">
function deleteData(data) {
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert this!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
if (result.isConfirmed) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
}
});
$.ajax(`basic-data/mata-uang/${data}`, {
type: 'DELETE'
}).then((response) => {
swal.fire('Deleted!', 'User has been deleted.', 'success').then(() => {
window.location.reload();
});
}).catch((error) => {
console.error('Error:', error);
Swal.fire('Error!', 'An error occurred while deleting the file.', 'error');
});
}
})
function showOtorisasiPenawaranData(regId)
{
var url = "{{ url('otorisasitender/penawaran') }}/"+regId;
$(location).attr('href',url);
}
</script>
<script type="module">
const element = document.querySelector('#currency-table');
const element = document.querySelector('#otorisasipenawaran-table');
const searchInput = document.getElementById('search');
const apiUrl = element.getAttribute('data-api-url');
@@ -117,24 +103,36 @@
return checkbox.outerHTML.trim();
},
},
'nomor_registrasi': {
title: 'Nomor Registrasi',
},
code: {
title: 'Code',
title: 'Kode Penawaran',
},
name: {
title: 'Mata Uang',
date_range: {
title: 'Tanggal Penawaran',
},
decimal_places: {
title: 'Decimal Places',
tujuan_penilaian_kjpp_name: {
title: 'Tujuan Penilaian',
},
penawarandetails_count: {
title: 'Total KJPP',
createdCell(cell) {
cell.classList.add('text-center');
},
},
status: {
title: 'Status'
},
actions: {
title: 'Status',
render: (item, data) => {
return `<div class="flex flex-nowrap justify-center">
<a class="btn btn-sm btn-icon btn-clear btn-info" href="basic-data/mata-uang/${data.id}/edit">
<i class="ki-outline ki-notepad-edit"></i>
<a onclick="showOtorisasiPenawaranData(${data.id})" class="btn btn-sm btn-icon btn-clear btn-primary" title="Detail">
<i class="ki-outline ki-eye"></i>
</a>
<a onclick="deleteData(${data.id})" class="delete btn btn-sm btn-icon btn-clear btn-danger">
<i class="ki-outline ki-trash"></i>
<a class="btn btn-sm btn-icon btn-clear btn-info" title="Proses Penawaran" href="otorisasitender/penawaran/${data.id}/edit">
<i class="ki-outline ki-notepad-edit"></i>
</a>
</div>`;
},
@@ -151,4 +149,3 @@
});
</script>
@endpush

View File

@@ -0,0 +1,94 @@
<script tipe="module">
function switchProses(id)
{
removeErrorCssMsg();
let c = $('#{{$route[1]}}_check_'+id).val();
if($('input[name="{{$route[1]}}_check_'+id+'"]').is(':checked'))
{
// checked
// alert('aktif nih');
setActiveElement(id);
}else
{
// unchecked
//alert('tdk aktif nih');
setNonActiveElement(id);
}
}
function setActiveElement(id)
{
$('#{{$route[1]}}_biayaPenawaran_'+id).removeAttr('disabled');
$('#{{$route[1]}}_dokumenPersetujuan_'+id).removeAttr('disabled');
$('#{{$route[1]}}_icon_update_'+id).removeAttr('disabled');
$('#{{$route[1]}}_icon_delete_'+id).removeAttr('disabled');
}
function setNonActiveElement(id)
{
$('#{{$route[1]}}_biayaPenawaran_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_dokumenPersetujuan_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_icon_update_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_icon_delete_'+id).attr('disabled', 'disabled');
}
function otorisasiKJPP(penawaran_id, id, kjpp_id, kjppName, biaya_penawaran) {
Swal.fire({
title: ' ',
text: "Yakin akan Otorisasi "+kjppName+"?",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes'
}).then((result) => {
if (result.isConfirmed) {
//define variable
let token = "{{ csrf_token() }}";
let useURL = "{{ route($route[0].'.'.$route[1].'.otorisasiPenawaranKJPP','') }}/"+id;
let noReg = $("#textReg").text();
var input_data = new Object();
input_data._token = token;
input_data.id =id;
input_data.penawaran_id =penawaran_id;
input_data.kjpp_id =kjpp_id;
input_data.kjppName =kjppName;
input_data.biaya_penawaran =biaya_penawaran;
input_data.noReg =noReg;
$.ajax({
url: useURL,
type: "PUT",
cache: false,
data: input_data,
dataType: "json",
success: function(response) {
console.log(response);
if('success' == response.status)
{
swal.fire('Sukses Otorisasi!', response.message.message_success[0], 'success').then(() => {
var url = "{{ route('otorisasitender.penawaran.index') }}";
$(location).attr('href',url);
});
}
else
{
Swal.fire('Error!', response.message.message_error_try_catch[0], 'error');
}
},
error: function(response, textStatus, errorThrown) {
// var errors = response.responseJSON.errors;
// console.log(errors);
console.log(response);
}
});
}
})
}
</script>

View File

@@ -0,0 +1,188 @@
@push('scripts')
@include('lpj::assetsku.includenya')
@include('lpj::otorisasipenawaran.js.editextjs')
<script type="module">
$(document).ready(function() {
prepareForm();
});
function prepareForm()
{
setData();
}
function setData()
{
let id = $("#id").val();
let token = "{{ csrf_token() }}";
// alert('token = ' + token);
var useURL = "{{ route('otorisasitender.penawaran.setData') }}";
var input_data = new Object();
input_data._token = token;
input_data.id = id;
$.ajax({
url: useURL,
type: "POST",
data: input_data,
dataType: "json",
beforeSend: function() {
// if ($("#myLoader").hasClass("pre-loader hidden")) {
// pleaseStartLoader();
// }
},
success: function(response) {
console.log(response);
if("success"==response.status)
{
var statusText = response.penawaran.status;
$("#textReg").text(response.penawaran.nomor_registrasi);
$("#textCodePenawaran").text(response.penawaran.code);
$("#textStatusPenawaran").text(statusText);
setTablesKJPP1(response.penawrandetails);
setTablesKJPPLog(response.penawarandetailLogs);
}
else
{
toastrError(response.message);
}
},
error: function(xhr) {
},
complete: function() {
}
});
}
function setTablesKJPP1(datas)
{
let i=1;
$.each(datas, function(key, value){
var kjppName = value.kjpp_code+' - '+value.kjpp_name;
var biaya_penawaran = value.biaya_penawaran;// alert(biaya_penawaran);
var htmlDokumenPersetujuanDownload='';
var dokumenPersetujuanDownload = value.dokumen_persetujuan;
if(dokumenPersetujuanDownload)
{
htmlDokumenPersetujuanDownload='<div class="flex items-center justify-between flex-wrap my-2.5 gap-2"><a href="'+value.dokumen_persetujuan+'" class="badge badge-sm badge-outline" download="'+value.attachment+'">'+value.attachment+' &nbsp;&nbsp;<i class="ki-filled ki-cloud-download"></i></a></div>';
}
// pengecekan kondisi format number
var biaya_penawaran_format = "";
if(biaya_penawaran)
biaya_penawaran_format=tandaPemisahTitik(biaya_penawaran);
var markup = '<tr>';
markup +='<td valign="top">'+i+'</td>';
markup +='<td valign="top"><label id="{{$route[1]}}_kjppName_'+value.id+'">'+kjppName+'</label></td>';
markup +='<td valign="top" align="right">Rp.'+biaya_penawaran_format+'</td>';
markup +='<td><em id="{{$route[1]}}_dokumenPersetujuan_msg_'+value.id+'" class="alert text-danger text-sm"></em>'+htmlDokumenPersetujuanDownload+'</td>';
markup +='<td><div class="flex flex-nowrap justify-center">';
markup +='<a class="btn btn-sm btn-icon btn-clear btn-success" href="javascript:void(0)" id="{{$route[1]}}_icon_update_'+value.id+'" title="Otorisasi Penawaran '+kjppName+'" onclick="otorisasiKJPP('+value.penawaran_id+','+value.id+','+value.kjpp_rekanan_id+',\''+kjppName+'\',\''+biaya_penawaran+'\')"><i class="ki-outline ki-notepad-edit"></i></a>';
markup += '</tr>';
$('#tbodyKJPP1').append(markup);
i++;
});
}
$(document).on("input", "input:file", function(e) {
let fileName = e.target.files[0].name;
let inputFile = e.target.id;
const myArray = inputFile.split("_");
let penawaranID = myArray[myArray.length-1];
let kjppName = $("#{{$route[1]}}_kjppName_"+penawaranID).text();
let upld = fileName.split(".").pop();
if(upld == "pdf" || upld =="PDF"){}
else{
removeErrorCssMsg();
$("#{{$route[1]}}_dokumenPersetujuan_"+penawaranID).addClass(" border-danger");
$("#{{$route[1]}}_dokumenPersetujuan_msg_"+penawaranID).text("Silahkan Masukan tipe file PDF Mas");
$("#"+inputFile).val("");
}
});
function setTablesKJPPLog(datas)
{
let i=1;
$.each(datas, function(key, value){
var kjppName = value.kjpp_code+' - '+value.kjpp_name;
var biaya_penawaran = value.biaya_penawaran;// alert(biaya_penawaran);
var htmlDokumenPersetujuanDownload='';
var dokumenPersetujuanDownload = value.dokumen_persetujuan;
if(dokumenPersetujuanDownload)
{
htmlDokumenPersetujuanDownload='<div class="flex items-center justify-between flex-wrap my-2.5 gap-2"><a href="'+value.dokumen_persetujuan+'" class="badge badge-sm badge-outline" download="'+value.attachment+'">'+value.attachment+' &nbsp;&nbsp;<i class="ki-filled ki-cloud-download"></i></a></div>';
}
// pengecekan kondisi format number
var biaya_penawaran_format = "";
if(biaya_penawaran)
biaya_penawaran_format=tandaPemisahTitik(biaya_penawaran);
var markup = '<tr>';
markup +='<td valign="top">'+i+'</td>';
markup +='<td valign="top"><label id="{{$route[1]}}_kjppName_'+value.id+'">'+kjppName+'</label></td>';
markup +='<td valign="top" align="right">Rp.'+biaya_penawaran_format+'</td>';
markup +='<td><em id="{{$route[1]}}_dokumenPersetujuan_msg_'+value.id+'" class="alert text-danger text-sm"></em>'+htmlDokumenPersetujuanDownload+'</td>';
markup +='<td valign="top"><label id="{{$route[1]}}_kjppName_'+value.id+'">'+value.created_at2+'</label></td>';
$('#tbodyKJPPLog').append(markup);
i++;
});
}
/*
// update proses penawaran ulang & permohonan status
$("#{{$route[1]}}_toEdit").click(function(e) {
e.preventDefault();
//define variable
let token = "{{ csrf_token() }}";
let useURL = "";
var input_data = new Object();
input_data._token = token;
input_data.id = "{{ $id }}";
$.ajax({
url: useURL,
type: "PUT",
cache: false,
data: input_data,
dataType: "json",
success: function(response) {
console.log(response);
if('success' == response.status)
{
// toastr.success(response.message);
toastrSuccess(response.message);
setTimeout(function () {
var url = "{{ route('tender.prosespenawaran.index') }}";
$(location).attr('href',url);
// window.location.href = "https://www.newurl.com";
}, 2000);
}
else
{
// toastr.error(response.message);
toastrError(response.message);
}
},
error: function(response, textStatus, errorThrown) {
// var errors = response.responseJSON.errors;
// console.log(errors);
console.log(response);
}
});
});
*/
</script>
@endpush

View File

@@ -0,0 +1,43 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@php
$route = explode('.', Route::currentRouteName());
@endphp
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
Detail Data Otorisasi Penawaran
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('otorisasitender.penawaran.edit', $id) }}" class="btn btn-xs btn-primary" title="Register"><i class="ki-filled ki-arrow-circle-right"></i> Otorisasi Penawaran</a>
<a href="{{ route('otorisasitender.penawaran.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</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">
{{ $prosespenawaran->nomor_registrasi }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Kode Penawaran:
</h3>
<span class="text-2sm text-gray-700">
{{ $prosespenawaran->code }}
</span>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -79,7 +79,7 @@
@enderror
</div>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('nomor_id') border-danger bg-danger-light @enderror" type="number" name="nomor_id" value="{{ $debitur->nomor_id ?? '' }}" placeholder="Nomor ID/KTP">
<input class="input @error('nomor_id') border-danger bg-danger-light @enderror" type="number" name="nomor_id" value="{{ $pemilik->nomor_id ?? '' }}" placeholder="Nomor ID/KTP">
@error('nomor_id')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@@ -88,7 +88,28 @@
</div>
</div>
<div id="nama_sertifikat">
@if(isset($detailSertifikat))
@foreach(json_decode($detailSertifikat) as $sertifikat)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-5">
<label class="form-label max-w-56">
Nama Lengkap
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="flex flex-wrap items-baseline w-full">
<input class="input" type="text" id="name" name="detail_sertifikat[name][]" value="{{ $sertifikat->name }}" placeholder="Nama Pemilik Jaminan">
</div>
<div class="flex flex-wrap items-baseline w-full">
<input class="input" type="number" name="detail_sertifikat[nomor_id][]" value="{{ $sertifikat->nomor_id }}" placeholder="Nomor ID/KTP">
</div>
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
</div>
</div>
</div>
@endforeach
@endif
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
@@ -253,41 +274,46 @@
</div>
@endsection
@push('scripts')
<script>
document.getElementById('tambah_sertifikat').addEventListener('click', function() {
const namaSertifikatDiv = document.getElementById('nama_sertifikat');
const newDiv = document.createElement('div');
newDiv.innerHTML = `
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-5">
<label class="form-label max-w-56">
Nama Lengkap
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" id="name" name="name[]" value="" placeholder="Nama Pemilik Jaminan">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('nomor_id') border-danger bg-danger-light @enderror" type="number" name="nomor_id[]" value="" placeholder="Nomor ID/KTP">
@error('nomor_id')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
</div>
</div>
</div>
`;
namaSertifikatDiv.appendChild(newDiv);
document.addEventListener("DOMContentLoaded", function() {
const namaSertifikatDiv = document.getElementById("nama_sertifikat");
// Event listener untuk tombol hapus
newDiv.querySelector('.delete-button').addEventListener('click', function() {
namaSertifikatDiv.removeChild(newDiv);
// Function to add delete event listeners to existing buttons
function addDeleteListeners() {
document.querySelectorAll(".delete-button").forEach(button => {
button.addEventListener("click", function() {
this.closest(".flex.items-baseline.flex-wrap.lg\\:flex-nowrap.gap-2\\.5.mb-5").remove();
});
});
}
// Add delete listeners to existing buttons
addDeleteListeners();
document.getElementById("tambah_sertifikat").addEventListener("click", function() {
const newDiv = document.createElement("div");
newDiv.className = "flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-5";
newDiv.innerHTML = `
<label class="form-label max-w-56">
Nama Lengkap
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="flex flex-wrap items-baseline w-full">
<input class="input" type="text" name="detail_sertifikat[name][]" value="" placeholder="Nama Pemilik Jaminan">
</div>
<div class="flex flex-wrap items-baseline w-full">
<input class="input" type="number" name="detail_sertifikat[nomor_id][]" value="" placeholder="Nomor ID/KTP">
</div>
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
</div>
</div>
`;
namaSertifikatDiv.appendChild(newDiv);
// Add delete listener to the new button
addDeleteListeners();
});
});
</script>

View File

@@ -189,7 +189,12 @@
@enderror
</div>
</div>
<div class="flex justify-end">
<div class="flex justify-end gap-1.5">
@if (isset($penawaran->nomor_registrasi))
<a href="{{ route('tender.penawaran.showSuratTender', $noreg) }}" class="btn btn-primary">
Surat Tender
</a>
@endif
<button type="submit" class="btn btn-primary">
Save
</button>

View File

@@ -195,7 +195,12 @@
</div>
</div>
<div class="flex justify-end">
<div class="flex justify-end gap-1.5">
@if (isset($penawaran->nomor_registrasi))
<a href="{{ route('tender.penawaran.showSuratTender', $noreg) }}" class="btn btn-primary">
Surat Tender
</a>
@endif
<button type="submit" class="btn btn-primary">
Penawaran Ulang
</button>

View File

@@ -0,0 +1,56 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName(), request()->route('noreg')) }}
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
Surat Tender
</h3>
<div class="flex items-center gap-2">
@if (isset($penawaran->nomor_registrasi))
<a href="{{ route('tender.penawaran.editPenawaran', $noreg) }}" class="btn btn-xs btn-info"><i
class="ki-filled ki-exit-left"></i> Back</a>
@else
<a href="{{ route('tender.penawaran.createPenawaran', $noreg) }}" class="btn btn-xs btn-info"><i
class="ki-filled ki-exit-left"></i> Back</a>
@endif
</div>
</div>
<div class="card-body grid gap-5">
<p>Dear
<span class="font-bold">{{ ucwords(auth()->user()->name) ?? 'Tidak Ada' }}</span>
</p>
<p>Mohon untuk dibuatkan proposal jasa appraisal atas nama <span
class="font-bold">{{ ucwords($penawaran->permohonan->user->name) }}</span>, tujuan penilaian
untuk <span class="font-bold">
@foreach ($penawaran->tujuanPenilaianKJPP as $tujuanPenilaianKJPP)
{{ $tujuanPenilaianKJPP->name }}
@endforeach
</span>, laporan dalam bentuk <span class="font-bold">{{ $penawaran->jenisLaporan->name }}</span>,
dengan data-data sebagai berikut :</p>
<ul>
<li>Aset Jaminan: <span class="font-bold">[otomasi dari tabel permohonan]</span></li>
<li>Lokasi Jaminan: <span class="font-bold">[otomasi dari tabel permohonan]</span></li>
<li>LT / LB: <span class="font-bold">[otomasi dari tabel permohonan]</span></li>
</ul>
<p>Harap proposal dibuat dengan harga yang minimal sehingga tidak perlu tawar menawar lagi.</p>
<p>Mohon proposal dapat saya terima segera, sebelum
<span class="font-bold">{{ formatTanggalIndonesia($penawaran->end_date) }} pukul 17.00 WIB</span>
</p>
<p>Best Regards,
<span class="font-bold">[otomasi dari nama dan tanda tangan user penginput]</span>
Sub Direktorat Appraisal
</p>
<p>PT. Bank Artha Graha Internasional, Tbk.<br>
Gedung Bank Artha Graha, Lantai 3<br>
Jl. Kwiitang Raya No 24-26, Jakarta Pusat - 10420.<br>
Telp. 021 - 3903040 (H)</p>
</div>
</div>
</div>
@endsection

View File

@@ -0,0 +1,200 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render('penilai') }}
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card pb-2.5">
<div class=" card-grid min-w-full" data-datatable="false" data-datatable-page-size="5"
data-datatable-state-save="false" id="penilai-table" data-api-url="{{ route('penilai.dataForTables') }}">
<div class="card-header py-5 flex-wrap">
<h3 class="card-title">
Penilai
</h3>
<div class="flex flex-wrap gap-2 lg:gap-5">
<div class="flex">
<label class="input input-sm"> <i class="ki-filled ki-magnifier"> </i>
<input placeholder="Search Penilai" id="search" type="text" value="">
</label>
</div>
<div class="flex flex-wrap gap-2.5">
<div class="h-[24px] border border-r-gray-200"></div>
<a class="btn btn-sm btn-light" href="#"> Export to Excel </a>
</div>
</div>
</div>
<div class="card-body">
<div class="scrollable-x-auto">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm"
data-datatable-table="true">
<thead>
<tr>
<th class="w-14">
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox" />
</th>
<th class="min-w-[150px]" data-datatable-column="nomor_registrasi">
<span class="sort"> <span class="sort-label"> Nomor Registrasi </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="debitur_id">
<span class="sort"> <span class="sort-label"> Debitur </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="branch_id">
<span class="sort"> <span class="sort-label"> Pemohon(Cabang/Direktorat) </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="user_id">
<span class="sort"> <span class="sort-label"> AO </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_id">
<span class="sort"> <span class="sort-label"> Tujuan Penilaian </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="jenis_fasilitas_kredit_id">
<span class="sort"> <span class="sort-label"> Fasilitas Kredit </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="tanggal_survei">
<span class="sort"> <span class="sort-label"> Tanggal Survei </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="due_date_sla">
<span class="sort"> <span class="sort-label"> Due Date SLA </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th>
</tr>
</thead>
</table>
</div>
<div
class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium">
<div class="flex items-center gap-2">
Show
<select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per
page
</div>
<div class="flex items-center gap-4">
<span data-datatable-info="true"> </span>
<div class="pagination" data-datatable-pagination="true">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('scripts')
<script type="text/javascript">
function formatDate(date) {
const day = date.getDate().toString().padStart(2, '0');
const month = (date.getMonth() + 1).toString().padStart(2, '0');
// Months are 0-indexed
const year = date.getFullYear();
return `${day} ${getIndonesianMonth(month)} ${year}`;
}
function getIndonesianMonth(month) {
const months = ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni',
'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'
];
return months[month -
1];
}
</script>
<script type="module">
const element = document.querySelector('#penilai-table');
const searchInput = document.getElementById('search');
const apiUrl = element.getAttribute('data-api-url');
const dataTableOptions = {
apiEndpoint: apiUrl,
pageSize: 5,
columns: {
select: {
render: (item, data, context) => {
const checkbox = document.createElement('input');
checkbox.className = 'checkbox checkbox-sm';
checkbox.type = 'checkbox';
checkbox.value = data.id.toString();
checkbox.setAttribute('data-datatable-row-check', 'true');
return checkbox.outerHTML.trim();
},
},
nomor_registrasi: {
title: 'Nomor Registrasi',
},
debitur_id: {
title: 'Debitur',
render: (item, data) => {
return `${data.debiture.name}`;
},
},
branch_id: {
title: 'Cabang Pemohon',
render: (item, data) => {
return `${data.branch.name}`;
},
},
user_id: {
title: 'User Pemohon',
render: (item, data) => {
return `${data.user.name}`;
},
},
tujuan_penilaian_id: {
title: 'Tujuan Penilaian',
render: (item, data) => {
return `${data.tujuan_penilaian.name}`;
},
},
jenis_fasilitas_kredit_id: {
title: 'Fasilitas Kredit',
render: (item, data) => {
return `${data.jenisfasilitas_kredit.name}`;
},
},
tanggal_survei: {
title: 'Tanggal Survei',
render: (item, data) => {
return `${formatDate(new Date(data.created_at))}`;
},
},
due_date_sla: {
title: 'Due Date SLA',
render: (item, data) => {
return `${formatDate(new Date(data.created_at))}`;
},
},
actions: {
title: 'Action',
render: (item, data) => {
return `
<div class="flex flex-nowrap justify-center gap-1.5">
<a class="btn btn-sm btn-outline btn-info" href="penilai/${data.id}/show">
<i class="ki-outline ki-eye"></i>
</a>
</div>`;
},
}
},
};
let dataTable = new KTDataTable(element, dataTableOptions);
// Custom search functionality
searchInput.addEventListener('input', function() {
const searchValue = this.value.trim();
dataTable.search(searchValue, true);
});
</script>
@endpush

View File

@@ -0,0 +1,160 @@
@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="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
Detail Penilai
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('penilai.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i>
Back</a>
</div>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Nomor Registrasi
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">{{ $permohonan->nomor_registrasi }}</p>
</div>
<label class="form-label max-w-56">
Nama Debitur
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">{{ $permohonan->debiture->name }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Cabang
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">{{ $permohonan->branch->name }}</p>
</div>
<label class="form-label max-w-56">
Alamat Jaminan
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">{{ $permohonan->debiture->address }}, Kel.
{{ $permohonan->debiture->village->name }}, Kec. {{ $permohonan->debiture->district->name }},
{{ ucwords(strtolower($permohonan->debiture->city->name)) }}, Kode Pos.
{{ $permohonan->debiture->postal_code }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Nama AO/Pemohon
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">{{ $permohonan->user->name }}</p>
</div>
<label class="form-label max-w-56">
Fasilitas Kredit
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
{{ $permohonan->jenisFasilitasKredit->name }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tanggal Permohonan
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
{{ formatTanggalIndonesia($permohonan->created_at) }}</p>
</div>
<label class="form-label max-w-56">
CIF
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
{{ $permohonan->debiture->cif }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tanggal Konfirmasi Kunjungan
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Surveyor
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
{{ $permohonan->penilaian->userSurveyor->name }}</p>
<p class="flex w-full text-gray-600 font-medium text-sm">
Region 1</p>
</div>
<label class="form-label max-w-56">
Penilai
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
@foreach ($permohonan->penilaian->teams->teamsUsers as $index => $penilaian)
{{ $penilaian->user->name }}{{ $index + 1 < count($permohonan->penilaian->teams->teamsUsers) ? ', ' : '' }}
@endforeach
</p>
<p class="flex w-full text-gray-600 font-medium text-sm">
{{ $permohonan->penilaian->teams->regions->name }}
</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tujuan Penilaian
</label>
<p class="flex text-gray-600 font-medium text-sm w-full">
{{ $permohonan->tujuanPenilaian->name }}</p>
<label class="form-label max-w-56">
Jenis Jaminan
</label>
<p class="flex text-gray-600 font-medium text-sm w-full">
@foreach ($permohonan->debiture->documents as $document)
{{ $document->jenisjaminan->name }}
@endforeach
</p>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tanggal Survei
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
{{ formatTanggalIndonesia($permohonan->created_at) }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tanggal Laporan
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
{{ formatTanggalIndonesia($permohonan->created_at) }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
No. Laporan
</label>
<div class="flex flex-wrap items-baseline w-full">
<p class="flex w-full text-gray-600 font-medium text-sm">
PJ/001/001</p>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -160,104 +160,7 @@
</div>
</div>
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">
Laporan
</h3>
</div>
<div data-accordion="true">
@foreach ($permohonan->debiture->documents as $dokumen)
<div class="accordion-item [&:not(:last-child)]:border-b border-b-gray-200" data-accordion-item="true"
id="accordion_1_item_1">
<button class="accordion-toggle py-4 group mx-8" data-accordion-toggle="#accordion_1_content_1">
<span class="text-base text-gray-900 font-medium">
Jaminan {{ $loop->index + 1 }}
</span>
<i class="ki-outline ki-plus text-gray-600 text-2sm accordion-active:hidden block">
</i>
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
</i>
</button>
<div class="accordion-content hidden" id="accordion_1_content_1">
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Jenis Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->jenisJaminan->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Hubungan Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->hubungan_pemilik->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Alamat Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $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>
<div class="card-table scrollable-x-auto pb-3">
<table class="table align-middle text-sm text-gray-500">
@foreach ($dokumen->detail as $detail)
<tr>
<td class="py-2 text-gray-600 font-normal max-w-[100px]">
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $detail->name ?? '' }}
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Dokumen Jaminan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
@if (isset($detail->dokumen_jaminan))
<a href="{{ route('debitur.jaminan.download', ['id' => $permohonan->debiture->id, 'dokumen' => $detail->id]) }}"
class="badge badge-sm badge-outline mt-2">{{ basename($detail->dokumen_jaminan) }}
<i class="ki-filled ki-cloud-download"></i></a>
@endif
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Keterangan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $detail->keterangan ?? '' }}
</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
@endforeach
</div>
</div>
@include('lpj::component.detail-jaminan')
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">

View File

@@ -136,98 +136,7 @@
</div>
</div>
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">
Data Jaminan
</h3>
</div>
<div data-accordion="true">
@foreach($permohonan->debiture->documents as $dokumen)
<div class="accordion-item [&:not(:last-child)]:border-b border-b-gray-200" data-accordion-item="true" id="accordion_1_item_1">
<button class="accordion-toggle py-4 group mx-8" data-accordion-toggle="#accordion_1_content_1">
<span class="text-base text-gray-900 font-medium">
Jaminan {{ $loop->index + 1 }}
</span>
<i class="ki-outline ki-plus text-gray-600 text-2sm accordion-active:hidden block">
</i>
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
</i>
</button>
<div class="accordion-content hidden" id="accordion_1_content_1">
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->name?? "" }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Jenis Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->jenisJaminan->name?? "" }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Hubungan Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->hubungan_pemilik->name?? "" }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Alamat Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $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>
<div class="card-table scrollable-x-auto pb-3">
<table class="table align-middle text-sm text-gray-500">
@foreach($dokumen->detail as $detail)
<tr>
<td class="py-2 text-gray-600 font-normal max-w-[100px]">
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $detail->name ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Dokumen Jaminan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
@if(isset($detail->dokumen_jaminan))
<a href="{{ route('debitur.jaminan.download',['id'=>$permohonan->debiture->id,'dokumen'=>$detail->id]) }}" class="badge badge-sm badge-outline mt-2">{{ basename($detail->dokumen_jaminan) }}
<i class="ki-filled ki-cloud-download"></i></a>
@endif
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Keterangan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $detail->keterangan ?? "" }}
</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
@endforeach
</div>
</div>
@include('lpj::component.detail-jaminan')
<div class="card">
<form action="{{ route('authorization.update', $permohonan->id) }}" method="POST">
@@ -239,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>
<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
@if($permohonan->status=='revisi')
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
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) => {
return `${data.debiture.name}`;
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 Surat Permohonan
</button>
</div>
</form>
</div>
</div>
@endsection

View File

@@ -38,8 +38,8 @@
<span class="sort"> <span class="sort-label"> Nomor Registrasi </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="code">
<span class="sort"> <span class="sort-label"> Kode Penawaran </span>
<th class="min-w-[150px]" data-datatable-column="debiture">
<span class="sort"> <span class="sort-label"> Nama Debitur </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="start_date">
@@ -132,8 +132,16 @@
'nomor_registrasi': {
title: 'Nomor Registrasi',
},
code: {
title: 'Kode Penawaran',
debiture: {
title: 'Nama Debitur',
render: (item, data) => {
if(data.permohonan) {
return `${data.permohonan.debiture.name}`;
}
return "-";
}
},
start_date: {
title: 'Tanggal Penawaran',

View File

@@ -1,147 +1,155 @@
<script tipe="module">
function switchProses(id)
{
let c = $('#{{$route[1]}}_check_'+id).val();
if($('input[name="{{$route[1]}}_check_'+id+'"]').is(':checked'))
function switchProses(id)
{
// checked
// alert('aktif nih');
setActiveElement(id);
}else
{
// unchecked
//alert('tdk aktif nih');
setNonActiveElement(id);
}
}
function setActiveElement(id)
{
$('#{{$route[1]}}_biayaPenawaran_'+id).removeAttr('disabled');
$('#{{$route[1]}}_dokumenPersetujuan_'+id).removeAttr('disabled');
$('#{{$route[1]}}_icon_update_'+id).removeAttr('disabled');
$('#{{$route[1]}}_icon_delete_'+id).removeAttr('disabled');
}
function setNonActiveElement(id)
{
$('#{{$route[1]}}_biayaPenawaran_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_dokumenPersetujuan_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_icon_update_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_icon_delete_'+id).attr('disabled', 'disabled');
}
function updateData(id, kjpp_id, kjppName){
removeErrorCssMsg();
let biaya = $("#{{$route[1]}}_biayaPenawaran_"+id).val();
let filepdf = $("#{{$route[1]}}_dokumenPersetujuan_"+id).val();
let passednih = true;
if(!biaya){
$("#{{$route[1]}}_biayaPenawaran_"+id).addClass(" border-danger");
$("#{{$route[1]}}_biayaPenawaran_msg_"+id).text("Silahkan isi Biaya Penawaran nya");
passednih = false;
}
if(!filepdf){
$("#{{$route[1]}}_dokumenPersetujuan_"+id).addClass(" border-danger");
$("#{{$route[1]}}_dokumenPersetujuan_msg_"+id).text("Silahkan isi dokumen nya");
$("#{{$route[1]}}_dokumenPersetujuan_"+id).val("");
passednih = false;
}
if(passednih)
{
var file_data = $("#{{$route[1]}}_dokumenPersetujuan_"+id).prop("files")[0];
let useURL = "{{ route($route[0].'.'.$route[1].'.update', '') }}/"+id;
let formData = new FormData();
let token = "{{ csrf_token() }}";alert(token);
formData.append("dokumen_persetujuan", file_data);
formData.append("biaya_penawaran", biaya);
formData.append("kjpp_rekanan_id", kjpp_id);
formData.append("_method", "PUT");
formData.append("_token", token);
$.ajax({
url: useURL,
type: "POST",
data: formData,
processData: false,
contentType: false,
success:function(response){
if('success' == response.status)
{
toastr.success(response.message);
setTimeout(function () {
location.reload(true);
}, 2000);
}
else
toastr.error(_data.message);
},
error: function (response, textStatus, errorThrown) {
var errors = response.responseJSON.errors;
$.each(errors, function (key, value) {
console.log("v = " + value);
});
}
});
let c = $('#{{$route[1]}}_check_'+id).val();
if($('input[name="{{$route[1]}}_check_'+id+'"]').is(':checked'))
{
// checked
// alert('aktif nih');
setActiveElement(id);
}else
{
// unchecked
//alert('tdk aktif nih');
setNonActiveElement(id);
}
}
}
function deleteData(data) {
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert this!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
if (result.isConfirmed) {
//define variable
let token = "{{ csrf_token() }}";
let useURL = "{{ route($route[0].'.'.$route[1].'.updateStatusPenawaranKJPP','') }}/"+data;
alert(useURL);
var input_data = new Object();
input_data._token = token;
input_data.id =1;
function setActiveElement(id)
{
$('#{{$route[1]}}_biayaPenawaran_'+id).removeAttr('disabled');
$('#{{$route[1]}}_dokumenPersetujuan_'+id).removeAttr('disabled');
$('#{{$route[1]}}_icon_update_'+id).removeAttr('disabled');
$('#{{$route[1]}}_icon_delete_'+id).removeAttr('disabled');
}
function setNonActiveElement(id)
{
$('#{{$route[1]}}_biayaPenawaran_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_dokumenPersetujuan_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_icon_update_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_icon_delete_'+id).attr('disabled', 'disabled');
}
function updateData(id, kjpp_id, kjppName){
removeErrorCssMsg();
let biaya = $("#{{$route[1]}}_biayaPenawaran_"+id).val();
let filepdf = $("#{{$route[1]}}_dokumenPersetujuan_"+id).val();
let passednih = true;
if(!biaya){
$("#{{$route[1]}}_rp_"+id).addClass(" border-danger");
$("#{{$route[1]}}_biayaPenawaran_"+id).addClass(" border-danger");
$("#{{$route[1]}}_biayaPenawaran_msg_"+id).text("Silahkan isi Biaya Penawaran nya");
passednih = false;
}
if(!filepdf){
$("#{{$route[1]}}_dokumenPersetujuan_"+id).addClass(" border-danger");
$("#{{$route[1]}}_dokumenPersetujuan_msg_"+id).text("Silahkan isi dokumen nya");
$("#{{$route[1]}}_dokumenPersetujuan_"+id).val("");
passednih = false;
}
if(passednih)
{
var file_data = $("#{{$route[1]}}_dokumenPersetujuan_"+id).prop("files")[0];
let useURL = "{{ route($route[0].'.'.$route[1].'.update', '') }}/"+id;
let formData = new FormData();
let token = "{{ csrf_token() }}";
formData.append("dokumen_persetujuan", file_data ?? "");
formData.append("biaya_penawaran", biaya);
formData.append("kjpp_rekanan_id", kjpp_id);
formData.append("_method", "PUT");
formData.append("_token", token);
$.ajax({
url: useURL,
type: "PUT",
cache: false,
data: input_data,
dataType: "json",
success: function(response) {
console.log(response);
type: "POST",
data: formData,
processData: false,
contentType: false,
success:function(response){
if('success' == response.status)
{
swal.fire('Deleted!', response.message, 'success').then(() => {
window.location.reload();
});
// toastr.success(response.message);
// success
var message = response.message;
toastrku("success", message);
setTimeout(function () {
location.reload(true);
}, 2000);
}
else
else if('error' == response.status)
{
Swal.fire('Error!', response.message, 'error');
// toastr.error(response.message);
var message = response.message;
toastrku("error", message);
}
},
error: function(response, textStatus, errorThrown) {
// var errors = response.responseJSON.errors;
// console.log(errors);
console.log(response);
error: function (response, textStatus, errorThrown) {
var errors = response.responseJSON.errors;
$.each(errors, function (key, value) {
console.log("v = " + value);
});
}
});
});
}
})
}
</script>
}
function deleteData(data, kjppName) {
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert KJPP "+kjppName+"!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
if (result.isConfirmed) {
//define variable
let token = "{{ csrf_token() }}";
let useURL = "{{ route($route[0].'.'.$route[1].'.updateKJPPStatus','') }}/"+data;
var input_data = new Object();
input_data._token = token;
input_data.id =data;
input_data.kjppName =kjppName;
$.ajax({
url: useURL,
type: "PUT",
cache: false,
data: input_data,
dataType: "json",
success: function(response) {
if('success' == response.status)
{
swal.fire('Deleted!', response.message.message_success[0], 'success').then(() => {
window.location.reload();
});
}
else
{
Swal.fire('Error!', response.message.message_error_try_catch[0], 'error');
}
},
error: function(response, textStatus, errorThrown) {
// var errors = response.responseJSON.errors;
// console.log(errors);
console.log(response);
}
});
}
})
}
</script>

View File

@@ -1,19 +1,19 @@
@push('scripts')
@include('lpj::assetsku.includenya')
@include('lpj::prosespenawaran.js.editextjs')
<script type="module">
@include('lpj::prosespenawaran.js.editextjs')
<script type="module">
$(document).ready(function() {
prepareForm();
});
function prepareForm()
function prepareForm()
{
setData();
}
function setData()
{
function setData()
{
let id = $("#id").val();
let token = "{{ csrf_token() }}";
// alert('token = ' + token);
@@ -33,11 +33,18 @@
// }
},
success: function(response) {
console.log(response);
$("#textReg").text(response.penawaran.nomor_registrasi);
$("#textCodePenawaran").text(response.penawaran.code);
setTablesKJPP1(response.penawrandetails);
if ('success' == response.status)
{
$("#textReg").text(response.penawaran.nomor_registrasi);
$("#textCodePenawaran").text(response.penawaran.code);
setTablesKJPP1(response.penawrandetails);
}
else if('error' == response.status)
{
var message = response.message;
toastrku("error", message);
}
},
error: function(xhr) {
},
@@ -48,7 +55,7 @@
function setTablesKJPP1(datas)
{
let i=1;
let i=1;
$.each(datas, function(key, value){
var kjppName = value.kjpp_code+' - '+value.kjpp_name;
var biaya_penawaran = value.biaya_penawaran;// alert(biaya_penawaran);
@@ -62,16 +69,21 @@
var markup = '<tr>';
markup +='<td valign="top">'+i+'</td>';
markup +='<td valign="top"><label id="{{$route[1]}}_kjppName_'+value.id+'">'+kjppName+'</label></td>';
markup +='<td valign="top"><div class="input-group"><span class="btn btn-input">Rp.</span><input type="text" disabled="" style="text-align: right;" onkeydown="return numbersonly(this, event);" onkeyup="javascript:tandaPemisahTitik(this);" class="inputku input" id="{{$route[1]}}_biayaPenawaran_'+value.id+'" name="{{$route[1]}}_biayaPenawaran_'+value.id+'"></div><em id="{{$route[1]}}_biayaPenawaran_msg_'+value.id+'" class="alert text-danger text-sm"></em></td>';
markup +='<td valign="top"><div class="input-group"><span class="inputku btn btn-input" id="{{$route[1]}}_rp_'+value.id+'">Rp.</span><input type="text" disabled="" style="text-align: right;" onkeydown="return numbersonly(this, event);" onkeyup="javascript:tandaPemisahTitik(this);" class="inputku input" id="{{$route[1]}}_biayaPenawaran_'+value.id+'" name="{{$route[1]}}_biayaPenawaran_'+value.id+'"></div><em id="{{$route[1]}}_biayaPenawaran_msg_'+value.id+'" class="alert text-danger text-sm"></em></td>';
markup +='<td><input type="file" disabled="" class="inputku file-input" id="{{$route[1]}}_dokumenPersetujuan_'+value.id+'" name="{{$route[1]}}_dokumenPersetujuan_'+value.id+'" accept="application/pdf" /><em id="{{$route[1]}}_dokumenPersetujuan_msg_'+value.id+'" class="alert text-danger text-sm"></em>'+htmlDokumenPersetujuanDownload+'</td>';
markup +='<td><div class="flex flex-nowrap justify-center">';
markup +='<a disabled="" class="btn btn-sm btn-icon btn-clear btn-info" href="javascript:void(0)" id="{{$route[1]}}_icon_update_'+value.id+'" title="Proses Penawaran '+kjppName+'" onclick="updateData('+value.id+','+value.kjpp_rekanan_id+',\''+kjppName+'\')"><i class="ki-outline ki-notepad-edit"></i></a>';
markup +='<a disabled="" class="delete btn btn-sm btn-icon btn-clear btn-danger" id="{{$route[1]}}_icon_delete_'+value.id+'" onclick="deleteData('+value.id+')" title="Hapus Proses Penawaran '+kjppName+'"><i class="ki-outline ki-trash"></i></a>';
markup +='<a disabled="" class="btn btn-sm btn-icon btn-clear btn-info" href="javascript:void(0)" id="{{$route[1]}}_icon_update_'+value.id+'" title="Proses Penawaran '+kjppName+'" onclick="updateData('+value.id+','+value.kjpp_rekanan_id+',\''+kjppName+'\')"><i class="ki-outline ki-bookmark"></i></a>';
markup +='<a disabled="" class="delete btn btn-sm btn-icon btn-clear btn-danger" id="{{$route[1]}}_icon_delete_'+value.id+'" onclick="deleteData('+value.id+',\''+kjppName+'\')" title="Hapus Proses Penawaran '+kjppName+'"><i class="ki-outline ki-trash"></i></a>';
markup +='<label class="switch"><input name="{{$route[1]}}_check_'+value.id+'" id="{{$route[1]}}_check_'+value.id+'" onclick="switchProses('+value.id+')" type="checkbox" value="0"/><span class="switch-label">Proses</span></label></div></td>';
markup += '</tr>';
$('#tbodyKJPP1').append(markup);
$("#{{$route[1]}}_biayaPenawaran_"+value.id).val(tandaPemisahTitik(biaya_penawaran));
// pengecekan kondisi format number
var biaya_penawaran_format = "";
if(biaya_penawaran)
biaya_penawaran_format=tandaPemisahTitik(biaya_penawaran);
$("#{{$route[1]}}_biayaPenawaran_"+value.id).val(biaya_penawaran_format);
i++;
});
}
@@ -92,14 +104,14 @@
}
});
// update penawaran & permohonan status
// updateAll penawaran & permohonan status
$("#{{$route[1]}}_toEdit").click(function(e) {
e.preventDefault();
//define variable
let token = "{{ csrf_token() }}";
let useURL = "{{ route($route[0].'.'.$route[1].'.updateAll',$id) }}";
var input_data = new Object();
input_data._token = token;
input_data.id = "{{ $id }}";
@@ -110,19 +122,24 @@
data: input_data,
dataType: "json",
success: function(response) {
console.log(response);
if('success' == response.status)
{
toastr.success(response.message);
setTimeout(function () {
var url = "{{ route('tender.prosespenawaran.index') }}";
if ('success' == response.status)
{
// toastr.success(response.message);
// success
var message = response.message;
toastrku("success", message);
setTimeout(function () {
var url = "{{ route('tender.prosespenawaran.index') }}";
$(location).attr('href',url);
// window.location.href = "https://www.newurl.com";
}, 2000);
}
else if('error' == response.status)
{
var message = response.message;
toastrku("error", message);
}
else
toastr.error(_data.message);
},
error: function(response, textStatus, errorThrown) {
// var errors = response.responseJSON.errors;
@@ -130,7 +147,8 @@
console.log(response);
}
});
});
});
});
</script>
@endpush
@endpush

View File

@@ -0,0 +1,92 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@php
// $route = Route::currentRouteName();
// dd($route);
$route = explode('.', Route::currentRouteName());
@endphp
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<input type="hidden" id="id" name="id" value="{{ $id }}">
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
Tambah Data Proses Penawaran Ulang
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('tender.prosespenawaranulang.show', $id) }}" class="btn btn-xs btn-primary" title="Detail"><i class="ki-filled ki-abstract-26"></i> Detail</a>
<a href="{{ route('tender.prosespenawaranulang.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</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">
<label class="card-title" id="textReg">
No. registrasi
</label>
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Kode Penawaran:
</h3>
<span class="text-2sm text-gray-700">
<label class="card-title" id="textCodePenawaran">
Kode Penawaran
</label>
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Status Penawaran:
</h3>
<span class="text-2sm text-gray-700">
<label class="card-title" id="textStatusPenawaran">
Status
</label>
</span>
</div>
</div>
<div class="card-body grid gap-5">
<!-- datatables -->
<div class="grid">
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">Data KJPP</h3>
</div>
<div class="card-table scrollable-x-auto">
<table class="table table-border align-middle text-gray-700 font-medium text-sm">
<thead>
<tr>
<th class="w-14 text-center">No</th>
<th class="min-w-[250px]">KJPP</th>
<th>Biaya Penawaran</th>
<th>Upload Penawaran</th>
<th class="min-w-[50px] text-center">Action</th>
</tr>
</thead>
<tbody id="tbodyKJPP1">
</tbody>
</table>
</div>
</div>
</div>
<!-- datatables -->
<div class="flex justify-end">
&nbsp;
</div>
</div>
</div>
</div>
@endsection
@include('lpj::prosespenawaranulang.js.editjs')

View File

@@ -0,0 +1,152 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render('tender.prosespenawaranulang') }}
@endsection
@section('content')
<div class="grid">
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="prosespenawaranulang-table" data-api-url="{{ route('tender.prosespenawaranulang.datatables') }}">
<div class="card-header py-5 flex-wrap">
<h3 class="card-title">
Daftar Proses Penawaran Ulang
</h3>
<div class="flex flex-wrap gap-2 lg:gap-5">
<div class="flex">
<label class="input input-sm"> <i class="ki-filled ki-magnifier"> </i>
<input placeholder="Search Proses penawaran Ulang" id="search" type="text" value="">
</label>
</div>
<div class="flex flex-wrap gap-2.5">
<div class="h-[24px] border border-r-gray-200"></div>
<a class="btn btn-sm btn-light" href="#"> Export to Excel </a>
</div>
</div>
</div>
<div class="card-body">
<div class="scrollable-x-auto">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm" data-datatable-table="true">
<thead>
<tr>
<th class="w-14">
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox"/>
</th>
<th class="min-w-[150px]" data-datatable-column="nomor_registrasi">
<span class="sort"> <span class="sort-label"> Nomor Registrasi </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="code">
<span class="sort"> <span class="sort-label"> Kode Penawaran </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="start_date">
<span class="sort"> <span class="sort-label"> Tanggal Penawaran </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_kjpp_id">
<span class="sort"> <span class="sort-label"> Tujuan Penilaian </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="penawarandetails_count">
<span class="sort"> <span class="sort-label"> Total KJPP </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="status">
<span class="sort"> <span class="sort-label"> Status </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th>
</tr>
</thead>
</table>
</div>
<div class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium">
<div class="flex items-center gap-2">
Show
<select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per page
</div>
<div class="flex items-center gap-4">
<span data-datatable-info="true"> </span>
<div class="pagination" data-datatable-pagination="true">
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('scripts')
<script type="text/javascript">
function showProsesPenawaranUlangData(regId)
{
// alert('aw');
var url = "{{ url('tender/prosespenawaranulang') }}/"+regId;
$(location).attr('href',url);
}
</script>
<script type="module">
const element = document.querySelector('#prosespenawaranulang-table');
const searchInput = document.getElementById('search');
const apiUrl = element.getAttribute('data-api-url');
const dataTableOptions = {
apiEndpoint: apiUrl,
pageSize: 5,
columns: {
select: {
render: (item, data, context) => {
const checkbox = document.createElement('input');
checkbox.className = 'checkbox checkbox-sm';
checkbox.type = 'checkbox';
checkbox.value = data.id.toString();
checkbox.setAttribute('data-datatable-row-check', 'true');
return checkbox.outerHTML.trim();
},
},
'nomor_registrasi': {
title: 'Nomor Registrasi',
},
code: {
title: 'Kode Penawaran',
},
date_range: {
title: 'Tanggal Penawaran',
},
tujuan_penilaian_kjpp_name: {
title: 'Tujuan Penilaian',
},
penawarandetails_count: {
title: 'Total KJPP',
createdCell(cell) {
cell.classList.add('text-center');
},
},
status: {
title: 'Status'
},
actions: {
title: 'Status',
render: (item, data) => {
return `<div class="flex flex-nowrap justify-center">
<a onclick="showProsesPenawaranUlangData(${data.id})" class="btn btn-sm btn-icon btn-clear btn-primary" title="Detail">
<i class="ki-outline ki-eye"></i>
</a>
<a class="btn btn-sm btn-icon btn-clear btn-info" title="Proses Penawaran" href="tender/prosespenawaranulang/${data.id}/edit">
<i class="ki-outline ki-notepad-edit"></i>
</a>
</div>`;
},
}
},
};
let dataTable = new KTDataTable(element, dataTableOptions);
// Custom search functionality
searchInput.addEventListener('input', function () {
const searchValue = this.value.trim();
dataTable.search(searchValue, true);
});
</script>
@endpush

View File

@@ -0,0 +1,152 @@
<script tipe="module">
function switchProses(id)
{
removeErrorCssMsg();
let c = $('#{{$route[1]}}_check_'+id).val();
if($('input[name="{{$route[1]}}_check_'+id+'"]').is(':checked'))
{
// checked
// alert('aktif nih');
setActiveElement(id);
}else
{
// unchecked
//alert('tdk aktif nih');
setNonActiveElement(id);
}
}
function setActiveElement(id)
{
$('#{{$route[1]}}_biayaPenawaran_'+id).removeAttr('disabled');
$('#{{$route[1]}}_dokumenPersetujuan_'+id).removeAttr('disabled');
$('#{{$route[1]}}_icon_update_'+id).removeAttr('disabled');
$('#{{$route[1]}}_icon_delete_'+id).removeAttr('disabled');
}
function setNonActiveElement(id)
{
$('#{{$route[1]}}_biayaPenawaran_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_dokumenPersetujuan_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_icon_update_'+id).attr('disabled', 'disabled');
$('#{{$route[1]}}_icon_delete_'+id).attr('disabled', 'disabled');
}
function updateData(id, kjpp_id, kjppName){
removeErrorCssMsg();
let biaya = $("#{{$route[1]}}_biayaPenawaran_"+id).val();
let filepdf = $("#{{$route[1]}}_dokumenPersetujuan_"+id).val();
let passednih = true;
if(!biaya){
$("#{{$route[1]}}_rp_"+id).addClass(" border-danger");
$("#{{$route[1]}}_biayaPenawaran_"+id).addClass(" border-danger");
$("#{{$route[1]}}_biayaPenawaran_msg_"+id).text("Silahkan isi Biaya Penawaran nya");
passednih = false;
}
if(!filepdf){
$("#{{$route[1]}}_dokumenPersetujuan_"+id).addClass(" border-danger");
$("#{{$route[1]}}_dokumenPersetujuan_msg_"+id).text("Silahkan isi dokumen nya");
$("#{{$route[1]}}_dokumenPersetujuan_"+id).val("");
passednih = false;
}
if(passednih)
{
var file_data = $("#{{$route[1]}}_dokumenPersetujuan_"+id).prop("files")[0];
let useURL = "{{ route($route[0].'.'.$route[1].'.update', '') }}/"+id;
let formData = new FormData();
let token = "{{ csrf_token() }}";
formData.append("dokumen_persetujuan", file_data ?? "");
formData.append("biaya_penawaran", biaya);
formData.append("kjpp_rekanan_id", kjpp_id);
formData.append("_method", "PUT");
formData.append("_token", token);
$.ajax({
url: useURL,
type: "POST",
data: formData,
processData: false,
contentType: false,
success:function(response){
if('success' == response.status)
{
// toastr.success(response.message);
// success
var message = response.message;
toastrku("success", message);
setTimeout(function () {
location.reload(true);
}, 2000);
}
else if('error' == response.status)
{
// toastr.error(response.message);
var message = response.message;
toastrku("error", message);
}
},
error: function (response, textStatus, errorThrown) {
var errors = response.responseJSON.errors;
$.each(errors, function (key, value) {
console.log("v = " + value);
});
}
});
}
}
function deleteData(data, kjppName) {
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert KJPP "+kjppName+"!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
if (result.isConfirmed) {
//define variable
let token = "{{ csrf_token() }}";
let useURL = "{{ route($route[0].'.'.$route[1].'.updateKJPPStatus','') }}/"+data;
var input_data = new Object();
input_data._token = token;
input_data.id =data;
input_data.kjppName =kjppName;
$.ajax({
url: useURL,
type: "PUT",
cache: false,
data: input_data,
dataType: "json",
success: function(response) {
console.log(response);
if('success' == response.status)
{
swal.fire('Deleted!', response.message.message_success[0], 'success').then(() => {
window.location.reload();
});
}
else
{
Swal.fire('Error!', response.message.message_error_try_catch[0], 'error');
}
},
error: function(response, textStatus, errorThrown) {
// var errors = response.responseJSON.errors;
// console.log(errors);
console.log(response);
}
});
}
})
}
</script>

View File

@@ -0,0 +1,112 @@
@push('scripts')
@include('lpj::assetsku.includenya')
@include('lpj::prosespenawaranulang.js.editextjs')
<script type="module">
$(document).ready(function() {
prepareForm();
});
function prepareForm()
{
setData();
}
function setData()
{
let id = $("#id").val();
let token = "{{ csrf_token() }}";
// alert('token = ' + token);
var useURL = "{{ route('tender.prosespenawaranulang.setData') }}";
var input_data = new Object();
input_data._token = token;
input_data.id = id;
$.ajax({
url: useURL,
type: "POST",
data: input_data,
dataType: "json",
beforeSend: function() {
// if ($("#myLoader").hasClass("pre-loader hidden")) {
// pleaseStartLoader();
// }
},
success: function(response) {
console.log(response);
if("success"==response.status)
{
var statusText = response.penawaran.status;
$("#textReg").text(response.penawaran.nomor_registrasi);
$("#textCodePenawaran").text(response.penawaran.code);
$("#textStatusPenawaran").text(statusText);
setTablesKJPP1(response.penawrandetails);
}
else
{
// toastr.error(response.message);
var message = response.message;
toastrku("error", message);
}
},
error: function(xhr) {
},
complete: function() {
}
});
}
function setTablesKJPP1(datas)
{
let i=1;
$.each(datas, function(key, value){
var kjppName = value.kjpp_code+' - '+value.kjpp_name;
var biaya_penawaran = value.biaya_penawaran;// alert(biaya_penawaran);
var htmlDokumenPersetujuanDownload='';
var dokumenPersetujuanDownload = value.dokumen_persetujuan;
if(dokumenPersetujuanDownload)
{
htmlDokumenPersetujuanDownload='<div class="flex items-center justify-between flex-wrap my-2.5 gap-2"><a href="'+value.dokumen_persetujuan+'" class="badge badge-sm badge-outline" download="'+value.attachment+'">'+value.attachment+'<i class="ki-filled ki-cloud-download"></i></a></div>';
}
var markup = '<tr>';
markup +='<td valign="top">'+i+'</td>';
markup +='<td valign="top"><label id="{{$route[1]}}_kjppName_'+value.id+'">'+kjppName+'</label></td>';
markup +='<td valign="top"><div class="input-group"><span class="inputku btn btn-input" id="{{$route[1]}}_rp_'+value.id+'">Rp.</span><input type="text" disabled="" style="text-align: right;" onkeydown="return numbersonly(this, event);" onkeyup="javascript:tandaPemisahTitik(this);" class="inputku input" id="{{$route[1]}}_biayaPenawaran_'+value.id+'" name="{{$route[1]}}_biayaPenawaran_'+value.id+'"></div><em id="{{$route[1]}}_biayaPenawaran_msg_'+value.id+'" class="alert text-danger text-sm"></em></td>';
markup +='<td><input type="file" disabled="" class="inputku file-input" id="{{$route[1]}}_dokumenPersetujuan_'+value.id+'" name="{{$route[1]}}_dokumenPersetujuan_'+value.id+'" accept="application/pdf" /><em id="{{$route[1]}}_dokumenPersetujuan_msg_'+value.id+'" class="alert text-danger text-sm"></em>'+htmlDokumenPersetujuanDownload+'</td>';
markup +='<td><div class="flex flex-nowrap justify-center">';
markup +='<a disabled="" class="btn btn-sm btn-icon btn-clear btn-info" href="javascript:void(0)" id="{{$route[1]}}_icon_update_'+value.id+'" title="Proses Penawaran '+kjppName+'" onclick="updateData('+value.id+','+value.kjpp_rekanan_id+',\''+kjppName+'\')"><i class="ki-outline ki-bookmark"></i></a>';
markup +='<a disabled="" class="delete btn btn-sm btn-icon btn-clear btn-danger" id="{{$route[1]}}_icon_delete_'+value.id+'" onclick="deleteData('+value.id+',\''+kjppName+'\')" title="Hapus Proses Penawaran '+kjppName+'"><i class="ki-outline ki-trash"></i></a>';
markup +='<label class="switch"><input name="{{$route[1]}}_check_'+value.id+'" id="{{$route[1]}}_check_'+value.id+'" onclick="switchProses('+value.id+')" type="checkbox" value="0"/><span class="switch-label">Proses</span></label></div></td>';
markup += '</tr>';
$('#tbodyKJPP1').append(markup);
// pengecekan kondisi format number
var biaya_penawaran_format = "";
if(biaya_penawaran)
biaya_penawaran_format=tandaPemisahTitik(biaya_penawaran);
$("#{{$route[1]}}_biayaPenawaran_"+value.id).val(biaya_penawaran_format);
i++;
});
}
$(document).on("input", "input:file", function(e) {
let fileName = e.target.files[0].name;
let inputFile = e.target.id;
const myArray = inputFile.split("_");
let penawaranID = myArray[myArray.length-1];
let kjppName = $("#{{$route[1]}}_kjppName_"+penawaranID).text();
let upld = fileName.split(".").pop();
if(upld == "pdf" || upld =="PDF"){}
else{
removeErrorCssMsg();
$("#{{$route[1]}}_dokumenPersetujuan_"+penawaranID).addClass(" border-danger");
$("#{{$route[1]}}_dokumenPersetujuan_msg_"+penawaranID).text("Silahkan Masukan tipe file PDF Mas");
$("#"+inputFile).val("");
}
});
</script>
@endpush

View File

@@ -0,0 +1,43 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@php
$route = explode('.', Route::currentRouteName());
@endphp
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
Detail Data Proses Penawaran Ulang
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('tender.prosespenawaranulang.edit', $id) }}" class="btn btn-xs btn-primary" title="Proses Penawaran Ulang"><i class="ki-filled ki-arrow-circle-right"></i> Proses Penawaran Ulang</a>
<a href="{{ route('tender.prosespenawaranulang.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</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">
{{ $prosespenawaran->nomor_registrasi }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Kode Penawaran:
</h3>
<span class="text-2sm text-gray-700">
{{ $prosespenawaran->code }}
</span>
</div>
</div>
</div>
</div>
@endsection

View File

@@ -38,11 +38,23 @@
// }
},
success: function(response) {
console.log(response);
if ('success' == response.status)
{
$("#textReg").text(response.datas.nomor_registrasi);
setJenisPenilaianList(response.jenisPenilaians,0);
setRegionList(response.regions,0);
$("#textReg").text(response.datas.nomor_registrasi);
setJenisPenilaianList(response.jenisPenilaians,0);
setRegionList(response.regions,0);
// success
// var message = response.message;
// toastrku("success", message);
}
else if('error' == response.status)
{
var message = response.message;
toastrku("error", message);
}
},
error: function(xhr) {
},
@@ -152,8 +164,14 @@
else
{
//toastr.success(response.message);
var url = "{{ route('registrasi.index') }}";
$(location).attr('href',url);
var message = response.message;
toastrku("success", message);
setTimeout(function () {
var url = "{{ route('registrasi.index') }}";
$(location).attr('href',url);
// window.location.href = "https://www.newurl.com";
}, 2000);
}
},
@@ -189,10 +207,5 @@
}
});
/*
$('#{{$route[0]}}_jenis_penilaian').on('change', function() {
console.log( this.value );
});
*/
</script>
@endpush

View File

@@ -145,98 +145,7 @@
</div>
</div>
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">
Data Jaminan
</h3>
</div>
<div data-accordion="true">
@foreach($permohonan->debiture->documents as $dokumen)
<div class="accordion-item [&:not(:last-child)]:border-b border-b-gray-200" data-accordion-item="true" id="accordion_1_item_1">
<button class="accordion-toggle py-4 group mx-8" data-accordion-toggle="#accordion_1_content_1">
<span class="text-base text-gray-900 font-medium">
Jaminan {{ $loop->index + 1 }}
</span>
<i class="ki-outline ki-plus text-gray-600 text-2sm accordion-active:hidden block">
</i>
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
</i>
</button>
<div class="accordion-content hidden" id="accordion_1_content_1">
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->name?? "" }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Jenis Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->jenisJaminan->name?? "" }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Hubungan Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->hubungan_pemilik->name?? "" }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Alamat Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $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>
<div class="card-table scrollable-x-auto pb-3">
<table class="table align-middle text-sm text-gray-500">
@foreach($dokumen->detail as $detail)
<tr>
<td class="py-2 text-gray-600 font-normal max-w-[100px]">
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $detail->name ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Dokumen Jaminan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
@if(isset($detail->dokumen_jaminan))
<a href="{{ route('debitur.jaminan.download',['id'=>$permohonan->debiture->id,'dokumen'=>$detail->id]) }}" class="badge badge-sm badge-outline mt-2">{{ basename($detail->dokumen_jaminan) }}
<i class="ki-filled ki-cloud-download"></i></a>
@endif
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Keterangan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $detail->keterangan ?? "" }}
</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
@endforeach
</div>
</div>
@include('lpj::component.detail-jaminan')
<div class="card pb-2.5">
@@ -312,5 +221,4 @@
</div>
@endsection
@include('lpj::registrasi.js.showjs')
@include('lpj::registrasi.js.editjs')

View File

@@ -0,0 +1,106 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@php
// $route = Route::currentRouteName();
// dd($route);
$route = explode('.', Route::currentRouteName());
@endphp
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<form id="{{$route[0]}}_form" name="{{$route[0]}}_form" method="POST">
<input type="hidden" id="id" name="id" value="{{ $id }}">
@method('PUT')
@csrf
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
Tambah Registrasi Final
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('registrasifinal.show', $id) }}" class="btn btn-xs btn-primary" title="Detail"><i class="ki-filled ki-abstract-26"></i> Detail</a>
<a href="{{ route('registrasifinal.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</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">
<label class="card-title" id="textReg">
No. registrasi
</label>
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Kode Penawaran:
</h3>
<span class="text-2sm text-gray-700">
<label class="card-title" id="textCodePenawaran">
Kode Penawaran
</label>
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Status Penawaran:
</h3>
<span class="text-2sm text-gray-700">
<label class="card-title" id="textStatusPenawaran">
Status
</label>
</span>
</div>
</div>
<div class="card-body grid gap-5">
<div id="{{ $route[0] }}_div_region" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Dokumen SPK
</label>
<div class="flex flex-wrap items-baseline w-full">
<em id="" class="alert text-danger text-sm"></em>
<div class="flex items-center justify-between flex-wrap my-2.5 gap-2"><a href="javascript:void(0)" class="badge badge-sm badge-outline">SPK_Dokumen.pdf &nbsp;&nbsp;<i class="ki-filled ki-cloud-download"></i></a></div>
</div>
</div>
<div id="{{ $route[0] }}_div_region" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Region
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="inputku select" id="{{$route[0]}}_region" name="{{$route[0]}}_region">
<option></option>
</select>
<em id="{{$route[0]}}_region_msg" class="alert text-danger text-sm"></em>
</div>
</div>
<div id="{{ $route[0] }}_div_catatan" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Catatan
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="inputku textarea" name="{{$route[0]}}_catatan" id="{{$route[0]}}_catatan" placeholder="Catatan..." rows="6"></textarea>
<em id="{{$route[0]}}_catatan_msg" class="alert text-danger text-sm"></em>
</div>
</div>
<div class="flex justify-end">
<button type="button" class="btn btn-primary" id="toEdit">
Save
</button>
</div>
</div>
</div>
</form>
</div>
@endsection
@include('lpj::registrasifinal.js.editjs')

View File

@@ -0,0 +1,158 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render('registrasifinal') }}
@endsection
@section('content')
<div class="grid">
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="registrasifinal-table" data-api-url="{{ route('registrasifinal.datatables') }}">
<div class="card-header py-5 flex-wrap">
<h3 class="card-title">
Daftar Registrasi Final
</h3>
<div class="flex flex-wrap gap-2 lg:gap-5">
<div class="flex">
<label class="input input-sm"> <i class="ki-filled ki-magnifier"> </i>
<input placeholder="Search Registrasi Final" id="search" type="text" value="">
</label>
</div>
<div class="flex flex-wrap gap-2.5">
<div class="h-[24px] border border-r-gray-200"></div>
<a class="btn btn-sm btn-light" href="#"> Export to Excel </a>
</div>
</div>
</div>
<div class="card-body">
<div class="scrollable-x-auto">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm" data-datatable-table="true">
<thead>
<tr>
<th class="w-14">
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox"/>
</th>
<th class="min-w-[150px]" data-datatable-column="nomor_registrasi">
<span class="sort"> <span class="sort-label"> Nomor Registrasi </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="code">
<span class="sort"> <span class="sort-label"> Kode Penawaran </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="start_date">
<span class="sort"> <span class="sort-label"> Tanggal Penawaran </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_kjpp_id">
<span class="sort"> <span class="sort-label"> Tujuan Penilaian </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="nama_kjpp_sebelumnya">
<span class="sort"> <span class="sort-label">KJPP Data</span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="status">
<span class="sort"> <span class="sort-label"> Status </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th>
</tr>
</thead>
</table>
</div>
<div class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium">
<div class="flex items-center gap-2">
Show
<select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per page
</div>
<div class="flex items-center gap-4">
<span data-datatable-info="true"> </span>
<div class="pagination" data-datatable-pagination="true">
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('scripts')
<script type="text/javascript">
function showRegistrasiFinal(regId)
{
var url = "{{ url('registrasifinal') }}/"+regId;
$(location).attr('href',url);
}
</script>
<script type="module">
const element = document.querySelector('#registrasifinal-table');
const searchInput = document.getElementById('search');
const apiUrl = element.getAttribute('data-api-url');
const dataTableOptions = {
apiEndpoint: apiUrl,
pageSize: 5,
columns: {
select: {
render: (item, data, context) => {
const checkbox = document.createElement('input');
checkbox.className = 'checkbox checkbox-sm';
checkbox.type = 'checkbox';
checkbox.value = data.id.toString();
checkbox.setAttribute('data-datatable-row-check', 'true');
return checkbox.outerHTML.trim();
},
},
'nomor_registrasi': {
title: 'Nomor Registrasi',
},
code: {
title: 'Kode Penawaran',
},
date_range: {
title: 'Tanggal Penawaran',
},
tujuan_penilaian_kjpp_name: {
title: 'Tujuan Penilaian',
},
nama_kjpp_sebelumnya: {
title: 'Nama KJPP Terpilih',
render: (item, data) => {
return `${data.nama_kjpp_sebelumnya}`+'<br />'
+`${data.biaya_kjpp_sebelumnya}`+'<br /> '
+`${data.tanggal_penilaian_sebelumnya}`;
},
},
status: {
title: 'Status',
render: (item, data) => {
return `${data.status}`.toUpperCase();
},
},
actions: {
title: 'Status',
render: (item, data) => {
return `<div class="flex flex-nowrap justify-center">
<a onclick="showRegistrasiFinal(${data.id})" class="btn btn-sm btn-icon btn-clear btn-primary" title="Detail">
<i class="ki-outline ki-eye"></i>
</a>
<a class="btn btn-sm btn-icon btn-clear btn-info" title="Proses Penawaran" href="registrasifinal/${data.id}/edit">
<i class="ki-outline ki-notepad-edit"></i>
</a>
</div>`;
},
}
},
};
let dataTable = new KTDataTable(element, dataTableOptions);
// Custom search functionality
searchInput.addEventListener('input', function () {
const searchValue = this.value.trim();
dataTable.search(searchValue, true);
});
</script>
@endpush

View File

@@ -1,12 +1,17 @@
@push('scripts')
<script type="module">
@include('lpj::assetsku.includenya')
<script type="module">
$(document).ready(function() {
prepareForm();
});
function prepareForm()
{
$("#registrasifinal_form")[0].reset();
// $("#{{ $route[0] }}_div_catatan").hide();
// $("#{{ $route[0] }}_div_region").hide();
// prepare data
setData();
}
@@ -15,7 +20,7 @@
let id = $("#id").val();
let token = "{{ csrf_token() }}";
// alert('token = ' + token);
var useURL = "{{ route('registrasi.showData') }}";
var useURL = "{{ route('registrasifinal.setData') }}";
var input_data = new Object();
input_data._token = token;
input_data.id = id;
@@ -31,10 +36,24 @@
// }
},
success: function(response) {
console.log(response);
if ('success' == response.status)
{
$("#textReg").text(response.datas.nomor_registrasi);
$("#textCodePenawaran").text(response.penawaran.code);
$("#textStatusPenawaran").text(response.penawaran.status);
setRegionList(response.regions,0);
$("#textReg").text(response.datas.nomor_registrasi);
// setJenisPenilaianList(response.jenisPenilaians,0);
// success
// var message = response.message;
// toastrku("success", message);
}
else if('error' == response.status)
{
var message = response.message;
toastrku("error", message);
}
},
error: function(xhr) {
},
@@ -43,35 +62,16 @@
});
}
function setJenisPenilaianList(datas, cid)
function setRegionList(datas, cid)
{
$('#{{$route[0]}}_jenis_penilaian').empty().append('<option value="0"> - Pilih Jenis Penilaian - </option>');
$('#{{$route[0]}}_region').empty().append('<option value="0"> - Pilih Region - </option>');
$.each(datas, function(key, value){
$('#{{$route[0]}}_jenis_penilaian').append(new Option(value, key));
$('#{{$route[0]}}_region').append(new Option(value, key));
});
}
$('input[type=radio][name={{ $route[0] }}_tindakan]').change(function() {
if($(this).val()==0)
{
// show jenis pilihan
// hide catatan
$("#{{ $route[0] }}_div_jenis_pilihan").show();
$("#{{ $route[0] }}_catatan").val('');
$("#{{ $route[0] }}_div_catatan").hide();
}
else
{
$("#{{$route[0]}}_jenis_penilaian option[value=0]").prop('selected', true);
$("#{{ $route[0] }}_div_jenis_pilihan").hide();
$("#{{ $route[0] }}_div_catatan").show();
}
});
$("#toEdit").click(function(e) {
e.preventDefault();
@@ -80,19 +80,17 @@
let _method = $('input[name=_method]').val();
let id = $('#{{$route[0]}}_id').val();
let tindakan = $('input[name="{{$route[0]}}_tindakan"]:checked').val();
let jenis_penilaian = $("#{{$route[0]}}_jenis_penilaian").val();
let region = $("#{{$route[0]}}_region").val();
let catatan = $("#{{$route[0]}}_catatan").val();
if(jenis_penilaian==0)
jenis_penilaian='';
if(region==0)
region='';
var input_data = new Object();
input_data._token= token;
input_data._method= _method;
input_data.id= id;
input_data.tindakan= tindakan;
input_data.jenis_penilaian= jenis_penilaian;
input_data.region= region;
input_data.catatan = catatan;
let useURL= '{{ route($route[0].'.update', $id) }}';
@@ -115,17 +113,23 @@
$("#{{$route[0]}}_catatan_msg").text(value);
}
if ("jenis_penilaian" === index) {
$("#{{$route[0]}}_jenis_penilaian").addClass(" border-danger");
$("#{{$route[0]}}_jenis_penilaian_msg").text(value);
if ("region" === index) {
$("#{{$route[0]}}_region").addClass(" border-danger");
$("#{{$route[0]}}_region_msg").text(value);
}
});
}
else
{
toastr.success(response.message);
var url = "{{ route('registrasi.index') }}";
$(location).attr('href',url);
//toastr.success(response.message);
var message = response.message;
toastrku("success", message);
setTimeout(function () {
var url = "{{ route('registrasifinal.index') }}";
$(location).attr('href',url);
// window.location.href = "https://www.newurl.com";
}, 2000);
}
},
@@ -144,5 +148,6 @@
});
</script>
@endpush

View File

@@ -0,0 +1,151 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@php
// $route = Route::currentRouteName();
// dd($route); registrasi.show
$route = explode('.', Route::currentRouteName());
@endphp
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card">
<div class="card-header" id="advanced_settings_appearance">
<h3 class="card-title">
Data Permohonan
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('registrasifinal.edit', $id) }}" class="btn btn-xs btn-primary" title="Register Final"><i class="ki-filled ki-arrow-circle-right"></i> Registrasi Final</a>
<a href="{{ route('registrasifinal.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</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 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>
@endsection

View File

@@ -0,0 +1,486 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render('resume') }}
@endsection
@section('content')
<style>
.input-group {
position: relative;
width: 100%;
}
.left-group {
padding-right: 2.5rem;
}
.right-group {
padding-left: 2.5rem;
}
.input-group .input-unit {
position: absolute;
top: 50%;
transform: translateY(-50%);
pointer-events: none;
color: #6b7280;
}
.input-group .input-unit.left {
left: 0.75rem;
}
.input-group .input-unit.right {
right: 0.75rem;
}
</style>
<div class="grid">
<div class="card card-grid min-w-full" id="debitur-table">
<div class="card-header py-5 flex-wrap">
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<form action="" method="POST" class="grid gap-5">
<input type="hidden" name="id" value="">
@csrf
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
CADEB AN
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('cadeb') border-danger bg-danger-light @enderror"
type="text" name="cadeb" value="">
@error('cadeb')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Jenis Aset
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('aset') border-danger bg-danger-light @enderror"
type="text" name="aset" value="">
@error('aset')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Fasilitas Kredit
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('kredit') border-danger bg-danger-light @enderror"
type="text" name="kredit" value="">
@error('kredit')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Alamat Objek
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('alamat') border-danger bg-danger-light @enderror"
type="text" name="alamat" value="">
@error('alamat')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Cabang Pemohon
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('cabang') border-danger bg-danger-light @enderror"
type="text" name="cabang" value="">
@error('cabang')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
AO
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('ao') border-danger bg-danger-light @enderror" type="text"
name="ao" value="">
@error('ao')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<hr>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Surveyor
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('surveyor') border-danger bg-danger-light @enderror"
type="text" name="surveyor" value="">
@error('surveyor')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Penilai
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('penilai') border-danger bg-danger-light @enderror"
type="text" name="penilai" value="">
@error('penilai')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tanggal Survey
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('tanggal_survey') border-danger bg-danger-light @enderror"
type="date" name="tanggal_survey" value="">
@error('tanggal_survey')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Nomor Resume
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('nomor_resume') border-danger bg-danger-light @enderror"
type="number" name="nomor_resume" value="">
@error('nomor_resume')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
Tanggal Resume
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('tanggal_resume') border-danger bg-danger-light @enderror"
type="date" name="tanggal_resume" value="">
@error('tanggal_resume')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<hr>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Faktor Positif
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('faktor_positif') border-danger bg-danger-light @enderror" rows="3"
type="number" id="faktor_positif" name="faktor_positif"></textarea>
@error('faktor_positif')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Faktor Negatif
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('faktor_negatif') border-danger bg-danger-light @enderror" rows="3"
type="number" id="faktor_negatif" name="faktor_negatif"></textarea>
@error('faktor_negatif')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<hr>
<label class="form-label">Kesimpulan Nilai Pasar</label>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Sesuai Fisik
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="input-group w-full">
<input
class="input w-full @error('sertifikat') border-danger bg-danger-light @enderror"
type="text" name="sertifikat" placeholder="Sertifikat" value="">
@error('sertifikat')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_tanah') border-danger bg-danger-light @enderror"
type="number" name="luas_tanah" placeholder="Luas tanah" value="">
<span class="input-unit right"></span>
@error('luas_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_bangunan') border-danger bg-danger-light @enderror"
type="number" name="luas_bangunan" placeholder="Luas bangunan"
value="">
<span class="input-unit right"></span>
@error('luas_bangunan')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<span class="input-unit left">Rp</span>
<input
class="right-group input w-full pl-8 @error('pasar_wajar') border-danger bg-danger-light @enderror"
type="number" name="pasar_wajar" placeholder="Nilai pasar wajar"
value="">
@error('pasar_wajar')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Sesuai IMB
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="input-group w-full">
<input
class="input w-full @error('sertifikat') border-danger bg-danger-light @enderror"
type="text" name="sertifikat" placeholder="Sertifikat" value="">
@error('sertifikat')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_tanah') border-danger bg-danger-light @enderror"
type="number" name="luas_tanah" placeholder="Luas tanah" value="">
<span class="input-unit right"></span>
@error('luas_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_bangunan') border-danger bg-danger-light @enderror"
type="number" name="luas_bangunan" placeholder="Luas bangunan"
value="">
<span class="input-unit right"></span>
@error('luas_bangunan')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<span class="input-unit left">Rp</span>
<input
class="right-group input w-full pl-8 @error('pasar_wajar') border-danger bg-danger-light @enderror"
type="number" name="pasar_wajar" placeholder="Nilai pasar wajar"
value="">
@error('pasar_wajar')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Asumsi nilai terpotong jalan/GSB
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="flex flex-col lg:flex-row gap-2 w-full">
<div class="input-group w-full">
<input
class="input w-full @error('sertifikat') border-danger bg-danger-light @enderror"
type="text" name="sertifikat" placeholder="Sertifikat" value="">
@error('sertifikat')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_tanah') border-danger bg-danger-light @enderror"
type="number" name="luas_tanah" placeholder="Luas tanah" value="">
<span class="input-unit right"></span>
@error('luas_tanah')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<input
class="left-group input w-full @error('luas_bangunan') border-danger bg-danger-light @enderror"
type="number" name="luas_bangunan" placeholder="Luas bangunan"
value="">
<span class="input-unit right"></span>
@error('luas_bangunan')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="input-group w-full">
<span class="input-unit left">Rp</span>
<input
class="right-group input w-full pl-8 @error('pasar_wajar') border-danger bg-danger-light @enderror"
type="number" name="pasar_wajar" placeholder="Nilai pasar wajar"
value="">
@error('pasar_wajar')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
</div>
<hr>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Catatan perlu diperhatikan
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('catatan') border-danger bg-danger-light @enderror" rows="3" type="number"
id="catatan" name="catatan"></textarea>
@error('catatan')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<hr>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
DISCLAIMER
</label>
<div class="flex flex-wrap items-baseline w-full">
<ol>
<li>Laporan Resume ini dikeluarkan dikarenakan belum dilakukannya pembayaran biaya
penilaian jaminan</li>
<li>Laporan Resume ini tidak bisa dijadikan sebagai dasar pengajuan dan atau pencairan
kredit, laporan yang digunakan tetap wajib berupa Laporan Penilaian Jaminan (LPJ)
</li>
<li>Detail per meter tanah dan bangunan, sarana pelengkap dll akan tercatat di Laporan
Penilaian Jaminan (LPJ) nanti</li>
<li>Laporan Resume ini hanya digunakan untuk kepentingan internal bagi</li>
<li>Laporan resume ini hanya berlaku <span class="text-red-500">14 hari</span> kerja
terhitung dari tanggal resume ini dibuat sesuai aturan yang berlaku, apabila lewat
maka harus dilakukan order ulang sesuai prosedur yang berlaku</li>
<li>Apabila sudah melewati 6 bulan, maka harus penilaian ulang kembali</li>
</ol>
</div>
</div>
<hr>
<label class="form-label">Salam,</label>
<div class="flex flex-wrap lg:flex-nowrap gap-4">
<div class="flex items-center w-full lg:w-1/2 gap-2.5">
<label class="form-label max-w-56 lg:w-32">
PENILAI
</label>
<label class="form-label max-w-56 lg:w-32">
SENIOR OFICER
</label>
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</form>
</div>
</div>
</div>
{{-- <form method="POST" action="">
<div class="card pb-2.5">
<input type="hidden" name="action" value="">
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text"
name="code" value="">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text"
name="name" value="">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
</form> --}}
</div>
@endsection

View File

@@ -1,27 +1,27 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render('basicdata.branch') }}
{{ Breadcrumbs::render('basicdata.tujuan-penilaian') }}
@endsection
@section('content')
<div class="grid">
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="branch-table" data-api-url="{{ route('basicdata.branch.datatables') }}">
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="tujuan-penilaian-table" data-api-url="{{ route('basicdata.tujuan-penilaian.datatables') }}">
<div class="card-header py-5 flex-wrap">
<h3 class="card-title">
Daftar Cabang
SPK Menu
</h3>
<div class="flex flex-wrap gap-2 lg:gap-5">
<div class="flex">
<label class="input input-sm"> <i class="ki-filled ki-magnifier"> </i>
<input placeholder="Search Branch" id="search" type="text" value="">
<input placeholder="Search Doc SPK" id="search" type="text" value="">
</label>
</div>
<div class="flex flex-wrap gap-2.5">
<!-- <div class="flex flex-wrap gap-2.5">
<div class="h-[24px] border border-r-gray-200"></div>
<a class="btn btn-sm btn-light" href="{{ route('basicdata.branch.export') }}"> Export to Excel </a>
<a class="btn btn-sm btn-primary" href="{{ route('basicdata.branch.create') }}"> Tambah Cabang </a>
</div>
<a class="btn btn-sm btn-light" href="{{ route('basicdata.tujuan-penilaian.export') }}"> Export to Excel </a>
<a class="btn btn-sm btn-primary" href="{{ route('basicdata.tujuan-penilaian.create') }}"> Tambah Tujuan Penilaian </a>
</div> -->
</div>
</div>
<div class="card-body">
@@ -33,11 +33,11 @@
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox"/>
</th>
<th class="min-w-[250px]" data-datatable-column="code">
<span class="sort"> <span class="sort-label"> Code </span>
<span class="sort"> <span class="sort-label"> No SPK </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[250px]" data-datatable-column="name">
<span class="sort"> <span class="sort-label"> Cabang </span>
<span class="sort"> <span class="sort-label"> Perihal </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th>
@@ -62,6 +62,7 @@
@endsection
@push('scripts')
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script type="text/javascript">
function deleteData(data) {
Swal.fire({
@@ -80,7 +81,7 @@
}
});
$.ajax(`basic-data/cabang/${data}`, {
$.ajax(`basic-data/tujuan-penilaian/${data}`, {
type: 'DELETE'
}).then((response) => {
swal.fire('Deleted!', 'User has been deleted.', 'success').then(() => {
@@ -95,7 +96,7 @@
}
</script>
<script type="module">
const element = document.querySelector('#branch-table');
const element = document.querySelector('#tujuan-penilaian-table');
const searchInput = document.getElementById('search');
const apiUrl = element.getAttribute('data-api-url');
@@ -117,13 +118,13 @@
title: 'Code',
},
name: {
title: 'Cabang',
title: 'Tujuan Penilaian',
},
actions: {
title: 'Status',
render: (item, data) => {
return `<div class="flex flex-nowrap justify-center">
<a class="btn btn-sm btn-icon btn-clear btn-info" href="basic-data/cabang/${data.id}/edit">
<a class="btn btn-sm btn-icon btn-clear btn-info" href="basic-data/tujuan-penilaian/${data.id}/edit">
<i class="ki-outline ki-notepad-edit"></i>
</a>
<a onclick="deleteData(${data.id})" class="delete btn btn-sm btn-icon btn-clear btn-danger">

View File

@@ -0,0 +1,232 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render('basicdata.tujuan-penilaian') }}
@endsection
@section('content')
<div class="grid">
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="tujuan-penilaian-table" data-api-url="{{ route('basicdata.tujuan-penilaian.datatables') }}">
<div class="card-header py-5 flex-wrap">
<h3 class="card-title">
SPK View
</h3>
<!-- <div class="flex flex-wrap gap-2 lg:gap-5">
<div class="flex">
<label class="input input-sm"> <i class="ki-filled ki-magnifier"> </i>
<input placeholder="Search Tujuan Penilaian" id="search" type="text" value="">
</label>
</div>-->
<div class="flex flex-wrap gap-2.5">
<div class="h-[24px] border border-r-gray-200"></div>
<!-- <a class="btn btn-sm btn-light" href="{{ route('basicdata.tujuan-penilaian.export') }}"> Export to PDF </a> -->
<!-- <a class="btn btn-sm btn-light" href="{{ route('basicdata.tujuan-penilaian.export') }}"> Print </a> -->
<a class="btn btn-sm btn-light" href="#"> Export to PDF </a>
<a class="btn btn-sm btn-light" id="print-button"> Print </a>
<!-- <a class="btn btn-sm btn-primary" href="{{ route('basicdata.tujuan-penilaian.create') }}"> Tambah Tujuan Penilaian </a> -->
</div>
<!--</div> -->
</div>
<div class="card-body">
<div class="scrollable-x-auto">
<!-- Disini templatenya masuk bosku <br /><br />
<img style="width: 200px;" src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ-f_0c9bbRTPZn5qBnsLVRweEE_XizBcHhWg&s" alt=""> -->
<style>
/* @media print {
body * {
display: none;
}
.print-area, .print-area * {
display: block;
}
} */
</style>
<div class="print-area">
<table border="2" width="100%">
<tr><td><img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ-f_0c9bbRTPZn5qBnsLVRweEE_XizBcHhWg&s" alt="Logo" style=""></td> <td><h1>PT BANK ARTHA GRAHA INTERNASIONAL</h1>
<p>Sub Direktorat Appraisal</p>
<p>Jl. Kwitang Raya No. 24-26, Jakarta 10420, Indonesia</p>
<p>Telp. (021) 3903040</p></td></tr>
</table>
<br />
<center>
<h2 style="text-decoration: underline;">SURAT PERINTAH KERJA</h2>
<p>No. XXX / PJ / JKT / <?php echo date('M'); ?> / FR / <?php echo date('Y'); ?> <data id="date"></data></p>
<p>Tanggal: <?php echo date('d F Y'); ?></p>
</center>
<h3>Kepada</h3><br />
<p style="color: red;">[Nama KJPP sesuai data persetujuan penawaran]</p>
<p style="color: red;">[Alamat KJPP sesuai data persetujuan penawaran]</p><br />
<h3>Perihal: <b>Penunjukan sebagai Penyedia Jasa Penilaian Agunan</b></h3><br />
<p style="text-align: justify;">Berdasarkan surat penawaran Saudara <span style="color: red;">[No proposal penawaran sesuai data pemeriksaan persetujuan penawaran]</span> tanggal <span style="color: red;">[Tgl proposal penawaran sesuai data pemeriksaan persetujuan penawaran]</span> atas nama <span style="color: red;">[Nama Debitur sesuai data register]</span>, dengan ini PT. Bank Artha Graha Internasional.Tbk., menunjuk Saudara untuk melakukan penilaian atas agunan sebagaimana rincian dibawah ini.</p><br />
<h3>Rincian Penilaian</h3>
<table border="2" width="100%">
<tr><td></td></tr>
<tr><td>Tujuan Penilaian</td><td>:</td><td><span style="color: red;">[Tujuan penilaian sesuai data penawaran modul tender]</span></td></tr>
<tr><td>Jenis Laporan</td><td>:</td><td><span style="color: red;">[Modul tender data penawaran enis laporan]</span></td></tr>
<tr><td>Data Jaminan</td><td>:</td><td><span style="color: red;">[Data Jenis Aset, Lokasi Jaminan dan Legalitas Jaminan sesuai Data Penawaran Modul Tender]</span></td></tr>
<tr><td>Fee / Harga Penilaian</td><td>:</td><td><span style="color: red;">[Biaya Final sesuai Data pemeriksaan persetujuan penawaran]</span></td></tr>
<tr><td>Jangka Waktu</td><td>:</td><td></td></tr>
<tr><td colspan="2" style="text-align: center;">i</td><td>Resume akan disampaikan dalam <span style="color: red;">[SLA Resume - Data Pemeriksaan Persetujuan Penawaran]</span> hari kerja terhitung setelah proses inspeksi dilaksanakan serta data yang diperlukan diterima dan lengkap, kecuali terdapat kesepakatan lain antara kedua belah pihak.</td></tr>
<tr><td colspan="2" style="text-align: center;">ii</td><td>Laporan penilaian lengkap akan disampaikan dalam <span style="color: red;">[SLA Final - Data Pemeriksaan Persetujuan Penawaran]</span> hari kerja sesuai proposal penawaran.</td></tr>
</table>
<br />
<h3>Dengan ketentuan dalam melaksanakan pekerjaan sebagai berikut:</h3>
<table border="0" width="100%">
<tr><td>1.</td><td>Pembayaran sebesar 100% dari total jasa dibayarkan setelah Bank menerima buku laporan dan bukti penagihan asli (invoice / kwitansi dan faktur pajak).</td></tr>
<tr><td>2.</td><td>Segala bentuk aktivitas komunikasi lisan atau tertulis antara lain kelengkapan dokumen, imbalan jasa, laporan penilaian dan lainnya baik dari Nasabah atau KJPP harus melalui Bank.
</td></tr>
<tr><td>3.</td><td>Selanjutnya sebagai tanda persetujuan, setelah saudara tandatangani di atas materai Rp 10.000,- (materai sesuai ketentuan yang berlaku) agar dikembalikan kepada kami selambat-lambatnya 1 (satu) hari kerja setelah tanggal surat ini.
</td></tr>
<tr><td>4.</td><td>Apabila diperlukan surat representasi wajib diberikan bersamaan dengan dikembalikannya SPK kepada kami.</td></tr>
<tr><td>5.</td><td>Ketentuan lain mengacu pada perjanjian kerjasama yang telah disepakati.</td></tr>
</table>
<br />
<p style="text-align: justify;">Demikian Surat perintah Kerja (SPK) ini dibuat dan berlaku efektif sejak SPK ini ditandatangani, atas perhatian dan kerjasamanya diucapkan terima kasih.</p><br />
<table border="0" width="100%">
<tr><td>PT Bank Artha Graha Internasional.<br>
Sub Direktorat Appraisal</td><td><span style="color: red;">[Nama KJPP sesuai data persetujuan penawaran]</span></td></tr>
<tr><td colspan="2"><br /></td></tr>
<tr><td colspan="2"><br /></td></tr>
<tr><td colspan="2"><br /></td></tr>
<tr><td colspan="2"><br /></td></tr>
<tr><td><br /></td><td><img style="width: 100px;" src="assets/media/images/materai.png"></td></tr>
<tr><td><span style="color: red;">[otomasi dari nama dan tanda tangan otorisator]</span><br>
<span style="color: red;">[otomasi dari jabatan otorisator]</span></td><td>(……………………………………..)</td></tr>
</table>
</div>
<!-- <table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm" data-datatable-table="true">
<thead>
<tr>
<th class="w-14">
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox"/>
</th>
<th class="min-w-[250px]" data-datatable-column="code">
<span class="sort"> <span class="sort-label"> Code </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[250px]" data-datatable-column="name">
<span class="sort"> <span class="sort-label"> Tujuan Penilaian </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th>
</tr>
</thead>
</table> -->
</div>
<!-- <div class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium">
<div class="flex items-center gap-2">
Show
<select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per page
</div>
<div class="flex items-center gap-4">
<span data-datatable-info="true"> </span>
<div class="pagination" data-datatable-pagination="true">
</div>
</div>
</div> -->
</div>
</div>
</div>
@endsection
@push('scripts')
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script type="text/javascript">
function deleteData(data) {
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert this!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
if (result.isConfirmed) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
}
});
$.ajax(`basic-data/tujuan-penilaian/${data}`, {
type: 'DELETE'
}).then((response) => {
swal.fire('Deleted!', 'User has been deleted.', 'success').then(() => {
window.location.reload();
});
}).catch((error) => {
console.error('Error:', error);
Swal.fire('Error!', 'An error occurred while deleting the file.', 'error');
});
}
})
}
</script>
<script type="module">
const element = document.querySelector('#tujuan-penilaian-table');
const searchInput = document.getElementById('search');
const apiUrl = element.getAttribute('data-api-url');
const dataTableOptions = {
apiEndpoint: apiUrl,
pageSize: 5,
columns: {
select: {
render: (item, data, context) => {
const checkbox = document.createElement('input');
checkbox.className = 'checkbox checkbox-sm';
checkbox.type = 'checkbox';
checkbox.value = data.id.toString();
checkbox.setAttribute('data-datatable-row-check', 'true');
return checkbox.outerHTML.trim();
},
},
code: {
title: 'Code',
},
name: {
title: 'Tujuan Penilaian',
},
actions: {
title: 'Status',
render: (item, data) => {
return `<div class="flex flex-nowrap justify-center">
<a class="btn btn-sm btn-icon btn-clear btn-info" href="basic-data/tujuan-penilaian/${data.id}/edit">
<i class="ki-outline ki-notepad-edit"></i>
</a>
<a onclick="deleteData(${data.id})" class="delete btn btn-sm btn-icon btn-clear btn-danger">
<i class="ki-outline ki-trash"></i>
</a>
</div>`;
},
}
},
};
document.getElementById('print-button').addEventListener('click', function() {
window.print();
});
let dataTable = new KTDataTable(element, dataTableOptions);
// Custom search functionality
searchInput.addEventListener('input', function () {
const searchValue = this.value.trim();
dataTable.search(searchValue, true);
});
</script>
@endpush

View File

@@ -23,7 +23,7 @@
@foreach ($permohonan->debiture->documents as $dokumen)
<div class="accordion-item [&:not(:last-child)]:border-b border-b-gray-200"
data-accordion-item="true" id="accordion_1_item_1">
<button class="accordion-toggle py-4 group mx-8" data-accordion-toggle="#accordion_1_content_1">
<button class="accordion-toggle py-4 group mx-8" data-accordion-toggle="#accoordion_detail_jaminan_{{ $loop->index }}">
<span class="text-base text-gray-900 font-medium">
Jaminan {{ $loop->index + 1 }}
</span>
@@ -32,7 +32,7 @@
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
</i>
</button>
<div class="accordion-content hidden" id="accordion_1_content_1">
<div class="accordion-content hidden" id="accoordion_detail_jaminan_{{ $loop->index }}">
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">

View File

@@ -30,7 +30,7 @@
@endphp
<div class="accordion-item [&:not(:last-child)]:border-b border-b-gray-200"
data-accordion-item="true" id="accordion_1_item_1">
<button class="accordion-toggle py-4 group mx-8" data-accordion-toggle="#accordion_1_content_1">
<button class="accordion-toggle py-4 group mx-8" data-accordion-toggle="#accordion_detail_jaminan_{{ $loop->index }}">
<span class="text-base text-gray-900 font-medium">
Jaminan {{ $loop->index + 1 }}
</span>
@@ -39,7 +39,7 @@
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
</i>
</button>
<div class="accordion-content hidden" id="accordion_1_content_1">
<div class="accordion-content hidden" id="accordion_detail_jaminan_{{ $loop->index }}">
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">

View File

@@ -32,7 +32,7 @@
<div class="accordion-item [&:not(:last-child)]:border-b border-b-gray-200"
data-accordion-item="true" id="accordion_1_item_1">
<button class="accordion-toggle py-4 group mx-8" data-accordion-toggle="#accordion_1_content_1">
<button class="accordion-toggle py-4 group mx-8" data-accordion-toggle="#accordion_detail_jaminan_{{ $loop->index }}">
<span class="text-base text-gray-900 font-medium">
Jaminan {{ $loop->index + 1 }}
</span>
@@ -41,7 +41,7 @@
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
</i>
</button>
<div class="accordion-content hidden" id="accordion_1_content_1">
<div class="accordion-content hidden" id="accordion_detail_jaminan_{{ $loop->index }}">
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">

View File

@@ -58,109 +58,7 @@
</div>
</div>
<div class="card min-w-full">
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">
Data Jaminan
</h3>
</div>
<div data-accordion="true">
@foreach ($permohonan->debiture->documents as $dokumen)
<div class="accordion-item [&:not(:last-child)]:border-b border-b-gray-200"
data-accordion-item="true" id="accordion_1_item_1">
<button class="accordion-toggle py-4 group mx-8" data-accordion-toggle="#accordion_1_content_1">
<span class="text-base text-gray-900 font-medium">
Jaminan {{ $loop->index + 1 }}
</span>
<i class="ki-outline ki-plus text-gray-600 text-2sm accordion-active:hidden block">
</i>
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
</i>
</button>
<div class="accordion-content hidden" id="accordion_1_content_1">
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Jenis Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->jenisJaminan->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Hubungan Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->hubungan_pemilik->name ?? '' }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Alamat Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $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>
<div class="card-table scrollable-x-auto pb-3">
<table class="table align-middle text-sm text-gray-500">
@foreach ($dokumen->detail as $detail)
<tr>
<td class="py-2 text-gray-600 font-normal max-w-[100px]">
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $detail->name ?? '' }}
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Dokumen Jaminan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
@if (isset($detail->dokumen_jaminan))
<a href="{{ route('debitur.jaminan.download', ['id' => $permohonan->debiture->id, 'dokumen' => $detail->id]) }}"
class="badge badge-sm badge-outline mt-2">{{ basename($detail->dokumen_jaminan) }}
<i class="ki-filled ki-cloud-download"></i></a>
@endif
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Keterangan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $detail->keterangan ?? '' }}
</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
@include('lpj::component.detail-jaminan')
<div class="card min-w-full py-2 px-2">
<div class="card-header" id="basic_settings">