Skip to content

Commit 302bb83

Browse files
committed
Oppretter tabeller og mapper til anviste andeler fra vedtatt ytelse
1 parent a46f978 commit 302bb83

16 files changed

+495
-55
lines changed

.deploy/dev-fss-teamforeldrepenger.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,6 @@ spec:
106106
value: api://dev-fss.tbd.spokelse/.default
107107
- name: SPOKELSE_GRUNNLAG_URL
108108
value: http://spokelse.tbd/grunnlag
109+
110+
- name: SKAL_INNENTE_YTELSE_ANVIST_ANDELER
111+
value: true

.deploy/prod-fss-teamforeldrepenger.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,6 @@ spec:
105105
value: api://prod-fss.tbd.spokelse/.default
106106
- name: SPOKELSE_GRUNNLAG_URL
107107
value: http://spokelse.tbd/grunnlag
108+
109+
- name: SKAL_INNENTE_YTELSE_ANVIST_ANDELER
110+
value: false

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvist.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package no.nav.foreldrepenger.abakus.domene.iay;
22

33
import java.time.LocalDate;
4+
import java.util.LinkedHashSet;
45
import java.util.Objects;
56
import java.util.Optional;
7+
import java.util.Set;
68

79
import javax.persistence.AttributeOverride;
810
import javax.persistence.AttributeOverrides;
@@ -14,6 +16,7 @@
1416
import javax.persistence.Id;
1517
import javax.persistence.JoinColumn;
1618
import javax.persistence.ManyToOne;
19+
import javax.persistence.OneToMany;
1720
import javax.persistence.Table;
1821
import javax.persistence.Version;
1922

@@ -37,6 +40,10 @@ public class YtelseAnvist extends BaseEntitet implements IndexKey {
3740
@JoinColumn(name = "ytelse_id", nullable = false, updatable = false, unique = true)
3841
private Ytelse ytelse;
3942

43+
@OneToMany(mappedBy = "ytelseAnvist")
44+
@ChangeTracked
45+
private Set<YtelseAnvistAndel> ytelseAnvistAndeler = new LinkedHashSet<>();
46+
4047
@Embedded
4148
@ChangeTracked
4249
private IntervallEntitet anvistPeriode;
@@ -117,6 +124,16 @@ public void setYtelse(Ytelse ytelse) {
117124
this.ytelse = ytelse;
118125
}
119126

127+
public Set<YtelseAnvistAndel> getYtelseAnvistAndeler() {
128+
return ytelseAnvistAndeler;
129+
}
130+
131+
void leggTilYtelseAnvistAndel(YtelseAnvistAndel ytelseAnvistAndel) {
132+
ytelseAnvistAndel.setYtelseAnvist(this);
133+
this.ytelseAnvistAndeler.add(ytelseAnvistAndel);
134+
135+
}
136+
120137
@Override
121138
public boolean equals(Object o) {
122139
if (this == o) return true;
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
package no.nav.foreldrepenger.abakus.domene.iay;
2+
3+
import java.util.Objects;
4+
import java.util.Optional;
5+
6+
import javax.persistence.AttributeOverride;
7+
import javax.persistence.AttributeOverrides;
8+
import javax.persistence.Column;
9+
import javax.persistence.Convert;
10+
import javax.persistence.Embedded;
11+
import javax.persistence.Entity;
12+
import javax.persistence.GeneratedValue;
13+
import javax.persistence.GenerationType;
14+
import javax.persistence.Id;
15+
import javax.persistence.JoinColumn;
16+
import javax.persistence.ManyToOne;
17+
import javax.persistence.Table;
18+
import javax.persistence.Version;
19+
20+
import no.nav.abakus.iaygrunnlag.kodeverk.IndexKey;
21+
import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori;
22+
import no.nav.foreldrepenger.abakus.felles.diff.ChangeTracked;
23+
import no.nav.foreldrepenger.abakus.felles.diff.IndexKeyComposer;
24+
import no.nav.foreldrepenger.abakus.felles.jpa.BaseEntitet;
25+
import no.nav.foreldrepenger.abakus.typer.Beløp;
26+
import no.nav.foreldrepenger.abakus.typer.InternArbeidsforholdRef;
27+
import no.nav.foreldrepenger.abakus.typer.Stillingsprosent;
28+
import no.nav.foreldrepenger.abakus.vedtak.domene.InntektskategoriKodeverdiConverter;
29+
30+
31+
@Entity(name = "YtelseAnvistAndel")
32+
@Table(name = "IAY_YTELSE_ANVIST_ANDEL")
33+
public class YtelseAnvistAndel extends BaseEntitet implements IndexKey {
34+
35+
@Id
36+
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_IAY_YTELSE_ANVIST_ANDEL")
37+
private Long id;
38+
39+
@ManyToOne(optional = false)
40+
@JoinColumn(name = "ytelse_anvist_id", nullable = false, updatable = false, unique = true)
41+
private YtelseAnvist ytelseAnvist;
42+
43+
@Embedded
44+
@ChangeTracked
45+
private Arbeidsgiver arbeidsgiver;
46+
47+
@Embedded
48+
private InternArbeidsforholdRef arbeidsforholdRef;
49+
50+
@Embedded
51+
@AttributeOverrides(@AttributeOverride(name = "verdi", column = @Column(name = "dagsats", nullable = false)))
52+
@ChangeTracked
53+
private Beløp dagsats;
54+
55+
@Embedded
56+
@AttributeOverrides(@AttributeOverride(name = "verdi", column = @Column(name = "utbetalingsgrad_prosent")))
57+
@ChangeTracked
58+
private Stillingsprosent utbetalingsgradProsent;
59+
60+
@Embedded
61+
@AttributeOverrides(@AttributeOverride(name = "verdi", column = @Column(name = "refusjonsgrad_prosent")))
62+
@ChangeTracked
63+
private Stillingsprosent refusjonsgradProsent;
64+
65+
@Convert(converter = InntektskategoriKodeverdiConverter.class)
66+
@Column(name = "inntektskategori", nullable = false, updatable = false)
67+
private Inntektskategori inntektskategori = Inntektskategori.UDEFINERT;
68+
69+
70+
@Version
71+
@Column(name = "versjon", nullable = false)
72+
private long versjon;
73+
74+
public YtelseAnvistAndel() {
75+
// hibernate
76+
}
77+
78+
public YtelseAnvistAndel(YtelseAnvistAndel ytelseAnvistAndel) {
79+
ytelseAnvistAndel.getArbeidsgiver().ifPresent(this::setArbeidsgiver);
80+
this.dagsats = ytelseAnvistAndel.getDagsats();
81+
this.inntektskategori = ytelseAnvistAndel.getInntektskategori();
82+
this.refusjonsgradProsent = ytelseAnvistAndel.getRefusjonsgradProsent();
83+
this.utbetalingsgradProsent = ytelseAnvistAndel.getUtbetalingsgradProsent();
84+
this.arbeidsforholdRef = ytelseAnvistAndel.getArbeidsforholdRef();
85+
}
86+
87+
public Optional<Arbeidsgiver> getArbeidsgiver() {
88+
return Optional.ofNullable(arbeidsgiver);
89+
}
90+
91+
void setArbeidsgiver(Arbeidsgiver arbeidsgiver) {
92+
this.arbeidsgiver = arbeidsgiver;
93+
}
94+
95+
96+
public InternArbeidsforholdRef getArbeidsforholdRef() {
97+
return arbeidsforholdRef;
98+
}
99+
100+
void setArbeidsforholdRef(InternArbeidsforholdRef arbeidsforholdRef) {
101+
this.arbeidsforholdRef = arbeidsforholdRef;
102+
}
103+
104+
public Beløp getDagsats() {
105+
return dagsats;
106+
}
107+
108+
void setDagsats(Beløp dagsats) {
109+
this.dagsats = dagsats;
110+
}
111+
112+
public Stillingsprosent getUtbetalingsgradProsent() {
113+
return utbetalingsgradProsent;
114+
}
115+
116+
void setUtbetalingsgradProsent(Stillingsprosent utbetalingsgradProsent) {
117+
this.utbetalingsgradProsent = utbetalingsgradProsent;
118+
}
119+
120+
public Stillingsprosent getRefusjonsgradProsent() {
121+
return refusjonsgradProsent;
122+
}
123+
124+
void setRefusjonsgradProsent(Stillingsprosent refusjonsgradProsent) {
125+
this.refusjonsgradProsent = refusjonsgradProsent;
126+
}
127+
128+
void setYtelseAnvist(YtelseAnvist ytelseAnvist) {
129+
this.ytelseAnvist = ytelseAnvist;
130+
}
131+
132+
public Inntektskategori getInntektskategori() {
133+
return inntektskategori;
134+
}
135+
136+
void setInntektskategori(Inntektskategori inntektskategori) {
137+
this.inntektskategori = inntektskategori;
138+
}
139+
140+
@Override
141+
public boolean equals(Object o) {
142+
if (this == o) return true;
143+
if (o == null || getClass() != o.getClass()) return false;
144+
YtelseAnvistAndel that = (YtelseAnvistAndel) o;
145+
return ytelseAnvist.equals(that.ytelseAnvist) && Objects.equals(arbeidsgiver, that.arbeidsgiver) &&
146+
dagsats.equals(that.dagsats) &&
147+
inntektskategori == that.inntektskategori &&
148+
utbetalingsgradProsent.equals(that.utbetalingsgradProsent) &&
149+
refusjonsgradProsent.equals(that.refusjonsgradProsent);
150+
}
151+
152+
@Override
153+
public int hashCode() {
154+
return Objects.hash(ytelseAnvist, arbeidsgiver, dagsats, inntektskategori, utbetalingsgradProsent, refusjonsgradProsent);
155+
}
156+
157+
@Override
158+
public String toString() {
159+
return "YtelseAnvistAndel{" +
160+
"id=" + id +
161+
", ytelseAnvist=" + ytelseAnvist +
162+
", arbeidsgiver=" + arbeidsgiver +
163+
", arbeidsforholdRef=" + arbeidsforholdRef +
164+
", dagsats=" + dagsats +
165+
", utbetalingsgradProsent=" + utbetalingsgradProsent +
166+
", refusjonsgradProsent=" + refusjonsgradProsent +
167+
", inntektskategori=" + inntektskategori +
168+
", versjon=" + versjon +
169+
'}';
170+
}
171+
172+
@Override
173+
public String getIndexKey() {
174+
Object[] keyParts = { arbeidsgiver, dagsats, inntektskategori, utbetalingsgradProsent, refusjonsgradProsent };
175+
return IndexKeyComposer.createKey(keyParts);
176+
}
177+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package no.nav.foreldrepenger.abakus.domene.iay;
2+
3+
import java.math.BigDecimal;
4+
5+
import no.nav.abakus.iaygrunnlag.kodeverk.Inntektskategori;
6+
import no.nav.foreldrepenger.abakus.typer.Beløp;
7+
import no.nav.foreldrepenger.abakus.typer.InternArbeidsforholdRef;
8+
import no.nav.foreldrepenger.abakus.typer.Stillingsprosent;
9+
10+
public class YtelseAnvistAndelBuilder {
11+
private final YtelseAnvistAndel ytelseAnvistAndel;
12+
13+
YtelseAnvistAndelBuilder(YtelseAnvistAndel ytelseAnvistAndel) {
14+
this.ytelseAnvistAndel = ytelseAnvistAndel;
15+
}
16+
17+
public static YtelseAnvistAndelBuilder ny() {
18+
return new YtelseAnvistAndelBuilder(new YtelseAnvistAndel());
19+
}
20+
21+
public YtelseAnvistAndelBuilder medDagsats(BigDecimal dagsats) {
22+
if (dagsats != null) {
23+
this.ytelseAnvistAndel.setDagsats(new Beløp(dagsats));
24+
}
25+
return this;
26+
}
27+
28+
public YtelseAnvistAndelBuilder medUtbetalingsgrad(BigDecimal verdi) {
29+
if (verdi != null) {
30+
this.ytelseAnvistAndel.setUtbetalingsgradProsent(new Stillingsprosent(verdi));
31+
}
32+
return this;
33+
}
34+
35+
public YtelseAnvistAndelBuilder medRefusjonsgrad(BigDecimal verdi) {
36+
if (verdi != null) {
37+
this.ytelseAnvistAndel.setRefusjonsgradProsent(new Stillingsprosent(verdi));
38+
}
39+
return this;
40+
}
41+
42+
public YtelseAnvistAndelBuilder medArbeidsgiver(Arbeidsgiver arbeidsgiver) {
43+
if (arbeidsgiver != null) {
44+
this.ytelseAnvistAndel.setArbeidsgiver(arbeidsgiver);
45+
}
46+
return this;
47+
}
48+
49+
public YtelseAnvistAndelBuilder medArbeidsforholdRef(InternArbeidsforholdRef arbeidsforholdRef) {
50+
this.ytelseAnvistAndel.setArbeidsforholdRef(arbeidsforholdRef);
51+
return this;
52+
}
53+
54+
55+
public YtelseAnvistAndelBuilder medInntektskategori(Inntektskategori inntektskategori) {
56+
if (inntektskategori != null) {
57+
this.ytelseAnvistAndel.setInntektskategori(inntektskategori);
58+
}
59+
return this;
60+
}
61+
62+
public YtelseAnvistAndel build() {
63+
return ytelseAnvistAndel;
64+
}
65+
66+
}

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/domene/iay/YtelseAnvistBuilder.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ public YtelseAnvistBuilder medUtbetalingsgradProsent(BigDecimal utbetalingsgradP
4343
return this;
4444
}
4545

46+
public YtelseAnvistBuilder leggTilYtelseAnvistAndel(YtelseAnvistAndel ytelseAnvistAndel) {
47+
this.ytelseAnvist.leggTilYtelseAnvistAndel(ytelseAnvistAndel);
48+
return this;
49+
}
50+
51+
4652
public YtelseAnvist build() {
4753
return ytelseAnvist;
4854
}

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/DefaultIAYRegisterInnhentingTjenesteImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ public DefaultIAYRegisterInnhentingTjenesteImpl(InntektArbeidYtelseTjeneste innt
3131
VirksomhetTjeneste virksomhetTjeneste,
3232
InnhentingSamletTjeneste innhentingSamletTjeneste,
3333
AktørTjeneste aktørConsumer,
34-
SigrunTjeneste sigrunTjeneste, VedtakYtelseRepository vedtakYtelseRepository) {
34+
SigrunTjeneste sigrunTjeneste, VedtattYtelseInnhentingTjeneste vedtattYtelseInnhentingTjeneste) {
3535
super(inntektArbeidYtelseTjeneste,
3636
virksomhetTjeneste,
3737
innhentingSamletTjeneste,
3838
aktørConsumer,
39-
sigrunTjeneste, vedtakYtelseRepository);
39+
sigrunTjeneste, vedtattYtelseInnhentingTjeneste);
4040
}
4141

4242
@Override

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/registerdata/IAYRegisterInnhentingFellesTjenesteImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,14 @@ protected IAYRegisterInnhentingFellesTjenesteImpl(InntektArbeidYtelseTjeneste in
7878
VirksomhetTjeneste virksomhetTjeneste,
7979
InnhentingSamletTjeneste innhentingSamletTjeneste,
8080
AktørTjeneste aktørConsumer,
81-
SigrunTjeneste sigrunTjeneste, VedtakYtelseRepository vedtakYtelseRepository) {
81+
SigrunTjeneste sigrunTjeneste,
82+
VedtattYtelseInnhentingTjeneste vedtattYtelseInnhentingTjeneste) {
8283
this.inntektArbeidYtelseTjeneste = inntektArbeidYtelseTjeneste;
8384
this.virksomhetTjeneste = virksomhetTjeneste;
8485
this.innhentingSamletTjeneste = innhentingSamletTjeneste;
8586
this.aktørConsumer = aktørConsumer;
8687
this.sigrunTjeneste = sigrunTjeneste;
87-
this.ytelseRegisterInnhenting = new YtelseRegisterInnhenting(innhentingSamletTjeneste, vedtakYtelseRepository);
88+
this.ytelseRegisterInnhenting = new YtelseRegisterInnhenting(innhentingSamletTjeneste, vedtattYtelseInnhentingTjeneste);
8889
this.byggYrkesaktiviteterTjeneste = new ByggYrkesaktiviteterTjeneste();
8990
}
9091

0 commit comments

Comments
 (0)