Modulus udregning
Hejsa,Jeg er ved at lave noget ordre-administration, hvor en ordre skal skrives ud til en pdf-fil og samtidig skal der genereres en indbetalingsstreng.
// **********************************************************
// GetPaymentString() - Genererer streng til giro-indbetaling
// **********************************************************
private static string GetPaymentString(string orderId)
{
// Generer delen med fakturanummeret
string invoiceString = "000000000000000";
int invoiceIdLenght = orderId.Length;
invoiceString = invoiceString.Remove(invoiceString.Length - invoiceIdLenght, invoiceIdLenght);
invoiceString = invoiceString + orderId;
// Sæt kontrolkode og kreditorId på strengen
invoiceString = "+71< " + invoiceString + "+" + "89536081";
return invoiceString;
}
Ovenstående kode virker fint, altså der genereres en streng som kan indtastes/kopieres ind i fx. netbank og den vej indbetales.
Nu har jeg så fået at vide fra bankens side, at der i denne streng - midterste felt skal være et kontrolciffer.
Dette skal udregnes på følgende måde.
"Kontrolcifret udregnes ved at gange det 14. ciffer med 2, det 13. med 1, osv. jf.
nedenstående eksempel. Hvis summen af en udregning bliver 10 eller derover,
adderes de 2 cifre i summen, således at det nye tal - tværsummen - bliver mindre
end 10.
Tværsummen adderes med de resterende summer under 10 til et tal, der anvendes
som tæller.
Tælleren divideres med 10 - modulus. Kontrolcifret er lig med 10 minus resten
fra divisionen. Hvis resten fra divisionen er nul, bliver kontrolcifret "0".
Betalingsident.: 0 2 6 8 4 0 1 4 9 9 6 5 3 2
Vægttal: 1 2 1 2 1 2 1 2 1 2 1 2 1 2
Summer: 0 4 6 16 4 0 1 8 9 18 6 10 3 4
Tæller: 0 +4 +6 +7 +4 +0 +1 +8 +9 +9 +6 +1 +3 +4=62
Tæller/modulus 62/10 = rest = 2
Kontrolciffer 10 - 2 = 8"
Undskyld hvis det bliver meget langt, men mit spørgsmål er så. Hvordan laver jeg en modulus?
Jeg ved godt jeg er nødt til at finde en løsning på selve beregningen selv, men kan ikke gennemskue om .NET har indbygget noget til beregning af modulus 10.