fix(so): perbaikan assigment bisa pindah region, dan perbaikan call report dan revisi dokumen admin dari so

This commit is contained in:
majid
2025-02-20 16:54:39 +07:00
parent 61c5690e38
commit 28295f5b85
14 changed files with 631 additions and 383 deletions

View File

@@ -13,7 +13,13 @@
{{ isset($document->id) ? 'Edit' : 'Tambah' }} Data Jaminan
</h3>
<div class="flex items-center gap-2">
@if (Auth::user()->roles[0]->name === 'admin')
<a href="{{ url()->previous() }}" class="btn btn-xs btn-info">
<i class="ki-filled ki-exit-left"></i> Back
</a>
@else
<a href="{{ route('debitur.jaminan.index',$debitur->id) }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
@endif
</div>
</div>
<div class="card-body">

View File

@@ -72,7 +72,7 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Nomor Laporan</label>
<div class="flex flex-wrap items-base line w-full">
<input type="text" name="nomor_rap" class="input w-full cursor-not-allowed"
<input type="text" name="nomor_laporan" class="input w-full cursor-not-allowed"
placeholder="Masukkan..." value="{{ $nomorLaporan ?? '' }}" @readonly(true)>
</div>
</div>
@@ -224,13 +224,13 @@
<label for="Lelang" class="form-label max-w-56">Lelang ke </label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="lelang" name="lelang" class="input w-full"
placeholder="Masukkan Lelang" value="{{ $memo->lokasi->penilai ?? old('penilai') }}">
placeholder="Masukkan Lelang" value="{{ $memo->lokasi->penilai ?? old('lelang') }}">
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<label for="penilai" class="form-label max-w-56">Nilai Pasar Wajar (NPW)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="nilai-pasar" name="likuidasi"
<input type="text" id="nilai-pasar" name="nilai_pasar"
class="input w-full nilai-pasar currency-format" placeholder="Masukkan likuidasi"
value="{{ old('likuidasi') }}">
</div>
@@ -238,7 +238,7 @@
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 w-full">
<label for="likuidasi_nilai_1" class="form-label max-w-56">Nilai Likuidasi(%)</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="text" id="likuidasi" name="likuidasi_nilai_1" class="input w-full likuidasi"
<input type="text" id="likuidasi" name="likuidasi" class="input w-full likuidasi"
placeholder="Masukkan likuidasi dalam bentuk persen" onkeyup="calculateTotal(this)">
</div>
</div>
@@ -411,26 +411,81 @@
@endsection
@push('scripts')
<script type="text/javascript">
const callReport = @json($forminspeksi ?? '');
console.log('callReport', callReport)
const callReports = @json($callReport);
console.log('callReport', callReports)
function formatJson(formElement) {
const formData = new FormData(formElement);
const jsonData = {
kepada: "",
tanggal: "",
nomor_laporan: "",
perihal: "",
dari: "",
lelang: "",
fakta: {
fakta_positif: [],
fakta_negatif: []
},
nilai_pasar: "",
persentase_likuidasi: "",
hasil_nilai_likuidasi: ""
};
// Ambil fakta positif
document.querySelectorAll('textarea[name="fakta_positif[]"]').forEach(textarea => {
if (textarea.value.trim() !== "") {
jsonData.fakta.fakta_positif.push(textarea.value.trim());
}
});
// Ambil fakta negatif
document.querySelectorAll('textarea[name="fakta_negatif[]"]').forEach(textarea => {
if (textarea.value.trim() !== "") {
jsonData.fakta.fakta_negatif.push(textarea.value.trim());
}
});
jsonData.perihal = document.querySelector('input[name="perihal"]')?.value.trim() || "";
jsonData.dari = document.querySelector('input[name="dari"]')?.value.trim() || "";
jsonData.tanggal = document.querySelector('input[name="tanggal"]')?.value.trim() || "";
jsonData.kepada = document.querySelector('input[name="kepada"]')?.value.trim() || "";
jsonData.nomor_laporan = document.querySelector('input[name="nomor_laporan"]')?.value.trim() || "";
jsonData.lelang = document.querySelector('input[name="lelang"]')?.value.trim() || "";
// Ambil nilai lainnya
jsonData.nilai_pasar = document.querySelector('input[name="nilai_pasar"]')?.value.trim() || "";
jsonData.persentase_likuidasi = document.querySelector('input[name="likuidasi"]')?.value.trim() || "";
jsonData.hasil_nilai_likuidasi = document.querySelector('input[name="likuidasi_nilai_1"]')?.value.trim() || "";
return jsonData;
}
function submitData() {
showLoadingSwal('Mengirim data ke server...');
const form = document.querySelector('form');
const formData = new FormData(form);
console.log('Form data entries:', Array.from(formData.entries()));
const formElement = document.querySelector('form');
// console.log('Form data entries:', Array.from(formData.entries()));
const urlParams = new URLSearchParams(window.location.search);
const permohonanId = {{ $permohonan->id }};
const documentId = urlParams.get('documentId');
const inspeksiId = urlParams.get('inspeksiId');
const requestUrl =
`{{ route('penilai.storeCallReport') }}?permohonanId=${permohonanId}&inspeksiId=${inspeksiId}&documentId=${documentId}`;
`{{ route('penilai.storeCallReport') }}?permohonan_id=${permohonanId}&inspeksi_id=${inspeksiId}&dokument_id=${documentId}`;
const jsonData = formatJson(formElement);
$.ajax({
url: requestUrl,
type: 'POST',
data: formData,
processData: false,
contentType: false,
data: JSON.stringify({
permohonan_id: permohonanId,
dokument_id: documentId,
inspeksi_id: inspeksiId,
data: jsonData,
}),
contentType: 'application/json',
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
},

View File

@@ -282,7 +282,7 @@
@endif
@endif
@if ($permohonan->penilaian->jenis_penilaian_id == 2 && $permohonan->tujuanPenilaian->id == 4)
{{-- @if ($permohonan->penilaian->jenis_penilaian_id == 2 && $permohonan->tujuanPenilaian->id == 4) --}}
<div class="menu-item">
<a class="menu-link"
onclick="callReport('{{ $permohonan->id }}', '{{ $dokumen->id }}', '{{ $inspeksiId }}', {{ $dokumen->jenis_jaminan_id }})">
@@ -295,7 +295,7 @@
</span>
</a>
</div>
@endif
{{-- @endif --}}
</div>
</div>

View File

@@ -4,7 +4,7 @@
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@section('content')
@include('lpj::assetsku.includenya')
@include('lpj::assetsku.includenya')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
@include('lpj::component.detail-jaminan', ['backLink' => 'penilaian.index'])
@@ -16,7 +16,7 @@
</div>
<div class="card-body">
<form id="form-assignment" class="">
<form id="form-assignment" class="">
@if (isset($penilaian->nomor_registrasi))
@method('PUT')
@endif
@@ -67,7 +67,7 @@
<option value="berbeda">Berbeda</option>
</select>
</div>
<em id="error-surveyor_selection" class="alert text-danger text-sm"></em>
<em id="error-surveyor_selection" class="alert text-danger text-sm"></em>
</div>
</div>
@@ -85,15 +85,42 @@
@foreach ($teamPenilai as $item)
<option value="{{ $item->id }}">{{ $item->name }}</option>
@endforeach
@if ($penilaianTeam->isEmpty())
<option value="pilih_dari_region">Pilih Surveyor dan Penilai Dari Region
</option>
@endif
</select>
</div>
<em id="error-penilai_surveyor_id" class="alert text-danger text-sm"></em>
<em id="error-penilai_surveyor_id" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
<div id="surveyorPenilaiRegion" class="hidden items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Pilih Region
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<select id="surveyor_penilai_region_id" name="surveyor_penilai_region_id"
class="tomselect input @error('surveyor_penilai_region_id') border-danger bg-danger-light @enderror w-full">
<option value="">Pilih Region</option>
@if (isset($updateTeamPenilai))
@foreach ($updateTeamPenilai as $item)
<option value="{{ $item->regions->id }}">
{{ $item->regions->name }}</option>
@endforeach
@endif
</select>
</div>
<em id="error-surveyor_penilai_region_id" class="alert text-danger text-sm"></em>
</div>
</div>
<div id="different_surveyor_penilai" class="{{ $penilaianTeam->isNotEmpty() ? '' : 'hidden' }}">
<div class="grid gap-2.5">
@@ -121,7 +148,7 @@
</select>
</div>
<em id="error-surveyor_id" class="alert text-danger text-sm"></em>
<em id="error-surveyor_id" class="alert text-danger text-sm"></em>
</div>
</div>
@@ -146,7 +173,7 @@
</select>
</div>
<em id="error-surveyor_id" class="alert text-danger text-sm"></em>
<em id="error-surveyor_id" class="alert text-danger text-sm"></em>
</div>
</div>
@@ -172,7 +199,7 @@
</select>
</div>
<em id="error-surveyor_region_id" class="alert text-danger text-sm"></em>
<em id="error-surveyor_region_id" class="alert text-danger text-sm"></em>
</div>
</div>
@@ -221,7 +248,7 @@
@endif
</select>
</div>
<em id="error-penilai_id" class="alert text-danger text-sm"></em>
<em id="error-penilai_id" class="alert text-danger text-sm"></em>
</div>
</div>
@endif
@@ -243,7 +270,7 @@
@endif
</select>
</div>
<em id="error-penilai_region_id" class="alert text-danger text-sm"></em>
<em id="error-penilai_region_id" class="alert text-danger text-sm"></em>
</div>
</div>
</div>
@@ -259,7 +286,7 @@
type="datetime-local" name="tanggal_kunjungan"
value="{{ isset($penilaian->tanggal_kunjungan) ? \Carbon\Carbon::createFromTimestamp($penilaian->tanggal_kunjungan)->format('Y-m-d\TH:i') : '' }}">
<em id="error-tanggal_kunjungan" class="alert text-danger text-sm"></em>
<em id="error-tanggal_kunjungan" class="alert text-danger text-sm"></em>
</div>
</div>
@@ -269,10 +296,11 @@
Catatan
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('keterangan') border-danger bg-danger-light @enderror" rows="3" name="keterangan">{{ $permohonan->registrasi_catatan ? $permohonan->registrasi_catatan . "\n\n" : "" }}{{ $penilaian->keterangan ?? '' }}</textarea>
<textarea class="textarea @error('keterangan') border-danger bg-danger-light @enderror" rows="3"
name="keterangan">{{ $permohonan->registrasi_catatan ? $permohonan->registrasi_catatan . "\n\n" : '' }}{{ $penilaian->keterangan ?? '' }}</textarea>
</div>
<em id="error-keterangan" class="alert text-danger text-sm"></em>
<em id="error-keterangan" class="alert text-danger text-sm"></em>
</div>
</div>
@@ -355,20 +383,37 @@
const selectedValue = this.value;
const sameSurveyorPenilai = document.getElementById('same_surveyor_penilai');
const differentSurveyorPenilai = document.getElementById('different_surveyor_penilai');
const surveyorPenilaiRegion = document.getElementById('surveyorPenilaiRegion');
if (selectedValue === 'penilai_dan_surveyor') {
sameSurveyorPenilai.classList.remove('hidden');
differentSurveyorPenilai.classList.add('hidden');
surveyorPenilaiRegion.classList.add('hidden');
} else if (selectedValue === 'berbeda') {
sameSurveyorPenilai.classList.add('hidden');
differentSurveyorPenilai.classList.remove('hidden');
surveyorPenilaiRegion.classList.add('hidden');
} else {
} else {
sameSurveyorPenilai.classList.add('hidden');
differentSurveyorPenilai.classList.add('hidden');
surveyorPenilaiRegion.classList.add('hidden');
}
});
document.getElementById('penilai_surveyor_id').addEventListener('change', function() {
const selectedValue = this.value;
const surveyorPenilaiRegion = document.getElementById('surveyorPenilaiRegion');
if (selectedValue === 'pilih_dari_region') {
surveyorPenilaiRegion.classList.remove('hidden');
surveyorPenilaiRegion.classList.add('flex');
} else {
surveyorPenilaiRegion.classList.add('hidden');
}
});
document.getElementById('surveyor_id').addEventListener('change', function() {
const selectedValue = this.value;

View File

@@ -1,103 +1,141 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@php
// $route = Route::currentRouteName();
// dd($route); registrasi.show
$route = explode('.', Route::currentRouteName());
// $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="w-full grid gap-5 lg:gap-7.5 mx-auto">
@include('lpj::component.detail-jaminan',['backLink' => 'registrasi.index'])
@include('lpj::component.detail-jaminan', ['backLink' => 'registrasi.index'])
<div class="card border border-agi-100 pb-2.5">
<div class="card-header bg-agi-50" id="basic_settings">
<h3 class="card-title">
Registrasi
</h3>
</div>
<div class="card-body lg:py-7.5">
<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 border border-agi-100 pb-2.5">
@if (!$permohonan->status === 'revisi')
<div class="card-header bg-agi-50" id="basic_settings">
<h3 class="card-title">
Registrasi
</h3>
</div>
<div class="card-body lg:py-7.5">
<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="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tindakan
</label>
<div class="flex gap-12">
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input class="radio" name="{{$route[0]}}_tindakan" type="radio" value="0" id="{{ $route[0] }}_tindakan_yes" />
Yes
</label>&nbsp;&nbsp;
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input class="radio" name="{{$route[0]}}_tindakan" type="radio" value="1" id="{{ $route[0] }}_tindakan_no" />
No
</label>
</div>
</div>
<div id="{{$route[0]}}_div_jenis_pilihan" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mt-5">
<label class="form-label max-w-56">
Data Jenis Penilaian (Pilihan registrasi)
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="inputku select" id="{{$route[0]}}_jenis_penilaian" name="{{$route[0]}}_jenis_penilaian">
<option></option>
</select>
<em id="{{$route[0]}}_jenis_penilaian_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 mt-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 id="{{ $route[0] }}_div_sla" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
SLA (dalam satuan hari)
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="inputku input" name="{{$route[0]}}_sla" id="{{$route[0]}}_sla" placeholder="dalam satuan hari" type="text" />
<em id="{{$route[0]}}_sla_msg" class="alert text-danger text-sm"></em>
</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><br />
<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">
Catatan
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="inputku textarea" name="{{$route[0]}}_catatan2" id="{{$route[0]}}_catatan2" placeholder="Catatan..." rows="6"></textarea>
<em id="{{$route[0]}}_catatan2_msg" class="alert text-danger text-sm"></em>
</div>
</div>
<div class="flex justify-end mt-5">
<button type="button" class="btn btn-primary" id="toEdit">
Save
</button>
</div>
</form>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tindakan
</label>
<div class="flex gap-12">
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input class="radio" name="{{ $route[0] }}_tindakan" type="radio" value="0"
id="{{ $route[0] }}_tindakan_yes" />
Yes
</label>&nbsp;&nbsp;
<label class="form-label flex items-center gap-2.5 text-nowrap">
<input class="radio" name="{{ $route[0] }}_tindakan" type="radio" value="1"
id="{{ $route[0] }}_tindakan_no" />
No
</label>
</div>
</div>
<div id="{{ $route[0] }}_div_jenis_pilihan"
class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mt-5">
<label class="form-label max-w-56">
Data Jenis Penilaian (Pilihan registrasi)
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="inputku select" id="{{ $route[0] }}_jenis_penilaian"
name="{{ $route[0] }}_jenis_penilaian">
<option></option>
</select>
<em id="{{ $route[0] }}_jenis_penilaian_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 mt-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 id="{{ $route[0] }}_div_sla" class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
SLA (dalam satuan hari)
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="inputku input" name="{{ $route[0] }}_sla" id="{{ $route[0] }}_sla"
placeholder="dalam satuan hari" type="text" />
<em id="{{ $route[0] }}_sla_msg" class="alert text-danger text-sm"></em>
</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><br />
<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">
Catatan
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="inputku textarea" name="{{ $route[0] }}_catatan2" id="{{ $route[0] }}_catatan2"
placeholder="Catatan..." rows="6"></textarea>
<em id="{{ $route[0] }}_catatan2_msg" class="alert text-danger text-sm"></em>
</div>
</div>
<div class="flex justify-end mt-5">
<button type="button" class="btn btn-primary" id="toEdit">
Save
</button>
</div>
</form>
</div>
@endif
@if ($permohonan->status === 'revisi')
<div class="card-header bg-agi-50" id="basic_settings">
<h3 class="card-title">
Dokument
</h3>
</div>
<div class="card-body">
@include('lpj::debitur.components.jaminan')
</div>
<div class="card-footer">
<div class="flex justify-end mt-5">
<form action="{{ route('storeRevisi', $id) }}" method="post">
@method('PUT')
@csrf
<input type="hidden" id="id" name="id" value="{{ $id }}">
<button class="btn btn-primary" >
Submit Revision
</button>
</form>
</div>
</div>
@endif
</div>
</div>
@endsection
@include('lpj::registrasi.js.editjs')