fix(PenilaianController): perbaiki logika otorisasi dan pembaruan status
- Menambahkan penanganan untuk konteks 'Paparan' pada otorisasi. - Memperbaiki kesalahan penamaan variabel dari 'nulai_plafond_id' menjadi 'nilai_plafond_id'. - Memperbarui status otorisasi berdasarkan peran pengguna. - Menambahkan pembaruan status permohonan untuk konteks 'paparan'.
This commit is contained in:
@@ -430,6 +430,14 @@ class PenilaianController extends Controller
|
|||||||
], 404);
|
], 404);
|
||||||
}
|
}
|
||||||
$permohonan = Permohonan::find($authorization->permohonan_id);
|
$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 {
|
} else {
|
||||||
$permohonan = Permohonan::find($id);
|
$permohonan = Permohonan::find($id);
|
||||||
}
|
}
|
||||||
@@ -493,7 +501,7 @@ class PenilaianController extends Controller
|
|||||||
]);
|
]);
|
||||||
} 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') {
|
||||||
$status = '2';
|
$status = '2';
|
||||||
if (!in_array($permohonan->nulai_plafond_id, [1, 4])) {
|
if (!in_array($permohonan->nilai_plafond_id, [1, 4])) {
|
||||||
$status = '1';
|
$status = '1';
|
||||||
$permohonan->update([
|
$permohonan->update([
|
||||||
'status' => $authorization->request
|
'status' => $authorization->request
|
||||||
@@ -522,11 +530,45 @@ class PenilaianController extends Controller
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'paparan':
|
case 'paparan':
|
||||||
$permohonan->update([
|
if (Auth::user()->roles[0]->name === 'senior-officer') {
|
||||||
'status' => 'paparan',
|
$authorization->update([
|
||||||
'keterangan' => $request->message,
|
'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') {
|
||||||
|
$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') {
|
||||||
|
$authorization->update([
|
||||||
|
'status' => '1',
|
||||||
|
'status_dd' => '1',
|
||||||
|
'approve_dd' => Auth::user()->id,
|
||||||
|
'approve_dd_at' => now(),
|
||||||
|
'keterangan_dd' => $request->message,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$permohonan->update([
|
||||||
|
'status' => 'paparan',
|
||||||
|
'tanggal_paparan' => $request->tanggalPaparan
|
||||||
|
]);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'message' => 'Konteks otorisasi tidak valid.',
|
'message' => 'Konteks otorisasi tidak valid.',
|
||||||
|
|||||||
@@ -129,9 +129,36 @@
|
|||||||
href="{{ route('otorisator.view-laporan') }}?permohonanId={{ $permohonan->id }}&documentId={{ $documentId }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $jenisJaminanId }}&statusLpj={{ true }}">
|
href="{{ route('otorisator.view-laporan') }}?permohonanId={{ $permohonan->id }}&documentId={{ $documentId }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $jenisJaminanId }}&statusLpj={{ true }}">
|
||||||
Lihat Laporan
|
Lihat Laporan
|
||||||
</a>
|
</a>
|
||||||
@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>
|
||||||
|
<button class="btn btn-warning" onclick="revisiLaporan({{ $permohonan->id }})">
|
||||||
|
<i class="ki-filled ki-arrow-circle-right"></i> Revisi
|
||||||
|
</button>
|
||||||
|
@endif
|
||||||
|
|
||||||
@if ($dataHeader == 'paparan')
|
@if (Auth::user()->hasAnyRole(['administrator', 'EO Appraisal']) &&
|
||||||
|
$permohonan->approval_so &&
|
||||||
|
$permohonan->approval_eo == null)
|
||||||
|
<button onclick="otorisatorData({{ $permohonan->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']) &&
|
||||||
|
$permohonan->approval_eo &&
|
||||||
|
$permohonan->approval_dd == null &&
|
||||||
|
in_array($permohonan->nilai_plafond_id, [1, 4]))
|
||||||
|
<button onclick="otorisatorData({{ $permohonan->id }})" type="button" class="btn btn-primary">
|
||||||
|
<i class="ki-filled ki-double-check"></i>
|
||||||
|
Otorisator {{ $header ?? '' }}
|
||||||
|
</button>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@elseif($dataHeader == 'paparan')
|
||||||
<a class="btn btn-success"
|
<a class="btn btn-success"
|
||||||
href="{{ route('penilai.paparan') }}?permohonanId={{ $permohonan->id }}&documentId={{ $documentId }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $jenisJaminanId }}&statusLpj={{ true }}">
|
href="{{ route('penilai.paparan') }}?permohonanId={{ $permohonan->id }}&documentId={{ $documentId }}&inspeksiId={{ $inspeksiId }}&jaminanId={{ $jenisJaminanId }}&statusLpj={{ true }}">
|
||||||
Lihat Data Paparan
|
Lihat Data Paparan
|
||||||
@@ -142,37 +169,23 @@
|
|||||||
Otorisator {{ $header ?? '' }}
|
Otorisator {{ $header ?? '' }}
|
||||||
</button>
|
</button>
|
||||||
@endif
|
@endif
|
||||||
@endif
|
|
||||||
|
|
||||||
@if (Auth::user()->hasAnyRole(['administrator', 'senior-officer']) && $permohonan->approval_so == null)
|
@if(Auth::user()->hasAnyRole(['administrator','senior-officer']) && $authorization->approve_so==null)
|
||||||
<button onclick="otorisatorData({{ $permohonan->id }})" type="button" class="btn btn-primary">
|
<button onclick="otorisatorData({{ $authorization->id }})" type="button" class="btn btn-primary">
|
||||||
<i class="ki-filled ki-double-check"></i>
|
<i class="ki-filled ki-double-check"></i>
|
||||||
Otorisator {{ $header ?? '' }}
|
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>
|
</button>
|
||||||
@endif
|
@endif
|
||||||
@endif
|
|
||||||
|
|
||||||
@if (Auth::user()->hasAnyRole(['administrator', 'EO Appraisal']) &&
|
@if (Auth::user()->hasAnyRole(['administrator', 'DD Appraisal']) &&
|
||||||
$permohonan->approval_so &&
|
$authorization->approve_so &&
|
||||||
$permohonan->approval_eo == null)
|
$authorization->approval_dd == null &&
|
||||||
<button onclick="otorisatorData({{ $permohonan->id }})" type="button" class="btn btn-primary">
|
in_array($permohonan->nilai_plafond_id, [1, 4]))
|
||||||
<i class="ki-filled ki-double-check"></i>
|
<button onclick="otorisatorData({{ $authorization->id }},'DD')" type="button" class="btn btn-primary">
|
||||||
Otorisator {{ $header ?? '' }}
|
<i class="ki-filled ki-double-check"></i>
|
||||||
</button>
|
Otorisator {{ $header ?? '' }}
|
||||||
@endif
|
</button>
|
||||||
|
@endif
|
||||||
@if (Auth::user()->hasAnyRole(['administrator', 'DD Appraisal']) &&
|
|
||||||
$permohonan->approval_eo &&
|
|
||||||
$permohonan->approval_dd == null &&
|
|
||||||
in_array($permohonan->nilai_plafond_id, [1, 4]))
|
|
||||||
<button onclick="otorisatorData({{ $permohonan->id }})" type="button" class="btn btn-primary">
|
|
||||||
<i class="ki-filled ki-double-check"></i>
|
|
||||||
Otorisator {{ $header ?? '' }}
|
|
||||||
</button>
|
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -181,53 +194,162 @@
|
|||||||
|
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
<script>
|
<script>
|
||||||
function otorisatorData(dataId) {
|
function otorisatorData(dataId, role='') {
|
||||||
const dataHeader = @json($header);
|
const dataHeader = @json($header);
|
||||||
Swal.fire({
|
if(dataHeader == 'Paparan'){
|
||||||
title: 'Apakah Anda yakin?',
|
if(role == 'DD'){
|
||||||
text: `Untuk melakukan otorisator ${dataHeader}!`,
|
Swal.fire({
|
||||||
icon: 'warning',
|
title: 'Apakah Anda yakin?',
|
||||||
input: 'textarea',
|
text: `Untuk melakukan otorisator ${dataHeader}!`,
|
||||||
inputLabel: 'Keterangan',
|
icon: 'warning',
|
||||||
inputPlaceholder: 'Masukkan keterangan...',
|
html: `
|
||||||
inputAttributes: {
|
<input id="swal-keterangan" class="swal2-input input" placeholder="Keterangan">
|
||||||
'aria-label': 'Masukkan keterangan'
|
<input id="swal-tanggal-paparan" class="swal2-input input" type="date" placeholder="Tanggal paparan">
|
||||||
},
|
`,
|
||||||
showCancelButton: true,
|
focusConfirm: false,
|
||||||
confirmButtonColor: '#3085d6',
|
preConfirm: () => {
|
||||||
cancelButtonColor: '#d33',
|
const keterangan = document.getElementById('swal-keterangan').value;
|
||||||
confirmButtonText: 'Ya, Lanjutkan!',
|
const tanggalPaparan = document.getElementById('swal-tanggal-paparan').value;
|
||||||
cancelButtonText: 'Batal',
|
|
||||||
}).then((result) => {
|
if (!keterangan || !tanggalPaparan) {
|
||||||
if (result.isConfirmed) {
|
Swal.showValidationMessage('Keterangan atau Tanggal Paparan Harus diisi!');
|
||||||
const userMessage = result.value || ''; // Ambil pesan dari textarea
|
return false;
|
||||||
$.ajaxSetup({
|
}
|
||||||
headers: {
|
|
||||||
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
return { keterangan, tanggalPaparan };
|
||||||
},
|
},
|
||||||
});
|
showCancelButton: true,
|
||||||
$.ajax({
|
confirmButtonColor: '#3085d6',
|
||||||
url: `/otorisator/otorisator/${dataId}/${dataHeader}`,
|
cancelButtonColor: '#d33',
|
||||||
type: 'POST',
|
confirmButtonText: 'Ya, Lanjutkan!',
|
||||||
data: {
|
cancelButtonText: 'Batal',
|
||||||
message: userMessage
|
}).then((result) => {
|
||||||
},
|
if (result.isConfirmed) {
|
||||||
success: (response) => {
|
const keterangan = result.value.keterangan || '';
|
||||||
Swal.fire('Berhasil!',
|
const tanggalPaparan = result.value.tanggalPaparan || '';
|
||||||
'Data berhasil diotorisasi. Menunggu Approval EO dan atau DD',
|
|
||||||
'success').then(() => {
|
$.ajaxSetup({
|
||||||
window.location.reload();
|
headers: {
|
||||||
|
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
||||||
|
},
|
||||||
});
|
});
|
||||||
console.log(response);
|
$.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'
|
||||||
},
|
},
|
||||||
error: (error) => {
|
showCancelButton: true,
|
||||||
console.error('Error:', error);
|
confirmButtonColor: '#3085d6',
|
||||||
Swal.fire('Gagal!', 'Terjadi kesalahan saat melakukan otorisator.',
|
cancelButtonColor: '#d33',
|
||||||
'error');
|
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}!`,
|
||||||
|
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 EO dan atau DD',
|
||||||
|
'success').then(() => {
|
||||||
|
window.location.reload();
|
||||||
|
});
|
||||||
|
console.log(response);
|
||||||
|
},
|
||||||
|
error: (error) => {
|
||||||
|
console.error('Error:', error);
|
||||||
|
Swal.fire('Gagal!', 'Terjadi kesalahan saat melakukan otorisator.',
|
||||||
|
'error');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user