168 lines
7.6 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 = '';
console.log(data);
html += `
<div class="col-md-12 mb-3">
<div class="card shadow-sm border-0">
<div class="row g-0">
<div class="${data?.order?.jenis_customer === "MCU" ? 'd-none' : 'col-md-5 d-flex align-items-center p-2'} ">
<img src="/gambar/${data?.menu?.foto || data?.master_mcu?.foto}" alt="Foto Menu" class="img-fluid rounded shadow m-auto" style="max-height: 320px; width: auto;">
</div>
<div class="${data?.order?.jenis_customer === "MCU" ? 'col-md-12' : 'col-md-7 p-1'}">
<p class="mb-1">Nama Menu: <strong>${data?.menu?.nama_menu || data?.master_mcu?.nama_mcu}</strong></p>
<p class="mb-1">Tanggal Antar: <span>${data?.tgl_antar || 0}</span></p>
${data?.total_kalori ? `
<p class="mb-1">Total Kalori: <span>${data?.total_kalori} kal</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>
${data?.order?.jenis_customer !== "MCU" ? `
<p class="mb-1">Catatan: <strong>${data?.catatan || '-'}</strong></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">No.HP / WA: <strong>${data?.order?.no_wa || '-'}</strong></p>
<p class="mb-1">Email: <strong>${data?.order?.email || '-'}</strong></p>
<p class="mb-1">Tinggi Badan / Berat Badan: <strong>${data?.order?.tinggi_badan || '-'} / ${data?.order?.berat_badan || '-'}</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">NIP : <strong>${data?.order?.nip || '-'}</strong></p>
` : data?.order?.jenis_customer === "Keluarga Pasien / Penunggu Pasien" ? `
<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 ? '' : ` (${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
getReminderVerifikasiMakanan()
};
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.',
});
});
});
function exportPekerjaan(){
new bootstrap.Modal(modalExport).show()
}
function datapending(){
new bootstrap.Modal(modalInfoPending).show()
datatablePekerjaanPending.bootstrapTable('destroy')
datatablePekerjaanPending.bootstrapTable({
url: "/dashboard/data/pending-pekerjaan",
showColumns: true,
showColumnsToggleAll: true,
showRefresh: true,
sortable: true,
search: true,
searchOnEnterKey: false,
searchHighlight: true,
pagination: true,
serverSide:true,
pageSize: 10,
pageList: [10, 20, 30, 40, 50, 100, 200],
cookie: true,
cookieIdTable: "datatablePesananPending",
icons: {
refresh: "fas fa-sync-alt", // atau ganti ke icon lain
columns: "fas fa-th-large"
},
columns: [
{
title: "Tanggal",
field: 'tgl',
sortable: true,
},
{
title: "Total",
formatter: function(value, row){
return row?.total
},
sortable: true,
},
],
});
}