Skip to content

Commit

Permalink
Reapply opptjening og legg paa toggle (#6800)
Browse files Browse the repository at this point in the history
* Revert "denne skulle vært togglet :D:D reverter for å legge på toggle (#6799)"

This reverts commit 80665a1.

* feature toggle

* fikse test
  • Loading branch information
vebnor authored Nov 8, 2024
1 parent 80665a1 commit 1f1aa90
Show file tree
Hide file tree
Showing 13 changed files with 89 additions and 40 deletions.
4 changes: 4 additions & 0 deletions _mocks/featureToggles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,8 @@ export const featureTogglesFactory = () => [
key: 'BRUK_V2_SAK_DOKUMENTER',
value: process.env.VITE_BRUK_V2_SAK_DOKUMENTER,
},
{
key: 'OPPTJENING_READ_ONLY_PERIODER',
value: process.env.VITE_OPPTJENING_READ_ONLY_PERIODER,
},
];
2 changes: 2 additions & 0 deletions deploy/dev-fss-k9saksbehandling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,5 @@ spec:
value: "true"
- name: BRUK_V2_SAK_DOKUMENTER
value: "true"
- name: OPPTJENING_READ_ONLY_PERIODER
value: "true"
2 changes: 2 additions & 0 deletions deploy/prod-fss-k9saksbehandling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,3 +112,5 @@ spec:
value: "false"
- name: "BRUK_V2_SAK_DOKUMENTER"
value: "false"
- name: OPPTJENING_READ_ONLY_PERIODER
value: "false"
3 changes: 2 additions & 1 deletion envDir/.env.development
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@ VITE_PROSESS_VILKAR_SOKNADSFRIST=true
VITE_SKILL_UT_PRIVATPERSON=true
VITE_AUTOMATISK_VURDERT_MEDLEMSKAP=true
VITE_DELVIS_REVURDERING=true
VITE_BRUK_V2_SAK_DOKUMENTER=true
VITE_BRUK_V2_SAK_DOKUMENTER=true
VITE_OPPTJENING_READ_ONLY_PERIODER=true
4 changes: 4 additions & 0 deletions feature-toggles.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,5 +98,9 @@
{
"key": "BRUK_V2_SAK_DOKUMENTER",
"value": "${BRUK_V2_SAK_DOKUMENTER}"
},
{
"key": "OPPTJENING_READ_ONLY_PERIODER",
"value": "${OPPTJENING_READ_ONLY_PERIODER}"
}
]
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -140,4 +140,4 @@
]
},
"packageManager": "yarn@3.4.1"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ describe('<OpptjeningFaktaForm>', () => {
opptjeningTom: '2017-08-31',
opptjeningperiode: { dager: 16, måneder: 0 },
fastsattOpptjeningAktivitetList: [],
vurderesIAksjonspunkt: true,
},
},
];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ const opptjening = {
måneder: 2,
dager: 3,
},
vurderesIAksjonspunkt: true,
fastsattOpptjeningAktivitetList: [
{
id: 1,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { behandlingForm, behandlingFormValueSelector } from '@fpsak-frontend/form';
import FagsakYtelseType from '@fpsak-frontend/kodeverk/src/fagsakYtelseType';
import { ProsessStegBegrunnelseTextField } from '@k9-sak-web/prosess-felles';
import { Aksjonspunkt, Opptjening, SubmitCallback, Vilkarperiode } from '@k9-sak-web/types';
import { Aksjonspunkt, FeatureToggles, Opptjening, SubmitCallback, Vilkarperiode } from '@k9-sak-web/types';
import { HelpText, Label } from '@navikt/ds-react';
import { useMemo } from 'react';
import { FormattedMessage, useIntl } from 'react-intl';
Expand Down Expand Up @@ -35,6 +35,7 @@ interface OpptjeningVilkarAksjonspunktPanelImplProps {
vilkårPerioder: Vilkarperiode[];
opptjeninger: Opptjening[];
vilkarFields: VilkårFieldType[];
featureToggles: FeatureToggles;
}

interface StateProps {
Expand Down Expand Up @@ -79,7 +80,7 @@ export const OpptjeningVilkarAksjonspunktPanelImpl = ({
? !vilkarFields.some(
vilkarField =>
vilkarField.vurderesIBehandlingen &&
!vilkarField.periodeHar28DagerOgTrengerIkkeVurderesManuelt &&
vilkarField.vurderesIAksjonspunkt &&
(!vilkarField.begrunnelse || !vilkarField.kode),
)
: false;
Expand Down Expand Up @@ -136,7 +137,7 @@ export const OpptjeningVilkarAksjonspunktPanelImpl = ({
behandlingId={behandlingId}
behandlingVersjon={behandlingVersjon}
isPeriodisertFormComplete={allePerioderHarVurdering()}
skjulAksjonspunktVisning={vilkarField?.periodeHar28DagerOgTrengerIkkeVurderesManuelt}
skjulAksjonspunktVisning={!vilkarField?.vurderesIAksjonspunkt}
>
<div className={styles.titelOgHjelpetekstFlexbox}>
<Label size="small" as="p">
Expand All @@ -160,9 +161,7 @@ export const OpptjeningVilkarAksjonspunktPanelImpl = ({
<VilkarField
erOmsorgspenger={erOmsorgspenger}
field={vilkarField}
readOnly={
readOnly || !vilkarField?.vurderesIBehandlingen || vilkarField?.periodeHar28DagerOgTrengerIkkeVurderesManuelt
}
readOnly={readOnly || !vilkarField?.vurderesIBehandlingen || !vilkarField?.vurderesIAksjonspunkt}
fieldPrefix={`vilkarFields[${periodeIndex}]`}
skalValgMidlertidigInaktivTypeBVises={finnesOpptjeningsaktiviteterVidOpptjeningTom}
/>
Expand All @@ -175,9 +174,10 @@ export const buildInitialValues = createSelector(
(ownProps: OpptjeningVilkarAksjonspunktPanelImplProps) => ownProps.aksjonspunkter,
(ownProps: OpptjeningVilkarAksjonspunktPanelImplProps) => ownProps.vilkårPerioder,
(ownProps: OpptjeningVilkarAksjonspunktPanelImplProps) => ownProps.opptjeninger,
(ownProps: OpptjeningVilkarAksjonspunktPanelImplProps) => ownProps.featureToggles,
],
(aksjonspunkter, vilkårPerioder, opptjeninger) => ({
...VilkarField.buildInitialValues(vilkårPerioder, opptjeninger),
(aksjonspunkter, vilkårPerioder, opptjeninger, featureToggles) => ({
...VilkarField.buildInitialValues(vilkårPerioder, opptjeninger, featureToggles),
...ProsessStegBegrunnelseTextField.buildInitialValues(aksjonspunkter),
}),
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { Aksjonspunkt } from '@k9-sak-web/types';
import { screen } from '@testing-library/react';
import messages from '../../i18n/nb_NO.json';
import OpptjeningVilkarForm from './OpptjeningVilkarForm';
import { K9sakApiKeys, requestApi } from '@k9-sak-web/sak-app/src/data/k9sakApi';

const periode = {
avslagKode: '1035',
Expand All @@ -24,6 +25,8 @@ const periode = {

describe('<OpptjeningVilkarForm>', () => {
it('skal vise OpptjeningVilkarAksjonspunktPanel når en har aksjonspunkt', () => {
requestApi.mock(K9sakApiKeys.FEATURE_TOGGLE, []);

renderWithIntlAndReduxForm(
<OpptjeningVilkarForm
readOnlySubmitButton
Expand All @@ -49,7 +52,18 @@ describe('<OpptjeningVilkarForm>', () => {
lovReferanse="Dette er en lovreferanse"
periodeIndex={0}
vilkårPerioder={[periode]}
opptjeninger={[]}
opptjeninger={[
{
opptjeningAktivitetList: [],
fastsattOpptjening: {
opptjeningFom: '2017-08-15',
opptjeningTom: '2017-08-31',
opptjeningperiode: { dager: 16, måneder: 0 },
fastsattOpptjeningAktivitetList: [],
vurderesIAksjonspunkt: true,
},
},
]}
/>,
{ messages },
);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Aksjonspunkt, SubmitCallback, Vilkarperiode, Opptjening } from '@k9-sak-web/types';
import React from 'react';
import OpptjeningVilkarAksjonspunktPanel from './OpptjeningVilkarAksjonspunktPanel';
import { useFeatureToggles } from '@fpsak-frontend/shared-components';

/**
* OpptjeningVilkarForm
Expand Down Expand Up @@ -38,22 +39,27 @@ const OpptjeningVilkarForm = ({
vilkårPerioder,
periodeIndex,
opptjeninger,
}: OpptjeningVilkarFormProps) => (
<OpptjeningVilkarAksjonspunktPanel
submitCallback={submitCallback}
isApOpen={isAksjonspunktOpen}
readOnly={readOnly}
readOnlySubmitButton={readOnlySubmitButton}
behandlingId={behandlingId}
behandlingVersjon={behandlingVersjon}
aksjonspunkter={aksjonspunkter}
status={status}
lovReferanse={lovReferanse}
fagsakType={fagsakType}
vilkårPerioder={vilkårPerioder}
periodeIndex={periodeIndex}
opptjeninger={opptjeninger}
/>
);
}: OpptjeningVilkarFormProps) => {
const [featureToggles] = useFeatureToggles();

return (
<OpptjeningVilkarAksjonspunktPanel
submitCallback={submitCallback}
isApOpen={isAksjonspunktOpen}
readOnly={readOnly}
readOnlySubmitButton={readOnlySubmitButton}
behandlingId={behandlingId}
behandlingVersjon={behandlingVersjon}
aksjonspunkter={aksjonspunkter}
status={status}
lovReferanse={lovReferanse}
fagsakType={fagsakType}
vilkårPerioder={vilkårPerioder}
periodeIndex={periodeIndex}
opptjeninger={opptjeninger}
featureToggles={featureToggles}
/>
);
};

export default OpptjeningVilkarForm;
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
import { RadioGroupField } from '@fpsak-frontend/form';
import { FlexColumn, FlexContainer, FlexRow, Image, VerticalSpacer } from '@fpsak-frontend/shared-components';
import {
FlexColumn,
FlexContainer,
FlexRow,
Image,
useFeatureToggles,
VerticalSpacer,
} from '@fpsak-frontend/shared-components';
import { required } from '@fpsak-frontend/utils';
import { ProsessStegBegrunnelseTextField } from '@k9-sak-web/prosess-felles';
import { Opptjening, Vilkarperiode } from '@k9-sak-web/types';
import { FeatureToggles, Opptjening, Vilkarperiode } from '@k9-sak-web/types';
import { BodyShort } from '@navikt/ds-react';
import { FormattedMessage, useIntl } from 'react-intl';

Expand All @@ -20,7 +27,7 @@ export const opptjeningMidlertidigInaktivKoder = {
export type VilkårFieldType = {
begrunnelse: string;
vurderesIBehandlingen: boolean;
periodeHar28DagerOgTrengerIkkeVurderesManuelt: boolean;
vurderesIAksjonspunkt: boolean;
kode: '7847A' | '7847B' | 'OPPFYLT' | 'IKKE_OPPFYLT';
};

Expand Down Expand Up @@ -63,6 +70,7 @@ export const VilkarField = ({
skalValgMidlertidigInaktivTypeBVises,
}: VilkarFieldsProps & Partial<FormValues>) => {
const intl = useIntl();
const [featureToggles] = useFeatureToggles();
const erIkkeOppfyltText = (
<FormattedMessage id="OpptjeningVilkarAksjonspunktPanel.ErIkkeOppfylt" values={{ b: chunks => <b>{chunks}</b> }} />
);
Expand Down Expand Up @@ -142,15 +150,24 @@ export const VilkarField = ({
},
]
: []),
]}
].filter(v => {
if (featureToggles?.OPPTJENING_READ_ONLY_PERIODER) {
return v.value !== 'OPPFYLT';
}
return true;
})}
/>
)}
<VerticalSpacer sixteenPx />
</>
);
};

VilkarField.buildInitialValues = (vilkårPerioder: Vilkarperiode[], opptjening: Opptjening[]): FormValues => {
VilkarField.buildInitialValues = (
vilkårPerioder: Vilkarperiode[],
opptjening: Opptjening[],
featureToggles: FeatureToggles,
): FormValues => {
const utledKode = (periode: Vilkarperiode) => {
if (
periode.merknad.kode === opptjeningMidlertidigInaktivKoder.TYPE_A ||
Expand All @@ -169,16 +186,12 @@ VilkarField.buildInitialValues = (vilkårPerioder: Vilkarperiode[], opptjening:
o => dayjs(o?.fastsattOpptjening?.opptjeningTom).add(1, 'day').format('YYYY-MM-DD') === skjæringstidspunkt,
);

// Ble litt trøbbel med denne, fjerner midlertidig for å få ut hotfix
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const periodeHar28DagerOgTrengerIkkeVurderesManuelt =
opptjeningForPeriode?.fastsattOpptjening?.opptjeningperiode?.dager >= 28 ||
opptjeningForPeriode?.fastsattOpptjening?.opptjeningperiode?.måneder > 0;

return {
begrunnelse: periode.begrunnelse,
vurderesIBehandlingen: periode.vurderesIBehandlingen,
periodeHar28DagerOgTrengerIkkeVurderesManuelt: false,
vurderesIAksjonspunkt: featureToggles?.OPPTJENING_READ_ONLY_PERIODER
? opptjeningForPeriode?.fastsattOpptjening.vurderesIAksjonspunkt
: true,
kode: utledKode(periode),
};
})
Expand Down
1 change: 1 addition & 0 deletions packages/types/src/opptjening/fastsattOpptjening.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ export type FastsattOpptjening = Readonly<{
opptjeningTom: string;
opptjeningperiode: Opptjeningperiode;
fastsattOpptjeningAktivitetList: FastsattOpptjeningAktivitet[];
vurderesIAksjonspunkt: boolean;
}>;

export default FastsattOpptjening;

0 comments on commit 1f1aa90

Please sign in to comment.