[BELGE] Capraz Kurlari Navigasyon Penceresinde Gösterme

Merhabalar,

bu ufak belgede, cesitli capraz kurlarini navigation penceresinde gösterilmesi anlatilacak. Ben kendi ihtiyacima göre düzenledim, gerekirse farkli amaclar icin kullanilabilir veya gelistirilebilir…

Görünümü

Kullanilan Basis

Bu belgedeki kullanilan basis script asagidaki adresden esinlenerek kendime uyarlanmistir.

Gerekli Olanlar

  • API KEY
    https://fixer.io/ adresine gidin ve ücretsiz üye olun. Kullanici bilgilerinizin oldugu Dashboard alaninda Your API ACCESS KEY yazan yerde bir anahtar var. O anahtari kopyalayin ve elinizin altinda tutun. Biraz sonra lazim olacak.

  • SambaPOS altinda bir tane Otomasyon komutu ekleyin. Otomasyon-> Komutlar->Otomasyon Komutu Ekle

Adi: CaprazKurHesaplari
Denetimci: wu (Kendi isteginize göre degistirebilirsiniz, cagirirken buna dikkat edin)

ÖNEMLI:

Skript icindeki

var apiKey=‘BURAYA_API_KEY_GIRIN’;"

yazan tirnak icindeki isaretli yere kendi API_KEY inizi girin/yazin.**

Kullanilanacak Komut:

 function exchangerate(toValue){

	var basis='EUR';
    var toValue_LIRA='TRY';
	var toValue_CHF='CHF';
	var toValue_DOLAR='USD';
	var toValueForAll="USD,CHF,TRY";
	var apiKey='BURAYA_API_KEY_GIRIN';

	// KURlari cek
	var url= '';
	if (toValue=='ALL'){
		url = 'http://data.fixer.io/api/latest?access_key='+apiKey+'&base='+basis+'&symbols='+toValueForAll+'';
	}else{
		url = 'http://data.fixer.io/api/latest?access_key='+apiKey+'&base='+basis+'&symbols='+toValue+'';
	}
 	var getrates = web.Download(url);
 	var allrates = JSON.parse(getrates);
 	var tarih = allrates.date; 
 	var rate='';
 	    
 	// Birden fazla Kur cekiminde lazim olanlar, daha fazlasi istenirse tanimlanabilir
    var rateTRY='', rateCHF='', rateUSD='';
    
    var returnValue='';
     	
    switch(toValue) {
  			case 'CHF':
    			rate = allrates.rates.CHF;
    		break;
  			
  			case 'TRY':
    			rate = allrates.rates.TRY;
    		break;
  			
  			case 'USD':
    			rate = allrates.rates.USD;
    		break;
    		
    		case 'ALL':
    			rateTRY = allrates.rates.TRY;
    			rateCHF = allrates.rates.CHF;
    			rateUSD = allrates.rates.USD;
    			returnValue = 'Datum: ' + tarih ;
    				returnValue += '\n 1.00 '+basis+' =  '+rateUSD+ ' ' +toValue_DOLAR;
    				returnValue += '\n 1.00 '+basis+' =  '+rateCHF+ ' ' +toValue_CHF;
    			    returnValue += '\n 1.00 '+basis+' =  '+rateTRY+ ' ' +toValue_LIRA;
    			return returnValue;
    		break;
    		
  			default:
    			rate = 'undefined';
	}
    
    
    // check if a rate is set
    var isRateValid = ( rate == 'undefined' ? false : true );

    // execute the update if rate and date is valid


    if (isRateValid) {
		returnValue = 'Datum: ' + tarih + '\n 1.00 '+basis+' =  '+rate + ' '+toValue;
      }else {
      	returnValue = ' Datum: 0000.00.00' + tarih + '\n1.00 '+basis+' = 00.00 '+toValue;
      }
      
	//dlg.ShowMessage(returnValue);
	return returnValue;
    }
    
    
// DATENBANK A YAZDIRMAK ISTENIRSE  Not:  ALL calismaz
// Basis: https://forum.sambapos.com/t/automatic-update-of-exchangerate/7922/5
//    // execute the update if rate and date is valid
//    if ( isRateValid ) 
//      {
//    //create SQL statement, CHANGE if needed
//      var sqlexec = "UPDATE ForeignCurrencies SET ForeignCurrencies.ExchangeRate = " +rate+ " WHERE ForeignCurrencies.name = 'EUR'";
//    //execute SQL statement
//      sql.ExecSql(sqlexec); 
//      }

Sktipt Testi

Sag alt kösedeki bosluga exchangerate(‘ALL’) yazip enter yapin. Asagidaki gibi bir sonuc cikacaktir.
image

Not: Sadece EUR-YTL icin exchangerate(‘TRY’), sadece dolar icin exchangerate(‘USD’) veya sadece isvecre frangi icin exchangerate(‘CHF’) yazip test edilebilir.

Navigasyona Eklenmesi

SambaPOS altinda Navigasyon penceresinde gösterebilmek icin, bir tane Otomasyon komutu ekleyin.

  • Adi ve Dügme Basligi kendi isteginize göre olabilir. Örn. Capraz Kurlar

  • Navigasyon Secenekleri altinda Otomatik Yenileme= 60 Saniye olarak ayarlayin.

  • Sablon kismina asagidaki sekilde ekleyin:

<size 50><bold>Capraz Kurlar</bold></size>
<size 30>{CALL:wu.exchangerate('ALL')}</size>

NOT: Ben bana lazin olan bütün kurlari almak istedigim icin ALL parametresini kullandim. Istege göre {CALL:wu.exchangerate(‘TRY’)} veya {CALL:wu.exchangerate('USD)} kullanilabilir.

NOT: Gerekirse, datenbanka eklenebilir ama benim ihtiyacim olmadigi icin, öyle biraktim. Detaylar komutun en altinda orjinal haliyle biraktim.

Sonuc

Hersey yolunda gittiyse, navigasyon pencerenizde asagidaki gibi bir buton eklenecektir.

Umarim birilerinin isine yarar.

Saygilar
Erkan Kaplan

5 Beğeni