Merge branch 'staging' into feature/senior-officer
This commit is contained in:
@@ -415,6 +415,7 @@ class PenilaianController extends Controller
|
||||
return view('lpj::penilaian.otorisator.sla', compact('permohonan', 'header', 'authorization'));
|
||||
}
|
||||
if ($header === 'Paparan') {
|
||||
$authorization = Authorization::with(['user'])->where('permohonan_id', $id)->first();
|
||||
return view('lpj::penilaian.otorisator.show', compact('permohonan', 'header', 'authorization'));
|
||||
}
|
||||
return view('lpj::penilaian.otorisator.show', compact('permohonan', 'header', 'authorization'));
|
||||
@@ -430,6 +431,14 @@ class PenilaianController extends Controller
|
||||
], 404);
|
||||
}
|
||||
$permohonan = Permohonan::find($authorization->permohonan_id);
|
||||
} elseif ($context === 'Paparan') {
|
||||
$authorization = Authorization::with(['user'])->find($id);
|
||||
if (!$authorization) {
|
||||
return response()->json([
|
||||
'message' => 'Data authorization Paparan tidak ditemukan.',
|
||||
], 404);
|
||||
}
|
||||
$permohonan = Permohonan::find($authorization->permohonan_id);
|
||||
} else {
|
||||
$permohonan = Permohonan::find($id);
|
||||
}
|
||||
@@ -483,16 +492,17 @@ class PenilaianController extends Controller
|
||||
break;
|
||||
|
||||
case 'sla':
|
||||
if (Auth::user()->roles[0]->name === 'senior-officer') {
|
||||
if (Auth::user()->roles[0]->name === 'senior-officer' || Auth::user()->roles[0]->name === 'administrator' && $authorization->approve_so === null) {
|
||||
$authorization->update([
|
||||
'status' => '3',
|
||||
'status_so' => '1',
|
||||
'approve_so' => Auth::user()->id,
|
||||
'approve_so_at' => now(),
|
||||
'keterangan_so' => $request->message,
|
||||
]);
|
||||
} elseif (Auth::user()->roles[0]->name === 'EO Appraisal' || Auth::user()->roles[0]->name === 'administrator') {
|
||||
} elseif (Auth::user()->roles[0]->name === 'EO Appraisal' || Auth::user()->roles[0]->name === 'administrator' && $authorization->approve_so && $authorization->approve_eo === null) {
|
||||
$status = '2';
|
||||
if (!in_array($permohonan->nulai_plafond_id, [1, 4])) {
|
||||
if (!in_array($permohonan->nilai_plafond_id, [1, 4])) {
|
||||
$status = '1';
|
||||
$permohonan->update([
|
||||
'status' => $authorization->request
|
||||
@@ -501,13 +511,15 @@ class PenilaianController extends Controller
|
||||
|
||||
$authorization->update([
|
||||
'status' => $status,
|
||||
'status_eo' => '1',
|
||||
'approve_eo' => Auth::user()->id,
|
||||
'approve_eo_at' => now(),
|
||||
'keterangan_eo' => $request->message,
|
||||
]);
|
||||
} elseif (Auth::user()->roles[0]->name === 'DD Appraisal') {
|
||||
} elseif (Auth::user()->roles[0]->name === 'DD Appraisal' || Auth::user()->roles[0]->name === 'administrator' && $authorization->approve_so && $authorization->approve_eo && $authorization->approve_dd === null) {
|
||||
$authorization->update([
|
||||
'status' => '1',
|
||||
'status_dd' => '1',
|
||||
'approve_dd' => Auth::user()->id,
|
||||
'approve_dd_at' => now(),
|
||||
'keterangan_dd' => $request->message,
|
||||
@@ -519,11 +531,45 @@ class PenilaianController extends Controller
|
||||
}
|
||||
break;
|
||||
case 'paparan':
|
||||
if (Auth::user()->roles[0]->name === 'senior-officer' || Auth::user()->roles[0]->name === 'administrator' && $authorization->approve_so === null) {
|
||||
$authorization->update([
|
||||
'status' => '3',
|
||||
'status_so' => '1',
|
||||
'approve_so' => Auth::user()->id,
|
||||
'approve_so_at' => now(),
|
||||
'keterangan_so' => $request->message,
|
||||
]);
|
||||
} elseif (Auth::user()->roles[0]->name === 'EO Appraisal') {
|
||||
$status = '2';
|
||||
if (!in_array($permohonan->nilai_plafond_id, [1, 4])) {
|
||||
$status = '1';
|
||||
$permohonan->update([
|
||||
'status' => $authorization->request
|
||||
]);
|
||||
}
|
||||
$authorization->update([
|
||||
'status' => $status,
|
||||
'status_eo' => '1',
|
||||
'approve_eo' => Auth::user()->id,
|
||||
'approve_eo_at' => now(),
|
||||
'keterangan_eo' => $request->message,
|
||||
]);
|
||||
} elseif (Auth::user()->roles[0]->name === 'DD Appraisal' || Auth::user()->roles[0]->name === 'administrator' && $authorization->approve_so && $authorization->approve_dd === null) {
|
||||
$authorization->update([
|
||||
'status' => '1',
|
||||
'status_dd' => '1',
|
||||
'approve_dd' => Auth::user()->id,
|
||||
'approve_dd_at' => now(),
|
||||
'keterangan_dd' => $request->message,
|
||||
]);
|
||||
|
||||
$permohonan->update([
|
||||
'status' => 'paparan',
|
||||
'keterangan' => $request->message,
|
||||
'tanggal_paparan' => $request->tanggalPaparan
|
||||
]);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
return response()->json([
|
||||
'message' => 'Konteks otorisasi tidak valid.',
|
||||
|
||||
@@ -71,7 +71,7 @@ class SLAController extends Controller
|
||||
// abort(403, 'Sorry! You are not allowed to view users.');
|
||||
}
|
||||
|
||||
$query = Authorization::query()->with('permohonan.debiture','user','approveSo','approveEo','approveDd');
|
||||
$query = Authorization::query()->with('permohonan.debiture','user','approveSo','approveEo','approveDd')->where('jenis','sla');
|
||||
|
||||
// Pencarian berdasarkan parameter search
|
||||
if ($request->has('search') && !empty($request->get('search'))) {
|
||||
|
||||
@@ -1019,12 +1019,14 @@ class SurveyorController extends Controller
|
||||
public function storeFreeze($id, Request $request)
|
||||
{
|
||||
try {
|
||||
|
||||
$permohonan = Permohonan::findOrFail($id);
|
||||
|
||||
$permohonan->update([
|
||||
'status' => 'request-freeze',
|
||||
'keterangan' => $request->message
|
||||
Authorization::updateOrCreate([
|
||||
'permohonan_id' => $permohonan->id,
|
||||
'jenis' => 'sla'
|
||||
],[
|
||||
'request' => 'freeze',
|
||||
'user_id' => Auth::user()->id
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
|
||||
@@ -102,8 +102,15 @@
|
||||
{
|
||||
$historyService = app(PermohonanHistoryService::class);
|
||||
|
||||
$keterangan = request()->input('keterangan', '');
|
||||
if (request()->filled('registrasi_catatan')) {
|
||||
if (!empty($keterangan)) {
|
||||
$keterangan .= "\n";
|
||||
}
|
||||
$keterangan .= request()->input('registrasi_catatan');
|
||||
}
|
||||
|
||||
$status = $permohonan->status;
|
||||
$keterangan = request()->input('keterangan'); // Get keterangan from request
|
||||
$beforeRequest = $action === 'updated' ? $permohonan->getOriginal() : [];
|
||||
$afterRequest = $permohonan->toArray();
|
||||
$file = $permohonan->dokumen ?? null;
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
</div>
|
||||
<div class="ml-3 mb-5">
|
||||
<span class="text-sm text-gray-700 capitalize font-medium">{{ str_replace('-',' ',$activity->status) }}</span>
|
||||
<p class="text-xs text-gray-500 mt-1">{{ $activity->keterangan }}</p>
|
||||
<p class="text-xs text-gray-500 mt-1">{{ $activity->keterangan ? 'Catatan : '.$activity->keterangan : '' }}</p>
|
||||
<div class="flex items-center mt-2">
|
||||
<span class="text-xs text-gray-400">{{ $activity->created_by ? $activity->creator->name : 'System' }}</span>
|
||||
<span class="text-xs text-gray-400 ml-2">{{ $activity->created_at->format('d M Y H:i') }}</span>
|
||||
|
||||
@@ -269,8 +269,7 @@
|
||||
Catatan
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<textarea class="textarea @error('keterangan') border-danger bg-danger-light @enderror" rows="3"
|
||||
type="text" name="keterangan">{{ $permohonan->registrasi_cat ?? "" }} {{ $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>
|
||||
|
||||
@@ -129,32 +129,15 @@
|
||||
href="{{ route('otorisator.view-laporan') }}?permohonanId={{ $permohonan->id }}&documentId={{ $documentId }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $jenisJaminanId }}&statusLpj={{ true }}">
|
||||
Lihat Laporan
|
||||
</a>
|
||||
@endif
|
||||
|
||||
@if ($dataHeader == 'paparan')
|
||||
<a class="btn btn-success"
|
||||
href="{{ route('penilai.paparan') }}?permohonanId={{ $permohonan->id }}&documentId={{ $documentId }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $jenisJaminanId }}&statusLpj={{ true }}">
|
||||
Lihat Data Paparan
|
||||
</a>
|
||||
@if (Auth::user()->hasAnyRole(['administrator', 'DD Appraisal']))
|
||||
<button onclick="otorisatorData({{ $permohonan->id }})" type="button" class="btn btn-primary">
|
||||
<i class="ki-filled ki-double-check"></i>
|
||||
Otorisator {{ $header ?? '' }}
|
||||
</button>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (Auth::user()->hasAnyRole(['administrator', 'senior-officer']) && $permohonan->approval_so == null)
|
||||
<button onclick="otorisatorData({{ $permohonan->id }})" type="button" class="btn btn-primary">
|
||||
<i class="ki-filled ki-double-check"></i>
|
||||
Otorisator {{ $header ?? '' }}
|
||||
</button>
|
||||
@if ($dataHeader != 'paparan')
|
||||
<button class="btn btn-warning" onclick="revisiLaporan({{ $permohonan->id }})">
|
||||
<i class="ki-filled ki-arrow-circle-right"></i> Revisi
|
||||
</button>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@if (Auth::user()->hasAnyRole(['administrator', 'EO Appraisal']) &&
|
||||
$permohonan->approval_so &&
|
||||
@@ -174,6 +157,30 @@
|
||||
Otorisator {{ $header ?? '' }}
|
||||
</button>
|
||||
@endif
|
||||
|
||||
@elseif($dataHeader == 'paparan')
|
||||
<a class="btn btn-success"
|
||||
href="{{ route('penilai.paparan') }}?permohonanId={{ $permohonan->id }}&documentId={{ $documentId }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $jenisJaminanId }}&statusLpj={{ true }}">
|
||||
Lihat Data Paparan
|
||||
</a>
|
||||
|
||||
@if(Auth::user()->hasAnyRole(['administrator','senior-officer']) && $authorization->approve_so==null)
|
||||
<button onclick="otorisatorData({{ $authorization->id }})" type="button" class="btn btn-primary">
|
||||
<i class="ki-filled ki-double-check"></i>
|
||||
Otorisator {{ $header ?? '' }}
|
||||
</button>
|
||||
@endif
|
||||
|
||||
@if(Auth::user()->hasAnyRole(['administrator', 'DD Appraisal']) &&
|
||||
$authorization->approve_so &&
|
||||
$authorization->approve_dd == null &&
|
||||
in_array($permohonan->nilai_plafond_id, [1, 4]))
|
||||
<button onclick="otorisatorData({{ $authorization->id }},'DD')" type="button" class="btn btn-primary">
|
||||
<i class="ki-filled ki-double-check"></i>
|
||||
Otorisator {{ $header ?? '' }}
|
||||
</button>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -181,8 +188,116 @@
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
function otorisatorData(dataId) {
|
||||
function otorisatorData(dataId, role='') {
|
||||
const dataHeader = @json($header);
|
||||
if(dataHeader == 'Paparan'){
|
||||
if(role == 'DD'){
|
||||
Swal.fire({
|
||||
title: 'Apakah Anda yakin?',
|
||||
text: `Untuk melakukan otorisator ${dataHeader}!`,
|
||||
icon: 'warning',
|
||||
html: `
|
||||
<input id="swal-keterangan" class="swal2-input input" placeholder="Keterangan">
|
||||
<input id="swal-tanggal-paparan" class="swal2-input input" type="date" placeholder="Tanggal paparan">
|
||||
`,
|
||||
focusConfirm: false,
|
||||
preConfirm: () => {
|
||||
const keterangan = document.getElementById('swal-keterangan').value;
|
||||
const tanggalPaparan = document.getElementById('swal-tanggal-paparan').value;
|
||||
|
||||
if (!keterangan || !tanggalPaparan) {
|
||||
Swal.showValidationMessage('Keterangan atau Tanggal Paparan Harus diisi!');
|
||||
return false;
|
||||
}
|
||||
|
||||
return { keterangan, tanggalPaparan };
|
||||
},
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: 'Ya, Lanjutkan!',
|
||||
cancelButtonText: 'Batal',
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
const keterangan = result.value.keterangan || '';
|
||||
const tanggalPaparan = result.value.tanggalPaparan || '';
|
||||
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||
},
|
||||
});
|
||||
$.ajax({
|
||||
url: `/otorisator/otorisator/${dataId}/${dataHeader}`,
|
||||
type: 'POST',
|
||||
data: {
|
||||
message: keterangan,
|
||||
tanggalPaparan: tanggalPaparan
|
||||
},
|
||||
success: (response) => {
|
||||
Swal.fire('Berhasil!',
|
||||
'Data berhasil diotorisasi. Menunggu Approval dan Tanggal Paparan dari DD',
|
||||
'success').then(() => {
|
||||
window.location.reload();
|
||||
});
|
||||
console.log(response);
|
||||
},
|
||||
error: (error) => {
|
||||
console.error('Error:', error);
|
||||
Swal.fire('Gagal!', 'Terjadi kesalahan saat melakukan otorisator.',
|
||||
'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}else{
|
||||
Swal.fire({
|
||||
title: 'Apakah Anda yakin?',
|
||||
text: `Untuk melakukan otorisator ${dataHeader}!`,
|
||||
icon: 'warning',
|
||||
input: 'textarea',
|
||||
inputLabel: 'Keterangan',
|
||||
inputPlaceholder: 'Masukkan keterangan...',
|
||||
inputAttributes: {
|
||||
'aria-label': 'Masukkan keterangan'
|
||||
},
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: 'Ya, Lanjutkan!',
|
||||
cancelButtonText: 'Batal',
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
const userMessage = result.value || ''; // Ambil pesan dari textarea
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||
},
|
||||
});
|
||||
$.ajax({
|
||||
url: `/otorisator/otorisator/${dataId}/${dataHeader}`,
|
||||
type: 'POST',
|
||||
data: {
|
||||
message: userMessage
|
||||
},
|
||||
success: (response) => {
|
||||
Swal.fire('Berhasil!',
|
||||
'Data berhasil diotorisasi. Menunggu Approval dan Tanggal Paparan dari DD',
|
||||
'success').then(() => {
|
||||
window.location.reload();
|
||||
});
|
||||
console.log(response);
|
||||
},
|
||||
error: (error) => {
|
||||
console.error('Error:', error);
|
||||
Swal.fire('Gagal!', 'Terjadi kesalahan saat melakukan otorisator.',
|
||||
'error');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}else{
|
||||
Swal.fire({
|
||||
title: 'Apakah Anda yakin?',
|
||||
text: `Untuk melakukan otorisator ${dataHeader}!`,
|
||||
@@ -229,6 +344,7 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function revisiLaporan(dataId) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- Informasi Tata Ruang -->
|
||||
<div class="card border border-agi-100 w-full ">
|
||||
<!-- Informasi Tata Ruang -->
|
||||
<div class="card border border-agi-100 w-full ">
|
||||
<div class="card-header bg-agi-50">
|
||||
<h3 class="card-title uppercase">
|
||||
Informasi Dinas Tata Ruang
|
||||
@@ -129,7 +129,7 @@
|
||||
<img id="gistaru-preview"
|
||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_gistaru']) ? $forminspeksi['foto_gistaru'] : '')) }}"
|
||||
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_gistaru']) ? '' : 'display: none;' }} max-width: 30rem;" />
|
||||
style="{{ isset($forminspeksi['foto_gistaru']) ? '' : 'display: none;' }} max-width: 30rem;"/>
|
||||
|
||||
|
||||
</div>
|
||||
@@ -156,7 +156,7 @@
|
||||
<img id="bhumi-preview"
|
||||
src="{{ asset('storage/' . (isset($forminspeksi['foto_bhumi']) ? $forminspeksi['foto_bhumi'] : '')) }}"
|
||||
alt="Foto Bhumi" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_bhumi']) ? ' ' : 'display: none;' }} max-width: 30rem;" />
|
||||
style="{{ isset($forminspeksi['foto_bhumi']) ? ' ' : 'display: none;' }} max-width: 30rem;"/>
|
||||
</div>
|
||||
<a href="https://bhumi.atrbpn.go.id/peta" type="button" class="btn btn-light" target="_blank">
|
||||
<i class="ki-filled ki-map"></i> Bhumi
|
||||
@@ -205,11 +205,21 @@
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@if($forminspeksi)
|
||||
@if(is_array($forminspeksi['foto_tempat']))
|
||||
@if(count($forminspeksi['foto_tempat']) > 0)
|
||||
<img id="foto_tempat-preview"
|
||||
src="{{ isset($forminspeksi['foto_tempat']) ? asset('storage/' . (is_array($forminspeksi['foto_tempat']) ? $forminspeksi['foto_tempat'][0] : $forminspeksi['foto_tempat'])) : '' }}"
|
||||
alt="Foto Tempat" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_tempat']) ? '' : 'display: none;' }} max-width: 30rem;">
|
||||
|
||||
@endif
|
||||
@else
|
||||
<img id="foto_tempat-preview"
|
||||
src="{{ asset('storage/'. (isset($forminspeksi['foto_tempat'])? $forminspeksi['foto_tempat'] : '')) }}"
|
||||
alt="Foto Tempat" class="mt-2 max-w-full h-auto"
|
||||
style="{{ isset($forminspeksi['foto_tempat']) ? '' : 'display: none;' }} max-width: 30rem;">
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -249,10 +259,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include('lpj::surveyor.components.modal-kamera')
|
||||
@include('lpj::surveyor.components.modal-kamera')
|
||||
|
||||
@push('scripts')
|
||||
@push('scripts')
|
||||
@include('lpj::surveyor.js.camera-editor')
|
||||
@endpush
|
||||
@endpush
|
||||
|
||||
Reference in New Issue
Block a user