Hej,
är det någon som har en algoritm för att räkna ut OCR nummer? Det är väl så att sista siffran är kontrollsiffra eller något...
// Nippe
5 svar · 1 732 visningar · startad av nkrantz
Hej,
är det någon som har en algoritm för att räkna ut OCR nummer? Det är väl så att sista siffran är kontrollsiffra eller något...
// Nippe
Jag tror att alla har sina egna algoritmer. På mina avgiftsavier för min bostadsrätt, är sista siffran bara ett löpnummer som minskas för varje månad, för att sedan börja om på "9" när den väl har nått "0". Resten av OCR-numret bestod av ett ID, samt år och månad. Men det var det systemet. Inget säger att andra måste göra likadant, såvitt jag vet. Huvudsaken är egentligen bara att de kan identifiera vilken räkning som har betalats.
Jo OCR nummer ha alltid en kontrol siffra men jag tror det är näst sista och den säger bara hur många siffor det är, och det bra med en siffra :)
Jag har hört den en gång men jag kommer inte ihåg mycket alls.
http://skatteverket.se/ -> Skatter -> Skattekonto -> Referensnummer (OCR) för inbetalning
Där hittar nu hur man räknar ut giltiga OCR nummer för både post och bankgiro. Jag lyckats dock inte hitta deras script som räknar så det är inte så lätt att komma på hur dom räknar.
Kommer inte ihåg precis hur det funkar men denna funktionen skrev jag för ett bra tag sen:
function ocr ($ordernr)
{
$len_var = (strlen ($ordernr) + 2) % 10;
$ordernr = $ordernr . $len_var;
$len = strlen ($ordernr) - 1;
$sum = 0;
$nr = 2;
for ($i = $len; $i >= 0; $i--)
{
$sum += sum ($ordernr[$i] * $nr);
$nr = ($nr == 2) ? 1 : 2;
}
return $ordernr . (ceil ($sum/10) * 10 - $sum);
}
Var tvungen att göra lite ändringar i funktionen men jag tror den ska funka. I värsta fall får du säga till så letar jag upp hur man räknade ut det så kan du skriva en egen funktion. Den näst sista siffran anger hur långt OCR-nr är och sista siffran är en kontrollsiffra.
Det ser ut att vara samma system som för kontrollsiffran i personnummer och det beskrivs här:
Okej, tack så mycket, skall kontrollera om det funkar så fort jag får tid!