Selam SambaPOS ailesi uzun bir aradan sonra yeniden burdayim. Eskisi kadar sık olmasada ziyaret etmeye çalışıyorum.
Bayramlarda tatlı siparişi alan işletmeler için düşündüğüm bir sistem var.
İş yeri müşterileri kaydedip siparişlerini alacak. Hangü gün almak istediklerini soracak. Arife günü, aridenden önceki gün yada bayramın 1. günü gibi. Bunları varlık atayarak adisyon etiketi seçerek belde durumu değiştirerek yada başka şekillerde adisyona tanımlayabiliyoruz.
Aldığı siparişlerin ödemesini almadığı için baya uzun bir süre gün sonu yapamayacak. Bunu göze aldık diyelim 1 hafta boyunca gün sonu yapmadık. Arife günü için bu işletme hangi üründen ne kadar yapacağını nasıl görecek.
Özetle Arife günü 10 tepsi cevizli baklava, 5 tepsi fıstıklı baklava, 20 kg tulumba sipariş edilmiş gibi bir rapor oluşturmak için izlemem gereken yol nedir.
Saygılarımla.
7 cevap
Öncelikle bu iş için Belge Tipinde yer alan Ön Sipariş özeliğini kullanırsan, adisyonda sipraiş varken bile gün sonu yapabilirsin.
Adisyonun içinde olan ve henüz kesinleşmemiş ürünler için hazır rapor etiketleri yok maalesef. Çünkü bunlar henüz havada olan veriler, ikram olabilirler iade olabilirler.
Ama basit bir SQL cümlesi ile Belge Özelliği Ön Sipariş olan ve henüz kapanmamış olan Adisyonlardaki ürünleri miktarları ile süzerek bir SQL Raporu oluşturabilirsin.
Bunu da Otomasyon > Komutlar özelliği ile SambaPOS Raporlarda çalıştırarak istediğin raporu oluşturmuş olursun.
Ön sipariş özelliğinden haberim yoktu baya bir uzak kalmışım yeniliklere. Yarın incelicem. Sql bilgim olmadığı için bu raporlar beni aşar sanırım :)
Mehmet Abi dediğin gibi yaptım ve sona yaklaştım. Tek bir adım kaldı ama beceremedim.
SELECT Orders.MenuItemName, Orders.Price, Orders.Quantity
FROM Orders INNER JOIN
Tickets ON Orders.TicketId = Tickets.Id
WHERE (Tickets.PreOrder = 1) AND (Tickets.IsClosed = 0) AND (Tickets.TicketTags = N'[{"TN":"GÜN","TT":0,"TV":"AREFE"}]')
Bu kodu scriptlerede çalıştırarak raporlarda gösterdim.
Ancak bu koda göre Arefe olarak adisyon etiketi seçilen her ürünü 1 satırda gösteriyor.
Yani 5 kola 3 adisyonda yazılmışsa 3 satır kola çıkıyor.
Kolayı tek satırda 5 adet göstermek için nasıl bir yol izlemeliyim.
SELECT Orders.MenuItemName, SUM(Orders.Price*Orders.Quantity)[Fiyat], SUM(Orders.Quantity) [Adet]
FROM Orders INNER JOIN
Tickets ON Orders.TicketId = Tickets.Id
WHERE (Tickets.PreOrder = 1) AND (Tickets.IsClosed = 0) AND (Tickets.TicketTags = N'[{"TN":"GÜN","TT":0,"TV":"AREFE"}]')
GROUP BY Orders.MenuItemName;
sorguyu kullanarak istediğim sonucu elde ettim =)
Güzel paylaşım, eline sağlık.
Bu senaryo için bir döküman oluşturmayı planlıyorum. Şu an pek faydalı bir paylaşım olmadı gibi =)
Döküman daha faydalı ve okunaklı olur bence de