Skip to content

Commit

Permalink
lagt på validering på orgnummer (#176)
Browse files Browse the repository at this point in the history
* lagt på validering på orgnummer

* lagt på endring
  • Loading branch information
christofferlohne authored Aug 23, 2021
1 parent 759d9e9 commit 69fdbf0
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package no.nav.k9.søknad.felles.type;

public final class OrganisasjonsNummerValidator {

private OrganisasjonsNummerValidator() {
}

public static boolean erGyldig(String orgnummer) {

// Skal inneholde 9 siffer og kun tall
if (orgnummer == null || (orgnummer = orgnummer.trim()).length() != 9) { // NOSONAR
return false;
}

int sisteSiffer = Character.getNumericValue(orgnummer.charAt(orgnummer.length() - 1));

return getKontrollSiffer(orgnummer) == sisteSiffer;
}

private static int getKontrollSiffer(String number) {
int lastIndex = number.length() - 1;
int sum = 0;

for (int i = 0; i < lastIndex; i++) {
sum += Character.getNumericValue(number.charAt(i)) * getVektTall(i);
}

int rest = sum % 11;

return getKontrollSifferFraRest(rest);
}

private static int getVektTall(int i) {
int[] vekttall = {3, 2, 7, 6, 5, 4, 3, 2};
return vekttall[i];
}

private static int getKontrollSifferFraRest(int rest) {
if (rest == 0) {
return 0;
}
return 11 - rest;
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package no.nav.k9.søknad.felles.type;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Objects;

import javax.validation.constraints.AssertTrue;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.Objects;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

public class Organisasjonsnummer {

Expand All @@ -32,6 +34,13 @@ public static Organisasjonsnummer of(String verdi) {
return new Organisasjonsnummer(verdi);
}


@AssertTrue(message="Organisasjonsnummer må være gyldig")
private boolean isValid() {
return OrganisasjonsNummerValidator.erGyldig(verdi);
}


@Override
public boolean equals(Object obj) {
if (obj == this) return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ public class PleiepengerBarnSøknadValidatorTest {

}

//TODO bedre navn
@Test
public void søknadOgEndringMedFeil() {
var søknadsperiode = new Periode(LocalDate.now(), LocalDate.now().plusMonths(2));
Expand All @@ -132,7 +133,7 @@ periodeUtenfor, new UttakPeriodeInfo(Duration.ofHours(8)),
ytelse.getTilsynsordning().leggeTilPeriode(periodeUtenfor, new TilsynPeriodeInfo().medEtablertTilsynTimerPerDag(Duration.ofHours(7)));
ytelse.getBeredskap().leggeTilPeriode(periodeUtenfor, new Beredskap.BeredskapPeriodeInfo().medTilleggsinformasjon(TestUtils.testTekst()));
ytelse.getNattevåk().leggeTilPeriode(periodeUtenfor, new Nattevåk.NattevåkPeriodeInfo().medTilleggsinformasjon(TestUtils.testTekst()));
ytelse.getArbeidstid().leggeTilArbeidstaker(new Arbeidstaker(null, Organisasjonsnummer.of("199999999"),
ytelse.getArbeidstid().leggeTilArbeidstaker(new Arbeidstaker(null, Organisasjonsnummer.of("999999999"),
new ArbeidstidInfo(Map.of(
endringsperiode, new ArbeidstidPeriodeInfo(Duration.ofHours(8), Duration.ofHours(4)),
søknadsperiode, new ArbeidstidPeriodeInfo(Duration.ofHours(8), Duration.ofHours(0)),
Expand Down Expand Up @@ -380,7 +381,7 @@ public void feilITrePerioderISammeObjekt() {
var periodeTre = new Periode(stpTre.plusDays(2), stpTre.minusDays(2));

var psb = TestUtils.komplettYtelsePsb(søknadsperiode);
psb.medArbeidstid(new Arbeidstid().medArbeidstaker(List.of(new Arbeidstaker(null, Organisasjonsnummer.of("1122"), new ArbeidstidInfo(Map.of(
psb.medArbeidstid(new Arbeidstid().medArbeidstaker(List.of(new Arbeidstaker(null, Organisasjonsnummer.of(TestUtils.okOrgnummer()), new ArbeidstidInfo(Map.of(
periodeEn, new ArbeidstidPeriodeInfo(Duration.ofHours(8), Duration.ZERO),
periodeTo, new ArbeidstidPeriodeInfo(Duration.ofHours(8), Duration.ZERO),
periodeTre, new ArbeidstidPeriodeInfo(Duration.ofHours(8), Duration.ZERO)))))));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,14 @@ static String testTekst() {
return "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
}

static String okOrgnummer() {
return "999999999";
}

static String ikkeOkOrgnummer() {
return "199999999";
}

static String journalpostId() {
return "sajhdasd83724234";
}
Expand Down

0 comments on commit 69fdbf0

Please sign in to comment.