6.5 KiB
6.5 KiB
Codex Handoff - 2026-05-10
Dokumen ini menyimpan konteks kerja terakhir agar pengerjaan bisa langsung dilanjutkan saat project dibuka lagi.
Status Umum
- App aktif dikembangkan di
Next.js + Prisma. - Banyak flow bisnis inti sudah tersambung end-to-end.
- Project belum dianggap production-ready; fokus saat ini masih penyelesaian fitur dan perapihan UX.
Perubahan Domain dan Terminologi
Customersudah dirapikan menjadiBuyer.Sellersudah dirapikan menjadiSales.sellerCurrencyCodesudah dirapikan menjadicompanyCurrencyCode.item typedanitem gradesudah dibersihkan dari kontrak aktif UI/API; flow aktif sekarang pakaigrade.- Struktur Prisma dan mapping database sudah disesuaikan ke arah penamaan yang lebih jelas.
Fitur yang Sudah Aktif
1. Penjualan Reguler
- Flow create dan close sudah aktif.
- Create:
- buyer
- mata uang buyer
- mata uang perusahaan
- rate buyer ke perusahaan bila beda currency
- kurir
- biaya kirim
- resi opsional
- multiple lot
- Line item:
- pilih lot
- berat jual
- harga jual
- info grade, kode lot, berat sekarang, harga MAL, bagi hasil agent
- Close:
- berat jual aktual
- berat retur
- harga jual aktual
- selisih otomatis masuk penyusutan
- Komisi agent:
- dihitung ulang saat close
- menambah saldo agent
2. Titip Jual / Consignment
- Flow create dan close sudah aktif.
- Close support:
- berat terjual
- berat kembali
- berat susut
- harga jual
- komisi sales manual
- Rumus komisi agent:
((berat terjual * (harga jual - harga MAL)) - komisi sales) * persentase share
- Komisi agent:
- menambah saldo bagi hasil agent
- Komisi sales:
- punya histori sendiri di master
Sales
- punya histori sendiri di master
3. Penjualan Just In Time
- Placeholder sudah diganti menjadi flow aktif.
- Header input sama arah umumnya dengan penjualan reguler.
- Barang dijual tanpa masuk gudang dan tanpa retur.
- Line item JIT:
- grade
- quantity
- harga MAL
- harga jual
- agent opsional
- skema bagi hasil opsional
- catatan
- Status create:
OPEN
- Close:
- update
harga jual aktualsaja
- update
- Komisi agent:
- dihitung saat close
- menambah saldo bagi hasil agent
- Banyak pass UI sudah dilakukan agar gaya JIT mendekati penjualan reguler.
4. Purchases
- Menu
Purchasessudah dipecah:Pembelian RegulerPembelian Kantor / Buyout Agent
Purchase Detailsekarang dibuka sebagai popup/modal agar tidak merusak layout utama.- Tombol
Cetak receiptdipindah ke detail purchase, bukan lagi di halaman receipt.
5. Pembelian Kantor / Buyout Agent
- Sudah aktif sebagai submenu terpisah.
- Sumber hanya dari lot aktif yang sudah ada.
- Buyout bisa parsial atau full.
- Setiap buyout selalu membuat lot baru milik kantor.
- Lot lama dikurangi; jika habis bisa closed.
- Komisi agent saat buyout:
max(0, qty * (harga buyout - harga MAL)) * persen share
- Jika harga buyout di bawah harga MAL, komisi agent default
0. - Komisi buyout menambah saldo bagi hasil agent dan masuk histori.
- Detail lot sudah menampilkan jejak buyout.
6. Fund Request
- Menu baru
/fund-requestssudah aktif. - Ada 2 tipe:
Dana modalBagi hasil
- Input:
- code generated
- no reff
- agent
- rekening agent
- rekening kantor
- nominal
- waktu transfer
- bukti transfer opsional
- Dampak saldo:
Dana modal: kantor transfer ke agent, jadi menambah saldo modal agentBagi hasil: pembayaran bagi hasil ke agent, jadi mengurangi saldo bagi hasil agent
- Histori mutasi agent ikut tercatat.
7. Master Agent
- Agent punya dua saldo:
saldo bagi hasilsaldo modal
- Histori mutasi saldo sudah aktif.
- Sumber histori mencakup:
- opening balance
- manual adjustment
- consignment commission
- regular sale commission
- JIT sale commission
- office buyout commission
- fund request profit share
- fund request capital
- Detail agent sudah bisa melihat histori.
8. Master Sales
Salespunyacommission_balance.- Histori komisi sales sudah aktif.
- Detail sales sudah bisa menampilkan histori komisi.
9. Settings / Profil Perusahaan
- Profil perusahaan sekarang mendukung multiple rekening kantor.
- Bank kantor dipilih dari master bank.
- Fund Request memakai pilihan rekening kantor yang dipilih user.
- Bug sesudah save yang membuat list rekening kantor terlihat kosong tanpa refresh sudah diperbaiki.
Perapihan UI/UX yang Sudah Dilakukan
- Banyak halaman master 2 kolom sekarang sudah punya:
- pagination
- search
- Picker grade besar sudah diganti ke searchable combobox di beberapa flow aktif.
- Sidebar bug auto-expand karena prefix path sudah diperbaiki.
- Icon bell di topbar di-hide.
- Tombol
?diarahkan ke halaman bantuan/help. - Beberapa halaman transaksi besar sudah dipadatkan dan disamakan skalanya.
Catatan Teknis Penting
- Untuk banyak perubahan schema terakhir,
npm run prisma:generate,npm run db:push, dannpm run typechecksudah pernah lolos. - Alur kerja saat ini masih banyak mengandalkan
db push, belum migrasi Prisma versioned. - Belum ada test suite otomatis yang matang.
- Project sebelumnya juga sudah dinilai belum production-ready, terutama pada aspek auth/bootstrap dev account, secret fallback, migration discipline, dan testing.
Isu yang Baru Saja Diperbaiki
Settings:- setelah simpan, list rekening kantor sempat terlihat reset
- akar masalah: response
PUT /api/v1/settingstidak mengembalikan relasicompanyBankAccounts - sudah diperbaiki dengan fetch ulang record lengkap sebelum serialize
Pembelian Reguler:- warning
lengkapi master datasempat muncul terus saat buka halaman - sudah diperbaiki agar hanya muncul setelah loading selesai dan hanya jika master wajib benar-benar kosong
- warning
Purchase Analysis:- chip jumlah purchase sudah dipaksa satu baris
Kandidat Lanjutan Paling Masuk Akal
- Lanjut desain dan implementasi flow
Pembelian Just In Timejika memang masih ada versi purchase-side yang terpisah dariSales JIT. - Sweep UI consistency lagi untuk:
Sales JITFund RequestOffice Buyout
- Tambah dokumentasi user flow untuk transaksi baru:
- regular sale
- JIT sale
- office buyout
- fund request
- Hardening project sebelum production:
- hapus bootstrap user dev dari runtime login
- wajibkan
AUTH_SECRET - pindah ke Prisma migrations
- tambah test smoke/integration
- rate limiting auth endpoint
File Ini
- Update file ini setiap kali ada keputusan bisnis besar atau modul baru selesai.
- Kalau mau lebih formal, file ini bisa diganti nanti menjadi
docs/project-status.mdpermanen.