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

malesef kod dizimi yanlış, tüm masalarda <backgroung… diye kod çıkıyor

Copy paste yaparken tek tirnak bozuluyor olabilir. Paste ettikten sonra tek tirnaklari silip kendiniz duzeltip deneyin…

Merhaba, evet masalar renklendi sorun yok ancak. Zaman değerleri çok saçma geliyor -56, 20 vb dk. lar bazı masalar 180 dk. dır oturuyor ekranda 98 dk. yazıyor. bu sorun neden kaynaklanmış olabilir.

pc saatinizi kontrol edin.

kontrol ettim. Bazıları düzgün görünüyor. İki farklı makinede bakıyorum bazıları diğer makinada düzgün. İkisininde saati kontrol edildi.

o orderları kapat tüm pclerde saatler aynı olmalı
yenien başlat sorun çözülür

Peki bu son siparişe göre olan renklendirmeyi masa bakiyesine göre yapmamız mümkün mü ?

Renk sistemi çalışıyor fakat masanın açılış zamanına göre, yeni sipariş olduğunda sayacı sıfırlayabilirmiyiz ?

Bu eğitici konu paylaşımı için teşekkür ederim. Çok merak ile beklediğim bir durumdu :slight_smile: Fakat minik bir problem var

<background {CALL:fn.getColor(’{ENTITY STATE MINUTES:Status}’)}>

Bu komut eksik kalmış

<background {CALL:fn.getColor(’{ENTITY STATE MINUTES:Status}’)}></ background>

Şeklinde düzenlerseniz sorunsuz çalışacaktır diğer arkadaşlarda da :blush:

1 Beğeni

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