Operator menyiapkan data master dan rencana harian di web. Sales dan driver check-in di mobile, lalu mengerjakan rencana: mengunjungi pelanggan, menagih faktur, atau menyelesaikan pengiriman.
+
+
+
+
+
+
+
Penjualan di web
+
Buat permintaan, pesanan, faktur, dan pembayaran. Lampirkan faktur ke rencana penjualan agar tim lapangan tahu apa yang harus ditagih.
+
+
+
+
+
+
Logistik di web
+
Kelola surat jalan dan rencana pengiriman. Lengkapi kuantitas terkirim agar pesanan bisa selesai.
+
+
+
+
+
+
Kerja lapangan di mobile
+
Clock in di cabang awal rencana, buka destinasi hari ini, check-in ke pelanggan, lalu catat pembayaran.
+
+
+
+
+
+
Riwayat aktivitas
+
Tinjau jejak dan peristiwa lapangan hari itu di Timeline. Streaming peta langsung di web masih Segera hadir.
+
+
+
diff --git a/apps/docs-dev/src/id/user/index.md b/apps/docs-dev/src/id/user/index.md
new file mode 100644
index 0000000..d230d1e
--- /dev/null
+++ b/apps/docs-dev/src/id/user/index.md
@@ -0,0 +1,60 @@
+# Apa itu TrackGo
+
+TrackGo adalah platform penjualan dan logistik. Staf kantor memakai aplikasi **web**. Sales, driver, dan crew bekerja dari aplikasi **mobile**.
+
+Siapkan dulu perusahaan, orang, produk, dan pelanggan. Setelah itu rencanakan kunjungan harian, lampirkan faktur atau surat jalan, lalu ikuti aktivitas lapangan.
+
+## Siapa yang memakai
+
+| Peran | Tempat kerja | Tugas umum |
+| --- | --- | --- |
+| Operator / admin | Web | Data perusahaan, pengguna, hak akses, rencana, dokumen |
+| Sales | Web dan mobile | Permintaan, pesanan, faktur, pembayaran, kunjungan pelanggan |
+| Driver / crew | Web (rencana) dan mobile | Rencana pengiriman, surat jalan, pemberhentian pelanggan |
+
+Menu yang bisa dibuka tergantung **hak akses** yang ditetapkan ke pengguna. Jika menu tidak muncul, minta administrator memberi izin **Lihat** untuk area itu.
+
+## Alur biasa
+
+```plantuml
+@startuml
+actor Operator
+actor Field as "Sales atau driver"
+
+Operator -> Web: Siapkan perusahaan, pengguna, dan data master
+Operator -> Web: Buat siklus atau rencana sekali jalan
+Operator -> Web: Lampirkan faktur atau surat jalan
+Field -> Mobile: Clock in di cabang awal rencana
+Field -> Mobile: Kunjungi pelanggan di rencana
+Field -> Mobile: Tagih pembayaran atau ikuti tugas packing
+Operator -> Web: Tinjau dokumen dan Timeline
+@enduml
+```
+
+1. Tambahkan pengaturan perusahaan, cabang, divisi, pelanggan, produk, dan karyawan.
+2. Buat pengguna dan hak akses agar setiap orang hanya melihat yang dibutuhkan.
+3. Buat **siklus mingguan** (berulang) atau **rencana sekali jalan** untuk satu tanggal. Lampirkan faktur (penjualan) atau surat jalan (logistik).
+4. Tim lapangan check-in di cabang lewat mobile, lalu mengerjakan rencana.
+5. Sales mencatat pembayaran di mobile atau web. Driver menyelesaikan surat jalan di web.
+
+## Dokumen penjualan
+
+Alur penjualan:
+
+**Permintaan penjualan (opsional) → Pesanan penjualan → Faktur → Pembayaran**
+
+Memproses pesanan juga dapat membuat surat jalan untuk pengiriman. Detail: [Alur penjualan](/id/user/web/sales-workflow).
+
+## Web dan mobile
+
+- [Web](/id/user/web/) — penyiapan, rencana, penjualan, logistik, timeline, impor CSV
+- [Mobile](/id/user/mobile/) — masuk, check-in cabang, rencana hari ini, pelanggan, pembayaran
+
+## Segera hadir
+
+Hal berikut belum ada di produk:
+
+- **Dasbor** web (menu ada; halamannya masih placeholder)
+- Posisi **langsung** di peta web (Timeline memutar ulang rekaman satu hari)
+- Pembaruan **status surat jalan** di mobile (tugas logistik hanya tercantum, tidak diubah di ponsel)
+- Lupa kata sandi, ingat saya, dan daftar akun di layar masuk
diff --git a/apps/docs-dev/src/id/user/mobile/check-in.md b/apps/docs-dev/src/id/user/mobile/check-in.md
new file mode 100644
index 0000000..9e86a06
--- /dev/null
+++ b/apps/docs-dev/src/id/user/mobile/check-in.md
@@ -0,0 +1,40 @@
+
+
+# Check-in
+
+
Clock in di cabang awal rencana sebelum kerja lapangan
+
+Sales dan driver **clock in di cabang awal rencana** sebelum mulai kerja lapangan. Aplikasi tidak memblokir penelusuran Beranda, Rencana, atau Pelanggan tanpa check-in, tetapi buat pelanggan, check-in kunjungan, dokumen penjualan, dan pembayaran tetap nonaktif sampai Anda bertugas.
+
+## Sebelum clock in
+
+Anda membutuhkan **rencana hari ini** dengan cabang awal. Jika tidak ada rencana, Clock In tidak tersedia dan layar menjelaskan tidak ada rencana hari ini. Operator harus [membuat atau men-generate rencana](/id/user/web/plans) di web.
+
+## Clock in dan clock out
+
+1. Dari Beranda, ketuk **Check-in sekarang** jika muncul **Anda belum check-in**, atau buka layar check-in.
+2. Pastikan lokasi di peta (OpenStreetMap). Pakai recenter jika perlu.
+3. Ketuk **Clock In Sekarang**. Aplikasi mengirim koordinat GPS untuk **cabang awal** rencana.
+4. Saat bertugas, aplikasi merekam jejak lokasi di latar belakang (interval berasal dari pengaturan GPS perusahaan).
+5. Ketuk **Clock Out** saat shift selesai. Pelacakan berhenti.
+
+Layar menampilkan nama, tanggal, koordinat, serta waktu clock-in / clock-out.
+
+Lingkaran di peta hanya panduan visual. Tombol Clock In aktif jika rencana ada dan Anda belum check-in — tidak diblokir karena berdiri di luar lingkaran itu.
+
+## Setelah check-in
+
+Selama kehadiran cabang terbuka:
+
+- Anda dapat membuat pelanggan
+- Anda dapat check-in ke pelanggan pada kunjungan
+- Aksi penjualan (permintaan, pesanan, pembayaran) juga membutuhkan check-in **kunjungan pelanggan** untuk pelanggan itu
+
+Jika GPS menjauh terlalu jauh dari kunjungan pelanggan, Beranda dapat menampilkan peringatan checkout agar Anda check-out dari kunjungan.
+
+## Segera hadir
+
+- Check-in lewat **NFC** atau **QR** (layar selalu memakai GPS)
+- Menegakkan radius check-in sebelum tombol Clock In diaktifkan
diff --git a/apps/docs-dev/src/id/user/mobile/daily-work.md b/apps/docs-dev/src/id/user/mobile/daily-work.md
new file mode 100644
index 0000000..f80e201
--- /dev/null
+++ b/apps/docs-dev/src/id/user/mobile/daily-work.md
@@ -0,0 +1,83 @@
+
+
+# Kerja harian
+
+
Beranda, Rencana, dan Pelanggan setelah Anda bertugas
+
+Setelah [check-in cabang](/id/user/mobile/check-in), pakai Beranda, Rencana, dan Pelanggan untuk mengerjakan hari itu.
+
+## Beranda
+
+Beranda punya dua tab: **Rencana** dan **Timeline**.
+
+**Tab Rencana**
+
+- Sapaan dan jabatan (Sales, Driver, atau Crew)
+- Banner jika Anda belum check-in di cabang
+- Destinasi hari ini — **Buka** memulai kunjungan pelanggan
+- Kartu kunjungan aktif dengan checkout
+- **Tugas Hari Ini** — faktur (sales) atau kode surat jalan (driver/crew)
+
+**Tab Timeline**
+
+Peristiwa lapangan hari ini dikelompokkan per pelanggan (check-in/out, dokumen penjualan, pelanggan baru). Tarik ke bawah untuk menyegarkan.
+
+Keluar ada di menu avatar.
+
+### Segera hadir di Beranda
+
+- Total **kinerja** kerja (jumlah pelanggan / faktur / pembayaran / packing tidak ditampilkan di layar)
+- Ikon Pesan dan Notifikasi belum berfungsi
+
+## Rencana
+
+Tab **Rencana** menampilkan destinasi hari ini. Buka pemberhentian untuk ke layar kunjungan pelanggan.
+
+Jika rencana ada, pakai **Tambah pelanggan ke rencana**:
+
+1. Cari pelanggan yang belum ada di rencana.
+2. Untuk rencana **penjualan**, Anda dapat memilih faktur belum lunas untuk dilampirkan.
+3. Konfirmasi **Tambah ke rencana**.
+
+Anda tidak dapat membuat rencana harian baru di ponsel — hanya menambah ke rencana yang sudah ada.
+
+### Segera hadir di Rencana
+
+- Memilih **surat jalan** saat menambah pelanggan ke rencana logistik
+
+## Pelanggan
+
+Cari dan urutkan daftar menurut **Nama**, **Kode**, atau **Jarak**. Ketuk baris untuk profil.
+
+**Buat** (tombol FAB) hanya tersedia setelah check-in cabang. Formulir mencakup kode, nama, telepon, NFC ID (diketik), alamat, lokasi peta, dan kontak opsional.
+
+### Kunjungi pelanggan
+
+Buka destinasi dari rencana, atau buka rute kunjungan dari profil.
+
+1. Selesaikan **Check-in pelanggan (GPS)** ketika aksi penjualan terkunci.
+2. Kemudian Anda dapat memakai **Aksi penjualan**.
+
+Tanpa check-in cabang Anda melihat **Check-in cabang diperlukan**. Tanpa check-in kunjungan untuk pelanggan itu, Anda diminta check-in ke pelanggan.
+
+### Permintaan dan pesanan penjualan
+
+**Buat permintaan penjualan** dan **Buat pesanan penjualan (tanpa packing)** mengirim dokumen dengan **produk pertama yang dimuat** dan kuantitas **1**. Tidak ada pemilih produk atau keranjang di ponsel.
+
+Untuk baris item lengkap, buat dokumen di [web](/id/user/web/sales-workflow).
+
+### Pembayaran
+
+Faktur belum lunas di daftar profil/kunjungan punya **Buat pembayaran**.
+
+1. Pastikan kode faktur, status, dan saldo.
+2. Isi **jumlah** (dimulai dari sisa saldo) dan **catatan** opsional.
+3. Catat pembayaran. GPS dilampirkan jika tersedia.
+
+Jumlah harus lebih dari nol dan tidak melebihi saldo. Aturan check-in cabang + kunjungan pelanggan yang sama berlaku.
+
+## Yang dapat dilakukan driver hari ini
+
+Driver dan crew mengikuti rencana logistik dan melihat kode surat jalan di Beranda. **Mengubah status surat jalan di mobile masih Segera hadir** — selesaikan surat jalan di [web](/id/user/web/logistics).
diff --git a/apps/docs-dev/src/id/user/mobile/index.md b/apps/docs-dev/src/id/user/mobile/index.md
new file mode 100644
index 0000000..53d8a46
--- /dev/null
+++ b/apps/docs-dev/src/id/user/mobile/index.md
@@ -0,0 +1,54 @@
+
+
+# Ringkasan mobile
+
+
Aplikasi lapangan untuk sales, driver, dan crew
+
+Aplikasi mobile TrackGo untuk **sales**, **driver**, dan **crew** di lapangan. Tab bawah: **Beranda**, **Rencana**, dan **Pelanggan**. Check-in cabang adalah layar terpisah.
+
+Jabatan karyawan menentukan rencana yang dimuat:
+
+| Jabatan | Jenis rencana | Tugas hari ini di Beranda |
+| --- | --- | --- |
+| Sales | Penjualan | Faktur pada rencana hari ini |
+| Driver atau crew | Logistik | Kode surat jalan pada rencana hari ini |
+
+Jika akun belum tertaut ke karyawan, Beranda dan Rencana menjelaskan bahwa profil belum tertaut.
+
+## Masuk
+
+1. Buka aplikasi.
+2. Masukkan **ID Karyawan** dan **Kata Sandi**.
+3. Ketuk **Masuk**.
+
+Aturan username: 3–32 karakter. Kata sandi: 8–72 karakter.
+
+## Hari kerja biasa
+
+```plantuml
+@startuml
+start
+:Masuk;
+:Buka Beranda atau Check-in;
+:Clock in di cabang awal rencana;
+:Buka rencana hari ini;
+:Check-in ke pelanggan;
+:Catat pembayaran atau buat dokumen penjualan;
+:Clock out kunjungan dan cabang;
+stop
+@enduml
+```
+
+1. [Check-in](/id/user/mobile/check-in) di cabang (wajib sebelum sebagian besar aksi lapangan).
+2. [Kerja harian](/id/user/mobile/daily-work) — rencana, pelanggan, kunjungan, pembayaran, timeline Beranda.
+
+## Segera hadir di layar masuk
+
+Kontrol ini terlihat tetapi belum berfungsi:
+
+- Ingat Saya
+- Lupa Kata Sandi
+- Masuk dengan Email atau Telepon
+- Daftar di Sini
diff --git a/apps/docs-dev/src/id/user/web/import.md b/apps/docs-dev/src/id/user/web/import.md
new file mode 100644
index 0000000..04f3060
--- /dev/null
+++ b/apps/docs-dev/src/id/user/web/import.md
@@ -0,0 +1,29 @@
+
+
+# Impor CSV
+
+
Impor di daftar dokumen jika hak akses mencakup Impor
+
+Anda dapat memuat banyak dokumen dari berkas **.csv** di halaman indeks berikut:
+
+| Dokumen | Menu |
+| --- | --- |
+| Permintaan penjualan | Penjualan → Aktivitas → Permintaan Penjualan |
+| Pesanan penjualan | Penjualan → Aktivitas → Pesanan Penjualan |
+| Faktur penjualan | Penjualan → Aktivitas → Faktur Penjualan |
+| Pembayaran penjualan | Penjualan → Aktivitas → Pembayaran Penjualan |
+| Surat jalan | Logistik → Aktivitas → Surat Jalan |
+
+## Cara impor
+
+1. Buka daftar.
+2. Klik **Import CSV** (tersembunyi jika Anda tidak punya **Impor** pada area itu).
+3. Pilih berkas `.csv` dan konfirmasi.
+
+Tidak ada wizard impor terpisah selain unggah berkas.
+
+## Yang tidak dapat diimpor di sini
+
+Data master (cabang, pelanggan, produk), pengguna, hak akses, siklus, dan rencana **tidak** punya tombol Import CSV. Buat catatan itu di layar masing-masing, atau generate rencana dari siklus.
diff --git a/apps/docs-dev/src/id/user/web/index.md b/apps/docs-dev/src/id/user/web/index.md
new file mode 100644
index 0000000..0c0f698
--- /dev/null
+++ b/apps/docs-dev/src/id/user/web/index.md
@@ -0,0 +1,40 @@
+
+
+# Ringkasan web
+
+
Aplikasi browser dan desktop untuk operator, sales, dan logistik.
+
+Masuk dengan **Username** dan **Password** di halaman masuk. Bahasa bisa diganti antara English dan Bahasa Indonesia.
+
+Setelah masuk, sidebar hanya menampilkan menu yang diizinkan hak akses Anda.
+
+## Menu
+
+| Menu | Ikon | Yang dikerjakan |
+| --- | --- | --- |
+| Dasbor | | Segera hadir |
+| Timeline | | Putar ulang jejak GPS dan aktivitas lapangan karyawan sales untuk satu hari |
+| Penjualan | | Karyawan, siklus, permintaan, pesanan, faktur, pembayaran, rencana, laporan |
+| Logistik | | Driver dan crew, siklus, surat jalan, rencana, laporan |
+| Pengaturan | | Cabang, divisi, pelanggan, produk, pengaturan perusahaan, pengguna, hak akses |
+
+## Urutan yang disarankan
+
+1. [Siapkan perusahaan](/id/user/web/setup) — data master, pengguna, dan hak akses
+2. [Rencana dan kunjungan](/id/user/web/plans) — rencana sekali jalan dan siklus mingguan
+3. [Alur penjualan](/id/user/web/sales-workflow) — permintaan, pesanan, faktur, pembayaran
+4. [Logistik](/id/user/web/logistics) — surat jalan dan rencana pengiriman
+5. [Timeline](/id/user/web/timeline) — riwayat aktivitas di peta
+6. [Impor CSV](/id/user/web/import) — unggah dokumen sekaligus
+
+## Laporan
+
+**Penjualan → Laporan Penjualan** dan **Logistik → Laporan Logistik** menampilkan tabel laporan dari server. Jika belum dikonfigurasi, halaman menyatakan tidak ada laporan.
+
+## Status dan izin
+
+Sebagian besar data master memakai **Draft**, **Aktif**, dan **Diarsipkan**. Dokumen penjualan dan logistik punya status sendiri (lihat masing-masing panduan).
+
+Tombol seperti Buat, Process, Submit, dan Approve hanya muncul jika hak akses Anda mencakup aksi itu (**Buat**, **Ubah**, **Hapus**, atau **Impor**).
diff --git a/apps/docs-dev/src/id/user/web/logistics.md b/apps/docs-dev/src/id/user/web/logistics.md
new file mode 100644
index 0000000..031c179
--- /dev/null
+++ b/apps/docs-dev/src/id/user/web/logistics.md
@@ -0,0 +1,74 @@
+
+
+# Logistik
+
+
Menu logistik untuk driver, crew, surat jalan, dan rencana pengiriman
+
+Pakai Logistik jika Anda butuh dokumen pengiriman dan rute driver. Penjualan tetap memiliki permintaan, pesanan, faktur, dan pembayaran.
+
+## Karyawan dan siklus
+
+- **Logistik → Data → Karyawan** — jabatan **driver** dan **crew**
+- **Logistik → Data → Siklus Logistik** — templat kunjungan mingguan untuk karyawan itu
+
+Generate rencana harian dari siklus dengan cara yang sama seperti penjualan. Lihat [Rencana dan kunjungan](/id/user/web/plans).
+
+## Surat jalan
+
+
Logistik → Aktivitas → Surat Jalan
+
+Surat jalan dibuat ketika Anda **Process** pesanan penjualan dengan **Generate packing slip** tercentang. Anda juga dapat membuatnya sendiri dan menautkannya ke pesanan penjualan.
+
+Kolom umum: kode, tanggal, pelanggan, pesanan penjualan, lokasi, produk, catatan.
+
+```plantuml
+@startuml
+start
+if (Status Draft?) then (ya)
+ :Change status ke Processed\natau Cancel;
+endif
+if (Status Processed?) then (ya)
+ :Complete;
+ :Isi kuantitas terkirim per produk;
+ if (Ada sisa kuantitas?) then (ya)
+ :Surat jalan baru dibuat\nuntuk sisa;
+ else (tidak)
+ :Surat jalan Completed;
+ endif
+endif
+stop
+@enduml
+```
+
+1. Jika status **Draft**, pakai **Change status** untuk pindah ke **Processed**, atau **Cancel**. Tidak ada tombol **Process** di sini.
+2. Saat **Processed**, klik **Complete**. Isi **kuantitas terkirim** untuk setiap produk. Sisa kuantitas membuka **surat jalan baru**.
+3. Anda dapat **Cancel** surat jalan saat **Draft** atau **Processed**.
+
+Ketika semua surat jalan terkait selesai, pesanan penjualan terkait dapat pindah ke **Completed**. Jika packing dilewati pada pesanan, pesanan tidak menunggu surat jalan.
+
+### Aksi status
+
+| Status saat ini | Tombol | Change status |
+| --- | --- | --- |
+| Draft | Cancel | Processed, Cancelled |
+| Processed | Complete, Cancel | Completed, Cancelled |
+| Completed | — | — |
+| Cancelled | — | — |
+
+**Complete** selalu meminta kuantitas terkirim.
+
+Anda dapat [impor surat jalan dari CSV](/id/user/web/import) jika hak akses mencakup **Impor**.
+
+## Rencana logistik
+
+
Logistik → Aktivitas → Rencana Logistik
+
+Model rencana sama seperti penjualan: karyawan, tanggal, cabang awal/akhir, pelanggan. Lampirkan **surat jalan** bukan faktur.
+
+Driver dan crew membuka rencana hari ini di [mobile](/id/user/mobile/daily-work). Beranda menampilkan kode surat jalan sebagai tugas hari ini.
+
+## Segera hadir
+
+**Memperbarui status surat jalan di mobile** belum tersedia. Driver melihat kode packing yang ditugaskan di Beranda; mereka menyelesaikan surat jalan di aplikasi web (atau operator yang mengerjakannya).
diff --git a/apps/docs-dev/src/id/user/web/plans.md b/apps/docs-dev/src/id/user/web/plans.md
new file mode 100644
index 0000000..2023a9b
--- /dev/null
+++ b/apps/docs-dev/src/id/user/web/plans.md
@@ -0,0 +1,68 @@
+
+
+# Rencana dan kunjungan
+
+
+
+**Rencana** adalah pekerjaan satu karyawan untuk **satu tanggal**: cabang awal, cabang akhir, pelanggan yang dikunjungi, dan dokumen yang harus ditagih atau dikirim.
+
+Tidak ada saklar pengulangan di formulir rencana. Pekerjaan berulang memakai **siklus**, lalu **Generate**.
+
+```plantuml
+@startuml
+start
+if (Perlu rute mingguan berulang?) then (ya)
+ :Buat siklus dengan rute hari kerja;
+ :Generate rencana untuk rentang tanggal;
+else (tidak)
+ :Buat rencana sekali jalan untuk satu tanggal;
+endif
+:Lampirkan faktur (penjualan) atau surat jalan (logistik);
+:Tim lapangan membuka rencana di mobile;
+stop
+@enduml
+```
+
+## Rencana sekali jalan
+
+**Deskripsi halaman buat di aplikasi:** "Buat rencana harian sekali jalan untuk karyawan."
+
+1. Buka **Rencana Penjualan** atau **Rencana Logistik**.
+2. Klik **Buat**.
+3. Pilih **karyawan**, **tanggal** (hari ini atau setelahnya), **cabang awal**, dan **cabang akhir**.
+4. Tambahkan **pelanggan** sebagai destinasi (urutan berpengaruh pada rute).
+5. Setelah pelanggan dipilih:
+ - Rencana penjualan: lampirkan **faktur** pelanggan itu
+ - Rencana logistik: lampirkan **surat jalan** pelanggan itu
+6. Simpan. Status **Draft**, **Aktif**, atau **Diarsipkan** seperti data master lain.
+
+Anda dapat meninjau pratinjau pelanggan dan dokumen terlampir di formulir.
+
+Menyimpan rencana penjualan **tidak** mengubah status faktur.
+
+## Siklus mingguan (berulang)
+
+
Penjualan → Data → Siklus Penjualan, atau Logistik → Data → Siklus Logistik
+
+Siklus adalah **templat kunjungan mingguan** untuk satu karyawan: nomor siklus dan, untuk setiap hari, apakah hari itu aktif, cabang awal/akhir, dan pelanggan.
+
+1. Buat siklus untuk karyawan.
+2. Aktifkan hari kerja dan isi rutenya.
+3. Setel siklus ke **Aktif**.
+
+## Generate rencana dari siklus
+
+Di daftar rencana, klik **Generate**.
+
+1. Pilih **karyawan**.
+2. Pilih tanggal **dari** dan **sampai**.
+3. Konfirmasi. Aplikasi membuat rencana harian dari siklus dan melaporkan berapa yang **dibuat** dan **dilewati** (misalnya jika rencana sudah ada).
+
+## Siapa yang memakai rencana
+
+- **Operator web** membuat dan men-generate rencana, lalu melampirkan dokumen.
+- **Sales dan driver di mobile** melihat rencana hari ini setelah rencana itu ada. Mereka dapat menambah pelanggan ke rencana yang sudah ada; mereka tidak dapat membuat rencana baru di ponsel.
+
+Lihat [Kerja harian mobile](/id/user/mobile/daily-work).
diff --git a/apps/docs-dev/src/id/user/web/sales-workflow.md b/apps/docs-dev/src/id/user/web/sales-workflow.md
new file mode 100644
index 0000000..a26354a
--- /dev/null
+++ b/apps/docs-dev/src/id/user/web/sales-workflow.md
@@ -0,0 +1,154 @@
+
+
+# Alur penjualan
+
+
Penjualan → Aktivitas
+
+Cara menjalankan penjualan: dari permintaan atau pesanan, melalui packing dan faktur, sampai pembayaran.
+
+Anda perlu izin untuk melihat setiap menu. Tombol status (Process, Complete, Submit, Approve, dan seterusnya) hanya muncul jika Anda boleh mengubah data.
+
+## Sebelum mulai
+
+Siapkan data yang dibutuhkan setiap dokumen penjualan:
+
+| Yang dibutuhkan | Tempat membuat |
+| --- | --- |
+| Divisi, cabang, pelanggan, produk | [Pengaturan → Data](/id/user/web/setup) |
+| Sales | Penjualan → Data → Karyawan |
+
+Jika menu tidak muncul, minta administrator memberi hak akses **Lihat** (dan **Ubah** untuk tombol status) pada area itu.
+
+## Alur biasa
+
+```plantuml
+@startuml
+start
+:Permintaan penjualan (opsional);
+:Pesanan penjualan (Draft);
+:Process pesanan;
+fork
+ :Faktur penjualan dibuat;
+fork again
+ :Surat jalan dibuat\n(kecuali dilewati);
+end fork
+if (Ada surat jalan?) then (ya)
+ :Complete kuantitas terkirim;
+endif
+:Buat pembayaran penjualan;
+:Submit lalu Approve;
+stop
+@enduml
+```
+
+1. Opsional buat dan setujui **permintaan penjualan**.
+2. Buat **pesanan penjualan** (dari permintaan, atau dari awal).
+3. Buka pesanan Draft dan klik **Process**. Biarkan **Generate packing slip** tercentang kecuali Anda tidak butuh surat jalan. Process membuat **faktur penjualan**, dan **surat jalan** kecuali dilewati.
+4. Jika ada surat jalan, buka **Logistik → Surat Jalan**, lalu **Complete** dan isi berapa yang terkirim.
+5. Buka faktur dan klik **Create Sales Payment**. **Submit** pembayaran, lalu **Approve** (atau **Reject** / **Rollback**).
+
+Anda juga dapat [impor CSV](/id/user/web/import) untuk permintaan, pesanan, faktur, dan pembayaran.
+
+## Permintaan penjualan
+
+
Penjualan → Aktivitas → Permintaan Penjualan
+
+Permintaan bersifat opsional. Anda dapat langsung ke pesanan penjualan.
+
+1. Klik **Buat**. Isi tanggal, sales, cabang, divisi, pelanggan, alamat, dan minimal satu produk beserta kuantitas. Harga produk dan kode dokumen opsional. Simpan.
+2. Saat status **Draft**, klik **Submit** untuk dikirim ke persetujuan. Anda juga dapat memakai **Change status** untuk menandai **Rejected**.
+3. Saat **Pending**, klik **Approve** atau **Reject**. **Change status** dapat mengembalikannya ke **Draft**.
+4. Setelah **Approved**, tidak ada langkah lagi pada permintaan itu sendiri.
+5. Di halaman detail permintaan, klik **Create Sales Order**. Formulir pesanan terbuka dengan pelanggan, lokasi, dan produk dari permintaan.
+
+## Pesanan penjualan
+
+
Penjualan → Aktivitas → Pesanan Penjualan
+
+1. Klik **Buat**. Isi detail yang sama seperti permintaan. Pada pesanan baru Anda dapat memilih permintaan penjualan di **Source**; itu menyalin permintaan ke formulir. Simpan. Pesanan baru berstatus **Draft**.
+2. Pada pesanan **Draft**, klik **Process**.
+ - Anda akan melihat: *Processing creates a sales invoice and, unless skipped, a packing slip.*
+ - **Generate packing slip** tercentang secara default. Hapus centang jika tidak ingin surat jalan.
+3. Pada **Draft** atau **Processed**, Anda dapat **Cancel**. Tidak ada tombol **Complete** pada pesanan. Jika pesanan kemudian menampilkan **Completed**, itu bukan tombol yang Anda klik di layar ini.
+4. Di halaman detail pesanan Anda dapat melihat surat jalan dan faktur terkait, serta klik **Create Sales Invoice**.
+
+Anda dapat memilih beberapa pesanan lalu Process atau Cancel bersama, selama semuanya dalam status yang mengizinkan aksi itu.
+
+## Surat jalan
+
+Surat jalan ada di **Logistik**, bukan Penjualan. Lihat [Logistik](/id/user/web/logistics).
+
+## Faktur penjualan
+
+
Penjualan → Aktivitas → Faktur Penjualan
+
+Faktur muncul ketika Anda **Process** pesanan. Anda juga dapat membuatnya sendiri, opsional dari pesanan atau surat jalan.
+
+Pada faktur, satu-satunya tombol status adalah **Cancel** (saat faktur **Draft**, **Processed**, atau **Partial**). Anda tidak dapat memilih Processed, Partial, atau Completed sendiri. Label itu tetap bisa tampil di faktur.
+
+Di halaman detail faktur, klik **Create Sales Payment**. Formulir pembayaran terbuka dengan faktur itu dan sisa saldonya.
+
+Anda dapat melampirkan faktur ke [rencana penjualan](/id/user/web/plans). Menyimpan rencana tidak mengubah status faktur.
+
+## Pembayaran penjualan
+
+
Penjualan → Aktivitas → Pembayaran Penjualan
+
+1. Klik **Buat**. Isi tanggal dan minimal satu baris: faktur dan jumlah. Gambar dan catatan opsional. Simpan. Pembayaran baru berstatus **Draft**.
+2. Klik **Submit** untuk pindah ke **Pending**. Anda juga dapat memakai **Change status** untuk menandai **Rejected**.
+3. Saat **Pending**, klik **Approve**, **Reject**, atau **Rollback** (kembali ke **Draft**).
+4. Setelah **Approved**, status tidak dapat diubah lagi. Pembayaran **Rejected** dapat dikembalikan ke **Draft** dengan **Change status**.
+
+Menyetujui pembayaran tidak mengubah status faktur dari layar ini. Muat ulang faktur jika Anda perlu melihat saldo terbaru.
+
+Tim lapangan juga dapat [mencatat pembayaran di mobile](/id/user/mobile/daily-work) dari faktur belum lunas.
+
+## Yang dapat dilakukan di setiap status
+
+**Tombol** adalah aksi berlabel di daftar atau halaman detail. **Change status** adalah dialog terpisah yang menampilkan status yang boleh dipilih. Faktur tidak punya Change status.
+
+### Permintaan penjualan dan pembayaran penjualan
+
+Keduanya memakai Draft → Pending → Approved atau Rejected.
+
+| Status saat ini | Tombol | Change status |
+| --- | --- | --- |
+| Draft | Submit | Rejected |
+| Pending | Approve, Reject. Pembayaran juga punya Rollback (kembali ke Draft) | Draft, Approved, Rejected |
+| Approved | — | — |
+| Rejected | — | Draft |
+
+### Pesanan penjualan
+
+| Status saat ini | Tombol | Change status |
+| --- | --- | --- |
+| Draft | Process, Cancel | Processed, Cancelled |
+| Processed | Cancel | Cancelled |
+| Completed | — | — |
+| Cancelled | — | — |
+
+**Process** selalu membuka dialog centang surat jalan (bukan Change status).
+
+### Faktur penjualan
+
+Anda mungkin melihat Draft, Processed, Partial, Completed, atau Cancelled.
+
+| Status saat ini | Yang dapat dilakukan |
+| --- | --- |
+| Draft, Processed, atau Partial | Cancel |
+| Completed | Tidak ada tombol status |
+| Cancelled | Tidak ada tombol status |
+
+## Yang tidak perlu diklik
+
+Ini bukan tombol di layar:
+
+- **Complete** pada pesanan penjualan
+- Mengatur faktur ke Processed, Partial, atau Completed sendiri
+- Mengubah status faktur dengan menaruhnya di rencana penjualan
+- Mengubah status faktur dengan menyetujui pembayaran
+- Membatalkan pesanan, surat jalan, atau faktur dalam satu klik untuk semua dokumen terkait — **Cancel** hanya berlaku pada dokumen yang sedang dibuka
+
+Jika status dokumen terkait berubah setelah Anda bertindak, buka dokumen itu lagi untuk melihat nilai terbaru.
diff --git a/apps/docs-dev/src/id/user/web/setup.md b/apps/docs-dev/src/id/user/web/setup.md
new file mode 100644
index 0000000..bcc4fbd
--- /dev/null
+++ b/apps/docs-dev/src/id/user/web/setup.md
@@ -0,0 +1,78 @@
+
+
+# Siapkan perusahaan
+
+
Pengaturan → Data dan Pengaturan → Pengguna
+
+Lakukan ini sebelum membuat rencana atau dokumen penjualan. Data yang dibutuhkan layar lain (cabang, divisi, pelanggan, produk, karyawan) harus sudah ada.
+
+## Pengaturan perusahaan
+
+**Menu:** Pengaturan → Data → Pengaturan perusahaan
+
+Ini formulir tunggal, bukan daftar. Simpan:
+
+| Kolom | Dipakai untuk |
+| --- | --- |
+| Tanggal awal siklus | Kapan siklus kunjungan mingguan mulai dihitung |
+| Radius check-in (meter) | Seberapa dekat tim lapangan saat check-in |
+| Interval GPS (detik) | Seberapa sering aplikasi mobile merekam jejak saat bertugas |
+| Radius peringatan checkout (meter) | Kapan mobile memperingatkan bahwa pengguna meninggalkan kunjungan pelanggan |
+
+## Divisi, cabang, pelanggan, produk
+
+**Menu:** Pengaturan → Data
+
+Masing-masing berupa daftar dengan Buat, Detail, Ubah, dan Duplikat. Status: **Draft**, **Aktif**, atau **Diarsipkan**.
+
+| Data | Kolom umum |
+| --- | --- |
+| Divisi | Nama, kode |
+| Cabang | Kode, nama, telepon, NFC ID, alamat, lokasi peta, divisi, hari dan jam kerja |
+| Pelanggan | Kode, nama, telepon, alamat, lokasi peta, NFC ID; kontak saat membuat |
+| Produk | Kode, nama, satuan, harga, merek |
+
+Pilih lokasi di peta untuk cabang dan pelanggan (atau ketik lintang dan bujur).
+
+## Karyawan
+
+Karyawan dipisah menurut tujuan:
+
+| Menu | Jabatan |
+| --- | --- |
+| Penjualan → Data → Karyawan | Sales |
+| Logistik → Data → Karyawan | Driver, crew |
+
+Kolom: kode, nama, telepon, jabatan. Kemudian tautkan **pengguna** ke karyawan agar mobile tahu harus memuat rencana penjualan atau logistik.
+
+## Hak akses
+
+
Pengaturan → Pengguna → Hak Akses
+
+Hak akses adalah kumpulan izin bernama. Di formulir, isi **nama**, **kode**, dan matriks izin. Untuk setiap area Anda dapat mengizinkan:
+
+- **Lihat** — tampilkan menu dan buka halaman
+- **Buat** — buat dan duplikat
+- **Ubah** — edit dan ubah status
+- **Hapus** — hapus
+- **Impor** — impor CSV pada daftar yang didukung
+
+Tanpa **Lihat**, item itu disembunyikan dari sidebar.
+
+## Pengguna
+
+
Pengaturan → Pengguna → Pengguna
+
+1. Klik **Buat**.
+2. Isi **username** dan **password** (wajib saat membuat; saat mengubah, kosongkan untuk tetap memakai kata sandi saat ini).
+3. Pilih **hak akses**.
+4. Opsional tautkan **karyawan** agar login lapangan terhubung ke penjualan atau logistik.
+
+Aktifkan pengguna ketika mereka boleh masuk.
+
+## Segera hadir
+
+- **Ingat saya** di formulir masuk web tidak disimpan
+- **Lupa Kata Sandi** belum tersedia
diff --git a/apps/docs-dev/src/id/user/web/timeline.md b/apps/docs-dev/src/id/user/web/timeline.md
new file mode 100644
index 0000000..b2380f8
--- /dev/null
+++ b/apps/docs-dev/src/id/user/web/timeline.md
@@ -0,0 +1,38 @@
+
+
+# Timeline
+
+
Timeline di sidebar
+
+Timeline menampilkan jejak GPS dan aktivitas lapangan **satu hari** untuk karyawan **sales**. Ini pemutaran ulang dari yang disimpan aplikasi mobile saat orang itu bertugas, bukan umpan langsung.
+
+## Cara memakai
+
+1. Buka **Timeline**.
+2. Pilih **Tanggal**.
+3. Opsional saring **Karyawan** (karyawan sales), atau biarkan semua karyawan.
+4. Cari aktivitas jika daftarnya panjang.
+5. Ganti tab **Di perjalanan** dan **Selesai**.
+6. Pakai **Playback** (Putar, Jeda, Waktu) untuk bergerak di sepanjang rute terekam. Overlay **Lokasi saat ini** adalah kursor playback, bukan titik GPS langsung.
+
+Jika tidak ada data untuk hari itu, peta menampilkan tidak ada data timeline.
+
+## Tampilan aktivitas
+
+Daftar dapat mencakup:
+
+- Check-in cabang / check-out cabang
+- Check-in pelanggan / check-out pelanggan
+- Sales order dibuat
+- Sales request dibuat
+- Pembayaran dibuat
+- Pelanggan dibuat
+
+Jejak direkam di mobile setelah clock-in cabang, memakai **Interval GPS** di [pengaturan perusahaan](/id/user/web/setup).
+
+## Segera hadir
+
+- Pelacakan **langsung** sales atau driver di peta web
+- Timeline khusus **logistik / driver** (layar ini memuat karyawan sales)
diff --git a/apps/docs-dev/src/index.md b/apps/docs-dev/src/index.md
index 6c0492f..111f4a6 100644
--- a/apps/docs-dev/src/index.md
+++ b/apps/docs-dev/src/index.md
@@ -73,205 +73,3 @@ import { ShoppingCart, Truck, Smartphone, MapPin } from 'lucide-vue-next'
-
-