SIMAK POS
Kasir POS
Penjualan OTC, gerbang shift, promo, kupon, poin, hold F6, tuslah, void Admin/Apoteker, dan cetak struk.
Layar Kasir (/) adalah meja penjualan obat bebas. Katalog berasal dari cache SQLite. Hanya lot pool otc yang bisa dijual — lot resep harus dimutasikan dulu.
Prasyarat
- Login sebagai Kasir, Apoteker, atau Admin
- Katalog sudah ditarik di Sinkronisasi
- Ada lot OTC lokal
- Shift Kasir sudah dibuka untuk Kasir, Apoteker, dan Admin
- Printer sudah diuji di Perangkat (opsional)
Shift wajib untuk semua peran
Jika shift tertutup, tombol bayar ditolak dengan Shift kasir belum dibuka. Buka /shift, isi modal awal, lalu kembali ke Kasir. Admin tidak lagi dikecualikan di POS. Di kasir web, Admin masih boleh membayar tanpa shift.
Alur penjualan
- Buka Kasir. Mode sentuh punya kolom cari, teks 80 dari N, dan Tampilkan lebih banyak. Jika katalog kosong, klik Sinkronkan sekarang.
- Pindai barcode atau ketuk kartu produk. Scanner USB HID mengetik ke kolom pindai lalu Enter.
- Lot terpilih mengikuti FEFO. Pilih satuan bila obat punya Data Satuan (qty harus bilangan bulat lebih dari 0, lalu dikonversi ke satuan dasar).
- Promo (PWP/BOGO/bundling/harga khusus) dihitung otomatis dalam Rupiah bulat. Satu baris keranjang hanya menerima promo pertama yang cocok.
- Isi member bila ada. Redeem poin — 1 poin = Rp100. Jangan memasukkan nilai poin ke kolom diskon manual.
- Ketik kode kupon lalu Cek Kupon (validasi online). Diskon kupon baru muncul setelah lolos.
- Isi diskon manual, tuslah, dan embalase bila perlu. Tuslah/embalase ditambah setelah diskon.
- Pilih Tunai, QRIS, atau Debit. Mode split: jumlah per metode harus menutup total.
- Bayar (F9). Satu identitas checkout dipakai sampai berhasil, jadi ketukan ganda tidak memotong stok dua kali.
- Struk tercetak jika printer aktif. Jika gagal, spanduk tetap tampil dan riwayat menandai Struk gagal dengan Cetak ulang.
- Transaksi masuk riwayat lokal dan outbox sampai terdorong ke SIMAK. Jika server menolak penjualan, stok lot dikembalikan.
Tahan keranjang (F6)
Tahan menyimpan keranjang lokal (label opsional, member, diskon, poin) lalu mengosongkan meja untuk pelanggan berikutnya.
- Lanjutkan: buka daftar hold, pilih baris. Keranjang aktif harus kosong.
- Hapus hold memakai dialog konfirmasi.
- F8 menanyakan konfirmasi jika keranjang berisi. Keranjang kosong tidak diubah.
Batalkan transaksi (void)
Tombol Batalkan di riwayat hanya untuk Admin dan Apoteker.
- Pilih invoice. Isi alasan (wajib).
- Konfirmasi. Stok dikembalikan lewat lot VOID, piutang/poin/kupon dibatalkan, status menjadi Dibatalkan — baris tidak dihapus.
- Tidak dapat diurungkan. Jika server menolak void, lot VOID dikurangi kembali supaya stok tidak tetap bertambah. Jika ada retur aktif pada invoice itu, void ditolak.
Kasir biasa tidak melihat tombol void.
Retur penjualan
Retur hanya untuk invoice yang sudah synced. Isi qty per baris dan alasan. Job masuk outbox.
Cetak ulang
Reprint menandai struk. Jika sudah pernah dicetak, POS menampilkan peringatan dan menaikkan hitungan di Shift Kasir.
Mode tampilan
Tata letak kartu vs tabel disimpan per stasiun.
Jika gagal
- Produk tidak muncul — tarik katalog; pastikan lot otc, bukan hanya resep
- Scan tidak masuk — fokuskan kolom pindai
- Bayar ditolak — cek shift, qty vs sisa lot, atau total split
- Kupon ditolak — kode salah, kedaluwarsa, sudah terpakai, atau minimum belanja
- Struk tidak keluar — buka Perangkat, klik Deteksi ulang untuk memindai ulang printer USB (termasuk port COM di Windows), lalu uji tes cetak