Skip to content

Commit

Permalink
Innsatsbehovsendring på en avtale må lagres ved godkjenning (#1261)
Browse files Browse the repository at this point in the history
fix: Innsatsbehovsendring på en avtale må lagres ved godkjenning

Co-authored-by: Mickel Hoang <[email protected]>
  • Loading branch information
d142796 and Majjki authored Feb 4, 2025
1 parent 26cb3e7 commit 7b700aa
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ void godkjennForAvtalepart(Avtale avtale) {
if (persondataService.erKode6(avtale.getDeltakerFnr())) {
throw new KanIkkeGodkjenneAvtalePåKode6Exception();
}
veilarboppfolgingService.hentOgSjekkOppfolgingstatus(avtale);
this.sjekkOgOppdaterOppfølgningsstatusForAvtale(avtale);
avtale.godkjennForVeileder(getIdentifikator());
}

Expand All @@ -145,7 +145,7 @@ public void godkjennForVeilederOgDeltaker(GodkjentPaVegneGrunn paVegneAvGrunn, A
if (persondataService.erKode6(avtale.getDeltakerFnr())) {
throw new KanIkkeGodkjenneAvtalePåKode6Exception();
}
veilarboppfolgingService.hentOgSjekkOppfolgingstatus(avtale);
this.sjekkOgOppdaterOppfølgningsstatusForAvtale(avtale);
avtale.godkjennForVeilederOgDeltaker(getIdentifikator(), paVegneAvGrunn);
}

Expand All @@ -161,7 +161,7 @@ public void godkjennForVeilederOgArbeidsgiver(
) {
super.sjekkTilgang(avtale);
this.blokkereKode6Prosessering(avtale.getDeltakerFnr());
veilarboppfolgingService.hentOgSjekkOppfolgingstatus(avtale);
this.sjekkOgOppdaterOppfølgningsstatusForAvtale(avtale);
avtale.godkjennForVeilederOgArbeidsgiver(getIdentifikator(), paVegneAvArbeidsgiverGrunn);
}

Expand All @@ -171,7 +171,7 @@ public void godkjennForVeilederOgDeltakerOgArbeidsgiver(
) {
super.sjekkTilgang(avtale);
this.blokkereKode6Prosessering(avtale.getDeltakerFnr());
veilarboppfolgingService.hentOgSjekkOppfolgingstatus(avtale);
this.sjekkOgOppdaterOppfølgningsstatusForAvtale(avtale);
avtale.godkjennForVeilederOgDeltakerOgArbeidsgiver(getIdentifikator(), paVegneAvDeltakerOgArbeidsgiverGrunn);
}

Expand Down Expand Up @@ -319,8 +319,9 @@ private PdlRespons hentPersondata(Fnr deltakerFnr) {
return persondata;
}

public void sjekkOgHentOppfølgingStatus(Avtale avtale, VeilarboppfolgingService veilarboppfolgingService) {
public void sjekkOgOppdaterOppfølgningsstatusForAvtale(Avtale avtale) {
Oppfølgingsstatus oppfølgingsstatus = veilarboppfolgingService.hentOgSjekkOppfolgingstatus(avtale);
if(oppfølgingsstatus == null) return;
this.settOppfølgingsStatus(avtale, oppfølgingsstatus);
}

Expand Down Expand Up @@ -356,13 +357,13 @@ public void forkortAvtale(Avtale avtale, LocalDate sluttDato, String grunn, Stri

public void forlengAvtale(LocalDate sluttDato, Avtale avtale) {
super.sjekkTilgang(avtale);
sjekkOgHentOppfølgingStatus(avtale, veilarboppfolgingService);
sjekkOgOppdaterOppfølgningsstatusForAvtale(avtale);
avtale.forlengAvtale(sluttDato, getIdentifikator());
}

protected void oppdatereEnheterEtterForespørsel(Avtale avtale) {
final PdlRespons persondata = this.hentPersonDataForOpprettelseAvAvtale(avtale);
this.sjekkOgHentOppfølgingStatus(avtale, veilarboppfolgingService);
this.sjekkOgOppdaterOppfølgningsstatusForAvtale(avtale); // TODO: Fjern denne slik at veileder kan oppdatere enhet uten å oppdatere oppfolgingstatus
super.hentGeoEnhetFraNorg2(avtale, persondata, norg2Client);
this.hentOppfolgingEnhetsnavnFraNorg2(avtale, norg2Client);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -875,6 +875,12 @@ public static GodkjentPaVegneGrunn enGodkjentPaVegneGrunn() {
return paVegneGrunn;
}

public static GodkjentPaVegneAvArbeidsgiverGrunn enGodkjentPaVegneAvArbeidsgiverGrunn() {
GodkjentPaVegneAvArbeidsgiverGrunn godkjentPaVegneAvArbeidsgiverGrunn = new GodkjentPaVegneAvArbeidsgiverGrunn();
godkjentPaVegneAvArbeidsgiverGrunn.setKlarerIkkeGiFaTilgang(true);
return godkjentPaVegneAvArbeidsgiverGrunn;
}

public static GodkjentPaVegneAvDeltakerOgArbeidsgiverGrunn enGodkjentPaVegneAvDeltakerOgArbeidsgiverGrunn() {
GodkjentPaVegneAvArbeidsgiverGrunn arbeidsgiverGrunn = new GodkjentPaVegneAvArbeidsgiverGrunn();
arbeidsgiverGrunn.setArenaMigreringArbeidsgiver(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,75 @@ public void godkjennAvtale__kan_ikke_godkjenne_foerst() {

@Test
public void godkjennAvtale__kan_godkjenne_sist() {
Avtale avtale = TestData.enAvtaleMedAltUtfylt();
// GITT
Avtale avtale = TestData.enVarigLonnstilskuddAvtaleMedAltUtfylt();
avtale.setKvalifiseringsgruppe(Kvalifiseringsgruppe.SITUASJONSBESTEMT_INNSATS);
avtale.getGjeldendeInnhold().setGodkjentAvDeltaker(Now.localDateTime());
avtale.getGjeldendeInnhold().setGodkjentAvArbeidsgiver(Now.localDateTime());
Veileder veileder = TestData.enVeileder(avtale);
VeilarboppfolgingService veilarboppfolgingService = mock(VeilarboppfolgingService.class);
// NÅR
when(veilarboppfolgingService.hentOgSjekkOppfolgingstatus(avtale)).thenReturn(new Oppfølgingsstatus(Formidlingsgruppe.ARBEIDSSOKER, Kvalifiseringsgruppe.VARIG_TILPASSET_INNSATS, "0906"));
Veileder veileder = TestData.enVeileder(TestData.enNavIdent(),veilarboppfolgingService);
veileder.godkjennAvtale(avtale.getSistEndret(), avtale);

// SÅ
assertThat(avtale.erGodkjentAvVeileder()).isTrue();
assertThat(avtale.getKvalifiseringsgruppe().getKvalifiseringskode()).isEqualTo(Kvalifiseringsgruppe.VARIG_TILPASSET_INNSATS.getKvalifiseringskode());
}

@Test
public void godkjennForVeilederOgDeltaker__kan_godkjenne_med_riktig_oppfølgingsstatus() {
// GITT
Avtale avtale = TestData.enVarigLonnstilskuddAvtaleMedAltUtfylt();
avtale.setKvalifiseringsgruppe(Kvalifiseringsgruppe.SITUASJONSBESTEMT_INNSATS);
avtale.getGjeldendeInnhold().setGodkjentAvArbeidsgiver(Now.localDateTime());
VeilarboppfolgingService veilarboppfolgingService = mock(VeilarboppfolgingService.class);
// NÅR
when(veilarboppfolgingService.hentOgSjekkOppfolgingstatus(avtale)).thenReturn(new Oppfølgingsstatus(Formidlingsgruppe.ARBEIDSSOKER, Kvalifiseringsgruppe.VARIG_TILPASSET_INNSATS, "0906"));
Veileder veileder = TestData.enVeileder(TestData.enNavIdent(),veilarboppfolgingService);
GodkjentPaVegneGrunn godkjentPaVegneGrunn = TestData.enGodkjentPaVegneGrunn();
veileder.godkjennForVeilederOgDeltaker(godkjentPaVegneGrunn, avtale);

// SÅ
assertThat(avtale.erGodkjentAvVeileder()).isTrue();
assertThat(avtale.getKvalifiseringsgruppe().getKvalifiseringskode()).isEqualTo(Kvalifiseringsgruppe.VARIG_TILPASSET_INNSATS.getKvalifiseringskode());
}

@Test
public void godkjennForVeilederOgDeltakerOgArbeidsgiver__kan_godkjenne_med_riktig_oppfølgingsstatus() {
// GITT
Avtale avtale = TestData.enVarigLonnstilskuddAvtaleMedAltUtfylt();
avtale.setOpphav(Avtaleopphav.ARENA);
avtale.setKvalifiseringsgruppe(Kvalifiseringsgruppe.SITUASJONSBESTEMT_INNSATS);
VeilarboppfolgingService veilarboppfolgingService = mock(VeilarboppfolgingService.class);
// NÅR
when(veilarboppfolgingService.hentOgSjekkOppfolgingstatus(avtale)).thenReturn(new Oppfølgingsstatus(Formidlingsgruppe.ARBEIDSSOKER, Kvalifiseringsgruppe.VARIG_TILPASSET_INNSATS, "0906"));
Veileder veileder = TestData.enVeileder(TestData.enNavIdent(),veilarboppfolgingService);
GodkjentPaVegneAvDeltakerOgArbeidsgiverGrunn godkjentPaVegneAvDeltakerOgArbeidsgiverGrunn = TestData.enGodkjentPaVegneAvDeltakerOgArbeidsgiverGrunn();
veileder.godkjennForVeilederOgDeltakerOgArbeidsgiver(godkjentPaVegneAvDeltakerOgArbeidsgiverGrunn, avtale);

// SÅ
assertThat(avtale.erGodkjentAvVeileder()).isTrue();
assertThat(avtale.getKvalifiseringsgruppe().getKvalifiseringskode()).isEqualTo(Kvalifiseringsgruppe.VARIG_TILPASSET_INNSATS.getKvalifiseringskode());
}

@Test
public void godkjennForVeilederOgArbeidsgiver__kan_godkjenne_med_riktig_oppfølgingsstatus() {
// GITT
Avtale avtale = TestData.enVarigLonnstilskuddAvtaleMedAltUtfylt();
avtale.setOpphav(Avtaleopphav.ARENA);
avtale.setKvalifiseringsgruppe(Kvalifiseringsgruppe.SITUASJONSBESTEMT_INNSATS);
avtale.getGjeldendeInnhold().setGodkjentAvDeltaker(Now.localDateTime());
VeilarboppfolgingService veilarboppfolgingService = mock(VeilarboppfolgingService.class);
// NÅR
when(veilarboppfolgingService.hentOgSjekkOppfolgingstatus(avtale)).thenReturn(new Oppfølgingsstatus(Formidlingsgruppe.ARBEIDSSOKER, Kvalifiseringsgruppe.VARIG_TILPASSET_INNSATS, "0906"));
Veileder veileder = TestData.enVeileder(TestData.enNavIdent(),veilarboppfolgingService);
GodkjentPaVegneAvArbeidsgiverGrunn godkjentPaVegneGrunn = TestData.enGodkjentPaVegneAvArbeidsgiverGrunn();
veileder.godkjennForVeilederOgArbeidsgiver(godkjentPaVegneGrunn, avtale);

// SÅ
assertThat(avtale.erGodkjentAvVeileder()).isTrue();
assertThat(avtale.getKvalifiseringsgruppe().getKvalifiseringskode()).isEqualTo(Kvalifiseringsgruppe.VARIG_TILPASSET_INNSATS.getKvalifiseringskode());
}

@Test
Expand Down Expand Up @@ -144,6 +207,8 @@ public void opphevGodkjenninger__kan_ikke_oppheve_arbeidstrening_hvis_alle_parte

// Gi veileder tilgang til deltaker
TilgangskontrollService tilgangskontrollService = mock(TilgangskontrollService.class);
VeilarboppfolgingService veilarboppfolgingServiceMock = mock(VeilarboppfolgingService.class);
when(veilarboppfolgingServiceMock.hentOgSjekkOppfolgingstatus(avtale)).thenReturn(new Oppfølgingsstatus(Formidlingsgruppe.ARBEIDSSOKER, Kvalifiseringsgruppe.VARIG_TILPASSET_INNSATS, "0906"));
Veileder veileder = new Veileder(
avtale.getVeilederNavIdent(),
tilgangskontrollService,
Expand All @@ -153,7 +218,7 @@ public void opphevGodkjenninger__kan_ikke_oppheve_arbeidstrening_hvis_alle_parte
mock(SlettemerkeProperties.class),

false,
mock(VeilarboppfolgingService.class));
veilarboppfolgingServiceMock);
when(tilgangskontrollService.harSkrivetilgangTilKandidat(eq(veileder), any(Fnr.class)))
.thenReturn(true);

Expand Down

0 comments on commit 7b700aa

Please sign in to comment.