Skip to content

Commit 7491761

Browse files
authored
POFIM-57: For å sammenligne inntektsmelding fra arbeidsgiverportalen … (#2589)
* POFIM-57: For å sammenligne inntektsmelding fra arbeidsgiverportalen brukes alltid innsendingstidspunkt
1 parent deea251 commit 7491761

File tree

3 files changed

+80
-0
lines changed

3 files changed

+80
-0
lines changed

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/InntektsmeldingAggregat.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ public Set<JournalpostId> leggTilEllerErstatt(Inntektsmelding inntektsmelding) {
122122

123123
private boolean skalFjerneInntektsmelding(Inntektsmelding gammel, Inntektsmelding ny) {
124124
if (gammel.gjelderSammeArbeidsforhold(ny)) {
125+
// Fpinntektsmelding har ikke løpenummer delt med altinn, så her må vi sammenligne innsendingstidspunktet.
126+
if (ny.erSendtFraFpinntektsmelding() || gammel.erSendtFraFpinntektsmelding()) {
127+
return gammel.getInnsendingstidspunkt().compareTo(ny.getInnsendingstidspunkt()) <= 0;
128+
}
125129
if (gammel.getKanalreferanse() != null && ny.getKanalreferanse() != null) {
126130
return ny.getKanalreferanse().compareTo(gammel.getKanalreferanse()) > 0;
127131
}

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/inntektsmelding/Inntektsmelding.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,10 @@ public List<Refusjon> getEndringerRefusjon() {
405405
return Collections.unmodifiableList(endringerRefusjon);
406406
}
407407

408+
public boolean erSendtFraFpinntektsmelding() {
409+
return ("NAV_NO").equals(getKildesystem()) || "OVERSTYRING_FPSAK".equals(getKildesystem());
410+
}
411+
408412
void leggTil(Gradering gradering) {
409413
this.graderinger.add(gradering);
410414
gradering.setInntektsmelding(this);

domenetjenester/iay/src/test/java/no/nav/foreldrepenger/abakus/domene/iay/InntektArbeidYtelseRepositoryTest.java

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,78 @@ void skal_kun_hente_aktivt_grunnlag() {
560560
assertThat(aktivtGrunnlag.getInntektsmeldinger()).isPresent();
561561
assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()).hasSize(1);
562562
assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()).contains(inntektsmelding3);
563+
}
564+
565+
@Test
566+
void skal_sammenligne_innsendingtidspunkt_for_å_finne_oppdatert_im_når_im_kommer_fra_fpinntektsmelding() {
567+
var aktørId = new AktørId("1231231231223");
568+
var koblingReferanse = new KoblingReferanse(UUID.randomUUID());
569+
var saksnummer = new Saksnummer("12341234");
570+
var ko = new Kobling(YtelseType.FORELDREPENGER, saksnummer, koblingReferanse, aktørId);
571+
LocalDateTime now = LocalDateTime.now();
572+
LocalDate idag = now.toLocalDate();
573+
ko.setOpplysningsperiode(IntervallEntitet.fraOgMedTilOgMed(idag.minusYears(2), idag));
574+
koblingRepository.lagre(ko);
575+
576+
var inntektsmelding1 = InntektsmeldingBuilder.builder()
577+
.medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("889640782")))
578+
.medArbeidsforholdId(InternArbeidsforholdRef.nullRef())
579+
.medArbeidsforholdId(EksternArbeidsforholdRef.nullRef())
580+
.medJournalpostId("1")
581+
.medInnsendingstidspunkt(now.minusDays(10))
582+
.medBeløp(BigDecimal.TEN)
583+
.medKanalreferanse("AR123")
584+
.leggTil(new Fravær(idag.minusDays(30), idag.minusDays(25), null))
585+
.medRefusjon(BigDecimal.TEN)
586+
.build();
587+
var inntektsmelding2 = InntektsmeldingBuilder.builder()
588+
.medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("992257822")))
589+
.medArbeidsforholdId(InternArbeidsforholdRef.nullRef())
590+
.medArbeidsforholdId(EksternArbeidsforholdRef.nullRef())
591+
.medInnsendingstidspunkt(now.minusDays(9))
592+
.medJournalpostId("2")
593+
.medBeløp(BigDecimal.ONE)
594+
.medKanalreferanse("AR124")
595+
.leggTil(new Fravær(idag.minusDays(26), idag.minusDays(25), null))
596+
.medRefusjon(BigDecimal.ONE)
597+
.build();
598+
var inntektsmelding3 = InntektsmeldingBuilder.builder()
599+
.medArbeidsgiver(Arbeidsgiver.virksomhet(new OrgNummer("992257822")))
600+
.medArbeidsforholdId(InternArbeidsforholdRef.nullRef())
601+
.medArbeidsforholdId(EksternArbeidsforholdRef.nullRef())
602+
.medInnsendingstidspunkt(now)
603+
.medKildesystem("NAV_NO")
604+
.medJournalpostId("3")
605+
.medBeløp(BigDecimal.ONE)
606+
.medKanalreferanse("AR122")
607+
.leggTil(new Fravær(idag.minusDays(26), idag.minusDays(25), null))
608+
.medRefusjon(BigDecimal.ONE)
609+
.build();
610+
611+
var b = "AR122".compareTo("AR124") > 0;
612+
613+
repository.lagre(ko.getKoblingReferanse(), ArbeidsforholdInformasjonBuilder.oppdatere(new ArbeidsforholdInformasjon()),
614+
List.of(inntektsmelding1, inntektsmelding2, inntektsmelding3));
615+
616+
var grunnlag = repository.hentAlleInntektArbeidYtelseGrunnlagFor(aktørId, saksnummer, YtelseType.FORELDREPENGER, true);
617+
618+
assertThat(grunnlag).hasSize(1);
619+
620+
var inntektsmeldings = grunnlag.stream()
621+
.map(InntektArbeidYtelseGrunnlag::getInntektsmeldinger)
622+
.filter(Optional::isPresent)
623+
.map(Optional::get)
624+
.map(InntektsmeldingAggregat::getInntektsmeldinger)
625+
.flatMap(Collection::stream)
626+
.collect(Collectors.toList());
627+
assertThat(inntektsmeldings).hasSize(2);
628+
629+
var aktivtGrunnlag = repository.hentInntektArbeidYtelseForBehandling(koblingReferanse);
630+
631+
assertThat(aktivtGrunnlag.getInntektsmeldinger()).isPresent();
632+
assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger()).hasSize(2);
633+
assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger().stream().anyMatch(i-> i.getKanalreferanse().equals(inntektsmelding1.getKanalreferanse()))).isTrue();
634+
assertThat(aktivtGrunnlag.getInntektsmeldinger().get().getInntektsmeldinger().stream().anyMatch(i-> i.getKanalreferanse().equals(inntektsmelding3.getKanalreferanse()))).isTrue();
563635

564636
}
565637
}

0 commit comments

Comments
 (0)