Transaksi
Ringkasan
Section titled “Ringkasan”Transaksi adalah catatan penjualan yang jadi dasar semua angka di dashboard: omset, laba rugi, dan komisi. Data masuk lewat tiga pintu — input manual oleh inputter, impor CSV oleh finance, dan order dari platform/web — lalu dibaca ulang oleh tim finance, CS, dan partner sesuai perannya masing-masing.
Siapa yang pakai
Section titled “Siapa yang pakai”- Inputter — mengisi transaksi manual satu per satu.
- Finance / Finance SPV — mengimpor CSV dan memeriksa daftar transaksi.
- CS / Help Desk / Analyst — mencari transaksi saat menangani keluhan.
- Partner / Advertiser — melihat transaksi miliknya sendiri.
flowchart TD
A[Sumber data] --> B{Jalur masuk}
B -- input manual --> C[Form transaksi manual]
B -- file --> D[Impor CSV]
B -- platform/web --> E[Order masuk otomatis]
C --> F[POST transaction]
D --> F
E --> F
F --> G[Transaksi tersimpan]
G --> H{Perlu pemeriksaan?}
H -- ya --> I[Cek duplikat]
H -- tidak --> J[Daftar transaksi]
I --> J
J --> K[Dipakai laba rugi, invoice, komisi]
- Data masuk lewat form manual, impor CSV, atau order platform.
- Sistem menyimpan transaksi dan memberi kode transaksi.
- Tim bisa mencari transaksi di daftar, memfilter, dan mengekspor CSV.
- Sebelum diproses lanjut, transaksi bisa diperiksa terhadap kemungkinan duplikat.
- Angka transaksi dipakai modul lain: laba rugi, invoice, dan komisi afiliasi.
Untuk pemakai
Section titled “Untuk pemakai”- Input manual: buka menu transaksi manual (khusus peran admin dan inputter), isi data pelanggan, produk, dan pembayaran, lalu simpan. Setelah simpan, transaksi muncul di daftar.
- Impor: buka menu impor transaksi (khusus admin dan finance SPV), unggah file CSV, lalu periksa hasil impor — baris yang gagal biasanya karena format kolom.
- Mencari transaksi: buka daftar transaksi, pakai filter (tanggal, status, CS, wilayah), lalu buka detail untuk melihat rincian item.
- Ekspor: dari daftar, unduh CSV untuk diolah di luar dashboard.
Kalau gagal: menu tidak muncul berarti peran akunmu tidak punya akses ke jalur itu. Kalau transaksi tidak ditemukan padahal baru diinput, cek filternya dulu (rentang tanggal dan status sering mempersempit hasil).
Untuk developer
Section titled “Untuk developer”| Hal | Keterangan |
|---|---|
| Layar | src/pages/transaction/, src/pages/dataInputer/, src/routes.js |
| Logika | src/features/transaction/ (api.ts, hooks/, dto/, entity/) |
| Server | POST /transaction, GET /transaction, GET /transaction/{id}, GET /transaction/check-duplicate/{id}, GET /transaction/download/csv |
Aturan teknis:
- Daftar selalu berhalaman.
getTransactionsmengembalikanPage<Transaction>; UI wajib mengirim parameter halaman/filter. - Dua instance HTTP. Sebagian panggilan memakai
axiosInstancedan sebagianaxiosInstanceFinance; endpoint finance memakai awalan/api. Salah instance = 404, bukan 401. - Rute dan peran berbeda per jalur masuk (dari
src/routes.js):/transactions,/transactions/filtered—ADMIN,ANALYST,FINANCE,FINANCE_SPV,HELP_DESK,COST_CONTROL/transactions/import—ADMIN,FINANCE_SPV/transaction-manual,/transaction-manual/form—ADMIN,INPUTTER/transaction,/transaction/detail—PARTNER,FINANCE_PARTNER,ADVERTISER
- Pemeriksaan duplikat bersifat informatif, tidak memblokir pembuatan transaksi. Detail aturannya ada di Deteksi Transaksi Duplikat.
- Batasan halaman ini: jalur baca/tulis di atas ditelusuri dari sisi dashboard. Aturan bisnis transaksi di server (status, validasi, perhitungan omset) belum ditelusuri dan perlu halaman sendiri di project API.
Relasi antar fitur
Section titled “Relasi antar fitur”- Butuh: Pengguna & Peran — daftar peran per rute menentukan siapa yang bisa input, impor, atau hanya membaca.
- Terkait: Deteksi Transaksi Duplikat — pemeriksaan duplikat sebelum transaksi diproses CS.
- Dipakai oleh: Laba Rugi, Invoice, dan komisi afiliasi — semuanya membaca angka dari transaksi. (relasi ini belum ditelusuri per file.)
Aturan & edge case
Section titled “Aturan & edge case”- Satu transaksi punya banyak detail item; perbandingan duplikat bekerja per item (produk + kuantitas).
- Status transaksi menentukan apakah data dihitung di laporan; transaksi berstatus batal tidak ikut dihitung.
- Peran
PARTNER/ADVERTISERhanya melihat transaksi miliknya, sedangkan peran internal melihat semua — perbedaan ini ditegakkan di server, bukan hanya di rute.
Yang belum ditelusuri
Section titled “Yang belum ditelusuri”- Isian form transaksi manual dan impor CSV (field, wajib/tidak, validasi per field)
- Urutan proses saat simpan/impor dan apa yang dicek server
- Redirect dan pesan setelah simpan berhasil atau gagal
Riwayat
Section titled “Riwayat”- 2026-11-12 — dokumen dibuat dari
erdigmabranchmain@2e7ad26. Sisi server belum ditelusuri.