Skip to content

Commit

Permalink
Juster og viderefør eksisterende oppholdsperioder
Browse files Browse the repository at this point in the history
  • Loading branch information
dijjal committed Oct 22, 2024
1 parent cf96818 commit 1a77be4
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,7 @@ public static Builder fraEksisterende(SvpTilretteleggingEntitet tilrettelegging)
.medOpplysningerOmTilretteleggingstiltak(tilrettelegging.getOpplysningerOmTilretteleggingstiltak().orElse(null))
.medSkalBrukes(tilrettelegging.getSkalBrukes())
.medMottattTidspunkt(tilrettelegging.getMottattTidspunkt())
.medTilretteleggingFraDatoer(tilrettelegging.getTilretteleggingFOMListe())
.medAvklarteOpphold(tilrettelegging.getAvklarteOpphold());
.medTilretteleggingFraDatoer(tilrettelegging.getTilretteleggingFOMListe());
}
public Builder(SvpTilretteleggingEntitet tilretteleggingEntitet) {
mal = new SvpTilretteleggingEntitet(tilretteleggingEntitet, null);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,6 @@ private void byggFamilieHendelseForSvangerskap(Svangerskapspenger omYtelse,
if (fødselsdato != null) {
hendelseBuilder.erFødsel().medFødselsDato(fødselsdato).medAntallBarn(1);
}

}

private RelasjonsRolleType utledRolle(FagsakYtelseType ytelseType, Bruker bruker, Long behandlingId, AktørId aktørId) {
Expand Down Expand Up @@ -408,29 +407,23 @@ private void oversettOgLagreTilretteleggingOgVurderEksisterende(Svangerskapspeng
var tilretteleggingListe = svangerskapspenger.getTilretteleggingListe().getTilrettelegging();

for (var tilrettelegging : tilretteleggingListe) {

var builder = new SvpTilretteleggingEntitet.Builder();
builder.medBehovForTilretteleggingFom(tilrettelegging.getBehovForTilretteleggingFom())
.medKopiertFraTidligereBehandling(false)
.medMottattTidspunkt(brukMottattTidspunkt)
.medAvklarteOpphold(mapAvtaltFerie(tilrettelegging, svangerskapspenger));

if (tilrettelegging.getHelTilrettelegging() != null) {
tilrettelegging.getHelTilrettelegging()
.forEach(helTilrettelegging -> builder.medHelTilrettelegging(
helTilrettelegging.getTilrettelagtArbeidFom(), brukMottattTidspunkt.toLocalDate(), SvpTilretteleggingFomKilde.SØKNAD));
}
if (tilrettelegging.getDelvisTilrettelegging() != null) {
tilrettelegging.getDelvisTilrettelegging()
.forEach(delvisTilrettelegging -> builder.medDelvisTilrettelegging(
delvisTilrettelegging.getTilrettelagtArbeidFom(), delvisTilrettelegging.getStillingsprosent(), brukMottattTidspunkt.toLocalDate(),
SvpTilretteleggingFomKilde.SØKNAD));
}
if (tilrettelegging.getIngenTilrettelegging() != null) {
tilrettelegging.getIngenTilrettelegging()
.forEach(ingenTilrettelegging -> builder.medIngenTilrettelegging(
ingenTilrettelegging.getSlutteArbeidFom(), brukMottattTidspunkt.toLocalDate(), SvpTilretteleggingFomKilde.SØKNAD));
}
tilrettelegging.getHelTilrettelegging()
.forEach(helTilrettelegging -> builder.medHelTilrettelegging(helTilrettelegging.getTilrettelagtArbeidFom(),
brukMottattTidspunkt.toLocalDate(), SvpTilretteleggingFomKilde.SØKNAD));

tilrettelegging.getDelvisTilrettelegging()
.forEach(delvisTilrettelegging -> builder.medDelvisTilrettelegging(delvisTilrettelegging.getTilrettelagtArbeidFom(),
delvisTilrettelegging.getStillingsprosent(), brukMottattTidspunkt.toLocalDate(), SvpTilretteleggingFomKilde.SØKNAD));

tilrettelegging.getIngenTilrettelegging()
.forEach(ingenTilrettelegging -> builder.medIngenTilrettelegging(ingenTilrettelegging.getSlutteArbeidFom(),
brukMottattTidspunkt.toLocalDate(), SvpTilretteleggingFomKilde.SØKNAD));

oversettArbeidsforhold(builder, tilrettelegging.getArbeidsforhold());
nyeTilrettelegginger.add(builder.build());
Expand Down Expand Up @@ -489,9 +482,8 @@ private void oversettOgLagreTilretteleggingOgVurderEksisterende(Svangerskapspeng

private SvpTilretteleggingEntitet oppdaterEksisterendeTlrMedNyeFOMs(SvpTilretteleggingEntitet nyTlR,
SvpTilretteleggingEntitet eksisterendeTlr) {
List<TilretteleggingFOM> nyFomListe = new ArrayList<>(nyTlR.getTilretteleggingFOMListe());
var nyFomListe = new ArrayList<>(nyTlR.getTilretteleggingFOMListe());
var tidligsteNyFom = nyFomListe.stream().map(TilretteleggingFOM::getFomDato).min(LocalDate::compareTo).orElse(LocalDate.EPOCH);

var eksisterendeFOMSomSkalKopieres = eksisterendeTlr.getTilretteleggingFOMListe().stream().filter(f -> f.getFomDato().isBefore(tidligsteNyFom)).toList();

eksisterendeFOMSomSkalKopieres.forEach(eksFom ->
Expand All @@ -504,17 +496,31 @@ private SvpTilretteleggingEntitet oppdaterEksisterendeTlrMedNyeFOMs(SvpTilrettel

nyFomListe.sort(Comparator.comparing(TilretteleggingFOM::getFomDato));

return SvpTilretteleggingEntitet.Builder.fraEksisterende(eksisterendeTlr)
var justertTilrettelegging = SvpTilretteleggingEntitet.Builder.fraEksisterende(eksisterendeTlr)
.medBehovForTilretteleggingFom(nyFomListe.stream().map(TilretteleggingFOM::getFomDato).min(LocalDate::compareTo).orElse(null))
.medTilretteleggingFraDatoer(nyFomListe).build();
.medTilretteleggingFraDatoer(nyFomListe);
var justerteOppholdsperioder = eksisterendeTlr.getAvklarteOpphold().stream()
.filter(opphold -> opphold.getFom().isBefore(tidligsteNyFom))
.map(opphold -> {
if (!opphold.getTom().isBefore(tidligsteNyFom)) {
return SvpAvklartOpphold.Builder.nytt()
.medKilde(opphold.getKilde())
.medOppholdÅrsak(opphold.getOppholdÅrsak())
.medOppholdPeriode(opphold.getFom(), tidligsteNyFom.minusDays(1))
.build();
}
return opphold;
});
justerteOppholdsperioder.forEach(justertTilrettelegging::medAvklartOpphold);
nyTlR.getAvklarteOpphold().forEach(justertTilrettelegging::medAvklartOpphold);

return justertTilrettelegging.build();
}

private void oversettArbeidsforhold(SvpTilretteleggingEntitet.Builder builder, Arbeidsforhold arbeidsforhold) {

if (arbeidsforhold instanceof no.nav.vedtak.felles.xml.soeknad.svangerskapspenger.v1.Arbeidsgiver arbeidsgiverType) {
builder.medArbeidType(ArbeidType.ORDINÆRT_ARBEIDSFORHOLD);
Arbeidsgiver arbeidsgiver;

if (arbeidsforhold instanceof no.nav.vedtak.felles.xml.soeknad.svangerskapspenger.v1.Virksomhet virksomhetType) {
var orgnr = virksomhetType.getIdentifikator();
virksomhetTjeneste.hentOrganisasjon(orgnr);
Expand Down

0 comments on commit 1a77be4

Please sign in to comment.