Skip to content

Commit

Permalink
Merge branch 'main' into ny-utbetalingsgenerator
Browse files Browse the repository at this point in the history
  • Loading branch information
charliemidtlyng committed Sep 12, 2023
2 parents bc34baf + f86305e commit 099d5d3
Show file tree
Hide file tree
Showing 11 changed files with 91 additions and 25 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Read/save maven cache
uses: actions/cache@v3
with:
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/deploy-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,11 @@ jobs:
build:
name: Build, push and deploy to dev-gcp
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Read/save maven cache
uses: actions/cache@v3
with:
Expand Down Expand Up @@ -42,7 +44,7 @@ jobs:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: nais/deploy/actions/deploy@v1
env:
APIKEY: ${{ secrets.NAIS_DEPLOY_APIKEY }}
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/deploy-prod.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ jobs:
build:
name: Build, push and deploy to prod-gcp
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Read/save maven cache
uses: actions/cache@v3
with:
Expand Down Expand Up @@ -49,7 +51,7 @@ jobs:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Deploy til dev-gcp
uses: nais/deploy/actions/deploy@v1
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/manual-deploy-kafka-aiven.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: deploy vedtaksstatistikk to dev
uses: nais/deploy/actions/deploy@v1
env:
Expand Down
28 changes: 13 additions & 15 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.2</version>
<version>3.1.3</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

Expand All @@ -15,27 +15,27 @@

<properties>
<java.version>17</java.version>
<kotlin.version>1.9.0</kotlin.version>
<springdoc.version>2.1.0</springdoc.version>
<felles.version>2.20230210162649_a258d57-SPRING_BOOT_3</felles.version>
<familie.kontrakter.version>3.0_20230801091645_4237b37</familie.kontrakter.version>
<kotlin.version>1.9.10</kotlin.version>
<springdoc.version>2.2.0</springdoc.version>
<felles.version>2.20230825095715_3bcaf53</felles.version>
<familie.kontrakter.version>3.0_20230911133621_c5918cb</familie.kontrakter.version>
<familie.eksterne-kontrakter.stonadsstatistikk-ef>2.0_20230721144943_b5151d2</familie.eksterne-kontrakter.stonadsstatistikk-ef>
<familie.eksterne-kontrakter.saksstatistikk-ef>2.0_20230214104704_706e9c0</familie.eksterne-kontrakter.saksstatistikk-ef>
<familie.eksterne-kontrakter.arbeidsoppfolging>2.0_20230214104704_706e9c0</familie.eksterne-kontrakter.arbeidsoppfolging>
<prosessering.version>2.20230713120621_747ed8f</prosessering.version>
<utbetalingsgenerator.version>1.0_20230629085807_aca8dc9</utbetalingsgenerator.version>
<prosessering.version>2.20230807154047_d770f01</prosessering.version>
<brukernotifikasjon-schemas.version>2.5.2</brukernotifikasjon-schemas.version>
<maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version>
<confluent.version>7.4.1</confluent.version>
<mockk-jvm.version>1.13.5</mockk-jvm.version>
<confluent.version>7.5.0</confluent.version>
<mockk-jvm.version>1.13.7</mockk-jvm.version>
<cucumber.version>7.13.0</cucumber.version>
<revision>1.0</revision>
<dotenv.version>6.4.1</dotenv.version>
<changelist>-SNAPSHOT</changelist>
<start-class>no.nav.familie.ef.iverksett.ApplicationKt</start-class>
<token-validation-spring.version>3.0.12</token-validation-spring.version>
<token-validation-spring.version>3.1.2</token-validation-spring.version>
<ibm-mq-client.version>9.3.3.0</ibm-mq-client.version>
<unleash.version>8.2.0</unleash.version>
<unleash.version>8.3.0</unleash.version>
<okhttp3.version>4.9.1</okhttp3.version> <!-- overskrever spring sin versjon, blir brukt av mock-oauth2-server -->
</properties>

Expand Down Expand Up @@ -258,7 +258,7 @@
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>postgresql</artifactId>
<version>1.18.3</version>
<version>1.19.0</version>
<scope>test</scope>
</dependency>
<dependency>
Expand Down Expand Up @@ -373,8 +373,7 @@
<phase>verify</phase>
<configuration>
<target name="ktlint">
<java taskname="ktlint" dir="${basedir}" fork="true" failonerror="true"
classpathref="maven.plugin.classpath" classname="com.pinterest.ktlint.Main">
<java taskname="ktlint" dir="${basedir}" fork="true" failonerror="true" classpathref="maven.plugin.classpath" classname="com.pinterest.ktlint.Main">
<arg value="src/**/*.kt"/>
</java>
</target>
Expand All @@ -388,8 +387,7 @@
<phase>validate</phase>
<configuration>
<target name="ktlint">
<java taskname="ktlint" dir="${basedir}" fork="true" failonerror="true"
classpathref="maven.plugin.classpath" classname="com.pinterest.ktlint.Main">
<java taskname="ktlint" dir="${basedir}" fork="true" failonerror="true" classpathref="maven.plugin.classpath" classname="com.pinterest.ktlint.Main">
<jvmarg value="--add-opens"/>
<jvmarg value="java.base/java.lang=ALL-UNNAMED"/>
<arg value="-F"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ object DatoFormat {
object DatoUtil {

fun dagensDatoMedTid(): LocalDateTime = LocalDateTime.now()
fun dagensDato(): LocalDate = LocalDate.now()
}

fun dagensDatoNorskFormat(): String = LocalDate.now().format(DatoFormat.DATE_FORMAT_NORSK)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,14 +83,30 @@ class OppgaveService(
oppgavetype = Oppgavetype.Fremlegg,
beskrivelse = beskrivelse,
settBehandlesAvApplikasjon = false,
fristFerdigstillelse = iverksett.vedtak.vedtakstidspunkt.toLocalDate().plusYears(1),
fristFerdigstillelse = lagFristFerdigstillelseFremleggsoppgaver(iverksett.vedtak.vedtakstidspunkt.toLocalDate()),
mappeId = finnMappeForFremleggsoppgave(iverksett.søker.tilhørendeEnhet, iverksett.behandling.behandlingId),
)

return oppgaveClient.opprettOppgave(opprettOppgaveRequest)?.let { return it }
?: error("Kunne ikke finne oppgave for behandlingId=${iverksett.behandling.behandlingId}")
}

fun lagFristFerdigstillelseFremleggsoppgaver(vedtaksdato: LocalDate): LocalDate? {
// Frist skal ikke falle på
// - Den 6. dagen i måneden for det er en rutine i enhetene som sier at hvis man ikke får revurdert eller sjekket en sak fordi inntekten for den siste måneden ikke er innrapportert ennå, så oppretter man en fremleggsoppgave med frist den 6. neste måned for å sjekke inntekten. Grunnen til at fristen er den 6. er fordi arbeidsgivers frist til å innrapportere inntekt for forrige måned er den 5.
// - 17. og 18. mai, for de er forbeholdt karakterutskriftsoppgavene
// - Juli og august på grunn av ferie og lav bemanning
// Det er verdt å merke seg at oppgavesystemet flytter fristen fremover dersom fristdato lander på en helg.

var ettÅrFremITid = vedtaksdato.plusYears(1)

if (ettÅrFremITid.monthValue == 7 || ettÅrFremITid.monthValue == 8) ettÅrFremITid = ettÅrFremITid.minusMonths(2)
if (ettÅrFremITid.monthValue == 5 && (ettÅrFremITid.dayOfMonth == 17 || ettÅrFremITid.dayOfMonth == 18)) ettÅrFremITid = ettÅrFremITid.minusDays(2)
if (ettÅrFremITid.dayOfMonth == 6) ettÅrFremITid = ettÅrFremITid.plusDays(1)

return ettÅrFremITid
}

fun lagOppgavebeskrivelseForVurderHenvendelseOppgave(iverksett: IverksettOvergangsstønad) =
when (iverksett.behandling.behandlingType) {
BehandlingType.FØRSTEGANGSBEHANDLING -> finnBeskrivelseForFørstegangsbehandlingAvVedtaksresultat(iverksett)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ fun parseValgfriBoolean(domenebegrep: Domenenøkkel, rad: Map<String, String?>):
}
}

private fun parseDato(dato: String): LocalDate {
fun parseDato(dato: String): LocalDate {
return if (dato.contains(".")) {
LocalDate.parse(dato, norskDatoFormatter)
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@ import io.cucumber.datatable.DataTable
import io.cucumber.java.no.Gitt
import io.cucumber.java.no.Når
import io.cucumber.java.no.Så
import io.mockk.mockk
import no.nav.familie.ef.iverksett.cucumber.domeneparser.IdTIlUUIDHolder
import no.nav.familie.ef.iverksett.cucumber.domeneparser.TilkjentYtelseParser
import no.nav.familie.ef.iverksett.cucumber.domeneparser.parseDato
import no.nav.familie.ef.iverksett.cucumber.domeneparser.parseÅrMåned
import no.nav.familie.ef.iverksett.infrastruktur.transformer.toDomain
import no.nav.familie.ef.iverksett.iverksetting.domene.TilkjentYtelse
import no.nav.familie.ef.iverksett.iverksetting.domene.TilkjentYtelseMedMetaData
import no.nav.familie.ef.iverksett.oppgave.OppgaveService
import no.nav.familie.ef.iverksett.økonomi.utbetalingsoppdrag.UtbetalingsoppdragGenerator
import no.nav.familie.kontrakter.ef.iverksett.TilkjentYtelseDto
import no.nav.familie.kontrakter.felles.ef.StønadType
Expand Down Expand Up @@ -37,14 +40,20 @@ class StepDefinitions {
private lateinit var stønadType: StønadType
private var tilkjentYtelse = mutableListOf<TilkjentYtelseHolder>()
private var startdato = mapOf<UUID, LocalDate>()

private lateinit var vedtaksdato: LocalDate
private var fristForInntektsjekk: LocalDate? = LocalDate.now()
private var beregnedeTilkjentYtelse = mapOf<UUID, TilkjentYtelse>()

@Gitt("følgende startdatoer")
fun følgende_startdatoer(dataTable: DataTable) {
startdato = TilkjentYtelseParser.mapStartdatoer(dataTable)
}

@Gitt("følgende vedtaksdato {}")
fun følgende_vedtaksdato(vedtaksdatoArg: String) {
vedtaksdato = parseDato(vedtaksdatoArg)
}

@Gitt("følgende tilkjente ytelser for {}")
fun følgende_vedtak(stønadTypeArg: String, dataTable: DataTable) {
stønadType = StønadType.valueOf(stønadTypeArg.uppercase())
Expand All @@ -62,6 +71,11 @@ class StepDefinitions {
catchThrowable { `andelhistorikk kjøres`() }
}

@Når("lag frist for ferdigstillelse av inntektsjekk")
fun `lag frist for ferdigstillelse av inntektsjekk`() {
fristForInntektsjekk = OppgaveService(mockk(), mockk(), mockk()).lagFristFerdigstillelseFremleggsoppgaver(vedtaksdato)
}

@Når("lagTilkjentYtelseMedUtbetalingsoppdrag kjøres")
fun `andelhistorikk kjøres`() {
beregnedeTilkjentYtelse = tilkjentYtelse.fold(emptyList<Pair<UUID, TilkjentYtelse>>()) { acc, holder ->
Expand Down Expand Up @@ -113,6 +127,11 @@ class StepDefinitions {
}
}

@Så("forvent frist satt til {}")
fun `forvent følgende frist`(forventetFrist: String) {
assertThat(fristForInntektsjekk).isEqualTo(parseDato(forventetFrist))
}

@Så("forvent følgende utbetalingsoppdrag uten utbetalingsperiode")
fun `forvent følgende utbetalingsoppdrag uten utbetalingsperiode`(dataTable: DataTable) {
val forventedeUtbetalingsoppdrag = TilkjentYtelseParser.mapForventetUtbetalingsoppdrag(dataTable, false)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import io.mockk.slot
import io.mockk.unmockkAll
import io.mockk.verify
import no.nav.familie.ef.iverksett.felles.FamilieIntegrasjonerClient
import no.nav.familie.ef.iverksett.felles.util.DatoUtil
import no.nav.familie.ef.iverksett.iverksetting.IverksettingRepository
import no.nav.familie.ef.iverksett.iverksetting.domene.IverksettOvergangsstønad
import no.nav.familie.ef.iverksett.iverksetting.domene.VedtaksperiodeOvergangsstønad
Expand All @@ -22,6 +23,7 @@ import no.nav.familie.kontrakter.felles.Månedsperiode
import no.nav.familie.kontrakter.felles.arbeidsfordeling.Enhet
import no.nav.familie.kontrakter.felles.oppgave.FinnMappeResponseDto
import no.nav.familie.kontrakter.felles.oppgave.Oppgavetype
import no.nav.familie.kontrakter.felles.oppgave.OpprettOppgaveRequest
import org.assertj.core.api.Assertions.assertThat
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeEach
Expand All @@ -35,14 +37,16 @@ internal class OppgaveServiceTest {
val iverksettRepository = mockk<IverksettingRepository>()
val familieIntegrasjonerClient = mockk<FamilieIntegrasjonerClient>()
val oppgaveClient = mockk<OppgaveClient>()
val opprettOppgaveRequestSlot = slot<OpprettOppgaveRequest>()
val oppgaveService = OppgaveService(oppgaveClient, familieIntegrasjonerClient, iverksettRepository)

@BeforeEach
internal fun init() {
mockkObject(OppgaveUtil)
mockkObject(OppgaveBeskrivelse)
mockkObject(DatoUtil)
every { familieIntegrasjonerClient.hentBehandlendeEnhetForOppfølging(any()) } returns mockk()
every { oppgaveClient.opprettOppgave(any()) } returns 0L
every { oppgaveClient.opprettOppgave(capture(opprettOppgaveRequestSlot)) } returns 0L
every { OppgaveUtil.opprettOppgaveRequest(any(), any(), any(), any(), any(), any(), any(), any(), any()) } returns mockk()
every { oppgaveClient.finnMapper(any(), any()) } returns FinnMappeResponseDto(0, emptyList())
every { familieIntegrasjonerClient.hentBehandlendeEnhetForOppfølging(any()) } returns Enhet("1234", "enhet")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# language: no
# encoding: UTF-8

Egenskap: Ved en førstegangsbehandling kan saksbehandler velge at det automatisk skal opprettes en fremleggsoppgave for sjekk av inntekt 1 år frem i tid.

Scenariomal: Fremleggsoppgaver skal ikke falle på den 6. i hver måned, 17. og 18. mai, eller i juli eller august

Gitt følgende vedtaksdato <Vedtaksdato>

Når lag frist for ferdigstillelse av inntektsjekk

forvent frist satt til <Dato>

Eksempler:
| Vedtaksdato | Dato | Kommentar |
| 01.09.2023 | 01.09.2024 | Ett år frem i tid |
| 21.08.2023 | 21.06.2024 | Skal ikke lande på juli eller august, trekker fra 2 måneder |
| 01.07.2023 | 01.05.2024 | Skal ikke lande på juli eller august, trekker fra 2 måneder |
| 17.05.2023 | 15.05.2024 | Skal ikke lande på 17. mai, trekker fra 2 dager |
| 18.05.2023 | 16.05.2024 | Skal ikke lande på 18. mai, trekker fra 2 dager |
| 06.05.2023 | 07.05.2024 | Skal ikke lande på 6. dagen i en måned, skal legge til en dag |
| 06.07.2023 | 07.05.2024 | Skal ikke lande på juli/august og den 6., trekker fra 2 måneder og legger til en dag |
| 17.07.2023 | 15.05.2024 | Skal ikke lande på juli og den 17/18 mai., trekker fra 2 måneder og to dager |

0 comments on commit 099d5d3

Please sign in to comment.