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.
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