1
1
package no .nav .foreldrepenger .abakus .vedtak .extract .v1 ;
2
2
3
+ import java .util .Optional ;
3
4
import java .util .UUID ;
4
5
5
6
import javax .enterprise .context .ApplicationScoped ;
6
7
import javax .inject .Inject ;
7
8
8
9
import no .nav .abakus .iaygrunnlag .Aktør ;
9
10
import no .nav .abakus .iaygrunnlag .kodeverk .Fagsystem ;
11
+ import no .nav .abakus .iaygrunnlag .kodeverk .Inntektskategori ;
10
12
import no .nav .abakus .iaygrunnlag .kodeverk .YtelseStatus ;
11
13
import no .nav .abakus .iaygrunnlag .kodeverk .YtelseType ;
14
+ import no .nav .abakus .vedtak .ytelse .Kildesystem ;
12
15
import no .nav .abakus .vedtak .ytelse .Periode ;
16
+ import no .nav .abakus .vedtak .ytelse .Status ;
17
+ import no .nav .abakus .vedtak .ytelse .Ytelser ;
13
18
import no .nav .abakus .vedtak .ytelse .v1 .YtelseV1 ;
14
19
import no .nav .abakus .vedtak .ytelse .v1 .anvisning .Anvisning ;
15
20
import no .nav .abakus .vedtak .ytelse .v1 .anvisning .AnvistAndel ;
21
+ import no .nav .abakus .vedtak .ytelse .v1 .anvisning .Inntektklasse ;
16
22
import no .nav .foreldrepenger .abakus .felles .jpa .IntervallEntitet ;
17
23
import no .nav .foreldrepenger .abakus .typer .AktørId ;
18
24
import no .nav .foreldrepenger .abakus .typer .Saksnummer ;
@@ -38,8 +44,8 @@ public ExtractFromYtelseV1(VedtakYtelseRepository repository) {
38
44
39
45
@ Override
40
46
public VedtakYtelseBuilder extractFrom (YtelseV1 ytelse ) {
41
- Fagsystem fagsystem = ytelse .getFagsystem ( );
42
- no .nav .abakus .iaygrunnlag .kodeverk .YtelseType ytelseType = getYtelseType (ytelse .getType ());
47
+ Fagsystem fagsystem = Optional . ofNullable ( ytelse .getKildesystem ()). map ( this :: mapKildesystem ). orElseGet ( ytelse :: getFagsystem );
48
+ no .nav .abakus .iaygrunnlag .kodeverk .YtelseType ytelseType = getYtelseType (ytelse .getType (), ytelse . getYtelse () );
43
49
Saksnummer saksnummer = new Saksnummer (ytelse .getSaksnummer ());
44
50
AktørId aktørId = new AktørId (ytelse .getAktør ().getVerdi ());
45
51
@@ -51,7 +57,7 @@ public VedtakYtelseBuilder extractFrom(YtelseV1 ytelse) {
51
57
.medKilde (fagsystem )
52
58
.medYtelseType (ytelseType )
53
59
.medPeriode (mapTilEntitet (ytelse .getPeriode ()))
54
- .medStatus (YtelseStatus . fraKode (ytelse .getStatus (). getKode ()))
60
+ .medStatus (mapStatus (ytelse .getStatus (), ytelse . getYtelseStatus ()))
55
61
.medTilleggsopplysninger (ytelse .getTilleggsopplysninger ())
56
62
.tilbakestillAnvisteYtelser ();
57
63
@@ -72,14 +78,33 @@ private void mapAnvisning(VedtakYtelseBuilder builder, Anvisning anv) {
72
78
73
79
private VedtakYtelseAndelBuilder mapFordeling (AnvistAndel andel ) {
74
80
return VedtakYtelseAndelBuilder .ny ()
75
- .medInntektskategori (andel .getInntektskategori ())
81
+ .medInntektskategori (mapInntektsklasse ( andel .getInntektskategori (), andel . getInntektklasse () ))
76
82
.medDagsats (andel .getDagsats ().getVerdi ())
77
83
.medUtbetalingsgrad (andel .getUtbetalingsgrad ().getVerdi ())
78
84
.medRefusjonsgrad (andel .getRefusjonsgrad ().getVerdi ())
79
85
.medArbeidsgiver (mapArbeidsgiver (andel .getArbeidsgiver ()))
80
86
.medArbeidsforholdId (andel .getArbeidsforholdId ());
81
87
}
82
88
89
+ private Fagsystem mapKildesystem (Kildesystem kildesystem ) {
90
+ return switch (kildesystem ) {
91
+ case FPSAK -> Fagsystem .FPSAK ;
92
+ case K9SAK -> Fagsystem .K9SAK ;
93
+ };
94
+ }
95
+
96
+ private YtelseStatus mapStatus (YtelseStatus ytelseStatus , Status status ) {
97
+ if (status == null ) {
98
+ return ytelseStatus != null ? ytelseStatus : YtelseStatus .UDEFINERT ;
99
+ }
100
+ return switch (status ) {
101
+ case UNDER_BEHANDLING -> YtelseStatus .UNDER_BEHANDLING ;
102
+ case LØPENDE -> YtelseStatus .LØPENDE ;
103
+ case AVSLUTTET -> YtelseStatus .AVSLUTTET ;
104
+ default -> YtelseStatus .UDEFINERT ;
105
+ };
106
+ }
107
+
83
108
private Arbeidsgiver mapArbeidsgiver (Aktør arbeidsgiver ) {
84
109
if (arbeidsgiver == null ) {
85
110
return null ;
@@ -91,8 +116,30 @@ private IntervallEntitet mapTilEntitet(Periode periode) {
91
116
return IntervallEntitet .fraOgMedTilOgMed (periode .getFom (), periode .getTom ());
92
117
}
93
118
94
- private no .nav .abakus .iaygrunnlag .kodeverk .YtelseType getYtelseType (YtelseType kodeverk ) {
95
- return no .nav .abakus .iaygrunnlag .kodeverk .YtelseType .fraKode (kodeverk .getKode ());
119
+ private YtelseType getYtelseType (YtelseType kodeverk , Ytelser ytelse ) {
120
+ if (ytelse == null ) {
121
+ return kodeverk != null ? kodeverk : YtelseType .UDEFINERT ;
122
+ }
123
+ return switch (ytelse ) {
124
+ case PLEIEPENGER_SYKT_BARN -> YtelseType .PLEIEPENGER_SYKT_BARN ;
125
+ case PLEIEPENGER_NÆRSTÅENDE -> YtelseType .PLEIEPENGER_NÆRSTÅENDE ;
126
+ case OMSORGSPENGER -> YtelseType .OMSORGSPENGER ;
127
+ case OPPLÆRINGSPENGER -> YtelseType .OPPLÆRINGSPENGER ;
128
+
129
+ case ENGANGSTØNAD -> YtelseType .ENGANGSTØNAD ;
130
+ case FORELDREPENGER -> YtelseType .FORELDREPENGER ;
131
+ case SVANGERSKAPSPENGER -> YtelseType .SVANGERSKAPSPENGER ;
132
+
133
+ case FRISINN -> YtelseType .FRISINN ;
134
+ };
135
+ }
136
+
137
+ private Inntektskategori mapInntektsklasse (Inntektskategori inntektskategori , Inntektklasse inntektklasse ) {
138
+ if (inntektklasse == null ) {
139
+ return inntektskategori != null ? inntektskategori : Inntektskategori .UDEFINERT ;
140
+ }
141
+ return AnvistAndel .fraInntektklasse (inntektklasse );
142
+
96
143
}
97
144
98
145
}
0 commit comments