{"connector":{"api":{"base_url":"","timeout_ms":15000,"retries":1,"retry_delay_ms":300,"headers":{"X-Client":"gesit-backoffice/1.0"}},"auth":{"mode":"cookie","sso_url":"/api/auth/oidc/login","local_login":true,"csrf_cookie":"gesit_csrf","csrf_header":"X-CSRF-Token","session_hint":"gesit_auth"},"mock":{"enabled":false},"endpoints":{"auth_login":"POST /api/auth/login","auth_logout":"POST /api/auth/logout","auth_me":"GET /api/auth/me","monitor_today":"GET /api/monitor/today","monitor_map":"GET /api/monitor/map","visit_recent":"GET /api/visits/recent","visit_get":"GET /api/visits/{id}","visit_photos":"GET /api/visits/{id}/photos","visit_flag":"POST /api/visits/{id}/flag","plan_week":"GET /api/beatplan","plan_day":"GET /api/beatplan/{day}","outlet_list":"GET /api/outlets","outlet_get":"GET /api/outlets/{id}","outlet_update":"PUT /api/outlets/{id}","outlet_import":"POST /api/outlets/import","outlet_approve":"POST /api/outlets/{id}/approve","product_list":"GET /api/products","product_update":"PUT /api/products/{sku}/display","product_sync":"POST /api/sync/products","promo_list":"GET /api/promotions","promo_get":"GET /api/promotions/{id}","promo_create":"POST /api/promotions","promo_update":"PUT /api/promotions/{id}","promo_publish":"POST /api/promotions/{id}/publish","promo_simulate":"POST /api/promotions/simulate","survey_list":"GET /api/surveys","survey_get":"GET /api/surveys/{id}","survey_create":"POST /api/surveys","survey_update":"PUT /api/surveys/{id}","survey_publish":"POST /api/surveys/{id}/publish","survey_responses":"GET /api/surveys/{id}/responses","report_get":"GET /api/reports/{name}","report_export":"POST /api/reports/{name}/export","report_schedule":"POST /api/reports/{name}/schedule","integration_status":"GET /api/integration/status","integration_logs":"GET /api/integration/logs","integration_test":"POST /api/integration/test","integration_sync":"POST /api/sync/full","integration_retry":"POST /api/integration/retry/{id}","user_list":"GET /api/users","user_create":"POST /api/users","user_update":"PUT /api/users/{id}","user_unbind":"POST /api/users/{id}/unbind","params_get":"GET /api/settings","params_save":"PUT /api/settings"}},"access":{"settings":{"default":"deny","superuser":["superadmin"],"roles":["superadmin","admin","admin_data","supervisor","manajemen","sales"]},"access":{"monitor":["supervisor","admin_data","manajemen","admin"],"monitor.stats":["supervisor","admin_data","manajemen","admin"],"monitor.reps":["supervisor","admin_data","manajemen","admin"],"monitor.legend":["supervisor","admin_data","manajemen","admin"],"monitor.alerts":["supervisor","admin_data","manajemen","admin"],"monitor.map":["supervisor","admin_data","manajemen","admin"],"monitor.recent":["supervisor","admin_data","manajemen","admin"],"monitor.export":["supervisor","manajemen","admin"],"kunjungan":["supervisor","admin_data","manajemen","admin"],"kunjungan.summary":["supervisor","admin_data","manajemen","admin"],"kunjungan.list":["supervisor","admin_data","manajemen","admin"],"kunjungan.location":["supervisor","admin_data","manajemen","admin"],"kunjungan.trail":["supervisor","admin_data","manajemen","admin"],"kunjungan.photos":["supervisor","admin_data","manajemen","admin"],"kunjungan.order":["supervisor","admin_data","manajemen","admin"],"kunjungan.pdf":["supervisor","admin_data","manajemen","admin"],"kunjungan.flag":["supervisor","admin"],"rencana":["supervisor","admin_data","manajemen","admin"],"rencana.calendar":["supervisor","admin_data","manajemen","admin"],"rencana.day":["supervisor","admin_data","manajemen","admin"],"outlet":["supervisor","admin_data","manajemen","admin"],"outlet.list":["supervisor","admin_data","manajemen","admin"],"outlet.import":["admin_data","admin"],"outlet.approve":["admin_data","admin"],"outlet.edit":["supervisor","admin_data","admin"],"outlet.deactivate":["admin_data","admin"],"produk":["supervisor","admin_data","manajemen","admin"],"produk.catalog":["supervisor","admin_data","manajemen","admin"],"produk.pricelist":["supervisor","admin_data","manajemen","admin"],"produk.uom":["supervisor","admin_data","manajemen","admin"],"produk.edit":["admin_data","admin"],"produk.sync":["admin_data","admin"],"promo":["supervisor","admin_data","manajemen","admin"],"promo.list":["supervisor","admin_data","manajemen","admin"],"promo.create":["admin_data","admin"],"promo.edit":["admin_data","admin"],"promo.simulate":["supervisor","admin_data","manajemen","admin"],"promo.publish":["admin_data","admin"],"promo.end":["admin_data","admin"],"survei":["supervisor","admin_data","manajemen","admin"],"survei.list":["supervisor","admin_data","manajemen","admin"],"survei.create":["admin_data","admin"],"survei.builder":["admin_data","admin"],"survei.version":["admin_data","admin"],"survei.publish":["admin_data","admin"],"survei.types":["supervisor","admin_data","manajemen","admin"],"survei.results":["supervisor","admin_data","manajemen","admin"],"survei.download":["supervisor","admin_data","manajemen","admin"],"laporan":["supervisor","admin_data","manajemen","admin"],"laporan.kpi":["supervisor","admin_data","manajemen","admin"],"laporan.table":["supervisor","admin_data","manajemen","admin"],"laporan.list":["supervisor","admin_data","manajemen","admin"],"laporan.export":["supervisor","admin_data","manajemen","admin"],"laporan.schedule":["supervisor","manajemen","admin"],"integrasi":["admin"],"integrasi.status":["admin"],"integrasi.entities":["admin"],"integrasi.mapping":["admin"],"integrasi.connection":["admin"],"integrasi.issues":["admin"],"integrasi.logs":["admin"],"integrasi.retry":["admin"],"integrasi.sync":["admin"],"integrasi.test":["admin"],"pengguna":["admin"],"pengguna.list":["admin"],"pengguna.create":["admin"],"pengguna.edit":["admin"],"pengguna.unbind":["admin"],"pengguna.matrix":["admin"],"parameter":["admin"],"parameter.view":["admin"],"parameter.edit":["admin"]}},"mapping":{"settings":{"envelope":"data","keys":"none","error_path":"message"}},"app":{"app":{"name":"Gesit Back Office","brand":"Gesit","brand_sub":"Back Office","logo":"./logo.png","logo_mark":"./logo-mark.png","version":"1.5.1","owner":"PT WCS Abyakta Nawasena","language":"id","locale":"id-ID","currency":"IDR","timezone":"Asia/Jakarta","support_email":"it@perusahaan.co.id"},"ui":{"page_size":50,"monitor_refresh_seconds":60,"search_debounce_ms":300,"toast_ms":3200,"cache_max_entries":40,"prefetch":true,"prefetch_idle_ms":1500,"print_wait_ms":3000},"upload":{"import_types":[".csv",".xlsx"],"import_max_mb":10,"image_types":[".jpg",".jpeg",".png",".webp"],"image_max_mb":2},"input":{"text_max":255,"note_max":500,"email_max":254,"password_max":256,"short_max":60,"question_max":300,"options_max":30,"photos_max":10,"answer_max":500,"geofence_min_m":10,"geofence_max_m":5000},"plan":{"work_days":6},"promo":{"default_days":30,"preview_qty":23},"print":{"new_page_per_section":false},"map":{"tile_url":"https://tile.openstreetmap.org/{z}/{x}/{y}.png","subdomains":[],"attribution":"© OpenStreetMap contributors","attribution_url":"https://www.openstreetmap.org/copyright","tile_size":256,"min_zoom":2,"max_zoom":19,"fit_max_zoom":15,"wheel_step":100,"padding":0.08,"spread_px":10}},"lang":{"app":{"demo_banner":"MODE DEMO - data contoh, login menerima kata sandi apa pun. Matikan [mock] di config/connector.toml untuk produksi.","skip":"Lewati ke konten","nav_label":"Navigasi utama","menu":"Menu","logout":"Keluar","forbidden":"Anda tidak memiliki akses ke halaman ini.","not_found":"Halaman tidak ditemukan.","go_home":"Ke halaman utama","page_failed":"Halaman gagal dimuat: {msg}","printed":"Dicetak {at} oleh {by}"},"nav":{"group_ops":"Operasional","group_master":"Data induk","group_trade":"Perdagangan","group_report":"Laporan","group_system":"Sistem","monitor":"Monitor hari ini","kunjungan":"Detail kunjungan","rencana":"Rencana kunjungan","outlet":"Outlet","produk":"Produk dan harga","promo":"Program dagang","survei":"Survei lapangan","laporan":"Produktivitas tim","integrasi":"Integrasi D365 BC","pengguna":"Pengguna dan peran","parameter":"Parameter"},"common":{"ok":"OK","cancel":"Batal","save":"Simpan","save_changes":"Simpan perubahan","saving":"Menyimpan…","processing":"Memproses…","loading":"Memuat…","retry":"Coba lagi","reload":"Muat ulang","refresh":"Segarkan","export":"Ekspor","edit":"Ubah","view":"Lihat","open":"Buka","remove":"Hapus","reset":"Setel ulang","apply":"Terapkan","search":"Cari","all":"Semua","yes":"Ya","no":"Tidak","empty":"Tidak ada data.","actions":"Aksi","region":"Wilayah","need_backend":"Fitur ini memerlukan backend (mode mock aktif)."},"err":{"unexpected":"Terjadi kesalahan tak terduga. Coba lagi; bila berulang, muat ulang halaman.","timeout":"Waktu tunggu habis","network":"Tidak dapat terhubung ke server","invalid":"Respons server tidak valid","not_json":"Respons server tidak valid (bukan JSON)","http_400":"Permintaan tidak valid","http_401":"Sesi berakhir, silakan masuk lagi","http_403":"Anda tidak memiliki akses","http_404":"Data tidak ditemukan","http_409":"Data sudah diubah atau tidak dapat diproses saat ini","http_413":"Data terlalu besar","http_422":"Data belum lengkap atau tidak valid","http_423":"Akun terkunci sementara","http_429":"Terlalu banyak permintaan, coba lagi sebentar","http_5xx":"Server sedang bermasalah","http_other":"Kesalahan HTTP {status}"},"form":{"not_blank":"Wajib diisi (tidak boleh hanya spasi).","bad_range":"Tanggal selesai tidak boleh sebelum tanggal mulai."},"fmt":{"duration":"{m} menit {s} detik","time_sep":":"},"load":{"refresh_failed":"Gagal memperbarui data: {msg}"},"pager":{"label":"Halaman daftar","range":"Menampilkan {from}–{to} dari {total}","page":"Halaman {page} dari {pages}","prev":"Sebelumnya","next":"Berikutnya"},"map":{"label":"Peta sebaran","empty":"Belum ada titik dengan koordinat.","zoom_in":"Perbesar","zoom_out":"Perkecil","reset":"Tampilkan semua titik","hint":"Seret atau tombol panah untuk menggeser; scroll mouse, klik ganda, atau tombol plus/minus untuk zoom."},"upload":{"err_empty":"Pilih berkas terlebih dahulu.","err_type":"Jenis berkas tidak didukung. Gunakan: {types}.","err_size":"Ukuran berkas melebihi batas {mb} MB."},"legend":{"done":"Selesai","now":"Berlangsung","wait":"Terjadwal","miss":"Terlewat","done_long":"Selesai - check-in dan check-out lengkap","now_long":"Berlangsung - sudah check-in, belum check-out","wait_long":"Terjadwal - belum dikunjungi","miss_long":"Terlewat - hari berakhir tanpa check-in"},"login":{"title":"Masuk","sub":"Konsol pengelolaan dan pemantauan tim penjualan lapangan.","email":"Email kantor","password":"Kata sandi","remember":"Ingat perangkat ini selama 30 hari","forgot":"Lupa kata sandi","forgot_subject":"Lupa kata sandi Gesit Back Office","submit":"Masuk","busy":"Memproses…","or":"atau","sso":"Masuk dengan akun Microsoft","wrong":"Email atau kata sandi salah.","oidc_access_denied":"Masuk dengan Microsoft dibatalkan atau ditolak.","oidc_no_account":"Akun Microsoft Anda belum terdaftar di Gesit Back Office. Hubungi administrator.","oidc_locked":"Akun dikunci sementara. Coba lagi nanti.","oidc_expired":"Sesi masuk kedaluwarsa. Silakan coba lagi.","oidc_generic":"Masuk dengan Microsoft gagal. Silakan coba lagi.","need_email":"Masukkan email kantor Anda.","bad_email":"Format email tidak valid. Contoh: nama@perusahaan.co.id","need_password":"Masukkan kata sandi.","show":"Tampilkan","hide":"Sembunyikan","show_password":"Tampilkan kata sandi","hide_password":"Sembunyikan kata sandi","caps_on":"Caps Lock aktif.","sso_busy":"Mengalihkan ke Microsoft…","no_method":"Belum ada metode masuk yang diaktifkan. Hubungi administrator.","demo_hint":"Mode demo: email & kata sandi apa saja. Kata sandi \"salah\" untuk mencoba galat; email berisi admin/siti/reza untuk peran lain.","secure_note":"Akses hanya untuk karyawan berwenang. Aktivitas masuk dicatat.","hero_title":"Satu konsol untuk tim penjualan lapangan.","hero_text":"Pantau kunjungan, kelola data induk, dan jaga sinkronisasi dengan Business Central dari satu tempat.","point_monitor":"Monitor kunjungan & order hari ini","point_master":"Outlet, produk, promo, dan survei terpusat","point_bc":"Terhubung dengan D365 Business Central"},"monitor":{"sub":"{date} - wilayah {region}. Angka diperbarui setiap kali perangkat lapangan tersinkron, bukan secara langsung.","stat_done":"Kunjungan selesai","stat_active":"Rep aktif di lapangan","stat_value":"Nilai order hari ini","stat_missed":"Kunjungan terlewat","stat_unsynced":"Perangkat belum sinkron","reps_title":"Progres per sales rep","reps_note":"Pita progres memakai urutan yang sama dengan rencana kunjungan: selesai, berlangsung, terjadwal, terlewat.","col_rep":"Sales rep","col_area":"Area","col_progress":"Progres kunjungan","col_value":"Nilai order","col_sync":"Sinkron terakhir","col_status":"Status","stale":"Belum sinkron > 2 jam","legend_title":"Legenda pita","alerts_title":"Perlu ditindaklanjuti","no_alerts":"Tidak ada yang perlu ditindaklanjuti.","map_title":"Sebaran kunjungan","map_note":"Titik merah menandai outlet terlewat. Klik titik membuka detail kunjungan.","map_basemap_note":"Posisi dari koordinat; peta dasar tidak diaktifkan","rep_position":"Posisi rep terakhir","rep_at":"{name} - {time}","recent_title":"Kunjungan terakhir masuk","col_time":"Waktu","col_outlet":"Outlet","col_rep_short":"Rep","col_activity":"Aktivitas"},"viewer":{"title":"Pratinjau foto","open":"Perbesar foto {label}","count":"{n} dari {total}","prev":"Foto sebelumnya","next":"Foto berikutnya","close":"Tutup"},"visit":{"title":"Kunjungan {id}","sub":"{outlet} - dikunjungi {rep}, {date}.","pdf":"Unduh PDF","flag":"Tandai untuk ditinjau","flagged":"Sudah ditandai","flag_title":"Tandai kunjungan untuk ditinjau","flag_msg":"Isi kunjungan tidak dapat diubah. Tanda ini memberi tahu tim bahwa kunjungan perlu diperiksa.","flag_note":"Catatan (opsional)","flag_done":"Kunjungan ditandai untuk ditinjau","flag_info":"Ditandai untuk ditinjau oleh {by} pada {at}","summary":"Ringkasan kunjungan","summary_note":"Waktu dan koordinat diambil dari perangkat saat kejadian; waktu terima server ditampilkan terpisah.","outlet":"Outlet","outlet_code":"Kode outlet","rep":"Sales rep","route":"Rute","checkin_device":"Check-in (waktu perangkat)","checkin_server":"Check-in diterima server","checkout_device":"Check-out (waktu perangkat)","checkout_server":"Check-out diterima server","duration":"Durasi","distance_label":"Jarak dari titik outlet","distance":"{d} m","distance_in":"{d} m - dalam radius {r} m","distance_out":"{d} m - di luar radius {r} m","location":"Validasi lokasi","location_note":"Titik check-in terhadap radius outlet","outlet_point":"Titik outlet","checkin_point":"Titik check-in","radius_legend":"Radius geofence {r} m","coord_checkin":"Koordinat check-in","coord_outlet":"Koordinat outlet","gps":"Akurasi GPS","mode":"Mode perangkat","trail":"Jejak aktivitas","offline":"luring","photos":"Foto kunjungan","photos_note":"Foto disimpan dengan koordinat dan cap waktu perangkat. Tautan foto berlaku sampai {time}.","order":"Order pada kunjungan ini","order_note":"Status sinkronisasi ke D365 Business Central: {status}, Sales Order {no}.","client_ref":"Nomor acuan perangkat (anti-duplikat)","payment":"Syarat pembayaran","price_diff":"Selisih harga dengan Business Central {amount} - dilaporkan untuk ditinjau.","col_sku":"SKU","col_product":"Produk","col_uom":"Satuan","col_qty":"Qty","col_price":"Harga","col_discount":"Diskon","col_promo":"Program","col_amount":"Jumlah","subtotal":"Subtotal","promo_discount":"Diskon program dagang","tax":"PPN {rate}%","total":"Total","no_order":"Kunjungan tanpa order."},"plan":{"sub":"Rencana kunjungan disusun setiap sales dari aplikasi mobile. Halaman ini untuk memantau.","period":"Periode","prev_week":"Minggu sebelumnya","next_week":"Minggu berikutnya","this_week":"Minggu ini","route":"Rute","calendar_title":"Jumlah outlet terjadwal per hari","calendar_note":"Angka menunjukkan jumlah outlet yang dijadwalkan sales. Klik angka untuk melihat urutan kunjungannya.","cell_label":"{rep}, {date}: {n} outlet","empty_week":"Belum ada sales pada periode ini.","day_title":"Urutan kunjungan - {rep}, {date}","day_title_empty":"Urutan kunjungan","pick_cell":"Pilih angka pada kalender untuk melihat urutannya.","sent":"Perangkat terakhir mengambil rencana ini pada {at}.","col_seq":"Urutan","col_outlet":"Outlet","col_channel":"Channel","col_eta":"Estimasi tiba","col_cycle":"Siklus","empty_day":"Tidak ada kunjungan terjadwal."},"outlet":{"sub":"{active} outlet aktif di {regions} wilayah. Perubahan di sini terkirim ke perangkat lapangan pada sinkronisasi berikutnya.","import":"Impor CSV/XLSX","import_title":"Impor massal outlet","import_note":"Format {types}, maksimal {mb} MB. Baris tanpa koordinat valid ditolak dan dilaporkan per baris.","import_file":"Berkas impor","import_run":"Unggah dan validasi","import_done":"Impor selesai diproses","import_summary":"{total} baris diproses: {ok} diterima, {bad} ditolak.","search_ph":"Nama, kode, atau alamat","channel":"Channel","status":"Status","route":"Rute","rep":"Rep","last_visit":"Kunjungan terakhir","list_title":"Daftar outlet","list_note":"Outlet baru yang didaftarkan rep dari lapangan berstatus “Perlu verifikasi” dan baru dibuat sebagai Customer di BC setelah disetujui.","empty":"Tidak ada outlet yang cocok dengan filter.","col_row":"Baris","col_code":"Kode","col_name":"Nama outlet","col_status":"Status","col_message":"Keterangan","approve":"Setujui","approve_title":"Setujui outlet baru","approve_msg":"Setujui “{name}”? Outlet akan dibuat sebagai Customer di Business Central.","approved":"Outlet disetujui","edit_title":"Ubah outlet - {code}","edit_note":"Kode outlet, limit kredit, dan saldo piutang berasal dari Business Central dan tidak dapat diubah di sini. Koordinat dan radius milik Gesit, tidak dikirim ke BC.","from_bc":"Dari D365 BC, hanya baca","f_name":"Nama outlet","f_class":"Klasifikasi","f_address":"Alamat","f_coord":"Koordinat","f_coord_hint":"Ambil dari peta atau dari check-in terakhir","f_coord_ph":"-7.31851, 112.78097","f_radius":"Radius check-in (m)","f_radius_hint":"Kosongkan untuk memakai nilai bawaan sistem","f_owner":"Pemilik","f_phone":"Telepon","f_pricelist":"Price list","f_credit":"Limit kredit","f_receivable":"Saldo piutang","st_active":"Aktif","st_inactive":"Nonaktif","deactivate":"Nonaktifkan","deactivate_hint":"Penonaktifan tidak menghapus riwayat kunjungan dan tidak menghapus Customer di BC.","deactivate_title":"Nonaktifkan outlet","deactivate_msg":"Outlet tidak lagi muncul di aplikasi lapangan. Riwayat kunjungan dan Customer di BC tetap ada.","coord_invalid":"Koordinat tidak valid. Contoh: -7.31851, 112.78097","saved":"Perubahan outlet disimpan"},"product":{"sub":"Katalog yang tampil di aplikasi lapangan. Produk dan harga dasar ditarik dari D365 Business Central.","sync":"Sinkronkan dari D365 BC","sync_now":"Jalankan sinkronisasi sekarang","sync_started":"Sinkronisasi dari D365 BC dimulai","tab_catalog":"Katalog","tab_pricelist":"Price list","tab_uom":"Satuan jual","search_ph":"Nama atau SKU","catalog_title":"Katalog produk","catalog_note":"Nama, kategori, harga, dan satuan hanya baca. Ubah di D365 BC, lalu jalankan sinkronisasi.","pricelist_note":"Price list dipetakan ke klasifikasi outlet; satu outlet terikat tepat satu price list.","uom_note":"Konversi satuan jual ke satuan dasar, sumber D365 BC.","col_sku":"SKU","col_name":"Produk","col_category":"Kategori","col_uom":"Satuan jual","col_wholesale":"Harga grosir","col_traditional":"Harga tradisional","col_visible":"Tampil di aplikasi","col_pricelist":"Price list","col_outlet_class":"Klasifikasi outlet","col_items":"Jumlah item","col_updated":"Diperbarui","col_factor":"Isi","col_base":"Satuan dasar","configure":"Atur tampilan","edit_title":"Pengaturan tampilan produk","edit_note":"Yang dapat diubah: nama tampil, urutan tampil, gambar, dan tampil atau tidaknya produk.","pick":"Pilih “Atur tampilan” pada produk untuk mengubah tampilannya di aplikasi.","from_bc":"Dari D365 BC, hanya baca","f_bc_name":"Nama di BC","f_barcode":"Barcode","f_display":"Nama tampil di aplikasi","f_order":"Urutan tampil","f_image":"Gambar produk","f_image_hint":"Format {types}, maksimal {mb} MB.","hide_note":"Menyembunyikan produk tidak menghapusnya dari D365 BC dan tidak memengaruhi order lama.","saved":"Pengaturan produk disimpan","last_sync":"Sinkronisasi terakhir","sync_products":"Produk","sync_rows":"{at} - {n} baris","sync_lists":"{at} - {n} daftar"},"promo":{"sub":"Skema promosi yang diterapkan otomatis oleh aplikasi saat rep menyusun order.","create":"Buat program","list_title":"Program aktif dan terjadwal","col_code":"Kode","col_name":"Nama program","col_type":"Jenis","col_period":"Berlaku","col_scope":"Cakupan","col_status":"Status","copy":"Salin","copy_name":"{name} (salinan)","builder_title":"Susun program - {code} {name}","builder_new":"Susun program baru","builder_note":"Mesin promo berjalan di perangkat agar tetap bekerja tanpa sinyal. Program baru berlaku setelah perangkat tersinkron.","ended_note":"Program sudah berakhir dan hanya dapat dilihat. Gunakan “Salin” untuk membuat program serupa.","step_basic":"Ketentuan dasar","step_scope":"Cakupan","step_conditions":"Syarat pemicu","step_result":"Hasil yang diterapkan","f_name":"Nama program","f_start":"Mulai","f_end":"Berakhir","f_channel":"Channel","f_class":"Kelas outlet","f_max":"Batas maksimum per order ({unit} bonus)","f_combinable":"Dapat digabung dengan program lain","if":"Jika","and":"Dan","then":"Maka","cond_field":"Kolom syarat","cond_op":"Operator","cond_value":"Nilai","add_condition":"Tambah syarat","res_action":"Aksi","res_qty":"Jumlah bonus","res_unit":"Satuan","res_sku":"SKU bonus","res_per":"Kelipatan","per_multiple":"per kelipatan","preview_prefix":"Pratinjau: order","preview_qty":"Jumlah order untuk pratinjau","preview":"{unit} menghasilkan {bonus} {unit} bonus.","preview_capped":"{unit} menghasilkan {bonus} {unit} bonus (dibatasi maksimum per order).","save_draft":"Simpan draf","draft_saved":"Draf disimpan","publish":"Terbitkan","publish_title":"Terbitkan program","publish_msg":"Program masuk paket konfigurasi dan berlaku setelah perangkat tersinkron.","published":"Program diterbitkan - versi konfigurasi {version}","end":"Akhiri program","end_title":"Akhiri program","end_msg":"“{name}” diakhiri hari ini. Program yang pernah aktif tidak dihapus agar order lama tetap dapat ditelusuri.","ended":"Program diakhiri"},"survey":{"sub":"Susunan pertanyaan yang diisi rep saat berada di outlet. Perubahan berlaku tanpa memperbarui aplikasi.","create":"Buat survei","list_title":"Daftar survei","col_name":"Nama survei","col_period":"Periode","col_version":"Versi","col_responses":"Jawaban","col_status":"Status","builder_title":"Susun survei - {name}","builder_new":"Susun survei baru","locked":"Survei ini sudah terisi {n} kali sehingga susunannya tidak dapat diubah.","version":"Buat versi baru","version_title":"Buat versi baru","version_msg":"Salinan survei dibuat sebagai draf versi berikutnya. Jawaban versi lama tetap utuh.","version_done":"Versi baru dibuat","f_name":"Nama survei","f_start":"Mulai","f_end":"Berakhir","f_channel":"Cakupan channel","f_mandatory":"Wajib diisi","mandatory_yes":"Ya, sebelum check-out","mandatory_no":"Tidak wajib","q_type":"Jenis pertanyaan","q_text":"Teks pertanyaan","q_options":"Pilihan jawaban, pisahkan dengan koma","q_columns":"Kolom tabel, pisahkan dengan koma","q_min":"Nilai minimum","q_max":"Nilai maksimum","q_min_photos":"Jumlah foto minimum","q_max_length":"Panjang jawaban maksimum","no_questions":"Belum ada pertanyaan.","add_question":"Tambah pertanyaan","save_draft":"Simpan draf","saved":"Survei disimpan","publish":"Terbitkan","publish_title":"Terbitkan survei","publish_msg":"Survei masuk paket konfigurasi dan berlaku setelah perangkat tersinkron.","published":"Survei diterbitkan - versi konfigurasi {version}","download":"Unduh jawaban dan foto","types_title":"Jenis pertanyaan yang didukung","results_title":"Hasil terkumpul","r_filled":"Outlet terisi","r_filled_of":"{n} dari {total}","r_photos":"Foto terkumpul","r_avg":"Rata-rata waktu isi"},"report":{"title":"Laporan","sub":"Laporan operasional tim lapangan. Untuk analitik lintas wilayah dan periode panjang, gunakan dasbor Power BI pada fase kedua.","export_xlsx":"Unduh Excel","export_pdf":"Unduh PDF","export_queued":"Ekspor sedang disiapkan. Tautan unduh akan dikirim ke surel Anda.","export_queued_mock":"Mode mock: pekerjaan ekspor dibuat. Pada backend sungguhan tautan unduh dikirim lewat surel.","f_report":"Laporan","f_from":"Dari","f_to":"Sampai","range_invalid":"Tanggal “Dari” harus sebelum “Sampai”.","list_title":"Laporan yang tersedia","schedule_title":"Jadwal pengiriman - {name}","s_email":"Kirim ke","s_frequency":"Frekuensi","s_format":"Format","schedule_save":"Simpan jadwal","schedule_saved":"Jadwal pengiriman disimpan"},"integ":{"title":"Integrasi D365 Business Central","sub":"Pertukaran data antara Gesit dan Business Central. Halaman ini untuk administrator sistem.","view_logs":"Lihat log","sync_full":"Jalankan sinkronisasi penuh","sync_started":"Sinkronisasi penuh dimulai (tercatat di jejak audit)","connected":"Terhubung","disconnected":"Terputus","s_connection":"Status koneksi","s_last_full":"Sinkronisasi penuh terakhir","s_device":"Tertahan di perangkat","s_rejected":"Ditolak Business Central","s_manual":"Perlu tindakan manual","entities_title":"Entitas yang dipertukarkan","entities_note":"Data induk selalu berasal dari Business Central; transaksi lapangan selalu menuju Business Central.","col_gesit":"Entitas Gesit","col_bc":"Entitas Business Central","col_dir":"Arah","col_trigger":"Pemicu","col_last":"Terakhir","col_count":"Jumlah","col_note":"Catatan","col_status":"Status","col_time":"Waktu","col_ref":"Acuan","col_message":"Keterangan","col_gesit_field":"Field Gesit","col_bc_field":"Field Business Central","dir_in":"BC → Gesit","dir_out":"Gesit → BC","issues_title":"Antrean bermasalah","issue_device":"Tertahan di perangkat","issue_device_note":"Perangkat belum tersinkron - bukan kegagalan integrasi.","issue_rejected":"Ditolak Business Central","issue_rejected_note":"Sudah sampai di BC tetapi ditolak; dapat dikirim ulang setelah diperiksa.","issue_manual":"Perlu tindakan manual","issue_manual_note":"Kegagalan karena data induk (mis. item tidak ada di BC); tidak dicoba ulang otomatis.","device_line":"{n} transaksi tertahan sejak {since}","none":"Tidak ada.","retry":"Kirim ulang","retried":"Transaksi dikirim ulang","connection_title":"Pengaturan koneksi","c_env":"Lingkungan BC","c_company":"Company","c_method":"Metode","c_full":"Jam sinkronisasi penuh","c_retry":"Percobaan ulang bila gagal","c_retention":"Masa simpan log","days":"{n} hari","test":"Uji koneksi","test_ok":"Koneksi ke Business Central berhasil (tercatat di jejak audit)","mapping_title":"Pemetaan field - Order penjualan","mapping_note":"Hanya baca pada versi pertama. Nomor acuan perangkat disimpan pada External Document No. agar pengiriman ulang tidak membuat Sales Order ganda.","logs_title":"Log integrasi","logs_note":"Setiap panggilan ke Business Central dicatat beserta muatan permintaan dan tanggapan.","f_entity":"Entitas","payload":"Lihat muatan","request":"Permintaan","response":"Tanggapan"},"user":{"sub":"Akses dibatasi menurut hierarki wilayah. Seorang pengguna hanya melihat data wilayah yang ditugaskan kepadanya.","create":"Tambah pengguna","create_title":"Tambah pengguna","created":"Pengguna dibuat","edit_title":"Ubah pengguna - {name}","saved":"Pengguna disimpan","form_note":"Pengguna web dibuat melalui Entra ID bila tersedia; akun lokal hanya untuk masa pilot.","list_title":"Pengguna","col_name":"Nama","col_email":"Email","col_role":"Peran","col_scope":"Cakupan wilayah","col_device":"Perangkat terikat","col_auth":"Metode masuk","col_status":"Status","col_module":"Modul","f_auth":"Metode masuk","f_auth_hint":"Akun lokal hanya untuk masa pilot.","f_level":"Tingkat cakupan","f_scope":"Cakupan","auth_entra":"Microsoft Entra ID","auth_local":"Akun lokal (pilot)","st_active":"Aktif","st_inactive":"Nonaktif","deactivate":"Nonaktifkan","deactivate_hint":"Penonaktifan tidak menghapus riwayat kunjungan dan order milik akun.","deactivate_title":"Nonaktifkan pengguna","deactivate_msg":"{name} tidak dapat masuk lagi. Riwayat kunjungan dan order tetap tersimpan.","unbind":"Lepas perangkat","unbind_title":"Lepas keterikatan perangkat","unbind_msg":"Lepas {device} dari {name}? Rep harus masuk ulang di perangkat baru.","unbind_reason":"Alasan (wajib, tercatat di jejak audit)","unbound":"Perangkat dilepas","matrix_title":"Matriks hak akses","matrix_note":"Disusun otomatis dari aturan akses yang ditegakkan server. Cakupan data (nasional, wilayah, rute) mengikuti cakupan tiap pengguna dan diterapkan di lapisan data, bukan hanya menyembunyikan menu.","module_mobile":"Aplikasi mobile","access_full":"Penuh","access_partial":"Sebagian","access_view":"Lihat","access_none":"Tidak"},"param":{"title":"Parameter sistem","sub":"Ketentuan yang mengatur perilaku aplikasi lapangan. Perubahan berlaku setelah perangkat tersinkron.","save":"Simpan parameter","saved":"Parameter disimpan - versi konfigurasi {version}","version":"Versi paket konfigurasi","updated_by":"Terakhir diubah oleh","updated_at":"Waktu perubahan terakhir","validation_hint":"Memengaruhi validasi kunjungan - uji ulang setelah diubah","validation_title":"Parameter validasi diubah","validation_msg":"Perubahan berikut menentukan diterima atau ditolaknya kunjungan dan wajib diuji ulang: {fields}.","save_anyway":"Simpan dan uji ulang","note":"Seluruh parameter disimpan per tenant, dikirim ke perangkat sebagai satu paket konfigurasi bersama promo dan survei, dan setiap perubahan tercatat di jejak audit."}}}