Skip to content

Commit

Permalink
TFP-5858 uttak interface for fp og svp (#6827)
Browse files Browse the repository at this point in the history
TFP-5858 uttak interface for fp og svp, endringer i utleder av behandlingsresultat for revurderinger + opphørsdato mot fpfrontend og formidling
  • Loading branch information
palfi authored Nov 4, 2024
1 parent 47bff57 commit 329c3d9
Show file tree
Hide file tree
Showing 69 changed files with 1,701 additions and 2,747 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public String toString() {
}

public static class Builder {
private Stønadskontoberegning kladd;
private final Stønadskontoberegning kladd;

public Builder() {
kladd = new Stønadskontoberegning();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ public UttakArbeidType getUttakArbeidType() {
return uttakArbeidType;
}

public boolean isAvslått() {
return !ArbeidsforholdIkkeOppfyltÅrsak.INGEN.equals(getArbeidsforholdIkkeOppfyltÅrsak());
}

public static class Builder {
private SvangerskapspengerUttakResultatArbeidsforholdEntitet kladd;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package no.nav.foreldrepenger.behandlingslager.uttak.svp;

import static no.nav.foreldrepenger.behandlingslager.uttak.svp.PeriodeIkkeOppfyltÅrsak._8306;

import java.time.LocalDate;
import java.util.Objects;

Expand Down Expand Up @@ -127,6 +129,10 @@ public int hashCode() {
return Objects.hash(tidsperiode, utbetalingsgrad, periodeResultatType, periodeIkkeOppfyltÅrsak);
}

public boolean harAvslagPgaMedlemskap() {
return _8306.equals(getPeriodeIkkeOppfyltÅrsak());
}

public static class Builder {
private SvangerskapspengerUttakResultatPeriodeEntitet kladd;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@ private void kopierResultaterAvhengigAvStartpunkt(Behandling revurdering,
}

private boolean harUttak(Long behandlingId) {
return uttakTjeneste.hentUttakHvisEksisterer(behandlingId).isPresent();
return uttakTjeneste.hentHvisEksisterer(behandlingId).isPresent();
}

private boolean erEndringssøknad(Behandling revurdering) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package no.nav.foreldrepenger.behandling.steg.foreslåresultat.fp;
package no.nav.foreldrepenger.behandling.steg.foreslåresultat;

import java.util.Optional;

Expand All @@ -7,7 +7,6 @@

import no.nav.foreldrepenger.behandling.BehandlingReferanse;
import no.nav.foreldrepenger.behandling.revurdering.felles.RevurderingBehandlingsresultatutlederFelles;
import no.nav.foreldrepenger.behandling.steg.foreslåresultat.ForeslåBehandlingsresultatTjeneste;
import no.nav.foreldrepenger.behandlingskontroll.FagsakYtelseTypeRef;
import no.nav.foreldrepenger.behandlingslager.behandling.BehandlingResultatType;
import no.nav.foreldrepenger.behandlingslager.behandling.Behandlingsresultat;
Expand All @@ -20,40 +19,40 @@
import no.nav.foreldrepenger.behandlingslager.fagsak.FagsakYtelseType;
import no.nav.foreldrepenger.dokumentbestiller.DokumentBehandlingTjeneste;
import no.nav.foreldrepenger.dokumentbestiller.DokumentMalType;
import no.nav.foreldrepenger.domene.uttak.ForeldrepengerUttakPeriode;
import no.nav.foreldrepenger.domene.uttak.ForeldrepengerUttakTjeneste;
import no.nav.foreldrepenger.domene.uttak.UttakTjeneste;

@ApplicationScoped
@FagsakYtelseTypeRef(FagsakYtelseType.FORELDREPENGER)
class ForeslåBehandlingsresultatTjenesteImpl implements ForeslåBehandlingsresultatTjeneste {
@FagsakYtelseTypeRef(FagsakYtelseType.SVANGERSKAPSPENGER)
public class ForeslåBehandlingsresultatTjenesteImpl implements ForeslåBehandlingsresultatTjeneste {

private ForeldrepengerUttakTjeneste uttakTjeneste;
private UttakTjeneste uttakTjeneste;

private RevurderingBehandlingsresultatutlederFelles revurderingBehandlingsresultatutlederFelles;
private DokumentBehandlingTjeneste dokumentBehandlingTjeneste;
private BehandlingsresultatRepository behandlingsresultatRepository;

private FagsakRepository fagsakRepository;

ForeslåBehandlingsresultatTjenesteImpl() {
// for CDI proxy
}

@Inject
ForeslåBehandlingsresultatTjenesteImpl(BehandlingRepositoryProvider repositoryProvider,
ForeldrepengerUttakTjeneste uttakTjeneste,
DokumentBehandlingTjeneste dokumentBehandlingTjeneste,
@FagsakYtelseTypeRef(FagsakYtelseType.FORELDREPENGER) RevurderingBehandlingsresultatutlederFelles revurderingBehandlingsresultatutlederFelles) {
this.uttakTjeneste = uttakTjeneste;
public ForeslåBehandlingsresultatTjenesteImpl(BehandlingRepositoryProvider repositoryProvider,
UttakTjeneste uttakTjeneste,
DokumentBehandlingTjeneste dokumentBehandlingTjeneste,
RevurderingBehandlingsresultatutlederFelles revurderingBehandlingsresultatutlederFelles) {
this.fagsakRepository = repositoryProvider.getFagsakRepository();
this.uttakTjeneste = uttakTjeneste;
this.revurderingBehandlingsresultatutlederFelles = revurderingBehandlingsresultatutlederFelles;
this.dokumentBehandlingTjeneste = dokumentBehandlingTjeneste;
this.behandlingsresultatRepository = repositoryProvider.getBehandlingsresultatRepository();

}

protected boolean minstEnGyldigUttaksPeriode(Behandlingsresultat behandlingsresultat) {
var uttak = uttakTjeneste.hentUttakHvisEksisterer(behandlingsresultat.getBehandlingId());
return uttak.isPresent() && uttak.get().getGjeldendePerioder().stream().anyMatch(ForeldrepengerUttakPeriode::isInnvilget);
private boolean erInnvilgetUttak(Long behandlingId) {
var uttak = uttakTjeneste.hentHvisEksisterer(behandlingId);
return uttak.filter(u -> !u.altAvslått()).isPresent();
}

@Override
Expand All @@ -67,7 +66,7 @@ protected boolean minstEnGyldigUttaksPeriode(Behandlingsresultat behandlingsresu
// Må nullstille avslagårsak (for symmetri med setting avslagsårsak ovenfor,
// hvor avslagårsak kopieres fra et vilkår)
Optional.ofNullable(behandlingsresultat.get().getAvslagsårsak())
.ifPresent(ufjernetÅrsak -> behandlingsresultat.get().setAvslagsårsak(Avslagsårsak.UDEFINERT));
.ifPresent(ufjernetÅrsak -> behandlingsresultat.get().setAvslagsårsak(Avslagsårsak.UDEFINERT));
if (ref.erRevurdering()) {
var erVarselOmRevurderingSendt = erVarselOmRevurderingSendt(ref);
return revurderingBehandlingsresultatutlederFelles.bestemBehandlingsresultatForRevurdering(ref, erVarselOmRevurderingSendt);
Expand All @@ -78,19 +77,20 @@ protected boolean minstEnGyldigUttaksPeriode(Behandlingsresultat behandlingsresu
}

private boolean sjekkVilkårAvslått(Behandlingsresultat behandlingsresultat) {
return behandlingsresultat.isVilkårAvslått() || !minstEnGyldigUttaksPeriode(behandlingsresultat);
return behandlingsresultat.isVilkårAvslått() || !erInnvilgetUttak(behandlingsresultat.getBehandlingId());
}

private void vilkårAvslått(BehandlingReferanse ref, Behandlingsresultat behandlingsresultat) {
behandlingsresultat.getVilkårResultat().hentIkkeOppfyltVilkår()
behandlingsresultat.getVilkårResultat()
.hentIkkeOppfyltVilkår()
.map(AvslagsårsakMapper::finnAvslagsårsak)
.ifPresent(behandlingsresultat::setAvslagsårsak);
if (ref.erRevurdering()) {
var erVarselOmRevurderingSendt = erVarselOmRevurderingSendt(ref);
revurderingBehandlingsresultatutlederFelles.bestemBehandlingsresultatForRevurdering(ref, erVarselOmRevurderingSendt);
} else {
var resultatBuilder = Behandlingsresultat.builderEndreEksisterende(behandlingsresultat)
.medBehandlingResultatType(BehandlingResultatType.AVSLÅTT);
.medBehandlingResultatType(BehandlingResultatType.AVSLÅTT);
if (sakErStengt(ref)) {
resultatBuilder.medVedtaksbrev(Vedtaksbrev.INGEN);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,19 @@

@ApplicationScoped
@FagsakYtelseTypeRef(FagsakYtelseType.ENGANGSTØNAD)
public class ForeslåBehandlingsresultatTjenesteImpl implements ForeslåBehandlingsresultatTjeneste {
public class ForeslåBehandlingsresultatTjenesteES implements ForeslåBehandlingsresultatTjeneste {
private RevurderingEndring revurderingEndring;
private BehandlingsresultatRepository behandlingsresultatRepository;
private BehandlingRepository behandlingRepository;

ForeslåBehandlingsresultatTjenesteImpl() {
ForeslåBehandlingsresultatTjenesteES() {
// for CDI proxy
}

@Inject
public ForeslåBehandlingsresultatTjenesteImpl(BehandlingsresultatRepository behandlingsresultatRepository,
BehandlingRepository behandlingRepository,
@FagsakYtelseTypeRef(FagsakYtelseType.ENGANGSTØNAD) RevurderingEndring revurderingEndring) {
public ForeslåBehandlingsresultatTjenesteES(BehandlingsresultatRepository behandlingsresultatRepository,
BehandlingRepository behandlingRepository,
@FagsakYtelseTypeRef(FagsakYtelseType.ENGANGSTØNAD) RevurderingEndring revurderingEndring) {
this.behandlingsresultatRepository = behandlingsresultatRepository;
this.behandlingRepository = behandlingRepository;
this.revurderingEndring = revurderingEndring;
Expand All @@ -53,7 +53,8 @@ public class ForeslåBehandlingsresultatTjenesteImpl implements ForeslåBehandli
.map(AvslagsårsakMapper::finnAvslagsårsak)
.ifPresent(behandlingsresultat::setAvslagsårsak);
} else {
// Må nullstille avslagårsak (for symmetri med setting avslagsårsak ovenfor, hvor avslagårsak kopieres fra et vilkår)
// Må nullstille avslagårsak (for symmetri med setting avslagsårsak ovenfor,
// hvor avslagårsak kopieres fra et vilkår)
Optional.ofNullable(behandlingsresultat.getAvslagsårsak())
.ifPresent(ufjernetÅrsak -> behandlingsresultat.setAvslagsårsak(Avslagsårsak.UDEFINERT));
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,15 @@ class ForeslåBehandlingsresultatTjenesteTest extends EntityManagerAwareTest {
private final RevurderingEndringImpl revurderingEndring = mock(RevurderingEndringImpl.class);
private BehandlingRepository behandlingRepository;
private BehandlingsresultatRepository behandlingsresultatRepository;
private ForeslåBehandlingsresultatTjenesteImpl foreslåVedtaTjenesteES;
private ForeslåBehandlingsresultatTjenesteES foreslåVedtaTjenesteES;

@BeforeEach
public void setup() {
repositoryProvider = new BehandlingRepositoryProvider(getEntityManager());
doReturn(false).when(revurderingEndring).erRevurderingMedUendretUtfall(any(), any());
behandlingRepository = repositoryProvider.getBehandlingRepository();
behandlingsresultatRepository = repositoryProvider.getBehandlingsresultatRepository();
foreslåVedtaTjenesteES = new ForeslåBehandlingsresultatTjenesteImpl(
foreslåVedtaTjenesteES = new ForeslåBehandlingsresultatTjenesteES(
repositoryProvider.getBehandlingsresultatRepository(),
repositoryProvider.getBehandlingRepository(),
revurderingEndring);
Expand Down
Loading

0 comments on commit 329c3d9

Please sign in to comment.