perbaikan team activity di so

This commit is contained in:
majid
2025-01-15 07:27:33 +07:00
parent 144a31a960
commit f8bd3836db
6 changed files with 241 additions and 73 deletions

View File

@@ -102,6 +102,7 @@
<th class="min-w-[100px]">Tujuan Penilaian</th>
<th class="min-w-[100px]">Status Bayar</th>
<th class="min-w-[100px]">Jenis Asset</th>
<th class="min-w-[100px]">Penugasan</th>
<th class="min-w-[100px]">Jenis Report</th>
<th class="min-w-[100px]">Tgl Register</th>
<th class="min-w-[100px]">Tgl Assign</th>
@@ -182,9 +183,11 @@
status_bayar: {
title: 'Status Bayar',
render: (item, data) => {
const status = data.permohonan.status_bayar.replace(/_/g,
const status = data.permohonan.status_bayar.replace(
/_/g,
' ');
const statusClass = data.permohonan.status_bayar === 'belum_bayar' ? 'text-red-600' :
const statusClass = data.permohonan.status_bayar ===
'belum_bayar' ? 'text-red-600' :
'text-green-600';
return `<span class="badge badge-sm badge-default font-bold ${statusClass} uppercase">
${status}
@@ -196,6 +199,15 @@
render: (item, data) =>
`${data.permohonan.debiture?.documents?.map(d => d.jenis_jaminan.name) || ''}`,
},
penugasan: {
title: 'Penugasan',
render: (item, data) => {
const roles = data.user_penilai?.map(d => d.role).join(
'<br>') || '-';
return roles;
},
},
jenis_report: {
title: 'Jenis Report',
render: (item, data) => {
@@ -228,16 +240,21 @@
due_date: {
title: 'Due Date',
render: (item, data) => {
const jenis_asset = data.permohonan.debiture?.documents
?.map(d => d.jenis_jaminan.name);
return `${calculateDateSLA(jenis_asset, data.tanggal_kunjungan)}`;
},
if (!data.due_date_sla) {
return `<span class="badge badge-sm badge-danger uppercase flex justify-center">Sudah melewati batas</span>`;
}
return `${window.formatTanggalIndonesia(data.due_date_sla)}`;
}
},
paparan: {
title: 'Paparan',
render: (item, data) => `${data.paparan || ''}`,
render: (item, data) => {
if (!data.due_date_sla) {
return `<span class="badge badge-sm badge-danger uppercase flex justify-center">Sudah melewati batas</span>`;
}
return `${window.formatTanggalIndonesia(data.due_date_sla)}`;
}
},
approve: {
title: 'Approve',
@@ -262,8 +279,8 @@
actions: {
title: 'Action',
render: (item, data) => `
<a class="btn btn-sm btn-icon btn-clear btn-primary" data-modal-toggle="#modal_jadwal" onclick="jadwal(${data.user_penilai[0].penilaian_id})">
<i class="ki-filled ki-calendar-edit"></i>
<a class="btn btn-sm btn-icon btn-clear btn-primary" onclick="updateTeam(${data.user_penilai[0].penilaian_id}, ${data.permohonan.id}, ${data.user_penilai[0].user_id})" title="Ganti Team">
<i class="ki-filled ki-user-edit"></i>
</a>`,
},
},
@@ -293,47 +310,69 @@
return $jenis, $date;
}
</script>
<script type="text/javascript">
function updateTeam(penilaaniId, permohonanId, userId) {
Swal.fire({
title: 'Pilih Tim',
input: 'select',
inputOptions: {
@foreach ($teamsActivity as $item)
{{ $item->user->id }}: '{{ $item->user->name }}',
@endforeach
},
inputPlaceholder: 'Pilih anggota tim',
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Ya',
cancelButtonText: 'Batal',
}).then((result) => {
if (result.isConfirmed) {
if (!result.value) {
// Tampilkan pesan error jika tidak ada pilihan
Swal.fire('Error!', 'Anda harus memilih anggota tim sebelum melanjutkan.', 'error');
return;
}
// Define variables
let token = "{{ csrf_token() }}";
let useURL = "{{ URL::to('/activity/update-team') }}";
// Prepare input data
let input_data = {
_token: token,
id: penilaaniId,
team_member_id: result.value,
permohonan_id: permohonanId,
user_id: userId,
};
// AJAX request
$.ajax({
url: useURL,
type: "PUT",
cache: false,
data: input_data,
dataType: "json",
success: function(response) {
if (response.status === 'success') {
Swal.fire('Sukses!', response.message, 'success').then(() => {
location.reload(true);
});
} else {
Swal.fire('Error!', response.message, 'error');
}
},
error: function(xhr) {
console.error(xhr);
Swal.fire('Error!', 'Terjadi kesalahan saat memproses permintaan.',
'error');
},
});
}
});
}
</script>
@endpush
<div class="modal" data-modal="true" id="modal_jadwal">
<div class="modal-content max-w-[600px] top-[10%]">
<div class="modal-header">
<h3 class="modal-title">Pilih</h3>
<button class="btn btn-xs btn-icon btn-light" data-modal-dismiss="true">
<i class="ki-outline ki-cross"></i>
</button>
</div>
<div class="modal-body">
<form action="{{ route('activity.update-team') }}" method="POST" enctype="multipart/form-data"
id="revisiForm">
@method('put')
@csrf
<input id="ids" type="hidden" name="id">
<div class="pl-1 grid gap-2.5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">Pilih Team</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<select id="surveyor_id" name="surveyor_id" class="input tomselect">
<option value="">Pilih Team</option>
@foreach ($teamsActivity as $item)
<option value="{{ $item->user->id }}">{{ $item->user->name }}</option>
@endforeach
</select>
</div>
</div>
<em id="error-surveyor_id" class="alert text-danger text-sm"></em>
</div>
</div>
<div class="modal-footer justify-end mt-2">
<div class="flex gap-4">
<button type="button" class="btn btn-light" data-modal-dismiss="true">Cancel</button>
<button id="btnSubmit" type="submit" class="btn btn-primary">Submit</button>
</div>
</div>
</form>
</div>
</div>
</div>

View File

@@ -278,7 +278,7 @@
</div>
</div>
@include('lpj::penilai.components.foto-lampiran')
{{-- @include('lpj::penilai.components.foto-lampiran') --}}
<div class="flex card-footer justify-end gap-5">
<a class="btn btn-success" onclick="saveMemo()">

View File

@@ -352,8 +352,6 @@
</a>
@endif
</div>
@include('lpj::penilai.components.foto-lampiran')
</div>
</form>