Lanjut ke konten
Samkarsa Logbook

Jualan v1.5.0-085: Sales Delivery Fulfillment & Atomicity AP Settlement

Penyelesaian error serah terima barang SAL-2026-0070 (PSAK 72), integrasi endpoint delivery, dan pelunasan utang pembelian atomik.

1mnt baca

Pada versi v1.5.0-085, sistem Jualan (Sajen API & Blonjo UI) memperluas kapabilitas siklus penjualan DP (Customer Deposit) dan pelunasan hutang pembelian:

  1. Fitur Serah Terima Barang / Sales Delivery Fulfillment (sajen/app/services/accounting.py):

    • Menambahkan fungsi atomik fulfill_sales_delivery untuk memproses penyerahan barang pada transaksi penjualan bertipe uang muka (SALES dengan customer_deposit seperti pada transaksi SAL-2026-0070).
    • Kepatuhan PSAK 72:
      • Mendebit Akun 2-1402 (Uang Muka Penjualan) untuk menghapus liabilitas titipan pelanggan.
      • Mengkredit Akun 4-1101 (Pendapatan Penjualan) untuk mengakui pendapatan terealisasi.
      • Mengeluarkan stok fisik produk pada inventory_logs (log_type = 'out') dan memotong stok statis jika stock maintenance aktif.
      • Membukukan jurnal HPP otomatis: Debit 5-1101 (Beban Pokok Penjualan) dan Kredit 1-1301 (Persediaan Barang Dagang).
      • Menandai transaksi asal menjadi payment_method = 'lunas' dan menghapus due_date agar hilang dari kartu kewajiban jatuh tempo.
  2. Endpoint Terisolasi & Graceful Fallback (sajen/app/api/v1/accounting.py):

    • Menambahkan endpoint dedicated: POST /transactions/{transaction_id}/deliver dengan skema TransactionDeliveryRequest.
    • Menambahkan graceful routing pada endpoint POST /transactions/{transaction_id}/pay: jika transaksi yang dituju bertipe SALES, request secara otomatis dialihkan ke fulfill_sales_delivery sehingga tidak lagi memicu error HTTP 400 Bad Request: Only purchase transactions can be paid off.
  3. Refactoring Antarmuka Dashboard (blonjo/src/pages/Dashboard.tsx):

    • Memisahkan modal aksi: Transaksi SALES / customer_deposit kini membuka dialog khusus “Konfirmasi Serah Terima Barang” yang memanggil endpoint /deliver.
    • Transaksi pembelian PURCHASE tetap membuka dialog “Proses Pelunasan Hutang” dengan pemilihan akun Kas/Bank.