Skip to content

Commit be5309c

Browse files
authored
Feature/slett overstyring (#2498)
FIX: Nytt endepunkt som lagrer oppgitt opptjening og nullstiller overstyrt oppgitt opptjening
1 parent 6df7250 commit be5309c

File tree

4 files changed

+57
-0
lines changed

4 files changed

+57
-0
lines changed

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

+9
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,15 @@ public InntektArbeidYtelseGrunnlagBuilder medOverstyrtOppgittOpptjening(OppgittO
184184
return this;
185185
}
186186

187+
public InntektArbeidYtelseGrunnlagBuilder fjernOverstyrtOppgittOpptjening() {
188+
if (kladd.getOppgittOpptjeningAggregat().isPresent()) {
189+
throw new IllegalStateException(
190+
"Sanity check: Har allerede lagt inn oppgitt oppptjening på aggregat. Du vil da sannsynligvis ikke overstyre slik.");
191+
}
192+
kladd.setOverstyrtOppgittOpptjening(null);
193+
return this;
194+
}
195+
187196
public InntektArbeidYtelseGrunnlagBuilder medDeaktivert() {
188197
kladd.setAktivt(false);
189198
return this;

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

+15
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,21 @@ public GrunnlagReferanse lagre(KoblingReferanse koblingReferanse, OppgittOpptjen
288288
return build.getGrunnlagReferanse();
289289
}
290290

291+
public GrunnlagReferanse lagreOgNullstillOverstyring(KoblingReferanse koblingReferanse, OppgittOpptjeningBuilder oppgittOpptjening) {
292+
if (oppgittOpptjening == null) {
293+
return null;
294+
}
295+
Optional<InntektArbeidYtelseGrunnlag> iayGrunnlag = hentInntektArbeidYtelseGrunnlagForBehandling(koblingReferanse);
296+
297+
InntektArbeidYtelseGrunnlagBuilder grunnlag = InntektArbeidYtelseGrunnlagBuilder.oppdatere(iayGrunnlag);
298+
grunnlag.medOppgittOpptjening(oppgittOpptjening)
299+
.fjernOverstyrtOppgittOpptjening();
300+
301+
InntektArbeidYtelseGrunnlag build = grunnlag.build();
302+
lagreOgFlush(koblingReferanse, build);
303+
return build.getGrunnlagReferanse();
304+
}
305+
291306
public GrunnlagReferanse lagrePrJournalpostId(KoblingReferanse koblingReferanse, OppgittOpptjeningBuilder oppgittOpptjening) {
292307
if (oppgittOpptjening == null) {
293308
return null;

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/OppgittOpptjeningTjeneste.java

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ public GrunnlagReferanse lagre(KoblingReferanse koblingReferanse, OppgittOpptjen
2525
return repository.lagre(koblingReferanse, builder);
2626
}
2727

28+
public GrunnlagReferanse lagreOgNullstillOverstyring(KoblingReferanse koblingReferanse, OppgittOpptjeningBuilder builder) {
29+
return repository.lagreOgNullstillOverstyring(koblingReferanse, builder);
30+
}
31+
2832
public GrunnlagReferanse lagreOverstyring(KoblingReferanse koblingReferanse, OppgittOpptjeningBuilder builder) {
2933
return repository.lagreOverstyring(koblingReferanse, builder);
3034
}

domenetjenester/iay/src/main/java/no/nav/foreldrepenger/abakus/iay/tjeneste/OppgittOpptjeningRestTjeneste.java

+29
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,35 @@ public Response lagreOverstyrtOppgittOpptjening(@NotNull @TilpassetAbacAttributt
121121
return response;
122122
}
123123

124+
@POST
125+
@Path("/motta-og-nullstill-overstyring")
126+
@Operation(description = "Lagrer ned mottatt oppgitt opptjening og fjerner overstyring om den finnes", tags = "oppgitt opptjening", responses = {@ApiResponse(description = "Oppdatert grunnlagreferanse", content = @Content(mediaType = "application/json", schema = @Schema(implementation = UuidDto.class)))})
127+
@BeskyttetRessurs(actionType = ActionType.UPDATE, resource = GRUNNLAG)
128+
@SuppressWarnings({"findsecbugs:JAXRS_ENDPOINT", "resource"})
129+
public Response lagreOppgittOpptjeningOgNullstillOverstyring(@NotNull @TilpassetAbacAttributt(supplierClass = AbacDataSupplier.class) @Valid OppgittOpptjeningMottattRequest mottattRequest) {
130+
Response response;
131+
LoggUtil.setupLogMdc(mottattRequest.getYtelseType(), mottattRequest.getSaksnummer(), mottattRequest.getKoblingReferanse());
132+
var koblingReferanse = new KoblingReferanse(mottattRequest.getKoblingReferanse());
133+
var koblingLås = Optional.ofNullable(koblingTjeneste.taSkrivesLås(koblingReferanse));
134+
var aktørId = new AktørId(mottattRequest.getAktør().getIdent());
135+
var kobling = koblingTjeneste.finnEllerOpprett(mottattRequest.getYtelseType(), koblingReferanse, aktørId,
136+
new Saksnummer(mottattRequest.getSaksnummer()));
137+
138+
OppgittOpptjeningBuilder builder = new MapOppgittOpptjening().mapFraDto(mottattRequest.getOppgittOpptjening());
139+
GrunnlagReferanse grunnlagReferanse = oppgittOpptjeningTjeneste.lagreOgNullstillOverstyring(koblingReferanse, builder);
140+
141+
koblingTjeneste.lagre(kobling);
142+
koblingLås.ifPresent(lås -> koblingTjeneste.oppdaterLåsVersjon(lås));
143+
144+
if (grunnlagReferanse != null) {
145+
response = Response.ok(new UuidDto(grunnlagReferanse.getReferanse())).build();
146+
} else {
147+
response = Response.noContent().build();
148+
}
149+
150+
return response;
151+
}
152+
124153
public static class AbacDataSupplier implements Function<Object, AbacDataAttributter> {
125154

126155
@Override

0 commit comments

Comments
 (0)