Lewati ke konten

Pesanan masuk (self-order)

Tab Masuk (incoming.tsx) menampilkan pesanan berstatus pending_accept. Layar polling tiap 5 detik dan berbunyi/bergetar saat ada pesanan baru.

flowchart TD
  A["Pelanggan memesan di web"] --> B["Order pending_accept, belum dibayar"]
  B --> C["Tab Masuk: polling 5 detik + bunyi"]
  C --> D{"Kasir memutuskan"}
  D -- "Terima dan bayar" --> E["PayModal<br/>harga tetap dari server"]
  E --> F["POST /v1/orders/:id/accept (payments)"]
  F --> G["Status new, lunas<br/>masuk Dapur"]
  D -- "Terima, bayar nanti (dine-in)" --> H["POST accept payLater"]
  H --> G2["Status new, belum bayar<br/>masuk Dapur"]
  D -- "Tolak" --> I["Alasan min 3 huruf"]
  I --> J["POST /v1/orders/:id/reject<br/>status cancelled"]
  J --> K["Pelanggan melihat alasan di halaman status"]
  • Takeaway dan pickup harus dibayar saat diterima; opsi bayar nanti hanya untuk dine-in.
  • Order terjadwal menampilkan waktu ambil (scheduled_for).
  • Menerima order yang sudah tidak menunggu menghasilkan 409 INVALID_TRANSITION.
  • Perangkat tenant lain tidak bisa menerima order ini (404).

apps/fnb/src/app/(tabs)/incoming.tsx, src/lib/api.ts (listKitchen, acceptOrder, rejectOrder), src/lib/notify.ts.