Skip to main content

Sales Order

Deskripsi Modul

Modul Sales Order (SO) merupakan inti transaksi penjualan pada Toya ERP. Modul ini menghubungkan pelanggan dan proyek dengan anggaran proyek (estimator), item produk, termin pembayaran, alur persetujuan multi-tahap, serta tindak lanjut operasional meliputi invoice, dokumen, produksi (FLK/FRK), realisasi anggaran, dan delivery order.

Nomor SO dihasilkan otomatis saat pembuatan. Record baru dimulai dengan status Draft.

Fitur Modul

FiturDeskripsi
Daftar & PencarianTabel paginasi (20/halaman) dengan pencarian cepat nomor SO.
Filter LanjutanFilter berdasarkan sales, customer, status, dan rentang tanggal transaksi.
Tambah / Edit SOForm multi-section: customer, order, budgeting, produk, termin pembayaran.
Lihat DetailTampilan read-only informasi customer, order, dan produk beserta audit trail.
Tab EstimatorDaftar anggaran proyek yang disalin dari estimator.
Tab InvoicesTermin pembayaran dan daftar invoice terkait.
Tab DocumentsUnggah dan kelola lampiran dokumen.
Tab ProduksiRingkasan dan daftar FLK/FRK terkait.
Tab RealisasiPerbandingan estimasi vs biaya aktual per komponen.
Tab Delivery OrderRingkasan dan daftar DO; pembuatan DO saat In Progress.
Alur PersetujuanApprove Sales → Approve Manager Estimator → Approve Finance → In Progress → Complete.
Tolak (Decline)Menolak SO dengan alasan wajib.
Cetak PDFDokumen sales order format A4 portrait.

Penjelasan Field — Filter Daftar

FieldWajibDeskripsi
Pencarian (number)TidakPencarian berdasarkan nomor SO.
Sales by (sales_id)TidakFilter berdasarkan staff penjualan.
Customer (customer_id)TidakFilter berdasarkan pelanggan.
Status (sales_order_status_id)TidakFilter berdasarkan status SO.
Tanggal Mulai (transaction_date_start)TidakBatas awal rentang tanggal transaksi.
Tanggal Akhir (transaction_date_end)TidakBatas akhir rentang tanggal transaksi.

Daftar Sales Order

Gambar 1. Halaman daftar Sales Order.

Penjelasan Field — Informasi Customer

FieldWajibDeskripsi
Nama Customer (customer_id)YaDipilih melalui modal pencarian customer.
NIK/NPWP (npwp)TidakTerisi otomatis dari data customer (read-only).
Code Customer (code)TidakKode customer (read-only).
Alamat Pajak (tax_address)TidakAlamat NPWP (read-only).
Tipe Customer (customer_type)TidakTipe customer (read-only).
Customer Baru (new_customer)TidakYa/Tidak; default Tidak.
No. Telepon (phone)TidakTelepon customer (read-only).
No PO Customer (po_number)TidakNomor PO dari customer.
Alamat Customer (address)TidakAlamat customer (read-only).

Penjelasan Field — Informasi Order

FieldWajibDeskripsi
Tanggal Transaksi (transaction_date)YaDefault hari ini; read-only.
Nama & Lokasi Proyek (project_name)YaNama dan lokasi proyek.
Kategori Penjualan (sales_category_id)YaReguler atau Project.
Tipe Proyek (project_type_id)YaKP, PS-G, PS-I, PN-G, PN-I, CR.
Penjualan Cabang (sales_branch)YaSurabaya, Jakarta, Banjarmasin.
Nama PIC Penerima (pic_name)YaTerisi otomatis dari customer.
Nama Sales (sales_id)YaStaff penjualan penanggung jawab.
Kontak PIC Penerima (pic_phone)YaNomor kontak PIC.
Alamat Penagihan (billing_address)YaAlamat penagihan.
Alamat Pengiriman (shipping_address)YaAlamat pengiriman.
Payment Category (payment_category_id)YaCash, COD, atau TOP.
Term Of Payment (term_of_payment)ConditionalWajib jika kategori pembayaran = TOP.

Penjelasan Field — Project Budgeting

FieldWajibDeskripsi
Estimator (estimator_id[])YaMinimal 1 estimator; dipilih via modal (hanya estimator locked).
Qty (estimator_qty[])YaPengali jumlah; integer ≥ 1.
Grand Total (estimator_total[])Dihitung otomatis: harga satuan × qty.

Penjelasan Field — Informasi Produk

FieldWajibDeskripsi
Produk (product_id[])YaMinimal 1 produk; dipilih via modal.
Alias (alias[])TidakNama tampilan untuk customer.
Keterangan (description[])TidakDeskripsi produk.
Qty (qty[])YaJumlah; harus > 0.
Harga (price[])YaHarga per unit.
Catatan (note)TidakCatatan umum order.

PPN 11% dihitung otomatis dari subtotal. Grand Total = Subtotal + PPN.

Penjelasan Field — Termin Pembayaran

FieldWajibDeskripsi
Presentase (termin_value[])YaPersentase termin; default baris pertama 100%.
Nama Termin (termin_name[])YaNama termin pembayaran.
Keterangan (termin_description[])TidakDeskripsi termin.

Penjelasan Field — Rincian Harga

FieldWajibDeskripsi
Catatan Harga (price_note)TidakCatatan tambahan terkait harga.

Form Sales Order

Gambar 2. Form tambah/edit Sales Order.

Status Sales Order

StatusDeskripsi
DraftSO baru atau hasil edit; menunggu persetujuan sales.
Approved SalesDisetujui oleh sales penanggung jawab.
Approved Manager EstimatorDisetujui oleh manager estimator.
Approved FinanceDisetujui oleh finance/KAP.
DeclinedDitolak dengan alasan.
In ProgressSO sedang berjalan; produksi dan DO dapat dilakukan.
CompletedSO selesai.

Tab Detail Sales Order

TabDeskripsi
Detail Sales OrderInformasi customer, order, dan produk (default).
EstimatorDaftar anggaran proyek + tautan detail estimator.
InvoicesTermin pembayaran dan daftar invoice.
DocumentsLampiran file dengan kategori Sales/Finance/Production.
ProduksiRingkasan FLK dan FRK terkait.
RealisasiDashboard perbandingan estimasi vs realisasi biaya.
Delivery OrderRingkasan dan daftar delivery order.

Detail Sales Order

Gambar 3. Halaman detail Sales Order dengan header status dan tab navigasi.

Catatan Penting

  • Minimal 1 estimator dan 1 produk wajib ada saat penyimpanan.
  • PPN dihitung 11% dari subtotal produk.
  • Data customer di-snapshot ke SO saat penyimpanan.
  • Estimator di-deep-copy beserta seluruh struktur biaya dengan pengali qty.
  • Edit hanya tersedia pada status Draft dan Declined; penyimpanan edit mengembalikan status ke Draft.
  • Approve Sales hanya dapat dilakukan oleh sales penanggung jawab atau Super Admin.
  • Decline memerlukan alasan (wajib).
  • Pembuatan invoice diizinkan dari status Approved Finance, In Progress, atau Completed; hanya satu termin aktif untuk "Buat Invoice" pada satu waktu.
  • Delivery Order hanya dapat dibuat saat status In Progress.
  • Tab Laporan belum diimplementasikan (placeholder).
  • Permission terkait: salesorder.show, create, edit, approve_sales, approve_manager_estimator, approve_manager_finance, decline, in_progress, complete, print.