Skip to content

Commit

Permalink
AutomatiskUtbetaling -> AutomatiskInnsendingService
Browse files Browse the repository at this point in the history
  • Loading branch information
Oddsor committed Dec 19, 2024
1 parent 168eecb commit 7211136
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 27 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package no.nav.arbeidsgiver.tiltakrefusjon

import no.nav.arbeidsgiver.tiltakrefusjon.automatisk_utbetaling.AutomatiskUtbetaling
import no.nav.arbeidsgiver.tiltakrefusjon.automatisk_utbetaling.AutomatiskInnsendingService
import no.nav.arbeidsgiver.tiltakrefusjon.autorisering.ADMIN_BRUKER
import no.nav.arbeidsgiver.tiltakrefusjon.leader.LeaderPodCheck
import no.nav.arbeidsgiver.tiltakrefusjon.okonomi.KontoregisterServiceImpl
Expand Down Expand Up @@ -41,7 +41,7 @@ class AdminController(
val leaderPodCheck: LeaderPodCheck,
val refusjonKafkaProducer: RefusjonKafkaProducer?,
val kontoregisterService: KontoregisterServiceImpl?,
val automatiskUtbetaling: AutomatiskUtbetaling
val automatiskInnsendingService: AutomatiskInnsendingService
) {
val logger = LoggerFactory.getLogger(javaClass)

Expand Down Expand Up @@ -186,13 +186,13 @@ class AdminController(
@Unprotected
@PostMapping("sjekk-for-klar-for-innsending")
fun sjekkForKlarforInnsending() {
StatusJobb(refusjonRepository, leaderPodCheck, automatiskUtbetaling).fraForTidligTilKlarForInnsending()
StatusJobb(refusjonRepository, leaderPodCheck, automatiskInnsendingService).fraForTidligTilKlarForInnsending()
}

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

@Unprotected
Expand Down Expand Up @@ -308,10 +308,10 @@ class AdminController(
}

@Unprotected
@PostMapping("utfoer-automatisk-utbetaling")
@PostMapping("utfoer-automatisk-innsending")
@Transactional
fun manuellAutomatiskUtbetaling() {
automatiskUtbetaling.utførAutomatiskUtbetaling()
automatiskInnsendingService.utførAutomatiskInnsending()
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,35 +7,39 @@ import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.RefusjonService
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.RefusjonStatus
import no.nav.arbeidsgiver.tiltakrefusjon.refusjon.Tiltakstype
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Component
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional

@Component
class AutomatiskUtbetaling(
@Service
class AutomatiskInnsendingService(
private val refusjonRepository: RefusjonRepository,
private val refusjonService: RefusjonService
) {
val log = LoggerFactory.getLogger(AutomatiskUtbetaling::class.java.name)
val log = LoggerFactory.getLogger(AutomatiskInnsendingService::class.java.name)

fun utførAutomatiskUtbetaling() {
val tiltakstyperSomKanSendesInnAutomatisk = Tiltakstype.entries.filter { it.harFastUtbetaling() }.toSet()

@Transactional
fun utførAutomatiskInnsending() {
refusjonRepository.findAllByStatusAndRefusjonsgrunnlag_Tilskuddsgrunnlag_TiltakstypeIn(
RefusjonStatus.FOR_TIDLIG,
Tiltakstype.somUtbetalesAutomatisk()
tiltakstyperSomKanSendesInnAutomatisk
)
.forEach { refusjon ->
refusjon.gjørKlarTilInnsending()
if (refusjon.status == RefusjonStatus.KLAR_FOR_INNSENDING) {
utførAutomatiskUtbetaling(refusjon)
utførAutomatiskInnsending(refusjon)
}
}
}

fun utførAutomatiskUtbetaling(refusjon: Refusjon) {
fun utførAutomatiskInnsending(refusjon: Refusjon) {
val refusjonensTiltaktstype = refusjon.refusjonsgrunnlag.tilskuddsgrunnlag.tiltakstype
if (!Tiltakstype.somUtbetalesAutomatisk().contains(refusjonensTiltaktstype)) {
throw IllegalStateException("Refusjon ${refusjon.id} hadde ikke riktig tiltakstype (${refusjonensTiltaktstype})")
if (!refusjonensTiltaktstype.harFastUtbetaling()) {
throw IllegalStateException("Refusjon ${refusjon.id} kan ikke sendes inn automatisk (tiltakstype ${refusjonensTiltaktstype})")
}
log.info(
"Utfører automatisk utbetaling for refusjon {}-{} ({})",
"Utfører automatisk innsending av refusjon {}-{} ({})",
refusjon.refusjonsgrunnlag.tilskuddsgrunnlag.avtaleNr,
refusjon.refusjonsgrunnlag.tilskuddsgrunnlag.løpenummer,
refusjon.id
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package no.nav.arbeidsgiver.tiltakrefusjon.refusjon

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

Expand All @@ -24,14 +23,14 @@ class StatusJobb(
}
fraKlarForInnsendingTilUtgått()
fraForTidligTilKlarForInnsending()
automatiskUtbetaling.utførAutomatiskUtbetaling()
automatiskInnsendingService.utførAutomatiskInnsending()
}

fun fraForTidligTilKlarForInnsending() {
logger.info("Sjekker for tidliger refusjoner som skal settes til KLAR_FOR_INNSENDING")
val refusjoner = refusjonRepository.findAllByStatusAndRefusjonsgrunnlag_Tilskuddsgrunnlag_TiltakstypeNotIn(
RefusjonStatus.FOR_TIDLIG,
Tiltakstype.somUtbetalesAutomatisk()
automatiskInnsendingService.tiltakstyperSomKanSendesInnAutomatisk
)
var antallEndretTilKlarForInnsending = 0;
refusjoner.forEach {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,4 @@ enum class Tiltakstype {
MIDLERTIDIG_LONNSTILSKUDD, VARIG_LONNSTILSKUDD, SOMMERJOBB, VTAO;

fun harFastUtbetaling() = this == VTAO

companion object {
fun somUtbetalesAutomatisk() = setOf(VTAO)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import java.time.LocalDate

@ActiveProfiles("local")
@SpringBootTest
class AutomatiskUtbetalingTest {
class AutomatiskInnsendingServiceTest {
@Autowired
private lateinit var statusJobb: StatusJobb

Expand Down

0 comments on commit 7211136

Please sign in to comment.