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