fix(so/dd/eo/penilai): perbaikan otorisasi untuk paparan, pelaporan, penambahan revisi pembayaran, data pembading dan ubah class bg-agi-50 ke light:bg-agi-50
This commit is contained in:
@@ -110,7 +110,9 @@ class PembayaranController extends Controller
|
||||
public function edit($id)
|
||||
{
|
||||
$permohonan = Permohonan::find($id);
|
||||
return view('lpj::pembayaran.form', compact('permohonan'));
|
||||
|
||||
$persetujuanPenawaran = PersetujuanPenawaran::where('permohonan_id', $permohonan->id)->first();
|
||||
return view('lpj::pembayaran.form', compact('permohonan', 'persetujuanPenawaran'));
|
||||
}
|
||||
|
||||
public function store(PersetujuanPenawaranRequest $request)
|
||||
@@ -119,27 +121,44 @@ class PembayaranController extends Controller
|
||||
$validated['created_by'] = Auth::id();
|
||||
$validated['status'] = '0';
|
||||
|
||||
if (isset($validated['penawaran_id'])) {
|
||||
$persetujuanPenawaran = PersetujuanPenawaran::create(
|
||||
['penawaran_id' => $validated['penawaran_id']],
|
||||
$validated,
|
||||
);
|
||||
$persetujuanPenawaran = PersetujuanPenawaran::where('permohonan_id', $validated['permohonan_id'] ?? null)->first();
|
||||
$permohonan = Permohonan::find(request()->get('permohonan_id'));
|
||||
if ($persetujuanPenawaran) {
|
||||
// if (isset($validated['penawaran_id'])) {
|
||||
|
||||
// $persetujuanPenawaran = PersetujuanPenawaran::create(
|
||||
// ['penawaran_id' => $validated['penawaran_id']],
|
||||
// $validated,
|
||||
// );
|
||||
|
||||
$persetujuanPenawaran->fill($validated);
|
||||
|
||||
if ($request->hasFile('bukti_bayar')) {
|
||||
$folderPath = 'persetujuan_penawaran/' . $validated['penawaran_id'];
|
||||
$persetujuanPenawaran->bukti_bayar = $request->file('bukti_bayar')->store($folderPath, 'public');
|
||||
}
|
||||
|
||||
$persetujuanPenawaran->save();
|
||||
|
||||
$permohonan->approve_bayar_by = null;
|
||||
$permohonan->approve_bayar_at = null;
|
||||
$permohonan->status = 'done';
|
||||
$permohonan->save();
|
||||
} else {
|
||||
$persetujuanPenawaran = PersetujuanPenawaran::create(
|
||||
$validated
|
||||
);
|
||||
|
||||
$folderPath = 'persetujuan_penawaran/' . $validated['penawaran_id'];
|
||||
|
||||
if ($request->hasFile('bukti_bayar')) {
|
||||
$persetujuanPenawaran->bukti_bayar = $request->file('bukti_bayar')->store($folderPath, 'public');
|
||||
}
|
||||
$persetujuanPenawaran->save();
|
||||
}
|
||||
|
||||
$folderPath = 'persetujuan_penawaran/' . $validated['penawaran_id'];
|
||||
|
||||
if ($request->hasFile('bukti_bayar')) {
|
||||
$persetujuanPenawaran->bukti_bayar = $request->file('bukti_bayar')->store($folderPath, 'public');
|
||||
}
|
||||
|
||||
$persetujuanPenawaran->save();
|
||||
|
||||
// Update the status of the related permohonan to 'spk'
|
||||
$permohonan = Permohonan::find(request()->get('permohonan_id'));
|
||||
|
||||
if ($permohonan) {
|
||||
$permohonan->status_bayar = request()->get('status_bayar');
|
||||
$permohonan->save();
|
||||
@@ -183,12 +202,15 @@ class PembayaranController extends Controller
|
||||
if ($permohonan) {
|
||||
|
||||
if ($request->type === 'revisi') {
|
||||
$data['status'] = 'revisi-pembayaran';
|
||||
$data['status_bayar'] = 'belum_bayar';
|
||||
} else {
|
||||
$data['status_bayar'] = 'sudah_bayar';
|
||||
$data['status'] = 'proses-laporan';
|
||||
}
|
||||
|
||||
if ($permohonan->jenis_penilaian_id == 2) {
|
||||
$data['status_bayar'] = 'sudah_bayar';
|
||||
$data['status'] = 'spk';
|
||||
}
|
||||
|
||||
@@ -203,7 +225,6 @@ class PembayaranController extends Controller
|
||||
$data['keterangan']
|
||||
);
|
||||
|
||||
$data['status'] = 'proses-laporan';
|
||||
}
|
||||
|
||||
$permohonan->update($data);
|
||||
@@ -233,12 +254,19 @@ class PembayaranController extends Controller
|
||||
// abort(403, 'Sorry! You are not allowed to view users.');
|
||||
}
|
||||
|
||||
$query = Permohonan::query()->where(['status_bayar' => 'belum_bayar', 'jenis_penilaian_id' => 1])
|
||||
->whereNotIn('id', function ($subquery) {
|
||||
$query = Permohonan::query()->where(function ($query) {
|
||||
$query->where(['status_bayar' => 'belum_bayar', 'jenis_penilaian_id' => 1])
|
||||
->orWhere('status', 'revisi-pembayaran');
|
||||
})
|
||||
->where(function ($query) {
|
||||
$query->whereNotIn('id', function ($subquery) {
|
||||
$subquery->select('permohonan_id')
|
||||
->from('persetujuan_penawaran')
|
||||
->whereNotNull('permohonan_id');
|
||||
});
|
||||
})
|
||||
->orWhere('status', 'revisi-pembayaran');
|
||||
});
|
||||
|
||||
|
||||
// Pencarian berdasarkan parameter search
|
||||
if ($request->has('search') && !empty($request->get('search'))) {
|
||||
|
||||
@@ -610,6 +610,8 @@ class PenilaianController extends Controller
|
||||
|
||||
public function updatePermohonan($permohonan, $status, $approvalField, $message)
|
||||
{
|
||||
|
||||
|
||||
$permohonan->update([
|
||||
'status' => $status,
|
||||
$approvalField => Auth::user()->id,
|
||||
@@ -727,8 +729,8 @@ class PenilaianController extends Controller
|
||||
'tujuanPenilaian',
|
||||
'nilaiPlafond',
|
||||
'penilaian.userPenilai' => function ($q) {
|
||||
$q->where('role', 'penilai')->with(['user', 'team.regions'])->first();
|
||||
},
|
||||
$q->where('role', 'penilai')->with(['user', 'team.regions']);
|
||||
},
|
||||
'penilai',
|
||||
'approveSo',
|
||||
'approveEo',
|
||||
|
||||
@@ -1090,7 +1090,7 @@ class SurveyorController extends Controller
|
||||
'address', 'village_code', 'district_code', 'city_code', 'province_code',
|
||||
'nama', 'type','warna','lokasi', 'total', 'diskon', 'harga_diskon',
|
||||
'sumber_data', 'harga', 'tahun','transmisi','telepon',
|
||||
'kordinat_lat', 'kordinat_lng', 'tahun_pembuatan','merek_buatan','kapasitas','power','kondisi','tanggal'
|
||||
'kordinat_lat', 'kordinat_lng', 'tahun_pembuatan','merek_buatan','kapasitas','power','kondisi','tanggal', 'harga_penawaran'
|
||||
];
|
||||
|
||||
|
||||
@@ -1100,7 +1100,7 @@ class SurveyorController extends Controller
|
||||
'tahun', 'luas_tanah', 'luas_bangunan', 'tahun_bangunan',
|
||||
'status_nara_sumber', 'harga', 'harga_diskon', 'diskon', 'total', 'nama_nara_sumber',
|
||||
'peruntukan', 'penawaran', 'telepon','hak_properti',
|
||||
'kordinat_lat', 'kordinat_lng', 'jenis_aset','foto_objek','tanggal'
|
||||
'kordinat_lat', 'kordinat_lng', 'jenis_aset','foto_objek','tanggal', 'harga_penawaran'
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1113,7 +1113,7 @@ class SurveyorController extends Controller
|
||||
if (is_array($inputValue) && isset($inputValue[$index])) {
|
||||
$value = $inputValue[$index];
|
||||
// Format hanya untuk harga, harga_diskon, dan total
|
||||
if (in_array($field, ['harga', 'harga_diskon', 'total'])) {
|
||||
if (in_array($field, ['harga', 'harga_diskon', 'total', 'harga_penawaran'])) {
|
||||
$value = preg_replace('/[^0-9]/', '', $value); // Hapus karakter non-angka
|
||||
}
|
||||
$pembanding[$field] = $value;
|
||||
@@ -1155,7 +1155,7 @@ class SurveyorController extends Controller
|
||||
'address', 'village_code', 'district_code', 'city_code', 'province_code',
|
||||
'luas_tanah', 'luas_tanah_bagunan', 'total', 'diskon', 'harga_diskon',
|
||||
'status_nara_sumber', 'harga', 'nama_nara_sumber','hak_properti','telepon',
|
||||
'kordinat_lat', 'kordinat_lng', 'jenis_aset','penawaran', 'tanggal',
|
||||
'kordinat_lat', 'kordinat_lng', 'jenis_aset','penawaran', 'tanggal','harga_penawaran'
|
||||
];
|
||||
|
||||
$inspeksi = Inspeksi::where('permohonan_id', $request->input('permohonan_id'))
|
||||
|
||||
@@ -33,9 +33,9 @@ class Authorization extends Model
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'approve_so' => 'boolean',
|
||||
'approve_eo' => 'boolean',
|
||||
'approve_dd' => 'boolean',
|
||||
// 'approve_so' => 'boolean',
|
||||
// 'approve_eo' => 'boolean',
|
||||
// 'approve_dd' => 'boolean',
|
||||
'approve_so_at' => 'datetime',
|
||||
'approve_eo_at' => 'datetime',
|
||||
'approve_dd_at' => 'datetime',
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
{
|
||||
protected $table = 'permohonan';
|
||||
protected $fillable = [
|
||||
'id',
|
||||
'nomor_registrasi',
|
||||
'tanggal_permohonan',
|
||||
'user_id',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
@if (!isset($status))
|
||||
<div class="card border border-agi-100 {{ isset($hidePermohonan) ? 'hidden' : '' }}">
|
||||
<div class="card-header bg-agi-50" id="advanced_settings_appearance">
|
||||
<div class="card-header light:bg-agi-50" id="advanced_settings_appearance">
|
||||
@php
|
||||
$title = $title ?? 'Data Permohonan';
|
||||
@endphp
|
||||
@@ -81,7 +81,7 @@
|
||||
</div>
|
||||
|
||||
<div class="card border border-agi-100 min-w-full">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h3 class="card-title">
|
||||
Detail Debitur
|
||||
</h3>
|
||||
@@ -92,7 +92,7 @@
|
||||
<table class="table align-middle text-sm text-gray-500">
|
||||
<tr>
|
||||
<td class="py-2 text-gray-600 font-normal">
|
||||
Name
|
||||
Nama
|
||||
</td>
|
||||
<td class="py-2 text-gray-800 font-normaltext-sm">
|
||||
{{ $permohonan->debiture->name ?? '' }}
|
||||
@@ -108,7 +108,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="py-3">
|
||||
Phone
|
||||
No Hp
|
||||
</td>
|
||||
<td class="py-3 text-gray-700 text-2sm font-normal">
|
||||
{{ $permohonan->debiture->phone ?? '' }}
|
||||
@@ -117,7 +117,7 @@
|
||||
|
||||
<tr>
|
||||
<td class="py-3 text-gray-600 font-normal">
|
||||
Address
|
||||
Alamat
|
||||
</td>
|
||||
<td class="py-3 text-gray-700 text-sm font-normal">
|
||||
{{ $permohonan->debiture->address ?? '' }}
|
||||
@@ -178,7 +178,7 @@
|
||||
</div>
|
||||
|
||||
<div class="card border border-agi-100 min-w-full">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h3 class="card-title">
|
||||
Data Jaminan
|
||||
</h3>
|
||||
@@ -233,7 +233,7 @@
|
||||
</div>
|
||||
<div class="mb-5">
|
||||
<h3 class="text-md font-medium text-gray-900">
|
||||
Alamat Pemilik Jaminan:
|
||||
Alamat Jaminan:
|
||||
</h3>
|
||||
<span class="text-2sm text-gray-700">
|
||||
{{ $dokumen->pemilik->address ?? '' }},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div class="card border border-agi-100 min-w-full">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h3 class="card-title">
|
||||
Activity
|
||||
</h3>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<div class="grid">
|
||||
<div class="card border border-agi-100 card-grid min-w-full" data-datatable="false" data-datatable-page-size="10" data-datatable-state-save="false"
|
||||
id="pembayaran-table" data-api-url="{{ route('pembayaran.approval.datatables') }}">
|
||||
<div class="card-header bg-agi-50 py-5 flex-wrap">
|
||||
<div class="card-header light:bg-agi-50 py-5 flex-wrap">
|
||||
<h3 class="card-title">
|
||||
Daftar Pembayaran
|
||||
</h3>
|
||||
@@ -348,11 +348,12 @@
|
||||
if (!permohonan.approve_bayar_by) {
|
||||
iconPembayaranOtorisator = `<a class="btn btn-sm btn-icon btn-clear btn-primary " onclick="handlePembayaran(${permohonan.id},'otorisator')">
|
||||
<i class="ki-filled ki-double-check"></i>
|
||||
</a>`;
|
||||
}else{
|
||||
iconPembayaranOtorisator = `<a class="btn btn-sm btn-icon btn-clear btn-primary " onclick="handlePembayaran(${permohonan.id}, 'revisi')">
|
||||
</a>
|
||||
<a class="btn btn-sm btn-icon btn-clear btn-primary " onclick="handlePembayaran(${permohonan.id}, 'revisi')">
|
||||
<i class="ki-filled ki-arrow-circle-left"></i>
|
||||
</a>`;
|
||||
</a>
|
||||
|
||||
`;
|
||||
}
|
||||
|
||||
return `<div class="flex flex-nowrap justify-center">` + iconPembayaranOtorisator + `</div>`;
|
||||
|
||||
@@ -15,12 +15,13 @@
|
||||
'jenis_aset' => 'Jenis properti',
|
||||
'hak_properti' => 'Status Hak Tanah',
|
||||
'address' => 'Alamat Lokasi',
|
||||
'harga' => 'Harga Penawaran',
|
||||
'harga_penawaran' => 'Harga Penawaran',
|
||||
'harga_diskon' => 'Indikasi Harga Transaksi',
|
||||
'telepon' => 'Penjual (HP)',
|
||||
'penawaran' => 'Ditawarkan Sejak',
|
||||
'luas_tanah' => 'Luas Tanah',
|
||||
'luas_bangunan' => 'Luas Bangunan',
|
||||
'tanggal' => 'Tanggal Data',
|
||||
'kordinat' => 'Titik Kordinat',
|
||||
];
|
||||
@endphp
|
||||
|
||||
@@ -426,21 +426,21 @@
|
||||
@if (Auth::user()->hasAnyRole(['senior-officer', 'surveyor', 'administrator']))
|
||||
<button type="button" class="btn btn-primary" onclick="saveResume()">
|
||||
<i class="ki-filled ki-save-2"></i>
|
||||
Save</button>
|
||||
Simpan</button>
|
||||
@endif
|
||||
|
||||
@if (Auth::user()->hasAnyRole(['senior-officer', 'EO Appraisal', 'DD Appraisal', 'administrator']))
|
||||
<a class="btn btn-info"
|
||||
href="{{ route('penilai.lampiran') }}?permohonanId={{ request('permohonanId') }}&documentId={{ request('documentId') }}&inspeksiId={{ request('inspeksiId') }}&jaminanId={{ request('jaminanId') }}&statusLpj=1">
|
||||
LAMPIRAN FOTO DAN DOKUMEN
|
||||
Lampiran Foto dan Dokument
|
||||
</a>
|
||||
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('documentId'), 'jenis_jaminan_id' => request('jaminanId')]) }}"
|
||||
class="btn btn-light">
|
||||
<i class="ki-filled ki-printer"></i> Hasil Inspeksi
|
||||
<i class="ki-filled ki-printer"></i>Cetak Hasil Inspeksi
|
||||
</a>
|
||||
<a class="btn btn-success"
|
||||
onclick="checkLaporan('{{ $permohonan->id }}', '{{ request('documentId') }}', '{{ request('inspeksiId') }}', {{ request('jaminanId') }}, )">
|
||||
<i class="ki-filled ki-printer"></i> Print
|
||||
<i class="ki-filled ki-printer"></i> Cetak Laporan
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
@include('lpj::assetsku.includenya')
|
||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||
<div class="card border border-agi-100 pb-2.5">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<div class="card-header light:light:bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Detail Penilaian
|
||||
</h3>
|
||||
@@ -111,7 +111,7 @@
|
||||
|
||||
|
||||
@foreach ($permohonan->documents as $dokumen)
|
||||
<div class="card">
|
||||
<div class="card border border-agi-100">
|
||||
<div class="card-body grid gap-5">
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
@php
|
||||
@@ -219,19 +219,19 @@
|
||||
<div class="flex gap-5">
|
||||
<a class="btn btn-primary"
|
||||
href="{{ route('penilai.lampiran') }}?permohonanId={{ $permohonan->id }}&documentId={{ $dokumen->id }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $dokumen->jenis_jaminan_id }}">
|
||||
LAMPIRAN FOTO DAN DOKUMEN
|
||||
Lampiran Foto dan Dokument
|
||||
</a>
|
||||
@if (strtolower($permohonan->tujuanPenilaian->name) != 'rap')
|
||||
<a class="btn btn-primary" data-modal-toggle="#modal_2">
|
||||
KERTAS KERJA
|
||||
Kertas Kerja
|
||||
</a>
|
||||
@endif
|
||||
<a class="btn btn-primary" onclick="paparan({{ $permohonan->id }})">
|
||||
PAPARAN
|
||||
Paparan
|
||||
</a>
|
||||
|
||||
<div class="dropdown" data-dropdown="true" data-dropdown-trigger="click">
|
||||
<button class="dropdown-toggle btn btn-primary uppercase">
|
||||
<button class="dropdown-toggle btn btn-primary ">
|
||||
Pembuatan Laporan
|
||||
</button>
|
||||
|
||||
@@ -322,13 +322,13 @@
|
||||
<a class="btn btn-outline btn-info "
|
||||
onclick="checkLaporan('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }}, 1 )">
|
||||
<i class="ki-filled ki-eye"></i>
|
||||
PREVIEW
|
||||
Lihat Laporan
|
||||
</a>
|
||||
|
||||
<a class="btn btn-success"
|
||||
onclick="checkLaporan('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }}, 0 )">
|
||||
<i class="ki-filled ki-printer"></i>
|
||||
PRINT OUT
|
||||
Cetak Laporan
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -108,6 +108,47 @@
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
@if ($permohonan->authorization->approve_so && $dataHeader == 'paparan' )
|
||||
<div class="card border border-agi-100 pb-2.5">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<h3 class="card-title">
|
||||
Approval
|
||||
</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<table class="table table-border">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Diperiksa Oleh</td>
|
||||
<td>{{ getUser($permohonan->authorization->approve_so)->name ?? 'N/A' }}</td>
|
||||
<td>{{ $permohonan->authorization->approve_so_at ? formatTanggalIndonesia($permohonan->authorization->approve_so_at, 1) : 'N/A' }}
|
||||
</td>
|
||||
</tr>
|
||||
@if ($permohonan->authorization->approve_eo != null)
|
||||
<tr>
|
||||
<td>Disetujui Oleh (EO)</td>
|
||||
<td>{{ getUser($permohonan->authorization->approve_eo)->name ?? 'N/A' }}</td>
|
||||
<td>{{ $permohonan->authorization->approve_eo_at ? formatTanggalIndonesia($permohonan->authorization->approve_eo_at, 1) : 'N/A' }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
@if (in_array($permohonan->nilai_plafond_id, [1, 2, 4]) && $permohonan->approve_dd != null)
|
||||
<tr>
|
||||
<td>Disetujui Oleh (DD)</td>
|
||||
<td>{{ getUser($permohonan->authorization->approve_dd)->name ?? 'N/A' }}</td>
|
||||
<td>{{ $permohonan->authorization->approve_dd_at ? formatTanggalIndonesia($permohonan->authorization->approve_dd_at, 1) : 'N/A' }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div>
|
||||
<div>
|
||||
<div class="flex gap-2.5">
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="tanggal_paparan">
|
||||
<span class="sort"> <span class="sort-label"> Tanggal Paparan </span>
|
||||
<span class="sort"> <span class="sort-label">Keterangan/Tanggal Paparan </span>
|
||||
<span class="sort-icon"> </span> </span>
|
||||
</th>
|
||||
<th class="min-w-[150px]" data-datatable-column="approval_so">
|
||||
@@ -240,7 +240,7 @@
|
||||
title: 'Tanggal Paparan',
|
||||
render: (item, data) => {
|
||||
if(data.tanggal_paparan) {
|
||||
return `${window.formatTanggalIndonesia(data.tanggal_paparan)}`;
|
||||
return ` ${data?.keterangan} | ${window.formatTanggalIndonesia(data.tanggal_paparan)}`;
|
||||
}
|
||||
|
||||
return "-";
|
||||
@@ -258,8 +258,8 @@
|
||||
approval_eo: {
|
||||
title: 'Approval EO',
|
||||
render: (item, data) => {
|
||||
if (data.approve_eo) {
|
||||
return `${data.approve_eo.name} | ${window.formatTanggalIndonesia(data.approval_eo_at)}`;
|
||||
if (data?.authorization?.approve_eo) {
|
||||
return `${data?.authorization?.approve_eo.name} | ${window.formatTanggalIndonesia(data.approval_eo_at)}`;
|
||||
}
|
||||
return '';
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h3 class="card-title uppercase">
|
||||
Analisa Bangunan
|
||||
</h3>
|
||||
|
||||
@@ -79,16 +79,18 @@
|
||||
let columnCount = 1;
|
||||
// Fungsi calculate prices yang diperbaiki
|
||||
function calculatePrices(type = 'main', index = null) {
|
||||
let hargaInput, diskonInput, totalInput, hargaDiskonInput;
|
||||
let hargaInput, diskonInput, totalInput, hargaDiskonInput, hargaPenawaranInput;
|
||||
|
||||
// Tentukan input berdasarkan tipe (main atau pembanding)
|
||||
if (type === 'main') {
|
||||
hargaPenawaranInput = document.querySelector('input[name="harga_penawaran"]');
|
||||
hargaInput = document.querySelector('input[name="harga"]');
|
||||
diskonInput = document.querySelector('input[name="diskon"]');
|
||||
totalInput = document.querySelector('input[name="total"]');
|
||||
hargaDiskonInput = document.querySelector('input[name="harga_diskon"]');
|
||||
} else {
|
||||
// Untuk pembanding, gunakan array input dengan index
|
||||
const hargaPenawarans = document.getElementsByName('harga_penawaran_pembanding[]');
|
||||
const hargaInputs = document.getElementsByName('harga_pembanding[]');
|
||||
const diskonInputs = document.getElementsByName('diskon_pembanding[]');
|
||||
const totalInputs = document.getElementsByName('total_pembanding[]');
|
||||
@@ -96,6 +98,7 @@
|
||||
|
||||
// Pastikan index valid
|
||||
if (index !== null && index < hargaInputs.length) {
|
||||
hargaPenawaranInput = hargaPenawarans[index]
|
||||
hargaInput = hargaInputs[index];
|
||||
diskonInput = diskonInputs[index];
|
||||
totalInput = totalInputs[index];
|
||||
@@ -106,11 +109,12 @@
|
||||
}
|
||||
|
||||
// Validasi input
|
||||
if (!hargaInput || !diskonInput || !totalInput || !hargaDiskonInput) {
|
||||
if (!hargaPenawaranInput || !hargaInput || !diskonInput || !totalInput || !hargaDiskonInput) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Ambil nilai numerik dari input
|
||||
const hargaPenawaran = parseFloat(hargaPenawaranInput.value.replace(/[^\d]/g, '') || '0');
|
||||
const harga = parseFloat(hargaInput.value.replace(/[^\d]/g, '') || '0');
|
||||
let diskonInput_value = diskonInput.value.replace(',', '.');
|
||||
let diskon = parseFloat(diskonInput_value.replace(/[^\d.]/g, '') || '0');
|
||||
@@ -120,10 +124,11 @@
|
||||
diskon = Math.min(diskon, 100);
|
||||
|
||||
const total = harga;
|
||||
const hargaSetelahDiskon = harga - (harga * (diskon / 100));
|
||||
const hargaPermeterSetelahDiskon = harga - (harga * (diskon / 100))
|
||||
const hargaSetelahDiskon = hargaPenawaran - (hargaPenawaran * (diskon / 100));
|
||||
|
||||
// Update nilai dengan format currency
|
||||
totalInput.value = formatCurrency(total.toString());
|
||||
totalInput.value = formatCurrency(hargaPermeterSetelahDiskon.toString());
|
||||
hargaDiskonInput.value = formatCurrency(hargaSetelahDiskon.toString());
|
||||
}
|
||||
|
||||
@@ -211,7 +216,8 @@
|
||||
'hak_properti_pembanding[]': currentData.hak_properti,
|
||||
'telepon_pembanding[]': currentData.telepon,
|
||||
'penawaran_pembanding[]': currentData.penawaran,
|
||||
'tanggal_pembanding[]': currentData.tanggal
|
||||
'tanggal_pembanding[]': currentData.tanggal,
|
||||
'harga_penawaran_pembanding[]':currentData.harga_penawaran
|
||||
|
||||
};
|
||||
|
||||
@@ -261,11 +267,15 @@
|
||||
function initializePriceCalculation() {
|
||||
// Event listener untuk input utama
|
||||
const mainHargaInput = document.querySelector('input[name="harga"]');
|
||||
const mainHargaPenawaranInput = document.querySelector('input[name="harga_penawaran"]');
|
||||
const mainDiskonInput = document.querySelector('input[name="diskon"]');
|
||||
|
||||
if (mainHargaInput) {
|
||||
mainHargaInput.addEventListener('input', () => calculatePrices('main'));
|
||||
}
|
||||
if (mainHargaPenawaranInput) {
|
||||
mainHargaPenawaranInput.addEventListener('input', () => calculatePrices('main'));
|
||||
}
|
||||
|
||||
if (mainDiskonInput) {
|
||||
mainDiskonInput.addEventListener('input', () => calculatePrices('main'));
|
||||
@@ -273,11 +283,17 @@
|
||||
|
||||
// Event listener untuk input pembanding
|
||||
const pembandingHargaInputs = document.getElementsByName('harga_pembanding[]');
|
||||
const pembandingHargaPenawaranInput = document.getElementsByName('harga_penawaran_pembanding[]');
|
||||
|
||||
|
||||
const pembandingDiskonInputs = document.getElementsByName('diskon_pembanding[]');
|
||||
|
||||
pembandingHargaInputs.forEach((input, index) => {
|
||||
input.addEventListener('input', () => calculatePrices('pembanding', index));
|
||||
});
|
||||
pembandingHargaPenawaranInput.forEach((input, index) => {
|
||||
input.addEventListener('input', () => calculatePrices('pembanding', index));
|
||||
});
|
||||
|
||||
pembandingDiskonInputs.forEach((input, index) => {
|
||||
input.addEventListener('input', () => calculatePrices('pembanding', index));
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{{-- analisa fakta --}}
|
||||
<div class="card border border-agi-100 rounded-lg overflow-hidden">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h3 class="card-title uppercase">
|
||||
Analisis Fakta
|
||||
Analisa Fakta
|
||||
</h3>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div class=" card w-full bg-white rounded-lg shadow-md ">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class=" card w-full border-agi-100 rounded-lg shadow-md ">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
@php
|
||||
$title = $title ?? 'Form Inspeksi';
|
||||
@endphp
|
||||
@@ -121,8 +121,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md overflow-hidden">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h1 class="text-md font-medium text-gray-900 uppercase">Nama Cadeb/Debitur</h1>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@@ -142,8 +142,8 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md ">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card border border-agi-100 w-full rounded-lg shadow-md ">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h1 class="text-md font-medium text-gray-900 uppercase">Deskripsi Aset jaminan</h1>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@@ -250,8 +250,8 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card border border-agi-100 w-full bg-white rounded-lg shadow-md overflow-hidden">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h1 class="text-md font-medium text-gray-900 uppercase">Titik Koordinat Google Maps</h1>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@@ -278,8 +278,8 @@
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h1 class="text-md font-medium text-gray-900 uppercase">Status</h1>
|
||||
</div>
|
||||
<div class="card-body w-full">
|
||||
@@ -307,7 +307,9 @@
|
||||
@php
|
||||
$hubCadebPemilik = $dokumen->pemilik->hubungan_pemilik->name ?? 'N/A';
|
||||
@endphp
|
||||
{{ $hubCadebPemilik }}
|
||||
<p>
|
||||
{{ $hubCadebPemilik }}
|
||||
</p>
|
||||
|
||||
<input type="hidden" name="hub_cadeb_sesuai" value="{{ $hubCadebPemilik }}"
|
||||
id="">
|
||||
@@ -361,7 +363,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class=" mx-auto bg-white rounded-lg overflow-hidden">
|
||||
<div class=" mx-auto rounded-lg overflow-hidden">
|
||||
<div class="py-4 ">
|
||||
<h1 class="text-md font-medium text-gray-900">Hubungan Cadeb/Debitur dengan Penghuni Jaminan</h1>
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!-- Informasi Tata Ruang -->
|
||||
<div class="card border border-agi-100 w-full ">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h3 class="card-title uppercase">
|
||||
@if (strtolower($permohonan->tujuanPenilaian->name) == 'rap')
|
||||
ATURAN TATA KOTA
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
@endforeach
|
||||
@endif
|
||||
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h3 class="card-title uppercase">
|
||||
Tanda Tangan
|
||||
</h3>
|
||||
@@ -68,12 +68,12 @@
|
||||
<div class="flex justify-end gap-2" style="margin-right: 20px; margin-top: 20px">
|
||||
<button type="button" class="btn btn-primary" id="saveButton" onclick="submitData()">
|
||||
<i class="ki-filled ki-save-2"></i>
|
||||
<span id="saveButtonText">Save</span>
|
||||
<span id="saveButtonText">Simpan</span>
|
||||
</button>
|
||||
<a href="{{ route('surveyor.print_out_inspeksi', ['permohonan_id' => $permohonan->id, 'dokument_id' => request('dokument'), 'jenis_jaminan_id' => request('jenis_jaminan')]) }}"
|
||||
class="btn btn-info" id="saveButton">
|
||||
<i class="ki-filled ki-printer"></i>
|
||||
<span>Print Out</span>
|
||||
<span>Cetak Form Inspeksi</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h3 class="card-title uppercase">
|
||||
Analisa Lingkungan
|
||||
</h3>
|
||||
|
||||
@@ -188,12 +188,23 @@
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="px-4 py-2">Harga Penawaran/ Transaksi(Rp)</td>
|
||||
<td class="px-4 py-2">
|
||||
<input type="text" name="harga_penawaran" class="input currency-format"
|
||||
value="{{ $inspectionData['asset']['harga_penawaran'] ?? '' }}">
|
||||
</td>
|
||||
<td class="px-4 py-2">
|
||||
<input type="text" name="harga_penawaran_pembanding[]" class="input currency-format">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="px-4 py-2">Telepon Contact Person</td>
|
||||
<td class="px-4 py-2">
|
||||
<input type="text" name="telepon" class="input"
|
||||
value="{{ $inspectionData['asset']['telepon'] ?? '' }}">
|
||||
value="{{ $inspectionData['asset']['telepon'] ?? $permohonan->debiture->phone ?? '' }}">
|
||||
</td>
|
||||
<td class="px-4 py-2">
|
||||
<input type="text" name="telepon_pembanding[]" class="input">
|
||||
@@ -204,7 +215,7 @@
|
||||
<td class="px-4 py-2">Status Narasumber</td>
|
||||
<td class="px-4 py-2">
|
||||
<input type="text" name="status_nara_sumber" class="input"
|
||||
value="{{ $inspectionData['asset']['status_nara_sumber'] ?? '' }}">
|
||||
value="{{ $inspectionData['asset']['status_nara_sumber'] ?? $dokumen->pemilik->hubungan_pemilik->name ?? '' }}">
|
||||
</td>
|
||||
<td class="px-4 py-2">
|
||||
<input type="text" name="status_nara_sumber_pembanding[]" class="input">
|
||||
@@ -214,7 +225,7 @@
|
||||
<td class="px-4 py-2">Nama Narasumber</td>
|
||||
<td class="px-4 py-2">
|
||||
<input type="text" name="nama_nara_sumber" class="input"
|
||||
value="{{ $inspectionData['asset']['nama_nara_sumber'] ?? '' }}">
|
||||
value="{{ $inspectionData['asset']['nama_nara_sumber'] ?? $permohonan->debiture->name ?? '' }}">
|
||||
</td>
|
||||
<td class="px-4 py-2">
|
||||
<input type="text" name="nama_nara_sumber_pembanding[]" class="input">
|
||||
@@ -437,14 +448,14 @@
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="display: none;">
|
||||
<td class="px-4 py-2">Total</td>
|
||||
<tr style="">
|
||||
<td class="px-4 py-2"></td>
|
||||
<td class="px-4 py-2">
|
||||
<input type="text" name="total" class="input currency"
|
||||
value="{{ $inspectionData['asset']['total'] ?? '' }}">
|
||||
value="{{ $inspectionData['asset']['total'] ?? '' }}" readonly>
|
||||
</td>
|
||||
<td class="px-4 py-2">
|
||||
<input type="text" name="total_pembanding[]" class="input currency-format">
|
||||
<input type="text" name="total_pembanding[]" class="input currency-format" readonly>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -542,23 +542,19 @@
|
||||
|
||||
<tr>
|
||||
@php
|
||||
$hubCadebPenghuni = $forminspeksi['asset']['hub_cadeb_penghuni'] ?? null;
|
||||
|
||||
$cekHub = $hubCadebPenghuni === 'sesuai' ? 'sesuai' : 'tidak sesuai';
|
||||
|
||||
$hubCadeb =
|
||||
is_array($hubCadebPenghuni) && isset($hubCadebPenghuni[$cekHub])
|
||||
? $hubCadebPenghuni[$cekHub]
|
||||
: $hubCadebPenghuni[$cekHub] ?? null;
|
||||
$statusKey = isset($forminspeksi['asset']['hub_cadeb_penghuni']['sesuai'])
|
||||
? 'sesuai'
|
||||
: 'tidak sesuai';
|
||||
$selectedData = $forminspeksi['asset']['hub_cadeb_penghuni'][$statusKey] ?? null;
|
||||
@endphp
|
||||
|
||||
<td><strong>Hubungan Penghuni Jaminan dengan Debitur</strong></td>
|
||||
<td>
|
||||
@if (isset($basicData['hubPenghuni']))
|
||||
@if (isset($selectedData))
|
||||
<table class="checkbox-table">
|
||||
<tr>
|
||||
<td>
|
||||
{{ $hubCadeb ?? '' }}
|
||||
{{ $selectedData ?? '' }}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
<input type="radio" name="tusuk_sate" value="Ya"
|
||||
{{ isset($forminspeksi['tanah']['tusuk_sate']['Ya']) && $forminspeksi['tanah']['tusuk_sate']['Ya'] ? 'checked' : '' }}>
|
||||
Ya
|
||||
@if (isset($forminspeksi['tanah']['tusuk_sate']) && $forminspeksi['tanah']['tusuk_sate']['Ya'])
|
||||
@if (isset($forminspeksi['tanah']['tusuk_sate']['Ya']) && $forminspeksi['tanah']['tusuk_sate']['Ya'])
|
||||
{{ isset($forminspeksi['tanah']['tusuk_sate']['Ya']) ? ' (' . $forminspeksi['tanah']['tusuk_sate']['Ya'] . ')' : '' }}
|
||||
@endif
|
||||
</label>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div class="card border border-agi-100 w-full rounded-lg shadow-md overflow-hidden">
|
||||
<div class="card-header bg-agi-50">
|
||||
<div class="card-header light:bg-agi-50">
|
||||
<h3 class="card-title uppercase">
|
||||
Analisa Tanah
|
||||
</h3>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
@if ($permohonan->status == 'revisi-survey')
|
||||
<div class="card border border-agi-100 min-w-full">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<div class="card-header light:bg-agi-50" id="basic_settings">
|
||||
<div class="card-title flex flex-row gap-1.5">
|
||||
Catatan Revisi
|
||||
</div>
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
|
||||
<div class="card border border-agi-100 min-w-full">
|
||||
<div class="card-header bg-agi-50" id="basic_settings">
|
||||
<div class="card-header light:bg-agi-50" id="basic_settings">
|
||||
<div class="card-title flex flex-row gap-1.5">
|
||||
Form Jaminan
|
||||
</div>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
|
||||
<div class="card border border-agi-100 card-grid min-w-full" data-datatable="false" data-datatable-page-size="10"
|
||||
data-datatable-state-save="false" id="permohonan-table" data-api-url="{{ route('surveyor.datatables') }}">
|
||||
<div class="card-header bg-agi-50 py-5 flex-wrap">
|
||||
<div class="card-header light:bg-agi-50 py-5 flex-wrap">
|
||||
<h3 class="card-title">
|
||||
Surveyor
|
||||
</h3>
|
||||
|
||||
Reference in New Issue
Block a user