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"]
Aturan
Section titled “Aturan”- 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.