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

This commit is contained in:
2025-03-07 07:56:43 +07:00
7 changed files with 119 additions and 10 deletions

View File

@@ -544,7 +544,9 @@ class PenilaiController extends Controller
'branch', 'branch',
'tujuanPenilaian', 'tujuanPenilaian',
'jenisfasilitasKredit', 'jenisfasilitasKredit',
'penilaian.userPenilai' // Ensure this relation is included 'penilaian.userPenilai',
'penilai',
'nilaiPlafond'
])->get(); ])->get();
// Calculate the page count // Calculate the page count

View File

@@ -10,6 +10,7 @@ use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
use Maatwebsite\Excel\Facades\Excel; use Maatwebsite\Excel\Facades\Excel;
use Modules\Lpj\Models\JenisPenilaian; use Modules\Lpj\Models\JenisPenilaian;
use Modules\Lpj\Models\Penilai;
use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\Regions; use Modules\Lpj\Models\Regions;
use Modules\Lpj\Models\DokumenJaminan; use Modules\Lpj\Models\DokumenJaminan;
@@ -167,6 +168,13 @@ class RegistrasiController extends Controller
$modal = Permohonan::find($id); $modal = Permohonan::find($id);
$modal->update($dataku); $modal->update($dataku);
if($modal && $request->jenis_laporan){
Penilai::updateOrCreate(
['permohonan_id' => $id],
['type' => $request->jenis_laporan]
);
}
// //
$data['status'] = 'success'; $data['status'] = 'success';
$data['message'] ['message_success'] = ['Regitrasi ' . $modal->nomor_registrasi . ' successfully']; $data['message'] ['message_success'] = ['Regitrasi ' . $modal->nomor_registrasi . ' successfully'];

View File

@@ -93,6 +93,24 @@
@endsection @endsection
@push('scripts') @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"> <script type="module">
const element = document.querySelector('#laporan-table'); const element = document.querySelector('#laporan-table');
const searchInput = document.getElementById('search'); const searchInput = document.getElementById('search');
@@ -168,14 +186,40 @@
tanggal_survei: { tanggal_survei: {
title: 'Tanggal Survei', title: 'Tanggal Survei',
render: (item, data) => { render: (item, data) => {
return '-'; if(data.penilaian.waktu_penilaian){
} return `${formatDate(new Date(data.penilaian.waktu_penilaian))}`;
}
return `${formatDate(new Date(data.penilaian.created_at))}`;
},
}, },
due_date_sla: { due_date_sla: {
title: 'Due Date SLA', title: 'Due Date SLA',
render: (item, data) => { render: (item, data) => {
return '-'; const tujuan_penilaian = data.tujuan_penilaian.name;
} const tipe_laporan = data.penilai?.type;
const nilai_plafond = data.penilaian.nilaiPlafond?.name;
let waktu_penilaian = new Date(data.penilaian.created_at);
if(data.penilaian.waktu_penilaian){
waktu_penilaian = new Date(data.penilaian.waktu_penilaian);
}
if(tujuan_penilaian.name==="RAP"){
waktu_penilaian.setDate(waktu_penilaian.getDate() + 3);
} else {
if(tipe_laporan==="sederhana"){
waktu_penilaian.setDate(waktu_penilaian.getDate() + 2);
} else if(tipe_laporan==="standar"){
if(nilai_plafond==="2 M - 5 M"){
waktu_penilaian.setDate(waktu_penilaian.getDate() + 3);
} else if(nilai_plafond==="< 2M"){
waktu_penilaian.setDate(waktu_penilaian.getDate() + 3);
} else {
waktu_penilaian.setDate(waktu_penilaian.getDate() + 5);
}
}
}
return formatDate(waktu_penilaian);
},
}, },
status: { status: {
title: 'Status', title: 'Status',

View File

@@ -60,6 +60,10 @@
<span class="sort"> <span class="sort-label"> Fasilitas Kredit </span> <span class="sort"> <span class="sort-label"> Fasilitas Kredit </span>
<span class="sort-icon"> </span> </span> <span class="sort-icon"> </span> </span>
</th> </th>
<th class="min-w-[150px]" data-datatable-column="jenis_laporan">
<span class="sort"> <span class="sort-label"> Jenis Laporan </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="tanggal_survei"> <th class="min-w-[150px]" data-datatable-column="tanggal_survei">
<span class="sort"> <span class="sort-label"> Tanggal Survei </span> <span class="sort"> <span class="sort-label"> Tanggal Survei </span>
<span class="sort-icon"> </span> </span> <span class="sort-icon"> </span> </span>
@@ -170,16 +174,53 @@
return data.jenisfasilitas_kredit && data.jenisfasilitas_kredit.name ? `${data.jenisfasilitas_kredit.name}` : '-'; return data.jenisfasilitas_kredit && data.jenisfasilitas_kredit.name ? `${data.jenisfasilitas_kredit.name}` : '-';
}, },
}, },
jenis_laporan: {
title: 'Jenis Laporan',
render: (item, data) => {
return data.penilai?.type;
},
},
tanggal_survei: { tanggal_survei: {
title: 'Tanggal Survei', title: 'Tanggal Survei',
render: (item, data) => { render: (item, data) => {
return `${formatDate(new Date(data.created_at))}`; if(data.penilaian.waktu_penilaian){
return `${formatDate(new Date(data.penilaian.waktu_penilaian))}`;
}
return `${formatDate(new Date(data.penilaian.created_at))}`;
}, },
}, },
due_date_sla: { due_date_sla: {
title: 'Due Date SLA', title: 'Due Date SLA',
render: (item, data) => { render: (item, data) => {
return `${formatDate(new Date(data.created_at))}`; const tujuan_penilaian = data.tujuan_penilaian.name;
const tipe_laporan = data.penilai?.type;
const nilai_plafond = data.penilaian.nilaiPlafond?.name;
let waktu_penilaian = new Date(data.penilaian.created_at);
if(data.penilaian.waktu_penilaian){
waktu_penilaian = new Date(data.penilaian.waktu_penilaian);
}
if(tujuan_penilaian.name==="RAP"){
waktu_penilaian.setDate(waktu_penilaian.getDate() + 3);
} else {
if(tipe_laporan==="sederhana"){
waktu_penilaian.setDate(waktu_penilaian.getDate() + 2);
} else if(tipe_laporan==="standar"){
if(nilai_plafond==="2 M - 5 M"){
waktu_penilaian.setDate(waktu_penilaian.getDate() + 3);
} else if(nilai_plafond==="< 2M"){
waktu_penilaian.setDate(waktu_penilaian.getDate() + 3);
} else {
waktu_penilaian.setDate(waktu_penilaian.getDate() + 5);
}
}
}
return formatDate(waktu_penilaian);
}, },
}, },
status: { status: {

View File

@@ -217,7 +217,7 @@
@if (Auth::user()->hasAnyRole(['administrator', 'senior-officer']) && $authorization->approve_so == null) @if (Auth::user()->hasAnyRole(['administrator', 'senior-officer']) && $authorization->approve_so == null)
<button onclick="otorisatorData({{ $permohonan->id }},'SO')" type="button" <button onclick="otorisatorData({{ $authorization->id }},'SO')" type="button"
class="btn btn-primary"> class="btn btn-primary">
<i class="ki-filled ki-double-check"></i> <i class="ki-filled ki-double-check"></i>
Otorisator {{ $header ?? '' }} Otorisator {{ $header ?? '' }}
@@ -225,7 +225,7 @@
@endif @endif
@if (Auth::user()->hasAnyRole(['administrator', 'EO Appraisal']) && $authorization->approve_so && $authorization->approve_eo == null) @if (Auth::user()->hasAnyRole(['administrator', 'EO Appraisal']) && $authorization->approve_so && $authorization->approve_eo == null)
<button onclick="otorisatorData({{ $permohonan->id }},'EO')" type="button" <button onclick="otorisatorData({{ $authorization->id }},'EO')" type="button"
class="btn btn-primary"> class="btn btn-primary">
<i class="ki-filled ki-double-check"></i> <i class="ki-filled ki-double-check"></i>
Otorisator {{ $header ?? '' }} Otorisator {{ $header ?? '' }}
@@ -233,7 +233,7 @@
@endif @endif
@if (Auth::user()->hasAnyRole(['administrator', 'DD Appraisal']) && $authorization->approve_eo && $authorization->approve_dd == null) @if (Auth::user()->hasAnyRole(['administrator', 'DD Appraisal']) && $authorization->approve_eo && $authorization->approve_dd == null)
<button onclick="otorisatorData({{ $permohonan->id }},'DD')" type="button" <button onclick="otorisatorData({{ $authorization->id }},'DD')" type="button"
class="btn btn-primary"> class="btn btn-primary">
<i class="ki-filled ki-double-check"></i> <i class="ki-filled ki-double-check"></i>
Otorisator {{ $header ?? '' }} Otorisator {{ $header ?? '' }}

View File

@@ -84,6 +84,18 @@
<em id="{{$route[0]}}_region_msg" class="alert text-danger text-sm"></em> <em id="{{$route[0]}}_region_msg" class="alert text-danger text-sm"></em>
</div> </div>
</div> </div>
<div id="{{ $route[0] }}_div_jenis_laporan" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Jenis Laporan
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="inputku select" id="jenis_laporan" name="jenis_laporan">
<option value="sederhana">Sederhana</option>
<option value="standar">Standar</option>
</select>
<em id="jenis_laporan_msg" class="alert text-danger text-sm"></em>
</div>
</div>
<div id="{{ $route[0] }}_div_catatan2" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> <div id="{{ $route[0] }}_div_catatan2" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56"> <label class="form-label max-w-56">
Catatan Catatan

View File

@@ -120,6 +120,7 @@
let region = $("#{{$route[0]}}_region").val(); let region = $("#{{$route[0]}}_region").val();
let catatan = $("#{{$route[0]}}_catatan").val(); let catatan = $("#{{$route[0]}}_catatan").val();
let catatan2 = $("#{{$route[0]}}_catatan2").val(); let catatan2 = $("#{{$route[0]}}_catatan2").val();
let jenis_laporan = $("#jenis_laporan").val();
if(jenis_penilaian==0) if(jenis_penilaian==0)
jenis_penilaian=''; jenis_penilaian='';
@@ -135,6 +136,7 @@
input_data.region= region; input_data.region= region;
input_data.catatan = catatan; input_data.catatan = catatan;
input_data.catatan2 = catatan2; input_data.catatan2 = catatan2;
input_data.jenis_laporan = jenis_laporan;
let useURL= '{{ route($route[0].'.update', $id) }}'; let useURL= '{{ route($route[0].'.update', $id) }}';
$.ajax({ $.ajax({