Lewati ke konten

Shift kasir

Shift ada di tab Lainnya dan hanya tampil bila toko memakai login kasir. Shift adalah rekonsiliasi kas laci, bukan pembukuan.

sequenceDiagram
  participant K as Kasir
  participant P as POS
  participant A as API
  K->>P: Login PIN
  K->>P: Buka shift (kas awal)
  P->>A: POST /v1/shifts/open
  Note over P,A: Transaksi baru otomatis memakai shift terbuka perangkat
  K->>P: Tutup shift (kas dihitung)
  P->>A: POST /v1/shifts/:id/close
  A->>A: expected = kas awal + tunai non-void
  A-->>P: rekap, selisih

kas diharapkan = kas awal + Σ pembayaran tunai (amount_minor) pada shift, tidak termasuk transaksi void

Selisih = kas dihitung − kas diharapkan. Kembalian tidak mengurangi karena amount_minor adalah bagian yang masuk ke tagihan.

  • Satu shift terbuka per perangkat; membuka yang kedua menghasilkan 409 SHIFT_OPEN.
  • Shift yang sudah ditutup tidak bisa ditutup lagi (409 SHIFT_CLOSED).
  • Backoffice → Laporan menampilkan 20 shift terakhir beserta selisih.
  • PosGate menyimpan shift aktif; usePos() memberi shift, openShift, closeShift.