Farkli Happy Hour Zamanlari ve % Oranlarinda kolaylik saglayacak farkli bir yöntem

Merhabalar,

ilk önce kisaca sorunumdan ve mesajin ilerleyen satirlarinda da cözümünden bahsetmek istiyorum.

Senaryo söyle;

Bir müsterinin 3 farkli Happy Hour zaman araligi var.

  • 12:00 - 15:00 (%2 lik bir indirim)
  • 18:00 - 21:00 (%5 lik bir indirim)
  • 21:01 - 01:00 (%10 luk bir indirim)

Ilk düsüncem, Fiyat etiketlerinden HH1, HH2, HH3 gibi etiketler olusturup, -2 veya %2, %5, %10 gibi oranlarin girilip girilemiyecegi oldu.

Fakat bu olmadi.

Bu zaman araliklarinda, SADECE icecekler ve Coctails’lerde farkli oranlarda indirim yapmak istiyor. Isin zor olan tarafi ise, musterinin 300 e yakin Icecek/Coctaili var. Hadi onuda bosver, birde bunlarin yüzdelik hesaplamasi var…Isin yoksa hamallik yapican ve 900 tane farkli hesap yaparak, tek tek bu ürünleri giris yaparak HATASIZ bir sekilde kaydedicen…Uzun is :-).

Sorun degil, en fazla yarim günümü alir. Ama isin hamalligini neden ben yapayim, SambaPOS yapsin diye düsünürken ve SambaPOS Support ile 2-3 Mail trafiginden sonra, @veysel Hocam sag olsun bir cözüm önerisi sundu ve oldukca kafama yatti.

Kisaca yapilmasi gerekenler söyle (zaman buldukca ve test ettikce ilave edicem);

Cözümü

1-) Durumlar;

Durumlarin Listesi

image

1.1) HH1 - Siparis Durumu

image

1.2) HH2 - Siparis Durumu

image

1.3) HH3 - Siparis Durumu

image

2.) Eylemler

Yapilacak olan Eylemlerin Listesi

image

2.1) HH1 - Siparis Durumunu Güncelle

image

2.2) HH2 - Siparis Durumunu Güncelle

image

2.3) HH3 - Siparis Durumunu Güncelle

image

2.4) HH1 - Siparisini Güncelle Eylemi

2.5) HH2 - Siparisini Güncelle Eylemi

2.6) HH3 - Siparisini Güncelle Eylemi

2.7) HH1 - Uygulama Baslik Güncelle

image

Bu eylemdeki amac, Uygulama basliginin altinda "HH xx TIME" yazdirmak

2.8) HH2 - Uygulama Baslik Güncelle

image

2.9) HH3 - Uygulama Baslik Güncelle

image

2.10) HH - Uygulama Baslik SIFIRLA

image

  • NOT: Bu eylem BELGE KAPANIYOR bölümünün en sonuna eklenecek.

3.) Kurallar

Kurallarin Listesi

image

3.1) HH1 - %2 Ayarla Kurali

3.2) HH2 - %5 Ayarla Kurali

3.3) HH3 - %10 Ayarla Kurali

4.) Raporlar

Resimdeki gibi bir raporu alabilmek iicn uyguladigim rapor asagidaki gibi
image

[Happy Hour DETAILS:1,4, 1, 1, 2,  1]
>BelegNo|Menu|Stk.|Preis|SUM(EUR)|Status
{REPORT SQL DETAILS:
SELECT	Tickets.TicketNumber, 
			Orders.MenuItemName, 
			Orders.Quantity,
			Orders.Price,
			(Orders.Price * Orders.Quantity) AS Summe,
			Orders.PriceTag,
			Status
	FROM    Orders 
		CROSS APPLY OPENJSON(Orders.OrderStates)
   		WITH(Status NVARCHAR(255) '$.SN') 
	INNER JOIN	Tickets ON Orders.TicketId = Tickets.Id
	WHERE  (Status = N'HH1_Status') OR (Status = N'HH2_Status') OR (Status = N'HH3_Status')
	ORDER BY Tickets.TicketNumber
	:F.TicketNumber,F.MenuItemName,F.Quantity, F.Price, F.Summe, F.Status:
	:{0}|{1}|{2}|{3}|{4}|{5}
}
>>Total 
{REPORT SQL DETAILS:
SELECT	
				SUM(Orders.Quantity) AS Qty,
				SUM(Orders.Price*Orders.Quantity) AS Summe
			
	FROM    Orders 
	CROSS APPLY OPENJSON(Orders.OrderStates)
   WITH(Status NVARCHAR(255) '$.SN') 
	INNER JOIN	Tickets ON Orders.TicketId = Tickets.Id
	WHERE  (Status = N'HH1_Status') OR (Status = N'HH2_Status') OR (Status = N'HH3_Status')
	:F.Qty,F.Summe:
	:||{0}|-|{1}
}

5.) Olasi Sorunlar

  • Gece 23:59 tan sonra farkli bir bir eylem/kural eklenmeli. Bunu rahmetli emre hocayla konusmustuk
    Happy Hour Saat sorunu 2: Bitis saati kücük olursa tanimlama calismiyor

  • Yapilan zaman araligi sadece 1 ürün grubuna uygulanabiliyor. Birden fazla ürün grubuna uygulanmak istenirse, her grub icin AYNI Kural eklenmek zorunda.

  • Raporlarda kullanilan Syntax MS SQL Server 2017 de test edilmistir.

5a Örnek:
image
Resimdeki ayarlarda görülecegi üzere, sadece BIERE Grubuna Happy Hour kurali eklenebiliyor. Ayni zaman araligina birden fazla grup eklemek zorunda kalirsaniz, ayni kurali tekrar o gruba ilave etmeniz gerekli.

Sonuc

5 Beğeni

Aklıma gelmişken yazayım. Sambada Eylemlere Süre Sayacı Çalıştır özelliği eklense gayet kullanışlı olur kanaatindeyim. Saniye, dakika, saat cinsinden süre belirtiğinde bağlı eylemler süre bitimine kadar çalışacağından başlama zamanı ve bitiş zamanı gibi bir kısıtlamadan kurtulmak mümkün. Bunu söylememin nedeni çok fazla zengin menüsü olan işletmelerde 1 den fazla eyleme bağlı kalıındığında farklı ürünler için 50-60 'a varan kurallar gereksinimidir. HH gibi durumlarda yada başka işlemlerde çok kullanışlı olacağı kanatindeyim. Kuralda sayaç süresine bağlı olarak çalıştırılıp bir çok iş yükünden kurtulabilmek mümkün.
@erkan_kaplan 'ın yukarıdaki durumunda olduğu gibi … Ve şu 23:59 olayından da kurtulabilmek için. Başlama saati kısıtlaması olarka 21:00 seçilip süre sayacı da başladığında 23:59 sınırı da ortadan kalkmış olurdu ve 23:59 dan sonrası için ikinci bir eylem ve kurallar zinciri oluşmayacaktı.

@vehbi @mehmet

1 Beğeni

Bu programı 1 kişi için yazıyor olsaydık ve o kişi de kendi kontolümüzde donanımlar ve personeller kullanıyor olsaydı, mükemmel bir fikir olabilirdi. Ama 192 farklı ülkeden 150K restoranda aynı SambaPOS’un birbirlerine eşit performans sağlamasını

Biz eğer EYLEM için dikkat edin EYLEM için bir Süre sayacına ihtiyaç duyuyorsak emin olun yaptığımız konfigürasyonda bir sorun vardır. Aynı iş için 50-60 farklı kuralımız varsa zaten hata yapmışız demektir. Parametrelere gerekli ilgi gösterilmemiştir. vb vb vb

1 Beğeni