๐งพ Sales & POS Module (so_*)
Modul Sales mengelola Sales Order (SO), Sales Invoice, dan POS sebagai sumber utama revenue, terhubung dengan AR (
fi_ar_*) dan inventory (inv_*).1. Module Purpose
- Menyimpan master customer.
- Menangani lifecycle SO โ Invoice โ (AR) dan POS.
- Menjadi sumber data penjualan untuk laporan penjualan, margin, dan performa cabang.
2. Tables & Structure
| Tabel | Deskripsi singkat |
|---|---|
so_customer | Master customer per company |
so_order | Sales Order header |
so_order_line | Detail SO per material |
so_invoice | Sales Invoice header |
so_invoice_line | Detail Sales Invoice |
so_pos | POS transaction header |
so_pos_line | POS transaction line |
3. Key Fields & Relationships
3.1 so_customer
- Fields:
company_id,code,name,phone,email,address,is_active. - FK:
company_idโcore_company.id. - Dipakai oleh:
fi_ar_inv.cust_id,so_order.cust_id.
3.2 Sales Order & Invoice
-
so_order- Fields:
company_id,branch_id,cust_id,so_no,so_date,status.
- Fields:
-
so_order_line- FK:
so_idโso_order.id. - Fields:
mat_idโinv_mat.id,qty,unit_price,discount,amount.
- FK:
-
so_invoice- Fields:
company_id,branch_id,cust_id,inv_no,inv_date,status,total.
- Fields:
-
so_invoice_line- FK:
so_inv_idโso_invoice.id. - Fields mirip dengan
so_order_line.
- FK:
3.3 POS
-
so_pos- Fields:
company_id,branch_id,pos_no,tx_date,cashier_id,total,payment_method.
- Fields:
-
so_pos_line- FK:
pos_idโso_pos.id. - Fields:
mat_id,qty,unit_price,discount,amount.
- FK:
-
Integrasi:
- Transaksi
so_invoiceakan memicu AR (fi_ar_inv). so_invoice_line/so_pos_linememicu movement stok diinv_move.
- Transaksi
4. Business Flows
4.1 SO โ Invoice โ AR โ GL
- Sales Order dibuat di
so_order+so_order_line. - Setelah dikonfirmasi/fulfilled, sistem buat
so_invoice+so_invoice_line. - Berdasarkan invoice, sistem membentuk
fi_ar_inv(AR) dan posting ke GL. so_invoice_linememicuinv_move(OUT_SALES).
4.2 POS Flow
- Kasir membuat transaksi di
so_pos+so_pos_line. - Sistem langsung mengurangi stok via
inv_move(OUT_POS). - Revenue bisa dicatat via
fi_cash_txdan di-post ke GL.
5. Example Reports (SQL)
Query berikut adalah contoh SELECT untuk laporan penjualan dan performa outlet.