Skip to content

Commit

Permalink
Statusjobb utfører automatisk utbetaling
Browse files Browse the repository at this point in the history
  • Loading branch information
Oddsor committed Dec 18, 2024
1 parent b6260d6 commit 4096c6a
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -186,13 +186,13 @@ class AdminController(
@Unprotected
@PostMapping("sjekk-for-klar-for-innsending")
fun sjekkForKlarforInnsending() {
StatusJobb(refusjonRepository, leaderPodCheck).sjekkOmKlarForInnsending()
StatusJobb(refusjonRepository, leaderPodCheck, automatiskUtbetaling).sjekkOmKlarForInnsending()
}

@Unprotected
@PostMapping("sjekk-for-utgått")
fun sjekkForUtgått() {
StatusJobb(refusjonRepository, leaderPodCheck).sjekkOmUtgått()
StatusJobb(refusjonRepository, leaderPodCheck, automatiskUtbetaling).sjekkOmUtgått()
}

@Unprotected
Expand Down
Original file line number Diff line number Diff line change
@@ -1,33 +1,25 @@
package no.nav.arbeidsgiver.tiltakrefusjon.automatisk_utbetaling

import no.nav.arbeidsgiver.tiltakrefusjon.autorisering.SYSTEM_BRUKER
import no.nav.arbeidsgiver.tiltakrefusjon.leader.LeaderPodCheck
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.Refusjon
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.RefusjonRepository
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.RefusjonStatus
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.Tiltakstype
import org.slf4j.LoggerFactory
import org.springframework.scheduling.annotation.Scheduled
import org.springframework.stereotype.Component

@Component
class AutomatiskUtbetaling(
private val leaderPodCheck: LeaderPodCheck,
private val refusjonRepository: RefusjonRepository
) {
val log = LoggerFactory.getLogger(AutomatiskUtbetaling::class.java.name)

@Scheduled(cron = "0 0 2,4 * * *")
fun automatiskUtbetaling() {
if (!leaderPodCheck.isLeaderPod) return
fun utførAutomatiskUtbetaling() {
val vtaoRefusjoner = refusjonRepository.findAllByStatusAndRefusjonsgrunnlag_Tilskuddsgrunnlag_TiltakstypeIn(RefusjonStatus.KLAR_FOR_INNSENDING, Tiltakstype.somUtbetalesAutomatisk())

// Finn alle VTAO-refusjoner som er klar for innsending, men ikke har blitt sendt inn enda:
val refusjoner = refusjonRepository.findAllByStatusAndRefusjonsgrunnlag_Tilskuddsgrunnlag_TiltakstypeIn(
RefusjonStatus.KLAR_FOR_INNSENDING,
Tiltakstype.somUtbetalesAutomatisk()
)

refusjoner.forEach { utførAutomatiskUtbetaling(it) }
vtaoRefusjoner.forEach { refusjon ->
utførAutomatiskUtbetaling(refusjon)
}
}

fun utførAutomatiskUtbetaling(refusjon: Refusjon) {
Expand All @@ -36,5 +28,6 @@ class AutomatiskUtbetaling(
refusjon.refusjonsgrunnlag.tilskuddsgrunnlag.løpenummer,
refusjon.id)
refusjon.godkjennForArbeidsgiver(utførtAv = SYSTEM_BRUKER)
refusjonRepository.save(refusjon)
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package no.nav.arbeidsgiver.tiltakrefusjon.refusjon

import no.nav.arbeidsgiver.tiltakrefusjon.automatisk_utbetaling.AutomatiskUtbetaling
import no.nav.arbeidsgiver.tiltakrefusjon.leader.LeaderPodCheck
import no.nav.arbeidsgiver.tiltakrefusjon.utils.Now
import org.slf4j.LoggerFactory
Expand All @@ -10,6 +11,7 @@ import org.springframework.stereotype.Component
class StatusJobb(
val refusjonRepository: RefusjonRepository,
val leaderPodCheck: LeaderPodCheck,
private val automatiskUtbetaling: AutomatiskUtbetaling,
) {
private val logger = LoggerFactory.getLogger(javaClass)

Expand All @@ -20,12 +22,13 @@ class StatusJobb(
logger.info("Pod er ikke leader, så kjører ikke jobb for å finne refusjoner med statusendring")
return
}
sjekkOmUtgått()
sjekkOmKlarForInnsending()
fraKlarForInnsendingTilUtgått()
fraForTidligTilKlarForInnsending()
automatiskUtbetaling.utførAutomatiskUtbetaling()
}

fun sjekkOmKlarForInnsending() {
logger.info("Sjekker statuser som skal får KLAR_FOR_INNSENDING")
fun fraForTidligTilKlarForInnsending() {
logger.info("Sjekker for tidliger refusjoner som skal settes til KLAR_FOR_INNSENDING")
val refusjoner = refusjonRepository.findAllByStatus(RefusjonStatus.FOR_TIDLIG)
var antallEndretTilKlarForInnsending: Int = 0;
refusjoner.forEach {
Expand All @@ -43,7 +46,7 @@ class StatusJobb(
logger.info("Endret til KLAR_FOR_INNSENDING på $antallEndretTilKlarForInnsending refusjoner")
}

fun sjekkOmUtgått() {
fun fraKlarForInnsendingTilUtgått() {
val refusjoner = refusjonRepository.findAllByStatus(RefusjonStatus.KLAR_FOR_INNSENDING)
var antallEndretTilUtgått: Int = 0
refusjoner.forEach {
Expand Down

0 comments on commit 4096c6a

Please sign in to comment.