function approveOrder(e) { const data = $(e).data(); const form = document.getElementById('formActionOrder'); const img = document.getElementById('imageConfirmActionOrder'); $("#confirmActionOrder").text('Konfirmasi Pembayaran '+ data.nama_pemesan + ' / ' + data.no_order) containerCancel.classList.add('d-none'); // Set gambar bukti bayar if (data.bukti_bayar) { img.src = `/storage/${data.bukti_bayar}`; img.classList.remove('d-none'); } else { img.classList.add('d-none'); img.src = ''; $("#tidak_ada_bukti_pembayaran").text('Pembayaran Menggunakan Billing') } // Set action form form.setAttribute('action', `/dashboard/pending/action/${data.order_id}?action=Lunas`); // Tampilkan modal new bootstrap.Modal(modalActionOrder).show(); } document.getElementById('formActionOrder').addEventListener('submit', function (e) { e.preventDefault(); const form = this; const actionUrl = form.getAttribute('action'); const formData = new FormData(form); fetch(actionUrl, { method: 'POST', headers: { 'X-CSRF-TOKEN': document.querySelector('input[name="_token"]').value, }, body: formData }).then(async (res) => { const data = await res.json(); if (res.status) { const handler = function () { Swal.fire({ icon: 'success', title: 'Berhasil', text: data.message || 'Status berhasil diubah!', timer: 2000, showConfirmButton: false, backdrop: true, }); getReminderKonfirmasiPesanan() getReminderVerifikasiMakanan() getReminderVerifikasiMakananOffCanvas() datatablePending.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.', }); }); }); function rejectOrder(e){ document.getElementById('imageConfirmActionOrder').classList.add('d-none') containerCancel.classList.remove('d-none'); const data = $(e).data(); new bootstrap.Modal(modalActionOrder).show(); $("#confirmActionOrder").text('Batalkan Pembayaran '+ data.nama_pemesan + ' / ' + data.no_order) formActionOrder.attr('action', `/dashboard/pending/action/${data.order_id}`); $("#textarea_note_dibatalkan").val('') } noteCancelTextArea.addEventListener('input', function () { this.style.height = 'auto'; // Reset height dulu this.style.height = this.scrollHeight + 'px'; // Set height sesuai isi }); function AdminApproved(e){ const data = $(e).data() new bootstrap.Modal(modalActionApproveBillingnOrder).show(); if(data.billing === "true"){ $("#billingOrder").removeClass('d-none') }else{ $("#billingOrder").addClass('d-none') } $("#confirmActionApproveBillingOrder").text('Pembayaran Via' + data.billing === "true" ? ' Billing ' : ' MCU '+ data.nama_pemesan + ' / ' + data.no_order) formActionApproveBillingOrder.attr(`action`, `/dashboard/pending/action-billing/${data.order_id}`) } document.getElementById('formActionApproveBillingOrder').addEventListener('submit', function (e) { e.preventDefault(); const form = this; const actionUrl = form.getAttribute('action'); const formData = new FormData(form); fetch(actionUrl, { method: 'POST', headers: { 'X-CSRF-TOKEN': document.querySelector('input[name="_token"]').value, }, body: formData }).then(async (res) => { const data = await res.json(); if (res.status) { const handler = function () { Swal.fire({ icon: 'success', title: 'Berhasil', text: data.message || 'Status berhasil diubah!', timer: 2000, showConfirmButton: false, backdrop: true, }); getReminderKonfirmasiPesanan() getReminderVerifikasiMakanan() getReminderVerifikasiMakananOffCanvas() datatablePending.bootstrapTable('refresh'); modalActionApproveBillingnOrder.removeEventListener('hidden.bs.modal', handler); // ✅ pakai DOM }; modalActionApproveBillingnOrder.addEventListener('hidden.bs.modal', handler); // ✅ pakai DOM bootstrap.Modal.getInstance(modalActionApproveBillingnOrder).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 approveProgress(order_id){ new bootstrap.Modal(modalActionProgressOrder).show(); fetchDetailOrder(order_id) } function exportPending(){ new bootstrap.Modal(modalExport).show(); } function datapending(){ new bootstrap.Modal(modalDataPending).show(); datatableDataPending.bootstrapTable('destroy') datatableDataPending.bootstrapTable({ url: "/dashboard/data/pending", 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, }, ], }); }