[EĞİTİCİ] Sipariş Zamanına Göre Masaların Renk Değiştirmesi

Adisyon açılasına göre değildi verilen siparişe göre renk değiştire bilirmiyiz mesela müşteri geldi 2 cay istedi 20 dk geçti siparişi alalı 20 dk hic hareket olmadığı için renk kırmızı olsun tekrar sipariş girince kendi rengine dönsün gibi…

1 Beğeni

omerfu gönderiniz sipariş süresine değil masa süresine bağlı entity state duration minutes masa zamanını veriyor ben son verilen sipariş süresini demek istemiştim;
Sorunu çözdüm yine de teşekkürler.

Sonuç:

Çözümü:

  1. Yönetim > Otomasyon > Komutlar, Penceresinden yeni bir komut oluşturup ismini timer yapın denetçi adınıda timer yapın sonra kod kısmına verdiğim kodu ekleyin
Kod

function parcala(parse){
	
	var time = "";
	var hour,minute,seconds;

	if(parse.indexOf(',') !== -1){
		time = (parse.split(','))[0];
	}else{
		time = parse;
	}
	var simdi = new Date();
	

	var gun = (simdi.getDate()).toString();
	var ay = (simdi.getMonth()).toString();
	var yil = simdi.getFullYear().toString();

	var saat,dakika,saniye;
	saat = (time.split(':'))[0];
	dakika = (time.split(':'))[1];
	saniye = (time.split(':'))[2];
	
	var fark = zamanFarki(yil,ay,gun,saat,dakika,saniye.slice(0,2));
	return fark;
}

function zamanFarki( yil,ay,gun,saat,dakika,saniye )
{
  
    var datetime = new Date(yil,ay,gun,saat,dakika,saniye).getTime();

    var now = new Date().getTime();
	
	
    if( isNaN(datetime) )
    {
        return "";
    }

    if (datetime < now) {
        var milisec_diff = now - datetime;
    }else{
        var milisec_diff = datetime - now;
    }

    var days = Math.floor(milisec_diff / 1000000 / 60 / (60 * 24));

    var date_diff = new Date( milisec_diff + (3600000*(-3)));
    return date_diff;
    
}

function trTime(parse){

	var date_diff = parcala(parse);
	
    var tr = "";
    tr += "En son "
    tr += date_diff.getHours() > 0 ? date_diff.getHours() + " Saat<br/>" : "";
    tr += date_diff.getMinutes() > 0 ? date_diff.getMinutes() + " Dakika<br/>" : "";
    tr += date_diff.getSeconds() > 0 ? date_diff.getSeconds() + " Saniye Önce<br/>" : "";
	
	
	return tr;
}

function timeToColor(parse){

	var fark = parcala(parse);
	
	var tDakika = fark.getMinutes() + (fark.getHours() * 60) + Math.floor((fark.getSeconds() / 60));
	
	var renk = "";
	
	if(tDakika >= 0)
		renk = "#009432";
	if(tDakika >= 5)
		renk = "#0652DD";
	if(tDakika >= 10)
		renk = "#D980FA";
	if(tDakika >= 15)
		renk = "#FFC312";
	if(tDakika >= 20)
		renk = "#EE5A24";
	if(tDakika >= 25)
		renk = "#EA2027";	
		

	return renk.toLowerCase();
	
}

function lastOrder(parse){

	var fark = parcala(parse);
	
	var tDakika = fark.getMinutes() + (fark.getHours() * 60) + Math.floor((fark.getSeconds() / 60));
	
	return tDakika;
	
}
  1. Yönetim > Ayarlar> Durumlar> Yeni Siparişler, Penceresinden durumu düzenleyin resim ve kod aşağıdadır.
Durum

<background {CALL:timer.timeToColor('{REPORT ORDER DETAILS:O.Time.desc: (TEN.Masalar=$1)}')}></background>

<bold><color black>$1</color>-<color white>{REPORT TICKET DETAILS:T.RemainingAmount: (TEN.Masalar=$1) and T.RemainingAmount>0} ₺</color></bold><br/>{ENTITY STATE MINUTES:Status} Dakika

<br/>{REPORT TICKET DETAILS:T.User:(TEN.Masalar=$1) and T.RemainingAmount>0}<br/>
<color white>{CALL:timer.trTime('{REPORT ORDER DETAILS:O.Time.desc: (TEN.Masalar=$1)}')}</color>

En son masanın sipariş süresine göre renk alması aşağıda bulunmaktadır. Masa zamanına göre renkleri değiştirebilirsiniz veya süreleri arttırabilir azaltabilirsiniz ben 30dk için 5er dklık değişimler uyguladım.

	if(tDakika >= 0)
		renk = "#009432";
	if(tDakika >= 5)
		renk = "#0652DD";
	if(tDakika >= 10)
		renk = "#D980FA";
	if(tDakika >= 15)
		renk = "#FFC312";
	if(tDakika >= 20)
		renk = "#EE5A24";
	if(tDakika >= 25)
		renk = "#EA2027";	

Bu alanı istediğiniz gibi uzaltıp kısaltabilirsiniz renkleri hex colors diye google da arattığınızda bulabilirsiniz.

2 Beğeni

durumlar>yeni siparişler kısmına yazdığınız kodu merak ettim

Yukarıda Paylastım kodu ama…

1 Beğeni

{REPORT TICKET DETAILS:T.User:(TEN.Masalar=$1) and T.RemainingAmount>0}

şunu T.RemainingAmount>0 sorgusu yapmadan son sıpariş giren kişiyi çekemez miyiz?

function getColor(minutes){
if(minutes > 120)
return ‘#ff0000’;
if(minutes > 116)
return ‘#ff3200’;
if(minutes > 112)
return ‘#ff4b00’;
if(minutes > 108)
return ‘#ff6400’;
if(minutes > 104)
return ‘#ff7d00’;
if(minutes > 100)
return ‘#ff9600’;
if(minutes > 96)
return ‘#ffaf00’;
if(minutes > 92)
return ‘#ffc800’;
if(minutes > 88)
return ‘#ffe100’;
if(minutes > 84)
return ‘#ffff00’;
if(minutes > 80)
return ‘#e1c800’;
if(minutes > 76)
return ‘#c8ff00’;
if(minutes > 72)
return ‘#afff00’;
if(minutes > 68)
return ‘#96ff00’;
if(minutes > 64)
return ‘#7dff00’;
if(minutes > 60)
return ‘#64ff00’;
if(minutes > 56)
return ‘#4bff00’;
if(minutes > 52)
return ‘#32ff00’;
if(minutes > 48)
return ‘#19ff00’;
if(minutes > 44)
return ‘#00ff00’;
if(minutes > 40)
return ‘#00ff19’;
if(minutes > 36)
return ‘#00ff32’;
if(minutes > 32)
return ‘#00ff4b’;
if(minutes > 28)
return ‘#00ff64’;
if(minutes > 24)
return ‘#00ff7d’;
if(minutes > 20)
return ‘#00ff96’;
if(minutes > 16)
return ‘#00ffaf’;
if(minutes > 12)
return ‘#00ffc8’;
if(minutes > 8)
return ‘#00ffe1’;
if(minutes > 4)
return ‘#00ffff’;

return ‘#0032ff’;
}

Uğraşa uğraşa şöyle birşey geliştirdim…
4dk da bi Koyu mavi’den başlayıp… Kıpkırmızıya doğru ilerliyor… :slight_smile:

3 Beğeni

empire işlemleri dikkatlice kopyala yapıştır yapmama rağmen olmuyor.yardımcı olabilirmisiniz?

Nerede takıldınız bana AnyDesk verin özelden bakalım

2 Beğeni

hocam function kodunu paylaşmışsın ama asıl gereken durumlarda ki yeni siparişler alanına yazılacak olan kod. o kodu paylaşmayı sanırım unuttun.

son sipariş zamanını aldığın kodu paylaşabilir misin?

1 Beğeni