Garson Masaya Tıkladığında ‘Masa Başka Bir Kullanıcı Tarafından Düzenleniyor’ Hatası
Restoranlarda, kafelerde ve barlarda garsonların el terminalleriyle veya kasa terminalleriyle sipariş girdiği yoğun çalışma saatlerinde en sık karşılaşılan kilitlenme senaryolarından biri, garsonun dolu bir masaya tıklayıp hesap almak veya yeni ürün eklemek istediğinde ekrana gelen ‘Masa [Masa 12] kullanıcısı [Ahmet] tarafından kilitlenmiştir / düzenlenmektedir’ uyarısıdır. Garson ‘Tamam’ diyerek masadan çıkmak zorunda kalır; ancak aradan dakikalar geçmesine ve o masada hiç kimsenin işlem yapmamasına rağmen masa saatlerce kilitli kalır ve adisyon kapatılamaz. Bu durum SambaPOS un veri çakışmasını engellemek için kurduğu oturum kilitleme (Ticket / Entity Locking) mekanizmasının askıda kalmasından kaynaklanır.
Masa Kilitleme Mekanizması Nasıl Çalışır ve Neden Askıda Kalır?
SambaPOS V5, aynı adisyona iki farklı garsonun aynı anda ürün ekleyip hesap karıştırmasını engellemek için iyimser/kötümser kilitleme (Optimistic/Pessimistic Concurrency) mimarisi uygular:
- Bir personel masayı açtığı anda veritabanındaki
TicketstablosundaIsLocked = 1veLockedBy = 'Kullanıcı Adı'bayrakları kaldırılır. - Normal şartlarda personel masadan ‘Kapat’ veya ‘Ödeme’ diyerek çıktığı anda bu kilit bayrağı sıfırlanır (0 yapılır) ve masa diğer personelin erişimine açılır.
- Askıda Kalma Nedeni: Garson masanın içindeyken el terminalinin şarjı biterse, garson Wi-Fi kapsama alanından çıkıp bağlantısı koparsa veya tablet yere düşüp kapanırsa; terminal sunucuya ‘Ben masadan çıktım’ sinyalini gönderemez. Sunucu terminalin hâlâ içeride olduğunu zanneder ve masayı sonsuza kadar kilitli tutar.
1. Adım: Yetkili Kullanıcı ile Masanın Kilidini Ekranda Zorla Açma
SambaPOS arayüzünde yönetici (Admin) rolüne sahip bir kullanıcı ile masanın kilidi doğrudan kırılabilir:
- Yönetici şifresi veya PIN kodu ile ana kasa terminalinden oturum açılır.
- Kilitli masanın üzerine tıklanır. Ekrana yine kilit uyarısı gelir; ancak yönetici yetkisi varsa pencerenin altında ‘Kilidi Aç ve Düzenle’ (Unlock & Open) butonu belirir.
- Bu butona basıldığında SambaPOS eski oturumu zorla düşürür; masanın adisyonu açılır. Masanın içine girildikten sonra hiçbir değişiklik yapılmadan doğrudan ‘Kapat’ butonuna basılarak adisyon temiz bir şekilde sisteme kaydedilir ve kilit çözülür.
2. Adım: Askıda Kalan Tüm Masa Kilitlerini SQL Komutu ile Anında Sıfırlama
Birden fazla masa aynı anda kilitlendiyse veya tabletler toptan ağdan düştüyse, SQL Server Management Studio (SSMS) açılarak veritabanında tek bir sorguyla tüm kilitler sıfırlanır:
USE [SAMBAPOS5];
GO
-- Kilitli kalan tüm adisyonların kilidini açın ve serbest bırakın:
UPDATE Tickets
SET IsLocked = 0,
LockedByName = NULL
WHERE IsLocked = 1;
GOBu sorgu çalıştırıldığı saniyede salondaki tüm masaların üzerindeki sarı/turuncu kilit simgeleri kaybolur; tüm garsonlar masalara yeniden anında erişebilir.
3. Adım: Otomatik Kilit Açma Zaman Aşımı (Lock Timeout) Kuralı Tanımlama
Arızanın tekrarlamasını engellemek için SambaPOS Otomasyon menüsünden bir kural tanımlanabilir: Yönetim > Otomasyon > Kurallar menüsünden adisyonda 2 dakika boyunca hiçbir tuşa basılmazsa sistemin adisyonu otomatik olarak ‘Kapat’ komutuyla güvenli ana ekrana döndürmesi sağlanmalıdır.
Restoran otomasyon altyapıları, SambaPOS çok kullanıcılı terminal optimizasyonu, SQL veritabanı kilit çözümleri ve adisyon yazılımı teknik desteğinde BaykalSoft Perakende Teknolojileri ekibimizle iletişime geçebilirsiniz.