Skip to content

Commit a56fd85

Browse files
authored
TFP-5869 tune innhenting næringsinntekt (#2592)
1 parent 850461b commit a56fd85

File tree

1 file changed

+20
-10
lines changed
  • domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun

1 file changed

+20
-10
lines changed

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/inntekt/sigrun/SigrunTjeneste.java

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import static java.time.temporal.ChronoUnit.YEARS;
44

55
import java.math.BigDecimal;
6+
import java.time.LocalDate;
67
import java.time.Month;
78
import java.time.MonthDay;
89
import java.time.Year;
@@ -48,23 +49,26 @@ public Map<IntervallEntitet, Map<InntektspostType, BigDecimal>> hentPensjonsgive
4849
}
4950

5051
private List<PgiFolketrygdenResponse> pensjonsgivendeInntektForFolketrygden(String fnr, IntervallEntitet opplysningsperiode) {
51-
var senesteÅr = utledSenesteÅr(opplysningsperiode);
52+
var senesteDato = utledSeneste(opplysningsperiode);
5253
List<PgiFolketrygdenResponse> svarene = new ArrayList<>();
53-
var svarSenesteÅr = svarForSenesteÅr(fnr, senesteÅr);
54+
var svarSenesteÅr = svarForSenesteÅr(fnr, Year.from(senesteDato));
5455
svarSenesteÅr.ifPresent(svarene::add);
55-
utledTidligereÅr(opplysningsperiode, senesteÅr, svarSenesteÅr.isPresent())
56+
utledTidligereÅr(opplysningsperiode, senesteDato, svarSenesteÅr.isPresent())
5657
.forEach(år -> sigrunConsumer.hentPensjonsgivendeInntektForFolketrygden(fnr, år).ifPresent(svarene::add));
5758
return svarene;
5859
}
5960

60-
private Year utledSenesteÅr(IntervallEntitet opplysningsperiode) {
61-
var ifjor = Year.now().minusYears(1);
62-
var oppgitt = opplysningsperiode != null ? Year.from(opplysningsperiode.getTomDato()) : ifjor;
63-
return oppgitt.isAfter(ifjor) ? ifjor : oppgitt;
61+
private LocalDate utledSeneste(IntervallEntitet opplysningsperiode) {
62+
var ifjor = LocalDate.now().minusYears(1);
63+
var oppgitt = opplysningsperiode != null ? opplysningsperiode.getTomDato() : ifjor;
64+
// Ikke senere år enn i fjor
65+
return oppgitt.getYear() > ifjor.getYear() ? ifjor : oppgitt;
6466
}
6567

6668
public Optional<PgiFolketrygdenResponse> svarForSenesteÅr(String fnr, Year senesteÅr) {
67-
if (Year.now().minusYears(1).equals(senesteÅr) && MonthDay.now().isBefore(TIDLIGSTE_SJEKK_FJOR)) {
69+
// Venter ikke svar før i fjor og ikke før etter TIDLIGSTE_SJEKK_FJOR
70+
var ifjor = Year.now().minusYears(1);
71+
if (senesteÅr.isAfter(ifjor) || (ifjor.equals(senesteÅr) && MonthDay.now().isBefore(TIDLIGSTE_SJEKK_FJOR))) {
6872
return Optional.empty();
6973
}
7074
try {
@@ -74,8 +78,9 @@ private List<PgiFolketrygdenResponse> pensjonsgivendeInntektForFolketrygden(Stri
7478
}
7579
}
7680

77-
private List<Year> utledTidligereÅr(IntervallEntitet opplysningsperiode, Year senesteÅr, boolean harDataSenesteÅr) {
78-
long periodeLengde = opplysningsperiode != null ? YEARS.between(opplysningsperiode.getFomDato(), opplysningsperiode.getTomDato()) : 2L;
81+
private List<Year> utledTidligereÅr(IntervallEntitet opplysningsperiode, LocalDate senesteDato, boolean harDataSenesteÅr) {
82+
var senesteÅr = Year.from(senesteDato);
83+
long periodeLengde = opplysningsperiode != null ? periodeLengde(opplysningsperiode, senesteDato) : 2L;
7984
var tidligsteÅr = opplysningsperiode != null ? Year.from(opplysningsperiode.getFomDato()) : senesteÅr.minusYears(2);
8085
var fraTidligsteÅr = harDataSenesteÅr || periodeLengde > 2L ? tidligsteÅr : tidligsteÅr.minusYears(1);
8186
if (fraTidligsteÅr.isBefore(FØRSTE_PGI)) {
@@ -89,4 +94,9 @@ private List<PgiFolketrygdenResponse> pensjonsgivendeInntektForFolketrygden(Stri
8994
return årene.stream().sorted(Comparator.reverseOrder()).toList();
9095
}
9196

97+
private long periodeLengde(IntervallEntitet opplysningsperiode, LocalDate senesteDato) {
98+
var lengde = YEARS.between(opplysningsperiode.getFomDato(), senesteDato);
99+
return lengde >= 2 ? lengde : 2;
100+
}
101+
92102
}

0 commit comments

Comments
 (0)