# 17. Peta Meja & Tempat — Panduan Operator

Panduan singkat untuk mengonfigurasi **Tempat** (area makan) dan **Peta Meja** per outlet, serta cara menggunakannya di POS.

---

## Apa itu Tempat dan Peta Meja?

- **Tempat (Floor):** Satu outlet bisa punya beberapa area makan, misalnya **Teras**, **Lantai 1**, **Lantai 2**. Setiap tempat punya daftar meja dan tata letak sendiri.
- **Peta Meja:** Daftar meja per tempat, plus (opsional) **tata letak visual** (floor plan) dengan drag & drop. Di POS, kasir memilih tempat lalu melihat peta meja untuk memilih meja saat order dine-in.

**Akses:** Menu **Peta Meja** di sidebar (permission `outlet.manage`).

---

## Langkah Konfigurasi

### 1. Pilih outlet

Di halaman **Peta Meja**, pilih outlet yang ingin diatur (tab outlet di atas).

### 2. Buat tempat (jika belum ada)

- Di bagian **Tempat**, isi nama (mis. *Teras*, *Lantai 1*) lalu klik **Tambah Tempat**.
- Outlet baru biasanya punya satu tempat default (**Utama**). Anda bisa menambah tempat lain dan menghapus tempat yang belum punya meja (tombol × di samping nama tempat).

### 3. Pilih tempat yang mau diatur

Klik salah satu tab tempat (Teras, Lantai 1, dll). Semua pengaturan di bawah berlaku untuk tempat yang sedang dipilih.

### 4. Pengaturan ukuran peta (grid)

- **Pengaturan Peta Meja:** Atur **Baris** dan **Kolom** (mis. 4×4) lalu **Simpan Ukuran Peta**. Ini dipakai jika Anda memakai tampilan **grid** (bukan floor plan) di POS.
- Jika nanti Anda pakai **Editor Tata Letak** dan simpan posisi meja, POS bisa menampilkan floor plan; kalau belum, POS memakai grid ini.

### 5. Tambah meja

- **Daftar Meja** → **Tambah Meja**. Isi nama (mis. *A1*, *Meja 2*), kapasitas (opsional), baris/kolom grid (jika pakai grid), lalu simpan.
- Anda bisa menambah banyak meja dari sini. Posisi visual (untuk floor plan) bisa diatur di Editor Tata Letak.

### 6. Editor tata letak (floor plan)

- Klik **Buka Editor Tata Letak**.
- **Canvas** menampilkan meja yang sudah punya posisi. Anda bisa:
  - **Drag** meja untuk mengubah posisi.
  - **Resize** dengan handle (pojok kanan bawah) pada setiap meja.
  - **Tambah Meja:** tombol di editor → isi nama, bentuk (Persegi / Bulat / Ellips), kapasitas → simpan. Meja baru muncul di canvas dan bisa langsung didrag/di-resize.
  - **Ganti nama:** **double-click** pada nama meja di canvas → ketik nama baru → Enter atau klik di luar untuk simpan.
- Setelah selesai, klik **Simpan Tata Letak** agar posisi dan ukuran tersimpan. Ukuran canvas bisa disimpan lewat form **Simpan ukuran canvas** (jika ada).
- Bentuk meja: **rectangle** (persegi), **circle** (bulat), **ellipse** (ellips).

---

## Cara Pakai di POS

1. Buka **POS** (Buka shift jika belum).
2. Pilih **Outlet** (jika punya akses lebih dari satu).
3. Jika outlet punya **lebih dari satu tempat**, akan ada tab tempat (Teras, Lantai 1, dll). Pilih tempat yang sesuai.
4. **Peta meja** tampil untuk tempat itu:
   - Jika sudah disimpan tata letak floor plan → meja tampil sesuai posisi dan bentuk (drag layout).
   - Jika belum → tampil grid sesuai baris/kolom yang diatur di Peta Meja.
5. **Klik meja** untuk:
   - Buat **order baru** untuk meja itu (dine-in), atau
   - Buka **order aktif** yang sudah terhubung ke meja itu.
6. Link order/meja di POS tetap mengingat tempat yang dipilih sehingga konteks tidak hilang.

**Catatan:** Jika suatu tempat belum punya meja, akan muncul pesan *"Belum ada meja di tempat ini."* — tambah meja dari halaman Peta Meja untuk tempat tersebut.

---

## Ringkasan Singkat

| Yang dilakukan | Di mana |
|----------------|--------|
| Tambah / hapus tempat | Peta Meja → form "Tambah Tempat", tombol × di samping nama tempat |
| Atur baris/kolom grid | Peta Meja → Pengaturan Peta Meja → Simpan Ukuran Peta |
| Tambah / edit / hapus meja | Peta Meja → Daftar Meja (Tambah Meja, Edit, Hapus) |
| Atur posisi & bentuk meja (floor plan) | Peta Meja → Buka Editor Tata Letak → drag, resize, Simpan Tata Letak |
| Rename meja dari layout | Editor Tata Letak → double-click nama meja → ketik → Enter |
| Pilih tempat & meja saat jualan | POS → pilih tempat (tab) → klik meja di peta |

---

*Dokumen ini melengkapi [15-FEATURE-MODULE-CHECKLIST.md](15-FEATURE-MODULE-CHECKLIST.md) dan [04-MODULE-BLUEPRINTS.md](04-MODULE-BLUEPRINTS.md) untuk kebutuhan operasional harian.*
