Soru: Restoranda Müşteriler Hesabı Ayrı Ayrı Ödemek İstediğinde SambaPOS Masa Bölme Neden Hata Verir?
Cevap: Kalabalık masaların ağırlandığı restoranlarda, kafelerde ve barlarda müşteriler ‘Biz herkes kendi yediğini ödeyecek’ diyerek hesabı bölmek istediğinde, garsonun veya kasiyerin SambaPOS ekranından ‘Adisyon Böl / Parçala (Split Ticket)’ butonuna basarak 4 kişilik masayı ikiye ayırdığında ekranda ‘Object reference not set to an instance of an object’ hatası vermesi, yeni açılan alt adisyona ödeme alınamaması ve masanın ekranda kilitli kalması kasa kapanışını durduran bir otomasyon kural krizidir. Kasiyer panikle programı kapatır; açık kalan iki adisyon da ne ödenebilir ne de silinebilir. Bu arıza veritabanının çökmesi değil; SambaPOS V5 teki Adisyon Numaratörü (Ticket Numerator) ile Varlık Ayrıştırma Kuralının (Split Entity Rule) aynı anda tetiklenerek boş referans fırlatmasıdır.
SambaPOS Adisyon Bölme (Split) Mekanizması Nasıl Çalışır?
Masa bölme işlemi veritabanında karmaşık bir nesne klonlama sürecidir:
- Ana adisyondaki seçilen ürünler koparılır ve yepyeni bağımsız bir adisyon kimliğine (Ticket ID) aktarılır.
- Numaratör Çakışması: Yeni oluşan yavru adisyona otomatik olarak yeni bir resmi adisyon takip numarası atanmalıdır. Eğer ‘Bölünmüş Adisyon Numaratörü’ tanımsız bırakılmışsa sistem boş referans hatası basarak işlemi kilitler.
- Ödeme Kuralı Kilidi: Ana masadaki Garson veya Müşteri varlığı yeni adisyona kopyalanamazsa; ödeme ekranı ‘Varlıksız Adisyon Ödenemez’ güvenlik duvarına çarpar ve ödeme butonları pasif kalır.
1. Adım: Bölünmüş Adisyon Numaratörünün Tanımlanması
SambaPOS yönetim panelinden numara sayacı bağlanır:
- SambaPOS yönetim paneli açılarak Yönetim > Biletler / Adisyonlar > Numaratörler menüsüne girilir.
- ‘Varsayılan Numaratör’ bulunur.
- Yönetim > Bilet Tipleri > ‘Adisyon’ içine girilir; ‘Numaratör’ alanında ‘Varsayılan Numaratör’ seçili olduğu teyit edilir (Burası boşsa bölünen adisyon numara alamaz ve çöker).
2. Adım: Adisyon Bölme Kuralındaki (Split Ticket Rule) Eylem Sırasını Düzeltme
Kural motorundaki ölümcül sıralama hatası giderilir:
Kural Yapılandırma Adımları:
1. Yönetim > Otomasyon > Kurallar > 'Adisyon Bölündüğünde' (Ticket Splitted) kuralı açılır.
2. Eylemler listesi incelenir:
- 1. Sırada: 'Varlık Bilgilerini Yeni Adisyona Kopyala' (Update Ticket Entity) OLMALIDIR.
- 2. Sırada: 'Hesaplamaları Yenile' (Update Calculations) OLMALIDIR.
3. Sıralama ters ise hesaplamalar varlıktan önce çalışır ve kilitlenme yaratır. Sıralama düzeltilerek kaydedilir.3. Adım: Veritabanında Askıda Kalan Kilitli Bölünmüş Adisyonu Kurtarma
Hata sebebiyle ekranda asılı kalan ve kapatılamayan masa SQL sorgusuyla serbest bırakılır:
USE [SAMBAPOS5];
GO
-- Kilitli kalan bölünmüş adisyonu güvenli şekilde açın:
UPDATE Tickets
SET IsLocked = 0,
LockedByName = NULL
WHERE IsClosed = 0 AND RemainingAmount > 0;
GOKomut işletildikten sonra SambaPOS ana ekranına dönülür; masanın üzerine tıklandığında hem ana hesabın hem de bölünen ikinci hesabın bağımsız pencereler olarak sorunsuzca açıldığı, nakit ve kredi kartı ile kuruşu kuruşuna tahsil edilip masanın yeşile (boşa) döndüğü doğrulanır.
Restoran hesap bölme otomasyonu, SambaPOS parçalı ödeme kurguları, masa adisyon optimizasyonu ve kurumsal POS yazılım destek hizmetlerinde BaykalSoft Perakende Bilişim ekibimizle iletişime geçebilirsiniz.