bebraw
2/3/2012 - 6:24 PM

viite.js

// Viitenumeron muodostaja JavaScriptillä
// (c) Kimmo Surakka <kusti@cs.tut.fi>, 1998
// Koodia saa käyttää vapaasti muuttamattomana,
// tätä tekijänoikeusilmoitusta ei saa poistaa.
//
// Muokattu Kimmo Surakan luvalla, nyt muodostaa sarjan viitenumeroita. 
// (c) Jori Mäntysalo <jori.mantysalo@uta.fi>, 2004
//
function teeViite(memberId, invoiceId) {
   pohja = '' + (memberId * 1000 + invoiceId);
  
   // tarkistetta käytetään painotetun summan laskemiseen
   var tarkiste = 0;
   //  tänne sijoitetaan lopullinen, muotoiltu merkkijono:
   var muotoiltu="";
   // Tarvittavat kertoimet löytyvät tästä:
   var kerroin = "731";
   // Käydään merkkijono läpi lopusta alkuun:
   for( var i=pohja.length - 1, j=0, k=1 ; i >= 0 ; i--, j++, k++) {
       // Käsiteltävä merkki:
       var merkki = pohja.charAt(i, 10);
       // Lasketaan painotettua summaa:
       tarkiste += parseInt(kerroin.charAt( j % 3 ), 10)
                   * parseInt(merkki);
       // Muotoillaan samalla tulosmerkkijonoa:
       if( k%5 == 0) {
           muotoiltu = " " + muotoiltu;
       }
       muotoiltu = merkki + muotoiltu;
   }
   // Muodostetaan tarkistusnumero
   tarkiste = (10 - tarkiste % 10) % 10;
   // Palautetaan täydellinen viitenumero:
   return muotoiltu + tarkiste.toString();
}