Skip to content

Commit

Permalink
Merge pull request #1197 from navikt/revert-1196-revert-1178-mappe-sa…
Browse files Browse the repository at this point in the history
…mtidig-uttak

Revert "Revert "Skal ikke regne samtidig uttak som overlappende perioder""

Former-commit-id: 2e545a486bc0f7510aaf8f2657fae03be3bfc57b
  • Loading branch information
AndreasDybdahl authored Aug 28, 2019
2 parents 2c500c0 + 4b8961d commit 1f24b9d
Show file tree
Hide file tree
Showing 8 changed files with 244 additions and 122 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -172,14 +172,16 @@ class Periodeliste extends React.Component<Props> {
);
case PeriodeInfoType.uttakAnnenPart:
return (
<PeriodelisteOppholdAnnenPart
key={itemId}
itemId={itemId}
isExpanded={isExpanded}
onToggle={onToggle}
periode={periode}
navnPåForeldre={navnPåForeldre}
/>
periode.visPeriodeIPlan && (
<PeriodelisteOppholdAnnenPart
key={itemId}
itemId={itemId}
isExpanded={isExpanded}
onToggle={onToggle}
periode={periode}
navnPåForeldre={navnPåForeldre}
/>
)
);
case PeriodeInfoType.gruppertInfo:
return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,7 @@ import {
Periode,
Periodetype,
StønadskontoType,
isForeldrepengerFørFødselUttaksperiode,
isGruppertInfoPeriode
isForeldrepengerFørFødselUttaksperiode
} from '../../../../../types/uttaksplan/periodetyper';
import { Tidsperioden, getValidTidsperiode } from '../../../../../util/uttaksplan/Tidsperioden';
import getMessage from 'common/util/i18nUtils';
Expand Down Expand Up @@ -53,15 +52,13 @@ export const getPeriodeIkon = (periode: Periode, navnPåForeldre: NavnPåForeldr
/>
);
case Periodetype.Info:
if (isGruppertInfoPeriode(periode)) {
return (
<StønadskontoIkon
konto={StønadskontoType.Foreldrepenger}
forelder={periode.forelder}
navnPåForeldre={navnPåForeldre}
/>
);
}
return (
<StønadskontoIkon
konto={StønadskontoType.Foreldrepenger}
forelder={periode.forelder}
navnPåForeldre={navnPåForeldre}
/>
);
}
return undefined;
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
import * as React from 'react';
import { onToggleItemProp } from '../../../../elementer/toggleList/ToggleList';
import { injectIntl, InjectedIntlProps, FormattedMessage } from 'react-intl';
import { injectIntl, InjectedIntlProps } from 'react-intl';
import getMessage from 'common/util/i18nUtils';
import { UttakAnnenPartInfoPeriode } from '../../../../../types/uttaksplan/periodetyper';
import { NavnPåForeldre } from 'common/types';
import { NavnPåForeldre, Forelder } from 'common/types';
import { Tidsperioden } from '../../../../../util/uttaksplan/Tidsperioden';
import PeriodelisteInfo from './PeriodelisteInfo';
import Block from 'common/components/block/Block';
import { getVarighetString } from 'common/util/intlUtils';
import UttaksplanAdvarselIkon from 'app/components/ikoner/uttaksplanIkon/ikoner/AdvarselIkon';
import { getPeriodeIkon } from '../elements/PeriodeHeader';
import { getOppholdskontoNavn, getForelderNavn, getPeriodeForelderNavn } from 'app/util/uttaksplan';
import { formaterDatoKompakt } from 'common/util/datoUtils';
import { getNavnGenitivEierform } from 'app/util/tekstUtils';

export interface Props {
itemId: string;
Expand All @@ -29,7 +31,7 @@ const PeriodelisteOppholdAnnenPart: React.StatelessComponent<Props & InjectedInt
const antallDager = Tidsperioden(periode.tidsperiode).getAntallUttaksdager();

const tittel = getMessage(intl, 'periodeliste.oppholdAnnenPart.tittel', {
type: getMessage(intl, `periodetype.${periode.type}`)
navn: getNavnGenitivEierform(getPeriodeForelderNavn(periode, navnPåForeldre), intl.locale)
});

return (
Expand All @@ -39,12 +41,22 @@ const PeriodelisteOppholdAnnenPart: React.StatelessComponent<Props & InjectedInt
isExpanded={isExpanded}
onToggle={onToggle}
beskrivelse={getVarighetString(antallDager, intl)}
ikon={<UttaksplanAdvarselIkon />}
ikon={getPeriodeIkon(periode, navnPåForeldre)}
farge="transparent"
border={true}
renderContent={() => (
<div>
<Block>
<FormattedMessage id={`periodeliste.oppholdAnnenPart.expanded.beskrivelse.${periode.type}`} />
</Block>
<strong>
<span>{formaterDatoKompakt(periode.tidsperiode.fom)}</span>
<span>&mdash;</span>
<span>{formaterDatoKompakt(periode.tidsperiode.tom)}:</span>
</strong>{' '}
{getOppholdskontoNavn(
intl,
periode.årsak,
getForelderNavn(periode.forelder, navnPåForeldre),
periode.forelder === Forelder.mor
)}
</div>
)}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { InjectedIntl } from 'react-intl';
import { Tidsperioden } from 'app/util/uttaksplan/Tidsperioden';
import { getNavnGenitivEierform } from 'app/util/tekstUtils';
import { RegelTest, RegelTestresultat, RegelTestresultatInfo } from 'shared/regler/regelTypes';
import { isUttakAnnenPart } from 'app/types/uttaksplan/periodetyper';

export const overlapperPeriodeAndrePerioder: RegelTest = (grunnlag: UttaksplanRegelgrunnlag): RegelTestresultat => {
const {
Expand All @@ -13,8 +14,9 @@ export const overlapperPeriodeAndrePerioder: RegelTest = (grunnlag: UttaksplanRe
navn: { navnPåForeldre }
}
} = grunnlag;
const perioderSomHarOverlapp = perioder.filter(
(periode) => Periodene(perioder).finnOverlappendePerioder(periode).length > 0
const perioderUtenSamtidigUttakAnnenPart = perioder.filter((p) => !(isUttakAnnenPart(p) && p.ønskerSamtidigUttak));
const perioderSomHarOverlapp = perioderUtenSamtidigUttakAnnenPart.filter(
(periode) => Periodene(perioderUtenSamtidigUttakAnnenPart).finnOverlappendePerioder(periode).length > 0
);

const passerer = perioderSomHarOverlapp.length === 0;
Expand Down
5 changes: 5 additions & 0 deletions src/app/types/uttaksplan/periodetyper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ interface InfoPeriodeBase extends PeriodeBase {
type: Periodetype.Info;
infotype: PeriodeInfoType;
overskrives: boolean;
visPeriodeIPlan: boolean;
}

export interface AvslåttPeriode extends InfoPeriodeBase {
Expand All @@ -103,6 +104,7 @@ export interface AvslåttPeriode extends InfoPeriodeBase {
stønadskonto: StønadskontoType;
forelder: Forelder;
overskrives: true;
visPeriodeIPlan: boolean;
}

export interface UttakAnnenPartInfoPeriode extends InfoPeriodeBase {
Expand All @@ -112,6 +114,8 @@ export interface UttakAnnenPartInfoPeriode extends InfoPeriodeBase {
forelder: Forelder;
overskrives: true;
resultatType: PeriodeResultatType;
visPeriodeIPlan: boolean;
ønskerSamtidigUttak?: boolean;
samtidigUttakProsent?: string;
gradert?: boolean;
stillingsprosent?: string;
Expand All @@ -124,6 +128,7 @@ export interface UtsettelseAnnenPartInfoPeriode extends InfoPeriodeBase {
forelder: Forelder;
overskrives: true;
resultatType: PeriodeResultatType;
visPeriodeIPlan: boolean;
}

export const isAnnenPartInfoPeriode = (periode: Periode): periode is UttakAnnenPartInfoPeriode => {
Expand Down
32 changes: 7 additions & 25 deletions src/app/util/eksisterendeSak/eksisterendeSakUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import {
} from 'app/types/uttaksplan/periodetyper';
import { UttaksplanDTO, UttaksplanPeriodeDTO, MorsAktivitetDto } from 'app/api/types/uttaksplanDTO';
import mapSaksperioderTilUttaksperioder from './mapSaksperioderTilUttaksperioder';
import { datoErInnenforTidsperiode, Tidsperioden } from '../uttaksplan/Tidsperioden';
import { Tidsperioden } from '../uttaksplan/Tidsperioden';
import { getRelevantFamiliehendelseDato } from '../dates/dates';
import { getFamilieHendelseType } from '../domain/getFamilieHendelseType';
import { FamiliehendelseDatoer } from 'app/types/søknad/FamiliehendelseDatoer';
Expand Down Expand Up @@ -160,9 +160,7 @@ export const getEksisterendeSakFromDTO = (
.filter(filterAvslåttePeriodeMedInnvilgetPeriodeISammeTidsperiode)
.reduce(reduceDuplikateSaksperioderGrunnetArbeidsforhold, []);

const uttaksplan = kanUttaksplanGjennskapesFraSak(saksperioder)
? mapSaksperioderTilUttaksperioder(saksperioder, grunnlag, erEndringssøknad)
: undefined;
const uttaksplan = mapSaksperioderTilUttaksperioder(saksperioder, grunnlag, erEndringssøknad);

return {
erAnnenPartsSak,
Expand All @@ -181,7 +179,10 @@ const filterAvslåttePeriodeMedInnvilgetPeriodeISammeTidsperiode = (
saksperioder: Saksperiode[]
) => {
const likePerioder = saksperioder.filter(
(periode2) => periode.guid !== periode2.guid && Tidsperioden(periode.tidsperiode).erLik(periode2.tidsperiode)
(periode2) =>
periode.guid !== periode2.guid &&
Tidsperioden(periode.tidsperiode).erLik(periode2.tidsperiode) &&
periode.gjelderAnnenPart === periode2.gjelderAnnenPart
);

if (likePerioder.length === 0) {
Expand Down Expand Up @@ -355,33 +356,14 @@ const getAnnenForelderFromSaksgrunnlag = (
}
};

const finnOverlappendeSaksperioder = (perioder: Saksperiode[], periode: Saksperiode): Saksperiode[] => {
return perioder.filter((p) => {
if (p.guid === periode.guid) {
return false;
}
const { fom, tom } = p.tidsperiode;
if (!fom || !tom) {
return false;
}
return (
datoErInnenforTidsperiode(fom, periode.tidsperiode) || datoErInnenforTidsperiode(tom, periode.tidsperiode)
);
});
};

const kanSaksperiodeKonverteresTilPeriode = (periode: Saksperiode) => {
if (periode.flerbarnsdager === false && periode.samtidigUttak === false) {
if (periode.flerbarnsdager === false) {
return true;
}
return false;
};

export const kanUttaksplanGjennskapesFraSak = (perioder: Saksperiode[]): boolean => {
if (perioder.some((periode) => finnOverlappendeSaksperioder(perioder, periode).length > 0)) {
return false;
}

const noenPerioderKanIkkeGjennskapes = perioder.some(
(periode) => kanSaksperiodeKonverteresTilPeriode(periode) === false
);
Expand Down
Loading

0 comments on commit 1f24b9d

Please sign in to comment.