@@ -2,17 +2,20 @@ import React, { Component } from 'react';
2
2
import PropTypes from 'prop-types' ;
3
3
import { connect } from 'react-redux' ;
4
4
import { bindActionCreators } from 'redux' ;
5
- import { clearFields , formPropTypes , FormSection } from 'redux-form' ;
5
+ import {
6
+ clearFields , formPropTypes , FormSection , change ,
7
+ } from 'redux-form' ;
6
8
import { FormattedMessage , injectIntl } from 'react-intl' ;
9
+ import moment from 'moment' ;
7
10
import { Element , Normaltekst , Undertekst } from 'nav-frontend-typografi' ;
8
11
import { Column , Row } from 'nav-frontend-grid' ;
9
12
import { Hovedknapp , Knapp } from 'nav-frontend-knapper' ;
10
13
11
14
import {
12
- RadioGroupField , RadioOption , TextAreaField , behandlingForm , behandlingFormValueSelector ,
15
+ RadioGroupField , RadioOption , TextAreaField , behandlingForm , behandlingFormValueSelector , SelectField ,
13
16
} from '@fpsak-frontend/form' ;
14
17
import {
15
- formatCurrencyNoKr , hasValidText , maxLength , minLength , required ,
18
+ formatCurrencyNoKr , hasValidText , maxLength , minLength , required , DDMMYYYY_DATE_FORMAT ,
16
19
} from '@fpsak-frontend/utils' ;
17
20
import {
18
21
AdvarselModal , FlexColumn , FlexRow , VerticalSpacer ,
@@ -61,6 +64,7 @@ export class TilbakekrevingPeriodeFormImpl extends Component {
61
64
behandlingVersjon : PropTypes . number . isRequired ,
62
65
beregnBelop : PropTypes . func . isRequired ,
63
66
intl : PropTypes . shape ( ) . isRequired ,
67
+ vilkarsVurdertePerioder : PropTypes . arrayOf ( PropTypes . shape ( ) ) . isRequired ,
64
68
...formPropTypes ,
65
69
} ;
66
70
@@ -114,6 +118,22 @@ export class TilbakekrevingPeriodeFormImpl extends Component {
114
118
formProps . handleSubmit ( ) ;
115
119
} ;
116
120
121
+ onEndrePeriodeForKopi = ( event , vurdertePerioder ) => {
122
+ const { change : changeValue } = this . props ;
123
+
124
+ const fomTom = event . target . value . split ( '_' ) ;
125
+ const kopierDenne = vurdertePerioder . find ( ( per ) => per . fom === fomTom [ 0 ] && per . tom === fomTom [ 1 ] ) ;
126
+ const vilkårResultatType = kopierDenne . valgtVilkarResultatType ;
127
+ const resultatType = kopierDenne [ vilkårResultatType ] ;
128
+
129
+ changeValue ( 'valgtVilkarResultatType' , vilkårResultatType , true , false ) ;
130
+ changeValue ( 'begrunnelse' , kopierDenne . begrunnelse , true , false ) ;
131
+ changeValue ( 'vurderingBegrunnelse' , kopierDenne . vurderingBegrunnelse , true , false ) ;
132
+ changeValue ( vilkårResultatType , resultatType ) ;
133
+
134
+ event . preventDefault ( ) ;
135
+ }
136
+
117
137
render ( ) {
118
138
const {
119
139
valgtVilkarResultatType,
@@ -136,9 +156,11 @@ export class TilbakekrevingPeriodeFormImpl extends Component {
136
156
behandlingVersjon,
137
157
beregnBelop,
138
158
intl,
159
+ vilkarsVurdertePerioder,
139
160
...formProps
140
161
} = this . props ;
141
162
const { showModal } = this . state ;
163
+ const vurdertePerioder = vilkarsVurdertePerioder . filter ( ( per ) => ! per . erForeldet && per . valgtVilkarResultatType != null ) ;
142
164
return (
143
165
< div className = { styles . container } >
144
166
< TilbakekrevingTimelineData
@@ -165,6 +187,29 @@ export class TilbakekrevingPeriodeFormImpl extends Component {
165
187
) ) }
166
188
< TilbakekrevingAktivitetTabell ytelser = { data . ytelser } />
167
189
< VerticalSpacer twentyPx />
190
+ { ! readOnly && ! data . erForeldet && vurdertePerioder . length > 0 && (
191
+ < >
192
+ < Row >
193
+ < Column md = "10" >
194
+ < Element >
195
+ < FormattedMessage id = "TilbakekrevingPeriodeForm.KopierVilkårsvurdering" />
196
+ </ Element >
197
+ < SelectField
198
+ name = "perioderForKopi"
199
+ selectValues = { vurdertePerioder . map ( ( per ) => {
200
+ const perId = `${ per . fom } _${ per . tom } ` ;
201
+ const perValue = `${ moment ( per . fom ) . format ( DDMMYYYY_DATE_FORMAT ) } - ${ moment ( per . tom ) . format ( DDMMYYYY_DATE_FORMAT ) } ` ;
202
+ return < option key = { perId } value = { perId } > { perValue } </ option > ;
203
+ } ) }
204
+ onChange = { ( event ) => this . onEndrePeriodeForKopi ( event , vurdertePerioder ) }
205
+ bredde = "m"
206
+ label = ""
207
+ />
208
+ </ Column >
209
+ </ Row >
210
+ < VerticalSpacer twentyPx />
211
+ </ >
212
+ ) }
168
213
< Row >
169
214
< Column md = { data . erForeldet ? '12' : '6' } >
170
215
< Row >
@@ -289,6 +334,7 @@ export class TilbakekrevingPeriodeFormImpl extends Component {
289
334
const mapDispatchToProps = ( dispatch ) => ( {
290
335
...bindActionCreators ( {
291
336
clearFields,
337
+ change,
292
338
} , dispatch ) ,
293
339
} ) ;
294
340
0 commit comments