SIMAK

Cari panduan…

Ketik untuk mencari seluruh wiki

SIMAK POS

Ikhtisar SIMAK POS

Aplikasi desktop kasir dan stok apotek: sinkron JWT ke SIMAK, cache SQLite, cetak struk ESC/POS, dan kerja offline.

SIMAK POS adalah aplikasi desktop (Electron) untuk kasir penjualan dan stok apotek. Ia berbicara ke SIMAK lewat REST + JWT, menyimpan katalog di SQLite lokal, dan mencetak struk ESC/POS dari proses utama.

Kapan memakai POS, bukan kasir web?

Pakai POS di meja obat bebas / counter apotek yang butuh pindai barcode, cetak struk thermal, dan tetap bisa menjual saat jaringan putus. Pembayaran kunjungan pasien tetap di kasir web SIMAK.

Peran yang boleh masuk

  • Kasir — penjualan OTC, shift kasir, lihat stok, sinkronisasi, perangkat
  • Apoteker — semua layar kasir plus barang datang, surat pesanan, mutasi, opname, void, buang antrian mati
  • Admin — seluruh menu. Semua peran, termasuk Admin, wajib membuka shift sebelum checkout

Role di luar ketiga itu ditolak saat masuk.

Persiapan pertama

  1. Jalankan SIMAK (web) dan pastikan migrasi 047_pos_sync_client_uuid.sql sudah diterapkan.
  2. Buka SIMAK POS, isi URL dasar SIMAK (http://localhost:3000 atau URL cloud klinik).
  3. Masuk sebagai Kasir, Apoteker, atau Admin. Setelah berhasil, POS menampilkan Menyiapkan katalog… dan menarik katalog sendiri.
  4. Jika tarikan gagal, pilih Coba lagi atau Lanjut tanpa katalog. Di Kasir yang kosong ada tombol Sinkronkan sekarang.
  5. Saat masuk online pertama, buat PIN 4–6 digit untuk perangkat ini.
  6. Buka Perangkat: printer USB terdeteksi otomatis (termasuk port COM di Windows untuk printer seperti Cashcow K31A). Jaringan (host:9100) atau simpan ke berkas hanya cadangan.

Jendela minimum 1024 px. Aplikasi ini khusus desktop.

Layar

MenuRutePeranFungsi
Kasir/Kasir / Apoteker / AdminPenjualan OTC, promo, kupon, poin, hold F6, void, cetak struk
Shift Kasir/shiftsamaBuka/tutup shift, rekonsiliasi kas, hitungan cetak ulang
Stok Obat/stoksamaKatalog lokal, lot, badge ED
Barang Datang/barang-datangApoteker / AdminTerima lot ke cache (pool resep/otc), lalu dorong
Surat Pesanan/surat-pesananApoteker / AdminPO, cetak 2 salinan, nomor faktur server
Mutasi Stok/mutasiApoteker / AdminPindah lot resep ↔ OTC (total stok tetap)
Stok Opname/opnameApoteker / AdminHitung fisik per lot; konflik jika lot usang
Sinkronisasi/sinkronisasisemuaOutbox FIFO, konflik, tarik/dorong
Perangkat/perangkatsemuaURL SIMAK, stasiun, printer, scanner

Mode offline

Jika masuk online gagal karena jaringan dan PIN sudah ada, layar menampilkan kolom PIN. Lima kali salah mengunci PIN sampai masuk online lagi.

Dalam mode offline, penjualan tetap tersimpan lokal. Sinkronisasi ditahan. Indikator menampilkan Mode offline, bukan Online. Keluar akun tidak menutup shift di perangkat ini.

POS hanya menjual dari lot OTC lokal (FEFO). Penjualan, barang datang, mutasi, SP, dan opname masuk outbox lalu didorong FIFO saat online. Setelah katalog ditarik, lot buatan lokal dihapus lalu operasi yang belum tersinkron diputar ulang sekali, lalu saldo obat dihitung ulang dari lot. Opname yang tidak cocok dengan qty lot server ditandai konflik, bukan ditimpa. Penjualan yang ditolak server mengembalikan stok dari lot yang terpakai.

Menyiapkan diagram…

Alur stok POS setelah tarik katalog dan saat penjualan ditolak

Paket instalasi

npm run build memakai electron-builder untuk macOS (host default), Windows NSIS, dan Linux AppImage.