update di penjualan invoice

This commit is contained in:
Wian Drs
2026-09-12 01:45:03 +07:00
parent e43bda8d6b
commit ec94783db4
22 changed files with 776 additions and 44 deletions
+24 -12
View File
@@ -111,13 +111,17 @@
}
function invoiceButtons(row) {
var p = cfg.permissions || {},
html =
'<div class="invoice-table-actions"><a class="btn btn-sm btn-outline-primary" href="' +
isDraft = row.workflow_status === "draft",
isPaid = row.status === "paid",
html = '<div class="invoice-table-actions">';
if (!isPaid && (!isDraft || !p.update))
html +=
'<a class="btn btn-sm btn-outline-primary" href="' +
cfg.base +
"invoices/detail/" +
row.id +
'"><i class="bi bi-eye"></i> Detail</a>';
if (row.workflow_status === "draft" && p.update)
if (!isPaid && isDraft && p.update)
html +=
'<a class="btn btn-sm btn-outline-success" href="' +
cfg.base +
@@ -125,7 +129,8 @@
row.id +
'"><i class="bi bi-pencil"></i> Kelola</a>';
if (
row.workflow_status === "draft" &&
!isPaid &&
isDraft &&
Number(row.pending_delivery_count || 0) > 0 &&
p.update
)
@@ -142,12 +147,12 @@
"invoices/pdf/" +
row.id +
'"><i class="bi bi-file-pdf"></i></button>';
if (row.workflow_status === "draft" && p.submit)
if (!isPaid && isDraft && p.submit)
html +=
'<button class="btn btn-sm btn-primary row-submit" data-id="' +
row.id +
'">Ajukan</button>';
if (row.workflow_status === "submitted" && p.approve)
if (!isPaid && row.workflow_status === "submitted" && p.approve)
html +=
'<button class="btn btn-sm btn-success row-approve" data-id="' +
row.id +
@@ -155,6 +160,7 @@
row.id +
'">Tolak</button>';
if (
!isPaid &&
row.workflow_status === "posted" &&
["unpaid", "partial"].indexOf(row.status) >= 0 &&
p.post
@@ -165,7 +171,7 @@
"receivables?invoice_id=" +
row.id +
'">Bayar</a>';
if (row.workflow_status === "draft" && p.delete)
if (!isPaid && isDraft && p.delete)
html +=
'<button class="btn btn-sm btn-outline-danger row-delete" data-id="' +
row.id +
@@ -1066,7 +1072,7 @@
workflow(
"submit",
"Ajukan invoice?",
"Pastikan seluruh Surat Jalan barang sudah diposting.",
"Pastikan data item sudah benar. Surat Jalan bersifat opsional dan tidak menghambat pengajuan.",
"Ya, ajukan",
);
});
@@ -1085,7 +1091,7 @@
workflow(
"delete_draft",
"Batalkan Draft invoice?",
"Reservasi barcode akan dilepas. Tindakan ini tidak dapat dibatalkan.",
"Stok/barcode akan tersedia kembali dan jurnal awal akan dibalik otomatis. Tindakan ini tidak dapat dibatalkan.",
"Ya, batalkan",
);
});
@@ -1127,11 +1133,17 @@
icon: "warning",
title: "Tolak invoice?",
input: "textarea",
inputLabel: "Alasan penolakan",
inputValidator: function (v) {
return !String(v || "").trim() ? "Alasan wajib diisi." : undefined;
},
showCancelButton: true,
})
).then(function (r) {
if (!r.isConfirmed) return;
post(cfg.base + "invoices/reject/" + id, { reason: r.value })
var reason = String(r.value || "").trim();
if (!reason) return notify("Alasan penolakan wajib diisi.", "error");
post(cfg.base + "invoices/reject/" + id, { reason: reason })
.done(function (x) {
if (!x.status) return notify(x.message, "error");
notify(x.message, "success");
@@ -1147,7 +1159,7 @@
$(this).data("id"),
"submit",
"Ajukan invoice?",
"Pastikan data item dan pengiriman sudah lengkap.",
"Pastikan data item sudah benar. Surat Jalan bersifat opsional dan tidak menghambat pengajuan.",
"Ya, ajukan",
false,
);
@@ -1180,7 +1192,7 @@
$(this).data("id"),
"delete_draft",
"Batalkan Draft invoice?",
"Reservasi barcode akan dilepas dan histori pembatalan tetap dicatat.",
"Stok/barcode akan tersedia kembali, jurnal awal dibalik otomatis, dan histori pembatalan tetap dicatat.",
"Ya, batalkan",
false,
);