[BELGE] Garsona ait bir masa, baska bir garsona nasil devredilir?

Merhabalar,

bu belgede, bir garsonun actigi bir masayi baska bir garsona devretme isleminin nasil yapilabilecegi hakkinda kisa kisa bilgiler aktaricam. Umarim birilerinin isine yarar.

Gerekli Olanlar:

  • 1* Skript
  • Otomasyon Komutu
  • 3* Eylemler
  • 3* Kurallar
2 Beğeni

Kullanilacak Olan Skript

Yeni bir komut ekleyin:
Otomasyon (1)- Komutlar (2) -
Adi = Masa Devret (3)
Denetimci =masadevret (4) (Aynen burda yazildigi gibi, ufak harfler ile)

Komut bosluguna asagidakileri yazin:

function getSettingbydb(settingname) {
  var qry = "SELECT [Value] FROM [ProgramSettingValues] WHERE [Name]='"+settingname+"'";
  var r = sql.Query(qry).First;
  return r;
}

function updateSetting(settingName,settingValue,settingType) {
	switch (settingType)
	{
		case 'global':
			var response = gql.Exec('mutation m{updateGlobalSetting(name:"'+settingName+'",value:"'+settingValue+'"){name,value}}');
			var result = JSON.parse(response);
			var settingValue = result.data.updateGlobalSetting.value;
			break;
		case 'local':
		default:
			var response = gql.Exec('mutation m{updateLocalSetting(name:"'+settingName+'",value:"'+settingValue+'"){name,value}}');
			var result = JSON.parse(response);
			var settingValue = result.data.updateLocalSetting.value;
			break;
	}
	return settingValue;
}


function readSetting(settingName,settingType) {
	switch (settingType)
	{
		case 'global':
			var response = gql.Exec('{getGlobalSetting(name:"'+settingName+'"){name,value}}');
			var result = JSON.parse(response);
			var settingValue = result.data.getGlobalSetting.value;
			break;
		case 'local':
		default:
			var response = gql.Exec('{getLocalSetting(name:"'+settingName+'"){name,value}}');
			var result = JSON.parse(response);
			var settingValue = result.data.getLocalSetting.value;
			break;
	}
	return settingValue;
}

function getusers(){
	var qry = "SELECT [Name] FROM [Users] WHERE [Name]<>'pda' AND [Name]!='graphiql'";
	var r = sql.Query(qry).Join('|');
	return r;
}


function getDatas(settingName){
	return Data.Get(settingName);
}

function setKellnerUbergabe() {
	var returnValue='';
	if (readSetting('Devredilecek Garson Ismi', 'global') == ''){
		returnValue="Garson ismi okunamadi..." ;
	}else if (readSetting('Okunan TicketID') == '' ) {
		returnValue = "Ticket ID okumanadi..." ;
	}else {
		
		var garsonVarmi = checkGarsonMecvut(readSetting('Devredilecek Garson Ismi', 'global') );
		if (garsonVarmi != null) {
	  		var qry = "SELECT [Value]  FROM [ProgramSettingValues] WHERE [Name]='Okunan TicketID'";
	  		var ticketID = sql.Query(qry).First;
	  
	  		var qry2 = "SELECT [Value]  FROM [ProgramSettingValues] WHERE [Name]='Devredilecek Garson Ismi'";
	  		var newUser = sql.Query(qry2).First;
	 
	  		qry3 = "UPDATE Orders SET CreatingUserName = '"+newUser+"' WHERE TicketId="+ticketID+";";
	  		sql.ExecSql(qry3);
	  
	 		qry4 = "UPDATE Tickets SET LastModifiedUserName = '"+newUser+"' WHERE Id="+ticketID+";";
	  		sql.ExecSql(qry4);
			returnValue = ticketID + " Ticket ID nolu Masa "+newUser+" garsona devredildi..." ;
		}else {
			returnValue = "Böyle bir garson yok... " + garsonVarmi ;
		}
	}
	return returnValue;
}

function checkGarsonMecvut(garsonIsmi){
  		var qry = "SELECT Name FROM Users WHERE Name ='"+garsonIsmi+"'";
  		//dlg.ShowMessage(readSetting('Devredilecek Garson Ismi', 'global'));
  		return sql.Query(qry).First;
}

Kullanilacak Olan Otomasyon Komutlari

Otomasyon Ismi: GD - Masayi Devret

Genel Ayarlar

Iliskiler

Kullanilacak Eylemler

1. Eylem Ismi: GD - Program Ayarlarini Degistir Eylemi

2. Eylem Ismi: GD - Otomasyon Komutu Calistir Eylemi

3. Eylem Ismi: GD - Mesaj Göster

Kullanilacak Kurallar

NOT: Türkce karakter kullanmadim. Dikkat edin.

1. Kural: GD - Masa Bilgilerini Oku


Genel Ayarlari:
Özel Kisitlama Ekle:

  • Automation Command Name ESITTIR GD - Masayi Devret
  • {TICKET ID} Bos Degilse

Eklenecek Eylemler:

  • GD - Program Ayarlarini Degistir Eylemi
    • Ayar Adi = Devredilecek Garson Ismi
    • Ayar Degeri = [?Masa Kime Devredilecek;;{CALL:masadevret.getusers()};OCN]
  • GD - Program Ayarlarini Degistir Eylemi
    • Ayar Adi = Okunan TicketID
    • Ayar Degeri = {TICKET ID}
  • GD - Otomasyon Komutunu Calistir Eylemi
    • ACMD Name = Masayi Devret

2. Kural: Masayi Devret


Genel Ayarlari:
Özel Kisitlama Ekle:

  • Automation Command Name ESITTIR Masayi Devret
  • {CALL:masadevret.readSetting(‘Devredilecek Garson Ismi’,‘global’)} BOS DEGILSE

Eklenecek Eylemler:

  • GD - Mesaj Göster
    • MessageToDisplay = {CALL:masadevret.setKellnerUbergabe()}
  • GD - Otomasyon Komutu Calistir
    • ACMD Name = Masadevir Ayarlarini Sifirla
  • Belgeyi Kapat

3. Kural : GD - Masadevir Ayarlarini Sifirla


Özel Kisitlama:

  • Automation Command Name ESITTIR Masadevir Ayarlarini Sifirla

Eklenecek Eylemler:

  • GD - Program Ayarlarini Degistir Eylemi
    • Ayar Adi = Okunan TicketID
    • Ayar Degeri = BURAYI BOS BIRAKIN; BIRSEY YAZMAYIN, SIFIRLANMASI GEREK
  • GD - Probram Ayarlarini Degistir Eylemi
    • Ayar Adi = Devredilecek Garson Ismi
    • Ayar Degeri = BURAYI BOS BIRAKIN; BIRSEY YAZMAYIN, SIFIRLANMASI GEREK

Ekran Görüntüsü (Sonuc)

OLASI HATALAR

  • MANUELL olarak garson girisi yapilmayacak, aksine ordaki secimden bir garson secilmesi gerekli
    • Ilave fonksiyon eklendi…Düzeltilti.
3 Beğeni

Tesekkurler faydalı bir paylasim

Manuel girişi engelleyebiliriz, oraya bir kural daha ekleyerek. [Command Value]={ENTITY NAME} gibi …

Kontrol ilave funktionu ekledim.
Simdi manuel el ile girilse bile, Garson mevcut degilse islem devam etmiyor. Garson mevcut degilse hata mesaji veriyor.

2 Beğeni

Nereye eklemek lazım?

peki garson kafasına göre devret me olasılığı yüksek bunda
garson yanlış aldı diyelim başından savmak için başkasına devre de bilir
bunun yerine kime devredecek se o kişi pin girip üstüne almalı