168 lines
7.6 KiB
JavaScript
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,
|
|
},
|
|
],
|
|
});
|
|
}
|