Skip to content

Commit

Permalink
formater fastsetteperiode kode (#356)
Browse files Browse the repository at this point in the history
  • Loading branch information
sirimykland authored Jun 17, 2024
1 parent 6d9185e commit 6488180
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,7 @@ public static List<LocalDate> finnBevegeligeHelligdagerUtenHelg(LukketPeriode ut


private static List<LocalDate> fjernHelg(List<LocalDate> bevegeligeHelligdager) {
return bevegeligeHelligdager.stream()
.filter(hd -> !WEEKEND.contains(hd.getDayOfWeek()))
.sorted()
.toList();
return bevegeligeHelligdager.stream().filter(hd -> !WEEKEND.contains(hd.getDayOfWeek())).sorted().toList();
}

private static LocalDate utledPåskedag(int år) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,30 +32,35 @@ public static boolean erPeriodeRelevant(LukketPeriode farRundtFødselIntervall,
}

public static Optional<LukketPeriode> utledFarsPeriodeRundtFødsel(Datoer datoer, Kontoer kontoer, Søknadstype søknadstype) {
if (!kontoer.harSpesialkonto(Spesialkontotype.FAR_RUNDT_FØDSEL) || kontoer.getSpesialkontoTrekkdager(Spesialkontotype.FAR_RUNDT_FØDSEL) == 0 || !søknadstype.gjelderTerminFødsel()) {
if (!kontoer.harSpesialkonto(Spesialkontotype.FAR_RUNDT_FØDSEL) || kontoer.getSpesialkontoTrekkdager(Spesialkontotype.FAR_RUNDT_FØDSEL) == 0
|| !søknadstype.gjelderTerminFødsel()) {
return Optional.empty();
}
return utledFarsPeriodeRundtFødsel(false, søknadstype.gjelderTerminFødsel(), datoer.getFamiliehendelse(), datoer.getTermin());

}

public static Optional<LukketPeriode> utledFarsPeriodeRundtFødsel(boolean utenFarUttakRundtFødsel, boolean gjelderFødsel,
LocalDate familieHendelseDato, LocalDate terminDato) {
public static Optional<LukketPeriode> utledFarsPeriodeRundtFødsel(boolean utenFarUttakRundtFødsel,
boolean gjelderFødsel,
LocalDate familieHendelseDato,
LocalDate terminDato) {
if (utenFarUttakRundtFødsel || !gjelderFødsel || familieHendelseDato == null) {
return Optional.empty();
}
var farFørTermin = Konfigurasjon.STANDARD.getParameterHvisAktivVed(Parametertype.FAR_UTTAK_FØR_TERMIN_UKER, familieHendelseDato)
.map(Period::ofWeeks).orElse(Period.ZERO);
var farEtterFødsel = Konfigurasjon.STANDARD.getParameterHvisAktivVed(Parametertype.FAR_UTTAK_ETTER_FØDSEL_UKER, familieHendelseDato)
.map(Period::ofWeeks).orElse(Period.ZERO);
.map(Period::ofWeeks)
.orElse(Period.ZERO);
var farEtterFødsel = Konfigurasjon.STANDARD.getParameterHvisAktivVed(Parametertype.FAR_UTTAK_ETTER_FØDSEL_UKER, familieHendelseDato)
.map(Period::ofWeeks)
.orElse(Period.ZERO);
if (farFørTermin.equals(Period.ZERO) && farEtterFødsel.equals(Period.ZERO)) {
return Optional.empty();
}
// Bruker min(Termin-2uker, Fødsel)
var farUttakFom = Optional.ofNullable(terminDato)
.filter(d -> d.minus(farFørTermin).isBefore(familieHendelseDato))
.map(d -> d.minus(farFørTermin))
.orElse(familieHendelseDato);
.filter(d -> d.minus(farFørTermin).isBefore(familieHendelseDato))
.map(d -> d.minus(farFørTermin))
.orElse(familieHendelseDato);
// Bruker fødsel + 6uker
var farUttakTom = familieHendelseDato.plus(farEtterFødsel).minusDays(1);
return Optional.of(new LukketPeriode(farUttakFom, farUttakTom));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ public class Konfigurasjon {

// Grenser
.leggTilParameter(Parametertype.GRENSE_ETTER_FØDSELSDATO_ÅR, d_2010_01_01, null, 3)
.leggTilParameter(Parametertype.TETTE_SAKER_MELLOMROM_UKER, d_2017_01_01, null, 48) // TODO: endre til aug 2022 el 48 uker tidligere etter overgang
.leggTilParameter(Parametertype.TETTE_SAKER_MELLOMROM_UKER, d_2017_01_01, null,
48) // TODO: endre til aug 2022 el 48 uker tidligere etter overgang
.leggTilParameter(Parametertype.PREMATURUKER_ANTALL_DAGER_FØR_TERMIN, d_2019_07_01, null, 52)
.build();
}
Expand All @@ -42,19 +43,20 @@ public class Konfigurasjon {

public Optional<Integer> getParameterHvisAktivVed(Parametertype parametertype, final LocalDate dato) {
return Optional.ofNullable(this.parameterMap.get(parametertype))
.flatMap(param -> param.stream().filter(p -> p.overlapper(dato)).findFirst().map(Parameter::getVerdi));
.flatMap(param -> param.stream().filter(p -> p.overlapper(dato)).findFirst().map(Parameter::getVerdi));
}

public Integer getParameter(Parametertype parametertype, final LocalDate dato) {
return getParameterVerdier(parametertype).stream()
.filter(p -> p.overlapper(dato)).findFirst()
.filter(p -> p.overlapper(dato))
.findFirst()
.map(Parameter::getVerdi)
.orElseThrow(() -> new IllegalArgumentException("Ingen parameter funnet for " + parametertype.name() + " på dato " + dato));
}

public Collection<Parameter> getParameterVerdier(Parametertype parametertype) {
return Optional.ofNullable(this.parameterMap.get(parametertype))
.orElseThrow(() -> new IllegalArgumentException("Konfigurasjon-feil/Utvikler-feil: mangler parameter av type " + parametertype));
.orElseThrow(() -> new IllegalArgumentException("Konfigurasjon-feil/Utvikler-feil: mangler parameter av type " + parametertype));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,15 @@ public Integer getVerdi() {

@Override
public boolean equals(Object o) {
if (this == o)
if (this == o) {
return true;
if (!(o instanceof Parameter))
}
if (!(o instanceof Parameter parameter)) {
return false;
if (!super.equals(o))
}
if (!super.equals(o)) {
return false;
Parameter parameter = (Parameter) o;
}
return Objects.equals(verdi, parameter.verdi);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ public enum Parametertype {
//Grenser
PREMATURUKER_ANTALL_DAGER_FØR_TERMIN,
TETTE_SAKER_MELLOMROM_UKER,
GRENSE_ETTER_FØDSELSDATO_ÅR;
GRENSE_ETTER_FØDSELSDATO_ÅR

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

public class UttakOutcome implements RuleReasonRef {

private UtfallType utfallType;
private final UtfallType utfallType;
private PeriodeResultatÅrsak periodeÅrsak;
private GraderingIkkeInnvilgetÅrsak graderingIkkeInnvilgetÅrsak;
private Manuellbehandlingårsak manuellbehandlingårsak;
Expand Down

0 comments on commit 6488180

Please sign in to comment.