Anüite nedir? Google App Script ile basit birk kredi taksit (anüite) hesap makinesi denemem


Anüite nedir?:  
Anüite eşit zaman aralığında (mesela ayda bir), eşit miktarda (mesela kredi borcununuz taksitleri) olarak ifade edilebilir.
Anüite aslında sonsuz ödemesi olan tahvil formülü yani (1/r) ‘den belirli bir süre sonra başlayan sonsuz ödemeler formülünün net bugünkü değeri (1/r *(1+r)^t ) formülünün çıkarılması ile bulunur. 
Anüitenin günlük hayatta kullanıldığı yer kredi borcu taksitleridir. Mesela 100.000 TL krediyi 10 yıl için 0.79 faiz oranı ile çektiğinizde 10 yıl sonunda 155.138,40 TL ödersiniz. Bunun 55138.40 TL ‘si faizdir. Aylık ödemesi ise:
1.292,82 TL olur.

Şimdi normalde kredi hesabı yapmak için ya anüite faktör tablolarından ya da hazır araçlardan faydalanmanız gerekir (ya da bankaya gitmelisiniz:)
Bunun için Google App Script ile yazdığım basit bir anüite hesap makinesi var. Burayı tıklayarak kullanabilirsiniz.Diğer taraftan Google App Script’in ne olduğu hakkında ve öğrenmek için şu makalemi okuyabilirsiniz.
Reklamlar

Google App Script ile ScriptDB kullanımı


Google App Script ile ileri uygulamalar yazarken, sırf bu makro benzeri uygulamalarınızda kullanabilmek için serbest veri tabanı hizmeti de sunulmaktadır. Adı ScriptDB’dir. Kayıtlar ve sorgular JSON ile yapılır. Bu hizmetin detayı hakkında şurayı inceleyebilirsiniz.

Ben de ilk scriptdb’imi yazdım. Çok basit bir uygulama olarak incelenebilir:

https://gist.github.com/4597983.js

Google App Script ile basit bir mesaj formu uygulaması


Google App Script ile daha önce Google E-tablolar üzerinde nasıl script yazabileceğimizi görmüştük. Bu Google App Script’ler Excel için ne ise Google Drive (eski adı ile Google Dökümanlar) için de aynı şey olmaktadır.
Google App Script işi daha da ilerleterek, cloud veritabı ve bağımsız uygulama yayınlama imkanını da verdi sonunda.
Bu son hizmeti de öğrenir öğrenmez, siz değerli okurlarım için bağımsız uygulama yazma anlamında basit bir form işleyici hizmetinini nasıl yazılacağını aşağıda paylaşıyorum.

Sayfanın çalışır hali için burayı tıklayın

Bu sayfaya ait kodları görmek için burayı tıklayın

İşlevi yapan Google App Script kodu ise şudur:

//blog.suatatan.com
function doGet(e) {
var template = HtmlService.createTemplateFromFile('Arayuz');
template.action = ScriptApp.getService().getUrl();
return template.evaluate();
}

function doPost(e) {
var template = HtmlService.createTemplateFromFile('Tesekkur.html');
template.name = e.parameter.name;
template.comment = e.parameter.comment;
template.screenshot = e.parameter.screenshot;
return template.evaluate();
}

Convert String to Google App Engine Date


When you print from Google App Engine datastore which have DateTimeProperty you see such as this:

Date: ‘2008-10-10 16:40:25.126049’

You can convert this string directly to Datastore Datetime property with function below:

    def convert_gae_datetime(self,gae_string_date):
        datestr=gae_string_date.split(“.”)[0]
        return datetime.strptime(datestr, “%Y-%m-%d %H:%M:%S”)

Simple CRUD (Create,Update Delete) App in Google App Script


I want to use Google Spreadsheet as database-like. Normally, this is isn’t posibble at all. But not impossible. I coded a simple CRUD script for spreadsheet. You can use it for developing row-by-row logging apps.
Enjoy !

var belge=SpreadsheetApp.getActiveSpreadsheet();
var sayfa=belge.getSheets()[0];


function save(data1) {
  
  var lr=sayfa.getLastRow();
  var new_record_row=lr+1;
  //generate id
  var id=uid();
  
  sayfa.getRange(new_record_row, 1).setValue(id)
  
  sayfa.getRange(new_record_row, 2).setValue(data1)
  return “Saved”;
  
}


function update(uid,new_value){


  var lr=sayfa.getLastRow();
  
  for(i=1;i
    var okunan=sayfa.getRange(i,1);
    var okunan_deger=okunan.getValue();
    var snc=okunan_deger.indexOf(uid);
    
    if(snc != -1){
      var secili_satir=sayfa.getRange(i,2).setValue(new_value);
    
    } 
  }
  return “Updated”;
}


function remove_row(uid){


var lr=sayfa.getLastRow();
  
  for(i=1;i
    var okunan=sayfa.getRange(i,1);
    var okunan_deger=okunan.getValue();
    var snc=okunan_deger.indexOf(uid);
    
    if(snc != -1){
     sayfa.deleteRow(i);
    
    } 
  }
  return “Removed”;
}






function test(){
  remove_row(“20125171339918788818”);
  


}


function uid(){


var dateObject = new Date();
     var uniqueId = 
          dateObject.getFullYear() + “ + 
          dateObject.getMonth() + ” + 
          dateObject.getDate() + “ + 
          dateObject.getTime();


     var uid=uniqueId.toString();
     return uid;


}


function delete_record(uid){
var lr=sayfa.getLastRow();
  
  for(i=1;i
    var okunan=sayfa.getRange(i,1);
    var okunan_deger=okunan.getValue();
    var snc=okunan_deger.indexOf(uid);
    
    if(snc != -1){
      var secili_satir=sayfa.getRange(i,2).setValue("deleted”);
    
    } 
  }
}

Cidden iyi iş yapan ancak delice bir Google App Script


Google App Script ile kaynak tablo içinde(0) başka bir tablo içindeki(1) liste halindeki her bir veriyi alıp kaynak tablodan arayarak bulduğu takdirde,bulduğu satırdaki başka bir hücre verisini alıp, 1. tablodaki listenin yanındaki satırlara yazdıran acaibül garaip suat atan hayratı scipt.
Yanlız çalışınca çok CPU harcıyor. Hesaplamalar uzun sürüyor.

_______________

function goster(ifade){
  Browser.msgBox(ifade);
}


function tara(aif){
 
  var belge=SpreadsheetApp.getActiveSpreadsheet();
  var sayfa=belge.getSheets()[0];
  for(i=6;i
    var okunan=sayfa.getRange(i,5);
    var okunan_deger=okunan.getValue();
    var snc=okunan_deger.indexOf(aif);
   
    if(snc != -1){
   
    okunan.setBackground(“red”);
    var pcu=sayfa.getRange(i,20).getValue();
    sayfa.getRange(i,20).setBackground(“cyan”);
    var hq=sayfa.getRange(i,21).getValue();
    }
    else
    {
    okunan.setBackground(“white”);
    }
   
   
  }
  return pcu;




}
function yaz()
{


var belge=SpreadsheetApp.getActiveSpreadsheet();
var sayfa=belge.getSheets()[1];
for(j=1;j
  var kyn=sayfa.getRange(j,1).getValue();
  var snc=tara(kyn);
  sayfa.getRange(j,2).setValue(snc);
}




}

_______________

Google App Script ile e-tablo (spreadsheet) ile entegre zengin form oluşturma


Google App ile excel tablolarının Google dökümanlardaki muadili olan Google e-tablolara entegre formlar yazabiliriz:
Aşağıdaki gibi:

Bunu oluşturabilmek için Araçlar> Komut dosyası yöneticisini kullanıyoruz.
Aşağıdaki gibi kodlarımızı yazıyoruz:
Kodlarımızı yazdıktan sonra üçgene basarak form_goster fonksiyonumuzu çalıştırınca ilk resimdek form çıkıyor. Bu forma girilen veri form_isle fonksiyonu ile A1 hücresine yazdırılacak.
Açıklamalı kodlarımız aşağıda:

function form_goster() {
  //Uygulama oluştur
  var app=UiApp.createApplication();
  app.setTitle(“Suat Google Apps Form”);
  //panel oluştur
  var panel=app.createVerticalPanel();
  //texbox oluştur
  var tf=app.createTextBox();
  //Ekle butonu oluştur
  var bt=app.createButton(“Ekle”);
  //oluşturulan texbota isim ata
  tf.setName(“ad”).setId(“ad”);
  
  //bu elemanları panele yerlestir
  panel.add(tf);
  panel.add(bt);
  
  //form submit edilince yapilacak islem
  var formtetik=app.createServerHandler(“form_isle”);
  //tetigi butona atadik
  bt.addClickHandler(formtetik);
  //is bitince panele don.
  formtetik.addCallbackElement(panel);
  
  //paneli de uygulamaya yerlerstir
  app.add(panel);
  
  //uygulamayi goster
  var doc=SpreadsheetApp.getActive();
  doc.show(app);
  
}
function form_isle(e){
  //calisan uygulamay ele al
  var app=UiApp.getActiveApplication();
  //formdan gelen veriyi cek
  var formdan_gelen_ad=e.parameter.ad;
  //bu veriyi ne yapalim. alip A1’e yazdiralim
  var sheet=SpreadsheetApp.getActiveSpreadsheet();
  sheet.getRange(“A1”).setValue(formdan_gelen_ad);

}

Google App Script ile tablo manipülasyonu


Google App Script ile aşağıda yazdığım fonksiyonlarla A sütununda sıralanmış parasal tutarların risk değerleri için 1 ila 5 arası değerleme yapılıp B sütununa otomatik olarak yazdırılır.

İşte script:

function risk_test(tutar){
  var x=tutar;
  var risk=0;
  if ((x>10000) && (x
    risk=1;
  }
  else if ((x>100000) && (x
    risk=2;
  }
  else if ((x>500000) && (x
    risk=3;
  }
  else if ((x>1000000) && (x
    risk=4;
  }
  else if (x>2000000){
    risk=5;
  }
  else
  {
  risk=0;
  }
  return risk;
}




function risk_hesabi_yap_suat_atan_abi(){
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sheet=ss.getSheets()[0];


    for(i=2;i
      
       var kaynak=sheet.getRange(i,1).getValue();
       var hedef=sheet.getRange(i,2);
       var sonuc=risk_test(kaynak);
       hedef.setValue(sonuc);
       
    }  
  Browser.msgBox(“Risk hesaplandı”);
      
}

İlk Google App Script Uygulamam


Google Drive (Docs) kullanıyorsanız excel makroları muadili olarak kullanılan ve saf Javascriptle yazılan “Google App Script” kodlamayla üstün ve karmaşık işlemler yapabilirsiniz. Buna mail gönderimi, google data servislerine erişim de dahildir. Bu yönüyle excel makrolarından daha fazla şey vadediyor. Ve daha kolay…
Script A1 hücresindeki değeri alıp kdv’sini hesaplayıp B1’e yazıyor.

İşte ilk scriptim:

function kdv_hesapla(deger) {
  var kdv=deger*0.18;
  return kdv;
}
function run(){
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sheet=ss.getSheets()[0];
      
  var kaynak=sheet.getRange(“A1”);
  var hedef=sheet.getRange(“B1”);
  var deger=kdv_hesapla(kaynak.getValue());
  hedef.setValue(deger)
      
}

WordPress.com'da ücretsiz bir web sitesi ya da blog oluşturun.

Yukarı ↑