Lewati ke konten

Transaksi

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.

  • 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]
  1. Data masuk lewat form manual, impor CSV, atau order platform.
  2. Sistem menyimpan transaksi dan memberi kode transaksi.
  3. Tim bisa mencari transaksi di daftar, memfilter, dan mengekspor CSV.
  4. Sebelum diproses lanjut, transaksi bisa diperiksa terhadap kemungkinan duplikat.
  5. Angka transaksi dipakai modul lain: laba rugi, invoice, dan komisi afiliasi.
  1. 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.
  2. Impor: buka menu impor transaksi (khusus admin dan finance SPV), unggah file CSV, lalu periksa hasil impor — baris yang gagal biasanya karena format kolom.
  3. Mencari transaksi: buka daftar transaksi, pakai filter (tanggal, status, CS, wilayah), lalu buka detail untuk melihat rincian item.
  4. 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).

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. getTransactions mengembalikan Page<Transaction>; UI wajib mengirim parameter halaman/filter.
  • Dua instance HTTP. Sebagian panggilan memakai axiosInstance dan sebagian axiosInstanceFinance; 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.
  • 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.)
  • 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/ADVERTISER hanya melihat transaksi miliknya, sedangkan peran internal melihat semua — perbedaan ini ditegakkan di server, bukan hanya di rute.
  • 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
  • 2026-11-12 — dokumen dibuat dari erdigma branch main @ 2e7ad26. Sisi server belum ditelusuri.