Panduan pengguna

Bab 4 — Sales Order (Penjualan)

4.1 Melihat daftar SO

Menu: Operasi → Penjualan → Daftar SO (/admin/workflow)

KolomArti
ApprovalButuh = menunggu persetujuan (diskon, harga di bawah modal, limit kredit, atau piutang lewat jatuh tempo)
PembayaranUNPAID / DP / PARTIAL / PAID
Progress kirimPersentase qty terkirim
TotalGrand total SO

Tombol (tergantung hak akses):

  • Detail — halaman lengkap SO
  • Setujui — jika punya approve & SO butuh approval
  • Kirim — halaman delivery
  • TTB — penerimaan barang

4.2 Membuat SO baru

  1. Klik Buat Sales Order.
  2. Pilih Entity (EITO / ALBATROSS).
  3. Pilih Customer.
  4. Tambah item: SKU, qty, harga, diskon per baris.
  5. Isi diskon order (%) jika ada.
  6. Isi jatuh tempo / catatan bila perlu.
  7. Ongkos Kirim (opsional) — biaya pengiriman level SO; untuk pengiriman bertahap, ongkir juga bisa diisi per DO saat buat delivery (lihat §4.4). Total ongkir SO = jumlah ongkir semua DO.
  8. Simpan.

Catatan SO otomatis tercetak di TTB dan Invoice (bagian Catatan Sales Order).

Validasi penting:

  • Stok dicek saat simpan; jika tidak cukup SO tetap bisa dibuat → status Pending Fulfillment + catatan pengadaan.
  • Isi Procurement (hari) per item untuk estimasi lead time belanja ulang.
  • Modal beli per PO (dari PO diterima, sesuai entity).
  • COGS PO terakhir dipakai untuk alert harga di bawah modal.
  • Diskon order di atas limit diskon % user → Butuh approval.
  • Diskon baris membuat harga di bawah modal → Butuh approval.
  • Limit kredit customer terlampaui (proyeksi piutang + SO baru) → Butuh approval, status SO tetap DRAFT.
  • Ada SO belum lunas melewati jatuh tempo pada customer yang sama → Butuh approval (termin terlampaui).
  • Klaim asuransi (isInsuranceClaim) → diskon & kredit auto-approved (tanpa antrian persetujuan).

SO dengan status pembayaran PAID atau sisa 0 tidak boleh masuk tagihan gabungan (TAG) baru.

4.3 Persetujuan SO

Menu: Operasi → Persetujuan SO (/admin/workflow/approvals)

Hanya tampil jika role punya Setujui (approve) pada modul Sales Order.

  1. Lihat antrian SO needsApproval (badge di menu).
  2. Periksa alasan: diskon vs limit sales, harga baris vs modal/COGS, limit kredit, piutang jatuh tempo.
  3. Setujui atau Tolak.

SO yang butuh approval disimpan dengan status DRAFT sampai disetujui. Setelah disetujui, SO dapat diproses (kirim, invoice, dll.) sesuai status stok.

4.4 Delivery Order (pengiriman)

Dari detail SO → Delivery / tombol Kirim

  1. Pilih item & qty (bisa partial).
  2. Isi Alamat Pengiriman:
    • Dropdown — pilih alamat tersimpan customer (label + alamat lengkap tampil di daftar; centang di sisi kiri opsi terpilih). Bisa cari label atau teks alamat.
    • Manual — pilih Alamat lain (manual) atau ubah teks di textarea; alamat tercetak di TTB.
    • Alamat baru bisa disimpan ke master customer dari form ini (opsional).
    • Kelola/edit alamat tersimpan di Master → Customers (bagian Alamat Customer).
  3. Isi Ongkos kirim untuk DO ini (opsional). Setiap DO bisa punya ongkir berbeda; total ongkir SO otomatis dijumlahkan dari semua DO.
  4. Simpan DO → langsung lanjut ke halaman TTB (tanpa kembali ke detail SO).

Stok available berkurang saat DO dibuat.

Catatan ongkir:

  • DO pertama bisa mewarisi ongkir yang sudah diisi di form SO (jika ada).
  • DO berikutnya: isi ongkir sendiri-sendiri (mis. DO-1 Rp 50.000, DO-2 Rp 100.000).
  • Ongkir per DO muncul di badge Pengiriman di detail SO dan ditagihkan di invoice TTB yang terkait DO tersebut.

Dashboard Pengiriman (/admin/delivery-dashboard): prioritas DO yang belum TTB (urgency, due date).

4.5 TTB (Goods Receipt)

Saat customer menerima barang:

  1. Setelah buat DO, sistem membuka halaman Buat TTB otomatis (atau dari detail SO → DO → TTB).
  2. Konfirmasi qty diterima.
  3. Simpan TTB.

Setelah TTB tersimpan, di halaman yang sama tersedia Preview TTB, Cetak, dan Download PDF — tidak perlu kembali ke detail SO dulu.

Preview & PDF TTB juga tersedia dari detail SO / DO. TTB menampilkan catatan SO dan alamat pengiriman DO.

4.6 Detail SO — ringkasan harga & catatan

Di halaman Detail SO (/admin/workflow/[id]), kartu ringkasan menampilkan:

BarisKeterangan
Total BarangSubtotal item setelah diskon baris
Diskon orderJika ada diskon % level SO
Ongkos Kirim (semua DO)Jumlah ongkir dari seluruh DO
Total Barang + OngkirSebelum PPN
PPNHanya entity EITO
Total TagihanGrand total SO

Catatan SO dapat diedit langsung di halaman ini (tombol Simpan Catatan) tanpa membuka form edit SO. Catatan tercetak di TTB dan invoice.

Di bagian Pengiriman (DO & TTB), setiap DO menampilkan badge Ongkir, status TTB, dan badge Invoice (jika sudah terbit) — klik nomor invoice untuk preview/cetak invoice TTB tersebut.

4.7 Invoice

Tipe customerAturan umum
UmumSatu invoice per TTB (invoice parsial). Ongkos kirim mengikuti DO/TTB yang ditagihkan — bukan sekali di invoice pertama. Preview/cetak per badge invoice di bagian Pengiriman, atau lewat TAG
AsuransiSatu invoice per SO (penuh) setelah syarat terpenuhi; cetak setelah ada pembayaran (DP/cicilan)

Invoice menampilkan catatan SO, NPWP customer (jika diisi di master), dan baris Ongkos Kirim sesuai DO yang ditagihkan.

Entity EITO → invoice include PPN 11%. Kolom DPP pada invoice (preview/PDF) ditampilkan bulat ke atas tanpa desimal (pembulatan tampilan).

Nomor invoice: INV-YYYY-MM-### (urut per bulan).

Invoice bisa dibuat:

  • otomatis saat TTB tersimpan (customer umum),
  • manual per SO di workflow (asuransi / satu invoice penuh),
  • atau massal dari dialog TAG (lihat Bab 7) — untuk customer umum, sistem menerbitkan invoice per TTB yang belum punya invoice.

4.8 Pembayaran customer (per SO)

Dari detail SOCatat Pembayaran (modul payments, biasanya Finance):

JenisKeterangan
DPUang muka
Cicilan / TerminBertahap
PelunasanMelunasi sisa
RefundDari retur SO (mengurangi paid)

Isi metode (Transfer, Cash, EDC, COD), jumlah, bukti transfer (opsional).

DP & limit kredit divalidasi terhadap sisa limit customer.

Jika SO lunas di sini, SO otomatis tidak ikut TAG baru; TAG aktif diselaraskan sistem (reconcile).

4.9 Customer asuransi

  • Pelunasan sering setelah semua DO + TTB selesai.
  • Laporan piutang: badge Siap ditagih jika siap ditagihkan.

4.10 Retur Sales Order

Menu: Operasi → Penjualan → Retur SO

LangkahKeterangan
1. Buat ReturPilih SO, qty per item (maks = terkirim − sudah retur)
2. DraftNomor SOR-YYYY-MM-###
3. KonfirmasiStok kembali (opsional), nilai retur, refund opsional
  • Hanya qty yang sudah terkirim lewat DO.
  • Satu SO boleh banyak dokumen retur.
  • Tombol Buat Retur di detail SO jika masih ada qty returnable.

4.11 Lacak pengadaan (procurement)

Digunakan saat SO berstatus DRAFT (butuh approval), Pending Fulfillment, atau Confirmed — stok tidak cukup saat SO dibuat atau pengadaan masih berjalan. Sistem menghubungkan PO pembelian ke SO penjualan agar tim purchase dan gudang bisa melacak progress tanpa cek manual.

Board Pengadaan

Menu: Operasi → Penjualan → Board Pengadaan (/admin/procurement)

Atau tombol Board Pengadaan di halaman Daftar SO.

Board menampilkan SO PENDING_FULFILLMENT dan SO DRAFT yang masih kekurangan stok dalam 3 kolom:

KolomArti
Menunggu POBelum ada PO terkait, atau PO masih Draft / sudah diterima penuh tetapi stok belum cukup
PO In TransitAda PO terkait berstatus Dikirim (SENT) atau Diterima sebagian — barang dalam perjalanan / belum masuk semua
Siap KirimStok fisik sudah cukup untuk memenuhi sisa qty semua item SO

Setiap kartu menampilkan customer, progress kirim, target procurement, item yang masih kurang, dan daftar PO terkait (jika ada). Klik nomor SO membuka detail; klik nomor PO membuka detail PO.

Detail SO — panel & badge

Di Detail SO (/admin/workflow/[id]) untuk SO pending fulfillment:

Elemen UIKeterangan
Badge Siap Kirim (hijau)Stok cukup untuk kirim sisa order
Badge Menunggu PO / PO In TransitTahap pengadaan saat stok belum cukup
Kartu Alert Pengadaan StokBatas waktu procurement & daftar kekurangan per SKU
Panel Purchase Order TerkaitTabel PO yang dikaitkan ke SO ini
Tombol Buat PO PengadaanMuncul jika stok kurang & belum ada PO terkait (termasuk SO DRAFT yang butuh pengadaan); role perlu create pada Purchase Order
Label PO pengadaan terbitMuncul menggantikan tombol buat PO — berisi link nomor PO yang sudah ada
Kartu Pengadaan Selesai — Siap DOMuncul setelah PO diterima & stok cukup; tombol Buat Delivery Order
Kartu Menunggu Penerimaan Barang POPO sudah terbit (SENT) tetapi barang belum diterima di gudang

Alur pengadaan (disarankan)

SO Pending Fulfillment
    → Detail SO → Buat PO Pengadaan
    → Form PO terisi otomatis (entity, item & qty kekurangan stok)
    → Simpan PO (terhubung ke SO) → Kirim ke vendor
    → Terima barang (stok naik)
    → Badge "Siap Kirim" muncul di SO
    → Buat Delivery Order

Catatan:

  • Satu SO boleh punya lebih dari satu PO (misalnya belanja bertahap atau vendor berbeda).
  • PO yang dibuat manual tanpa tombol dari SO tidak otomatis terhubung — gunakan tombol Buat PO Pengadaan agar lacak di board & panel SO.
  • Setelah PO Diterima, cek board / badge — jika masih Menunggu PO, kekurangan stok mungkin belum tertutup (qty PO kurang atau item lain masih short).

Lihat juga Bab 5 — PO dari SO.

4.12 Pembatalan Sales Order

RolePerilaku
SuperadminBatalkan langsung dari detail SO (status → CANCELLED)
Role lainAjukan pembatalan + alasan → menunggu Superadmin
  • Tombol Batalkan SO di detail SO (kecuali sudah dibatalkan / invoiced / sedang menunggu persetujuan).
  • Badge Menunggu Persetujuan Batal jika permintaan aktif.
  • Superadmin menyetujui/menolak di Operasi → Persetujuan SO → bagian Persetujuan Pembatalan SO / PO.
  • Stok yang masih direservasi SO (bukan Pending Fulfillment) dilepas otomatis saat pembatalan disetujui.