Skip to content

Commit f442d80

Browse files
authored
Mapper ytelse anvist andel fra infotrygdgrunnlag (#1825)
1 parent 42bae36 commit f442d80

File tree

7 files changed

+248
-59
lines changed

7 files changed

+248
-59
lines changed

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/DefaultIAYRegisterInnhentingTjenesteImpl.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import no.nav.foreldrepenger.abakus.kobling.kontroll.YtelseTypeRef;
1414
import no.nav.foreldrepenger.abakus.registerdata.arbeidsgiver.virksomhet.VirksomhetTjeneste;
1515
import no.nav.foreldrepenger.abakus.registerdata.inntekt.sigrun.SigrunTjeneste;
16-
import no.nav.foreldrepenger.abakus.vedtak.domene.VedtakYtelseRepository;
1716

1817
/**
1918
* Standard IAY register innhenter.
@@ -31,7 +30,8 @@ public DefaultIAYRegisterInnhentingTjenesteImpl(InntektArbeidYtelseTjeneste innt
3130
VirksomhetTjeneste virksomhetTjeneste,
3231
InnhentingSamletTjeneste innhentingSamletTjeneste,
3332
AktørTjeneste aktørConsumer,
34-
SigrunTjeneste sigrunTjeneste, VedtattYtelseInnhentingTjeneste vedtattYtelseInnhentingTjeneste) {
33+
SigrunTjeneste sigrunTjeneste,
34+
VedtattYtelseInnhentingTjeneste vedtattYtelseInnhentingTjeneste) {
3535
super(inntektArbeidYtelseTjeneste,
3636
virksomhetTjeneste,
3737
innhentingSamletTjeneste,
@@ -53,7 +53,7 @@ public DefaultIAYRegisterInnhentingTjenesteImpl(InntektArbeidYtelseTjeneste innt
5353
Optional<OppgittOpptjeningAggregat> aggregat = grunnlag.flatMap(InntektArbeidYtelseGrunnlag::getOppgittOpptjeningAggregat);
5454
boolean harOppgittOpptjeningSNMedAggregat = aggregat.isPresent() && aggregat.get().getOppgitteOpptjeninger().stream().anyMatch(oppgittOpptjening -> !oppgittOpptjening.getEgenNæring().isEmpty());
5555

56-
return harOppgittSNOpptjeningUtenAggregat || harOppgittOpptjeningSNMedAggregat ;
56+
return harOppgittSNOpptjeningUtenAggregat || harOppgittOpptjeningSNMedAggregat;
5757

5858

5959
}

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/IAYRegisterInnhentingFellesTjenesteImpl.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@
5555
import no.nav.foreldrepenger.abakus.typer.InternArbeidsforholdRef;
5656
import no.nav.foreldrepenger.abakus.typer.OrganisasjonsNummerValidator;
5757
import no.nav.foreldrepenger.abakus.typer.PersonIdent;
58-
import no.nav.foreldrepenger.abakus.vedtak.domene.VedtakYtelseRepository;
5958
import no.nav.vedtak.exception.TekniskException;
6059

6160
public abstract class IAYRegisterInnhentingFellesTjenesteImpl implements IAYRegisterInnhentingTjeneste {
@@ -170,7 +169,7 @@ private void leggTilInntekter(AktørId aktørId, InntektArbeidYtelseAggregatBuil
170169
}
171170
}
172171

173-
private Map<Arbeidsgiver, Map<YearMonth, List<MånedsbeløpOgSkatteOgAvgiftsregel>>> mapTilArbeidsgiver(InntektsInformasjon inntektsInformasjon, YtelseType ytelse) {
172+
private Map<Arbeidsgiver, Map<YearMonth, List<MånedsbeløpOgSkatteOgAvgiftsregel>>> mapTilArbeidsgiver(InntektsInformasjon inntektsInformasjon, YtelseType ytelse) {
174173
Map<String, Set<YearMonth>> alleArbeidsgivereMedMåneder = inntektsInformasjon.getMånedsinntekterUtenomYtelser().stream()
175174
.collect(Collectors.groupingBy(Månedsinntekt::getArbeidsgiver, Collectors.mapping(Månedsinntekt::getMåned, Collectors.toSet())));
176175
Map<String, Arbeidsgiver> arbeidsgivereLookup = new HashMap<>();

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/YtelseRegisterInnhenting.java

Lines changed: 2 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,21 @@
11
package no.nav.foreldrepenger.abakus.registerdata;
22

33
import java.time.LocalDate;
4-
import java.util.Comparator;
54
import java.util.List;
65
import java.util.Optional;
76

87
import no.nav.abakus.iaygrunnlag.kodeverk.Fagsystem;
98
import no.nav.foreldrepenger.abakus.domene.iay.InntektArbeidYtelseAggregatBuilder;
109
import no.nav.foreldrepenger.abakus.domene.iay.YtelseBuilder;
11-
import no.nav.foreldrepenger.abakus.domene.iay.YtelseGrunnlag;
12-
import no.nav.foreldrepenger.abakus.domene.iay.YtelseGrunnlagBuilder;
13-
import no.nav.foreldrepenger.abakus.domene.iay.YtelseStørrelseBuilder;
1410
import no.nav.foreldrepenger.abakus.felles.jpa.IntervallEntitet;
1511
import no.nav.foreldrepenger.abakus.kobling.Kobling;
12+
import no.nav.foreldrepenger.abakus.registerdata.infotrygd.InfotrygdgrunnlagYtelseMapper;
1613
import no.nav.foreldrepenger.abakus.registerdata.ytelse.arena.MeldekortUtbetalingsgrunnlagMeldekort;
1714
import no.nav.foreldrepenger.abakus.registerdata.ytelse.arena.MeldekortUtbetalingsgrunnlagSak;
18-
import no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.dto.InfotrygdYtelseAnvist;
1915
import no.nav.foreldrepenger.abakus.registerdata.ytelse.infotrygd.dto.InfotrygdYtelseGrunnlag;
2016
import no.nav.foreldrepenger.abakus.typer.AktørId;
21-
import no.nav.foreldrepenger.abakus.typer.OrgNummer;
22-
import no.nav.foreldrepenger.abakus.typer.OrganisasjonsNummerValidator;
2317
import no.nav.foreldrepenger.abakus.typer.PersonIdent;
2418
import no.nav.foreldrepenger.abakus.typer.Saksnummer;
25-
import no.nav.foreldrepenger.abakus.vedtak.domene.VedtakYtelseRepository;
2619

2720
public class YtelseRegisterInnhenting {
2821
private final InnhentingSamletTjeneste innhentingSamletTjeneste;
@@ -49,7 +42,7 @@ void byggYtelser(Kobling behandling, AktørId aktørId, PersonIdent ident, Inter
4942
}
5043

5144
List<InfotrygdYtelseGrunnlag> alleGrunnlag = innhentingSamletTjeneste.innhentInfotrygdGrunnlag(ident, opplysningsPeriode);
52-
alleGrunnlag.forEach(grunnlag -> oversettInfotrygdYtelseGrunnlagTilYtelse(aktørYtelseBuilder, grunnlag));
45+
alleGrunnlag.forEach(grunnlag -> InfotrygdgrunnlagYtelseMapper.oversettInfotrygdYtelseGrunnlagTilYtelse(aktørYtelseBuilder, grunnlag));
5346

5447
List<InfotrygdYtelseGrunnlag> ghosts = innhentingSamletTjeneste.innhentSpokelseGrunnlag(ident, opplysningsPeriode);
5548
ghosts.forEach(grunnlag -> oversettSpokelseYtelseGrunnlagTilYtelse(aktørYtelseBuilder, grunnlag));
@@ -62,26 +55,6 @@ void byggYtelser(Kobling behandling, AktørId aktørId, PersonIdent ident, Inter
6255
inntektArbeidYtelseAggregatBuilder.leggTilAktørYtelse(aktørYtelseBuilder);
6356
}
6457

65-
66-
private void oversettInfotrygdYtelseGrunnlagTilYtelse(InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder aktørYtelseBuilder, InfotrygdYtelseGrunnlag grunnlag) {
67-
IntervallEntitet periode = utledPeriodeNårTomMuligFørFom(grunnlag.getVedtaksPeriodeFom(), grunnlag.getVedtaksPeriodeTom());
68-
var tidligsteAnvist = grunnlag.getUtbetaltePerioder().stream().map(InfotrygdYtelseAnvist::getUtbetaltFom).min(Comparator.naturalOrder());
69-
YtelseBuilder ytelseBuilder = aktørYtelseBuilder.getYtelselseBuilderForType(Fagsystem.INFOTRYGD, grunnlag.getYtelseType(),
70-
grunnlag.getTemaUnderkategori(), periode, tidligsteAnvist)
71-
.medBehandlingsTema(grunnlag.getTemaUnderkategori())
72-
.medVedtattTidspunkt(grunnlag.getVedtattTidspunkt())
73-
.medStatus(grunnlag.getYtelseStatus());
74-
grunnlag.getUtbetaltePerioder().forEach(vedtak -> {
75-
final IntervallEntitet intervall = utledPeriodeNårTomMuligFørFom(vedtak.getUtbetaltFom(), vedtak.getUtbetaltTom());
76-
ytelseBuilder.leggtilYtelseAnvist(ytelseBuilder.getAnvistBuilder()
77-
.medAnvistPeriode(intervall)
78-
.medUtbetalingsgradProsent(vedtak.getUtbetalingsgrad())
79-
.build());
80-
});
81-
ytelseBuilder.medYtelseGrunnlag(oversettYtelseArbeid(grunnlag, ytelseBuilder.getGrunnlagBuilder()));
82-
aktørYtelseBuilder.leggTilYtelse(ytelseBuilder);
83-
}
84-
8558
private void oversettSpokelseYtelseGrunnlagTilYtelse(InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder aktørYtelseBuilder, InfotrygdYtelseGrunnlag grunnlag) {
8659
IntervallEntitet periode = utledPeriodeNårTomMuligFørFom(grunnlag.getVedtaksPeriodeFom(), grunnlag.getVedtaksPeriodeTom());
8760
var saksnummer = new Saksnummer(grunnlag.getVedtaksreferanse());
@@ -100,26 +73,6 @@ private void oversettSpokelseYtelseGrunnlagTilYtelse(InntektArbeidYtelseAggregat
10073
aktørYtelseBuilder.leggTilYtelse(ytelseBuilder);
10174
}
10275

103-
private YtelseGrunnlag oversettYtelseArbeid(InfotrygdYtelseGrunnlag grunnlag, YtelseGrunnlagBuilder grunnlagBuilder) {
104-
grunnlagBuilder.medDekningsgradProsent(grunnlag.getDekningsgrad());
105-
grunnlagBuilder.medGraderingProsent(grunnlag.getGradering());
106-
grunnlagBuilder.medOpprinneligIdentdato(grunnlag.getOpprinneligIdentdato());
107-
grunnlagBuilder.medArbeidskategori(grunnlag.getKategori());
108-
grunnlagBuilder.tilbakestillStørrelse();
109-
grunnlag.getArbeidsforhold().forEach(arbeid -> {
110-
final YtelseStørrelseBuilder ysBuilder = grunnlagBuilder.getStørrelseBuilder();
111-
ysBuilder.medBeløp(arbeid.getInntekt())
112-
.medHyppighet(arbeid.getInntektperiode())
113-
.medErRefusjon(arbeid.getRefusjon());
114-
if (OrganisasjonsNummerValidator.erGyldig(arbeid.getOrgnr())) {
115-
ysBuilder.medVirksomhet(new OrgNummer(arbeid.getOrgnr()));
116-
}
117-
// Her er plass til bool refusjon
118-
grunnlagBuilder.medYtelseStørrelse(ysBuilder.build());
119-
});
120-
return grunnlagBuilder.build();
121-
}
122-
12376
private void oversettMeldekortUtbetalingsgrunnlagTilYtelse(InntektArbeidYtelseAggregatBuilder.AktørYtelseBuilder aktørYtelseBuilder,
12477
MeldekortUtbetalingsgrunnlagSak ytelse) {
12578
Optional<LocalDate> førsteMeldekortFom = finnFørsteMeldekortFom(ytelse);

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/fagsakytelser/es/IAYRegisterInnhentingESTjenesteImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import no.nav.foreldrepenger.abakus.registerdata.VedtattYtelseInnhentingTjeneste;
1313
import no.nav.foreldrepenger.abakus.registerdata.arbeidsgiver.virksomhet.VirksomhetTjeneste;
1414
import no.nav.foreldrepenger.abakus.registerdata.inntekt.sigrun.SigrunTjeneste;
15-
import no.nav.foreldrepenger.abakus.vedtak.domene.VedtakYtelseRepository;
1615

1716
@ApplicationScoped
1817
@YtelseTypeRef("ES")
@@ -32,7 +31,8 @@ public IAYRegisterInnhentingESTjenesteImpl(InntektArbeidYtelseTjeneste inntektAr
3231
virksomhetTjeneste,
3332
innhentingSamletTjeneste,
3433
aktørConsumer,
35-
sigrunTjeneste, vedtattYtelseInnhentingTjeneste);
34+
sigrunTjeneste, vedtattYtelseInnhentingTjeneste
35+
);
3636
}
3737

3838
@Override

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/fagsakytelser/k9/IAYRegisterInnhentingK9TjenesteImpl.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import no.nav.foreldrepenger.abakus.registerdata.VedtattYtelseInnhentingTjeneste;
1313
import no.nav.foreldrepenger.abakus.registerdata.arbeidsgiver.virksomhet.VirksomhetTjeneste;
1414
import no.nav.foreldrepenger.abakus.registerdata.inntekt.sigrun.SigrunTjeneste;
15-
import no.nav.foreldrepenger.abakus.vedtak.domene.VedtakYtelseRepository;
1615

1716
@ApplicationScoped
1817
@YtelseTypeRef("PSB")
@@ -28,12 +27,15 @@ public IAYRegisterInnhentingK9TjenesteImpl(InntektArbeidYtelseTjeneste inntektAr
2827
VirksomhetTjeneste virksomhetTjeneste,
2928
InnhentingSamletTjeneste innhentingSamletTjeneste,
3029
AktørTjeneste aktørConsumer,
31-
SigrunTjeneste sigrunTjeneste, VedtattYtelseInnhentingTjeneste VedtattYtelseInnhentingTjeneste) {
30+
SigrunTjeneste sigrunTjeneste,
31+
VedtattYtelseInnhentingTjeneste vedtattYtelseInnhentingTjeneste) {
3232
super(inntektArbeidYtelseTjeneste,
3333
virksomhetTjeneste,
3434
innhentingSamletTjeneste,
3535
aktørConsumer,
36-
sigrunTjeneste, VedtattYtelseInnhentingTjeneste);
36+
sigrunTjeneste,
37+
vedtattYtelseInnhentingTjeneste
38+
);
3739
}
3840

3941
// Skal alltid innhente næringsinntekter om det ligger i informasjonselementer, dette for å støtte 8-47.

0 commit comments

Comments
 (0)