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