Simplify your workflow in minutes.
Don't have an account yet? Sign up.
Denne artikkelen gir deg et kodeeksempel på hvordan du kan generere KID basert på modulus 10 algoritmen.
Denne artikkelen inneholder i hovedsak bare et kodeExample, så dersom du ikke er utvikler bør du snakke med en utvikler for å bruke dette.
Koden er skrevet i C#, og bruker blant annet LINQ for å gjøre den så kort som mulig. Det er ikke gjort noen optimalisering av koden hastighetsmessig.
Funksjonen under kan kalles på for Example denne måten: GetKID(234567).ToString(); Resultatet vil da blir strengen "2345676".
Koden:
/// <summary> /// Funksjon for å generere KID med modulus 10 /// </summary> /// <param name="InvoiceId">Tallet vi skal finne kontrollsifferet til</param> /// <param name="excludeOrderId">Skal kun kontrollsifferet returneres? Valgfri.</param> /// <returns></returns> public static int GetKID(int InvoiceId, bool excludeOrderId = false) { int sum = 0; //Variabel for å holde styr på om tallet skal ganges med to eller ei (gjøres med annenhvert tall) bool isEven = false; //Går gjennom alle tallene baklengs foreach (var charNumber in InvoiceId.ToString().Reverse()) { int number = Util.CInt(charNumber.ToString()); //Sjekker om det er partall if (isEven == true) sum += number; else { //Siden det er oddetall må vi gange med 2 int partialSum = number * 2; //Dersom summen er 10 eller høyere, må vi finne tverrsummen if (partialSum >= 10) partialSum = partialSum.ToString().Sum(c => c - '0'); sum += partialSum; } isEven = !isEven; } int returnValue = ((((sum / 10) + 1) * 10) - sum) % 10; if (excludeOrderId) return returnValue; else return Util.CInt(InvoiceId.ToString() + returnValue); }
Vi stiller ingen garantier for at kodeExampleet fungerer til ditt bruk, og takker forumet freak.no for inspirasjon.