2025-07-31 15:42:12 +07:00

109 lines
5.4 KiB
JavaScript

function detailOrder(id){
new bootstrap.Modal(modalDetailOrder).show();
fetch(`/dashboard/pekerjaan/detail/${id}`)
.then(res => res.json())
.then(res => {
const data = res.data;
document.getElementById('pesanan_container').innerHTML = '';
document.getElementById('confirm_nama_pesanan').textContent = data?.order?.nama_pemesan;
let html = '';
html += `
<div class="col-md-12 mb-3">
<div class="card shadow-sm border-0">
<div class="row g-0">
<div class="col-md-5 d-flex align-items-center p-2">
<img src="/gambar/${data?.menu?.foto || data?.paket_menu?.foto}" alt="Foto Menu" class="img-fluid rounded shadow m-auto" style="max-height: 220px; width: auto;">
</div>
<div class="col-md-7 p-1">
<p class="mb-1">Nama Menu: <strong>${data?.menu?.nama_menu || data?.paket_menu?.nama_menu}</strong></p>
<p class="mb-1">Tanggal Antar: <span>${data?.tgl_antar || 0}</span></p>
<p class="mb-1">Jumlah: <span>${data?.jumlah || 0}</span></p>
<p class="mb-1">Harga Satuan: <strong>Rp ${parseInt(data?.harga_satuan || 0).toLocaleString('id-ID')}</strong></p>
<p class="mb-1">Status Pesanan:
<span class="badge text-dark ${data?.status_order === 'Selesai' ? 'bg-success' : 'bg-warning'}">
${data?.status_order}
</span>
</p>
<hr class="my-2">
<p class="mb-1">Pemesan: <strong>${data?.order?.nama_pemesan || '-'}</strong></p>
<p class="mb-1">Jenis Kelamin: <strong>${data?.order?.jenis_kelamin || '-'}</strong></p>
<p class="mb-1">Jenis Customer: <strong>${data?.order?.jenis_customer || '-'}</strong></p>
${data?.order?.jenis_customer === "Masyarakat Umum" ?
`<p class="mb-1">Alamat: <strong>${data?.order?.alamat || '-'}</strong></p>
` : data?.order?.jenis_customer === "Karyawan RSAB Harapan Kita" ? `
<p class="mb-1">Bagian /Instalasi: <strong>${data?.order?.bagian_instalasi || '-'}</strong></p>
<p class="mb-1">No Ekstensien: <strong>${data?.order?.no_ekstensien || '-'}</strong></p>
` :`
<p class="mb-1">Nama Pasien: <strong>${data?.order?.nama_pasien || '-'}</strong></p>
<p class="mb-1">Ruang Perawatan: <strong>${data?.order?.ruang_perawatan || '-'}</strong></p>
<p class="mb-1">Nomor Kamar Perawatan: <strong>${data?.order?.no_kamar_perawatan || '-'}</strong></p>
<p class="mb-1">Kelas Perawatan: <strong>${data?.order?.kelas_perawatan || '-'}</strong></p>
`
}
</div>
</div>
</div>
</div>
</div>
`
document.getElementById('pesanan_container').innerHTML = html;
})
.catch(error => {
console.error(error);
})
}
function approve(e){
const data = $(e).data();
new bootstrap.Modal(modalActionOrder).show();
$("#confirmActionApproveOrder").text(data?.menu + ' (' + data?.type +')')
$("#confirmNoOrder").text(data?.no_order + ' (' + data?.nama_pemesan +')')
document.getElementById('formActionApproveOrder').setAttribute(`action`, `/dashboard/pending/update-detail-status/${data.id}`)
}
document.getElementById('formActionApproveOrder').addEventListener('submit', function (e) {
e.preventDefault();
const form = this;
const actionUrl = form.getAttribute('action');
fetch(actionUrl, {
method: 'POST',
headers: {
'X-CSRF-TOKEN': document.querySelector('input[name="_token"]').value,
}
}).then(async (res) => {
const data = await res.json();
if (res.status) {
const handler = function () {
Swal.fire({
icon: 'success',
title: 'Berhasil',
text: 'Pesanan berhasil diselesaikan!',
timer: 2000,
showConfirmButton: false,
backdrop: true,
});
datatablePekerjaan.bootstrapTable('refresh');
modalActionOrder.removeEventListener('hidden.bs.modal', handler); // ✅ pakai DOM
};
modalActionOrder.addEventListener('hidden.bs.modal', handler); // ✅ pakai DOM
bootstrap.Modal.getInstance(modalActionOrder).hide(); // ✅ pakai instance
} else {
throw new Error(data.message || 'Terjadi kesalahan saat mengubah status.');
}
}).catch(err => {
console.error(err);
Swal.fire({
icon: 'error',
title: 'Gagal',
text: err.message || 'Terjadi kesalahan pada server.',
});
});
});