Javascript dilinde aşağıdaki script'te fonksiyonun içindeki koşulun local alanındaki kdv değişkenine nasıl bir başka fonksiyonun içinden ulaşabilirim?
Ya da en basitinden fonksiyonun içindeki koşulun local alanındaki kdv değişkenini nasıl sayfanın global alanına çıkarabilirim?
En azından global alana çıkarabilirsem başka bir fonksiyonun local alanından erişim sağlayabilirim diye düşünüyorum.
Saatlerdir çözemedim bu meseleyi. return'la çıkaramıyorum. return'le çıkarmam gereken kdv değişkeni ve tutarHesapla fonksiyonu var. tutarHesapla fonksiyonunu geri döndürebiliyorum ama kdv değişkenini çıkaramıyorum. return'la sadece kdv değişkenini global alana çıkarmayı denedim olmadı. tutarHesapla fonksiyonuyla, kdv değişkenini yeni değişkenlere atayıp bu değişkenleri de diziye atayıp return'le dizi şeklinde dışarı çıkarmaya çalıştım, yine çıkmadı kdv değişkeni.
Sayfanın global alanında bir değişken tanımlayıp istediğim kdv değerini verip tutarHesapla fonksiyonunda o değeri hesaplatırsam script çalışıyor sorunsuz. Fakat bu durumda da seçilen ülke özelliği kullanılmamış oluyor. Ben seçilen ülkeye göre kdv değerlerinin değişik hesaplanmasını istiyorum.
Eğer anlamayanlar varsa script ile yapmak istediğim kullanıcının seçtiği para birimine ve ülkeye göre toplam tutarı USD, TL, EUR vb. cinslere dönüştürmek ve her ülke için belirlenmiş olan KDV miktarını üzerine eklemek.
Nerede hata yapıyorum ben?
Script:
<script>
var kullanicininSectigiParaBirimi = "EUR";
var kullanicininSepetininToplamTutari = 100;
var secilenUlke = "US";
function paraBirimi(birim, tutar){
if (birim=="TL"){
var kur = 1;
if (secilenUlke=="TR"){
var secilenUlkeKdvsi = 18;
}
else if(secilenUlke=="US"){
var secilenUlkeKdvsi = 10;
}
else if(secilenUlke=="UK"){
var secilenUlkeKdvsi = 12;
}
else {
document.write("HATA!")
}
var kdv = secilenUlkeKdvsi;
return tutarHesapla(kur, tutar);
}
else if(birim=="USD"){
var kur = 6;
if (secilenUlke=="TR"){
var secilenUlkeKdvsi = 18;
}
else if(secilenUlke=="US"){
var secilenUlkeKdvsi = 10;
}
else if(secilenUlke=="UK"){
var secilenUlkeKdvsi = 12;
}
else {
document.write("HATA!")
}
var kdv = secilenUlkeKdvsi;
return tutarHesapla(kur, tutar);
}
else if(birim=="EUR"){
var kur = 7;
if (secilenUlke=="TR"){
var secilenUlkeKdvsi = 18;
}
else if(secilenUlke=="US"){
var secilenUlkeKdvsi = 10
}
else if(secilenUlke=="UK"){
var secilenUlkeKdvsi = 12;
}
else {
document.write("HATA!")
}
var kdv = secilenUlkeKdvsi;
return tutarHesapla(kur, tutar);
}
}
function tutarHesapla(gelenKur, gelenTutar){
var hesap = gelenKur * gelenTutar;
var kdvTutari = hesap / 100 * kdv;
var sonuc = hesap + kdvTutari;
document.write("Toplam tutar: " + sonuc);
}
paraBirimi(kullanicininSectigiParaBirimi, kullanicininSepetininToplamTutari);
</script>