Bütün Masalar Butonunda {LAST ORDER TIME} mümkün mü?

Merhabalar,

bir müsterinin istegi üzerine, Tüm Masalar ekraninda, son siparis zamanina göre masa durumunu renklendirmek istiyorum.

Baslangic düsüncem;
Adisyon penceresinde sallama bir Button koyup, sonrada Mesaj göster eylemi ekleyip, icine de{LAST ORDER TIME} olarak gönderdigimde mesela örn:21:45 seklinde ve son siparis zamanin sorunsuz result olarak döndürüyor…

Bu islem icin ufak bir skript yazdim, ve teori olarak calisiyor:

Kullandigim script;

function diff_hours(UhrzeitA1 ) {

var StartZeit = UhrzeitA1.substr(0,2) * 60 + UhrzeitA1.substr(3,2) * 1;
var UhrzeitE1 = getSimdikiZaman();

var EndeZeit = UhrzeitE1.substr(0,2) * 60 + UhrzeitE1.substr(3,2) * 1;

var DiffZeit = ((EndeZeit + 2460) - StartZeit) % (2460);

var DauerH = Math.floor(DiffZeit/60);

if (DauerH >= 1 ){
return getColor(60);
}else {
var DauerM = DiffZeit - (DauerH * 60);
return getColor(DauerM);
}
}

function getSimdikiZaman(){
var time = new Date();
s_saat = parseInt(time.getHours(),10);
s_dakika = parseInt(time.getMinutes(),10);
return s_saat + ‘:’ + s_dakika;
}

function getColor(minutes){
if(minutes > 45) return ‘red’;
if(minutes > 30) return ‘blue’;
if(minutes > 15) return ‘orange’;
return ‘green’;
}

Test ekranindan (sag alt kösedeki), resimdede görülecegi üzere farkli zamanlari HH:MM formatinda gönderdigimde, tanimladigim aralik olan, 15,30,45 ve >= 60 dakikalik zaman araligina göre renk kodlarini geri döndürüyor…

Anladigim kadari ile {LAST ORDER TIME} syntax i teori olarak HH:MM formatinda geri dönüs yapiyor…

Yeni siparis durumunda denedigim basit syntax söyle;

$1
{LAST ORDER TIME:TEN.Masalar=$1}

Bu Syntax malesef calismiyor. Calismadigi icinde, asagidaki detayli syntax da calismiyor;

<background {CALL:masarenklendir.diff_hours(’{LAST ORDER TIME:TEN.Masalar=$1}’)}> <size 50> $1
{ENTITY STATE MINUTES:Status} DK.

Masa butonlarinda bu LAST ORDER TIME i nasil kullanabilirim?

Not: ENTITY STATE MINUTES kullanmak istemiyorum. Amacim LAST ORDER TIME, yani son siparis saatine erismek.

Tesekkürler
E. Kaplan

1 Like

Söyle bir gelisme oldu:

SQL yardimi ile LAST ORDER TIME i alabiliyorum.

SQL icin kullandigim Syntax;

<size 50>Last Order: {REPORT SQL DETAILS: SELECT TOP(1) DATEDIFF(MINUTE,T.[LastOrderDate],GETDATE()) AS [Dakika] FROM Tickets AS T INNER JOIN TicketEntities AS [TE] ON T.Id= TE.Ticket_Id WHERE T.IsClosed=0 AND TE.[EntityName] = $1 :F.Dakika::{0}} Min</size>

Durumlar -> Yeni Siparisler altinda böyle görünüyor:

<background {CALL:kellnerFarben.getColor('{REPORT TICKET DETAILS:T.User:(TEN.Tische=$1) and 'RemainingAmount > 0':-}')}><size 100><bold>$1</bold></size><br/> 
<size 50>{REPORT TICKET DETAILS:T.User:(TEN.Tische=$1) and 'RemainingAmount > 0':-} </size><br/>

<size 50>{REPORT ORDER DETAILS:'     *'+[O.PortionName],O.Quantity.Sum.desc:(ODI=True) AND O.MenuItemName="Dinner" and O.PortionName="Normal" AND (TEN.Tische=$1): Dinner  {0} {1} } {REPORT ORDER DETAILS:'     *'+[O.PortionName],O.Quantity.Sum.desc:(ODI=True) AND O.MenuItemName="Dinner" and O.PortionName="Kind" AND (TEN.Tische=$1)}   {REPORT ORDER DETAILS:'     *'+[O.PortionName],O.Quantity.Sum.desc:(ODI=True) AND O.MenuItemName="Dinner" and O.PortionName="Kleinkind" AND (TEN.Tische=$1)} </size>
<br/>
<size 50>Last Order: {REPORT SQL DETAILS:  SELECT TOP(1) DATEDIFF(MINUTE,T.[LastOrderDate],GETDATE())  AS [Dakika]  FROM Tickets AS T INNER JOIN TicketEntities AS [TE] ON T.Id= TE.Ticket_Id WHERE T.IsClosed=0 AND TE.[EntityName] = $1 :F.Dakika::{0}} Min</size>

</background>

Fakat pratikte bu ise yaramiyacak gibi, cünkü SQL Result süresi, sadece 1 masa icin ortalama ~ 16-30 mili saniyede dönüs yapiyor.

SQL komutunu herhangi bir sekilde iyilestirme yapabilir miyiz? Gözle görülür bariz bir sekilde yavaslama hissettiriyor PC de.

@EmrBkts
Bir fikriniz var mi hocam?

2 Likes

Erkan abi ben emre beye mail attım bu konuda dün kendisine yapmış olduğum script gönderdim bilgisi var.

2 Likes

Kontrolleri gerçekleştiriyorum bilgi vereceğim @empire @erkan_kaplan

1 Like

Merhaba,

Şu anlık Last Order Time’ a göre başka bir yöntem bulunmamaktadır.

Last Order Time dışında masa renklendirma hakkında bilgi almak için aşağıdaki linkte bulunan örnekten faydalanabilirsiniz.

1 Like

Never give up ! emre hocam.
Vardir bir yöntemi, yoksa tekerlek icat olmaz, teknoloji gelismezdi.
Simdilik durakoysun bir kenarda. :slight_smile: