Skip to content

Instantly share code, notes, and snippets.

@bebraw
Created February 3, 2012 18:24
Show Gist options
  • Save bebraw/1731583 to your computer and use it in GitHub Desktop.
Save bebraw/1731583 to your computer and use it in GitHub Desktop.
// 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();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment