Lewati ke konten

Riwayat dan void (Retail)

Tab Riwayat memakai HistoryList kind="sale" dari @smash-pos/core.

flowchart TD
  A["Buka Riwayat"] --> B["Outbox: menunggu kirim dan gagal<br/>di bagian atas"]
  A --> C["GET /v1/sales<br/>100 terbaru"]
  C --> D["Ketuk baris"]
  D --> E["GET /v1/sales/:id<br/>item, pembayaran, kasir"]
  E --> F["Lihat struk"]
  E --> G{"Login manajer atau owner?"}
  G -- "ya" --> H["Batalkan (void)"]
  H --> I["Alasan min 3 huruf"]
  I --> J["POST /v1/sales/:id/void<br/>Bearer perangkat + X-Staff-Token"]
  J --> K["Status Dibatalkan<br/>stok dikembalikan"]
  G -- "tidak" --> L["Tombol void tidak tampil"]
  • Hanya owner/manajer. Kasir dan mode tanpa staf tidak melihat tombol void.
  • Alasan wajib (min 3 karakter); disimpan di void_reason bersama voided_by.
  • Void mengembalikan stok produk yang dilacak dan mengeluarkan transaksi dari laporan dan rekap shift.
  • Transaksi yang sudah void tidak bisa di-void lagi (404).

Bagian atas Riwayat menampilkan transaksi yang belum terkirim (garis putus-putus):

  • Menunggu kirim: tombol Kirim memicu pengiriman ulang.
  • Gagal dikirim: tampil pesan penolakan, tombol Coba lagi dan Buang.