Skip to content

Commit

Permalink
Sletter kode brukt av slettet app familie-ba-skatteetaten-api
Browse files Browse the repository at this point in the history
  • Loading branch information
stigebil committed Oct 7, 2024
1 parent 2f91633 commit fcd058c
Show file tree
Hide file tree
Showing 9 changed files with 0 additions and 750 deletions.
2 changes: 0 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ dependencies {
val tokenValidationVersion = "5.0.5"
val springdocVersion = "2.6.0"
val navFoedselsnummerVersion = "1.0-SNAPSHOT.6"
val skattKontraktVersjon = "2.0_20230214104704_706e9c0"
val fellesVersjon = "3.20240806111424_fff2930"
val kontrakterVersjon = "3.0_20231109091547_fd2cae7"
val coroutinesVersion = "1.8.1"
Expand All @@ -89,7 +88,6 @@ dependencies {
// ---------- NAV ---------- \\
implementation("no.nav.familie.kontrakter:felles:$kontrakterVersjon")
implementation("no.nav.familie.kontrakter:barnetrygd:$kontrakterVersjon")
implementation("no.nav.familie.eksterne.kontrakter:skatteetaten:$skattKontraktVersjon")
implementation("no.nav.familie.felles:log:$fellesVersjon")
implementation("no.nav.familie.felles:leader:$fellesVersjon")
implementation("no.nav.security:token-validation-spring:$tokenValidationVersion")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,6 @@ interface StønadRepository : JpaRepository<Stønad, Long> {
""")
fun findTrunkertStønadMedUtbetalingÅrByFnr(fnr: FoedselsNr, år: Int): List<TrunkertStønad>

@Query("SELECT new no.nav.familie.ba.infotrygd.model.dl1.TrunkertStønad(s.id, s.personKey, s.fnr, s.sakNr, s.saksblokk, s.status, s.region, s.virkningFom, s.opphørtFom, s.iverksattFom, s.antallBarn, '') FROM Stønad s " +
"WHERE (s.opphørtFom='000000' or CAST(substring(s.opphørtFom, 3, 4) as integer) >= :år) " +
"AND CAST(substring(s.virkningFom, 1, 4) as integer) >= (9999 - :år) " + //datoformatet er av typen "seq" derav 9999 - år
"AND s.status in :statusKoder " +
"AND s.antallBarn > 0")
fun findStønadByÅrAndStatusKoderr: Int, vararg statusKoder: String): List<TrunkertStønad>

@Query(
"""SELECT new no.nav.familie.ba.infotrygd.model.dl1.TrunkertStønad(s.id, s.personKey, s.fnr, s.sakNr, s.saksblokk, s.status, s.region, s.virkningFom, s.opphørtFom, s.iverksattFom, s.antallBarn, '')
FROM Stønad s
Expand Down Expand Up @@ -102,16 +95,6 @@ interface StønadRepository : JpaRepository<Stønad, Long> {
fun findLøpendeStønadByBarnFnr(barnFnr: List<FoedselsNr>): List<Stønad>



@Query("""
SELECT s FROM Stønad s
INNER JOIN Person p
ON (s.personKey = p.personKey and
s.region = p.region)
AND s.opphørtFom = '000000'
""")
fun findLøpendeStønader(page: Pageable): List<Stønad>

@Query("""
SELECT s FROM Stønad s
WHERE s.personKey = :#{#sak.personKey}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -30,18 +30,13 @@ import no.nav.familie.ba.infotrygd.rest.controller.PensjonController.YtelseTypeE
import no.nav.familie.ba.infotrygd.utils.DatoUtils
import no.nav.familie.ba.infotrygd.utils.DatoUtils.isSameOrAfter
import no.nav.familie.ba.infotrygd.utils.DatoUtils.isSameOrBefore
import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPeriode
import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPerioder
import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPerioderResponse
import no.nav.familie.eksterne.kontrakter.skatteetaten.SkatteetatenPerson
import org.slf4j.LoggerFactory
import org.springframework.cache.annotation.Cacheable
import org.springframework.core.env.Environment
import org.springframework.data.domain.Page
import org.springframework.data.domain.PageRequest
import org.springframework.stereotype.Service
import java.time.LocalDate
import java.time.LocalDateTime
import java.time.YearMonth
import java.time.format.DateTimeFormatter
import java.time.format.DateTimeParseException
Expand Down Expand Up @@ -222,58 +217,6 @@ class BarnetrygdService(
})
}

@Cacheable(cacheManager = "perioderCacheManager", value = ["skatt_perioder"], unless = "#result == null")
fun finnPerioderUtvidetBarnetrygdSkatt(
brukerFnr: String,
år: Int
): SkatteetatenPerioderResponse {
val bruker = FoedselsNr(brukerFnr)

val utvidetBarnetrygdStønader = stonadRepository.findStønadByÅrAndStatusKoderAndFnr(bruker, år, "00", "02", "03")
.map { it.tilTrunkertStønad() }
.filter { erUtvidetBarnetrygd(it) }
.filter { filtrerStønaderSomErFeilregistrert(it) }
.filter {
utbetalingRepository.hentUtbetalingerByStønad(it)
.any { it.tom() == null || it.tom()!!.year >= år }
}

val perioder = konverterTilDtoUtvidetBarnetrygdForSkatteetaten(bruker, utvidetBarnetrygdStønader, år)

return SkatteetatenPerioderResponse(perioder)
}


@Cacheable(cacheManager = "personerCacheManager", value = ["skatt_personer"], unless = "#result == null")
fun finnPersonerUtvidetBarnetrygdSkattr: String): List<SkatteetatenPerson> {
val stønaderMedAktuelleKoder = stonadRepository.findStønadByÅrAndStatusKoder(år.toInt(), "00", "02", "03")
.filter { erUtvidetBarnetrygd(it) }
.filter { filtrerStønaderSomErFeilregistrert(it) }
.filter {
val sisteMåned = DatoUtils.stringDatoMMyyyyTilYearMonth(it.opphørtFom)?.minusMonths(1)
sisteMåned == null || sisteMåned.year >= år.toInt()
}
.filter {
utbetalingRepository.hentUtbetalingerByStønad(it).any { it.tom() == null || it.tom()!!.year >= år.toInt() }
}

val personer = mutableMapOf<String, YearMonth>()

stønaderMedAktuelleKoder.filter { it.fnr != null }
.forEach {
if (!personer.containsKey(it.fnr!!.asString)) {
personer[it.fnr.asString] = finnSisteVedtakPåPerson(it.personKey)
}
}

return personer.map {
SkatteetatenPerson(
ident = it.key,
sisteVedtakPaaIdent = it.value.atDay(1).atStartOfDay()
)
}
}

@Cacheable(cacheManager = "personerCacheManager", value = ["pensjon_personer"], unless = "#result == null")
fun finnPersonerBarnetrygdPensjonr: String): List<FoedselsNr> {
logger.info("henter stønader med aktuelle statuskoder år $år")
Expand All @@ -292,20 +235,6 @@ class BarnetrygdService(
return sisteMåned == null || sisteMåned.year >= år.toInt()
}

fun listUtvidetStønadstyperForPersonr: Int, fnr:String): List<String> {
val utvidetBarnetrygdStønader = stonadRepository.findStønadByÅrAndStatusKoderAndFnr(FoedselsNr(fnr), år, "00", "02", "03").map { it.tilTrunkertStønad() }
.filter { erUtvidetBarnetrygd(it) }
.filter { filtrerStønaderSomErFeilregistrert(it) }
.filter {
val sisteMåned = DatoUtils.stringDatoMMyyyyTilYearMonth(it.opphørtFom)?.minusMonths(1)
sisteMåned == null || sisteMåned.year >= år.toInt()
}
.filter {
utbetalingRepository.hentUtbetalingerByStønad(it).any { it.tom() == null || it.tom()!!.year >= år }
}
return utvidetBarnetrygdStønader.flatMap { hentUndervalg(it) }
}

fun finnUtvidetBarnetrygdBeløpNårStønadIkkeHarStatus0(utbetaling: Utbetaling): Double {
return if (utbetaling.fom()!!.isAfter(YearMonth.of(2019, 2))) UTVIDET_BARNETRYGD_NÅVÆRENDE_SATS.toDouble()
else UTVIDET_BARNETRYGD_ELDRE_SATS.toDouble()
Expand Down Expand Up @@ -412,57 +341,6 @@ class BarnetrygdService(
}
}


private fun konverterTilDtoUtvidetBarnetrygdForSkatteetaten(
brukerFnr: FoedselsNr, utvidetBarnetrygdStønader: List<TrunkertStønad>, år: Int
): List<SkatteetatenPerioder> {
if (utvidetBarnetrygdStønader.isEmpty()) {
return emptyList()
}

var sisteVedtakPaaIdent: LocalDateTime? = null

val allePerioder = mutableListOf<SkatteetatenPeriode>()

utvidetBarnetrygdStønader.forEach {
if (sisteVedtakPaaIdent == null) {
sisteVedtakPaaIdent = finnSisteVedtakPåPerson(it.personKey).atDay(1)
.atStartOfDay() //skatt bruker siste vedtak på en person for å sjekke om de har lest den før. Hvis dato opprettes så leser de den på nytt
}
val fraMåned = DatoUtils.seqDatoTilYearMonth(it.virkningFom)!!
val tomMåned = DatoUtils.stringDatoMMyyyyTilYearMonth(it.opphørtFom)
allePerioder.add(
SkatteetatenPeriode(
fraMaaned = fraMåned.toString(),
tomMaaned = tomMåned?.minusMonths(1)?.toString(), //Leverer siste dato på stønaden eller null hvis løpenden
delingsprosent = delingsprosent(it, år)
)
)
}

//Slå sammen perioder basert på delingsprosent
val sammenslåttePerioderDelingsprosent =
allePerioder.groupBy { it.delingsprosent }.values
.flatMap(::slåSammenSkatteetatenPeriode).toMutableList()

val sammenslåttePerioderFiltrert =
sammenslåttePerioderDelingsprosent.filter {// fjerner perioder som ikke er med i årets uttrekk, som kan komme med i sql uttrekket når opphørtFom er første måned i året
val sisteMåned = it.tomMaaned?.let { tom -> YearMonth.parse(tom) }
sisteMåned == null || sisteMåned.year >= år
}
return if (sammenslåttePerioderFiltrert.isNotEmpty()) {
listOf(
SkatteetatenPerioder(
ident = brukerFnr.asString,
perioder = sammenslåttePerioderFiltrert,
sisteVedtakPaaIdent = sisteVedtakPaaIdent!!
)
)
} else {
emptyList()
}
}

private fun konverterTilDtoForPensjon(
barnetrygdStønader: List<TrunkertStønad>,
fraDato: YearMonth
Expand Down Expand Up @@ -544,29 +422,6 @@ class BarnetrygdService(

private fun Barn.virkningFom() = DatoUtils.seqDatoTilYearMonth(virkningFom)!!

private fun delingsprosent(stønad: TrunkertStønad, år: Int): SkatteetatenPeriode.Delingsprosent {
val undervalg = hentUndervalg(stønad)
var delingsprosent = SkatteetatenPeriode.Delingsprosent.usikker
if (undervalg.any { it == "EF" || it == "EU" }) {
delingsprosent = SkatteetatenPeriode.Delingsprosent._0
} else if (undervalg.contains("MD")) {
if (stønad.antallBarn == 1) {
delingsprosent = SkatteetatenPeriode.Delingsprosent._50
} else if (stønad.antallBarn < 7) {
val sumUtbetaltBeløp = utbetalingRepository.hentUtbetalingerByStønad(stønad).sumOf { it.beløp }
val gyldigeBeløp = utledListeMedGyldigeUtbetalingsbeløp(stønad.antallBarn, år)

if (gyldigeBeløp.contains(sumUtbetaltBeløp.roundToInt())) {
delingsprosent = SkatteetatenPeriode.Delingsprosent._50
} else {
secureLogger.info("Delingsprosent usikker, ident ${stønad.fnr}, sumUtbetaltBeløp: $sumUtbetaltBeløp, gyldigeBeløp: $gyldigeBeløp" +
", antallBarn: ${stønad.antallBarn}, år: $år")
}
}
}
return delingsprosent
}

private fun ytelseProsent(stønad: TrunkertStønad, undervalg: String?, år: Int): YtelseProsent {
if (stønad.status.toInt() != 0 ) {
return YtelseProsent.FULL
Expand Down Expand Up @@ -715,19 +570,6 @@ class BarnetrygdService(
}
}

private fun slåSammenSkatteetatenPeriode(perioderAvEtGittDelingsprosent: List<SkatteetatenPeriode>): List<SkatteetatenPeriode> {
return perioderAvEtGittDelingsprosent.sortedBy { it.fraMaaned }
.fold(mutableListOf()) { sammenslåttePerioder, nesteUtbetaling ->
val nesteUtbetalingFraMåned = YearMonth.parse(nesteUtbetaling.fraMaaned)
val forrigeUtbetalingTomMåned = sammenslåttePerioder.lastOrNull()?.tomMaaned?.let { YearMonth.parse(it) }

if (forrigeUtbetalingTomMåned?.isSameOrAfter(nesteUtbetalingFraMåned.minusMonths(1)) == true) {
val nySammenslåing = sammenslåttePerioder.removeLast().copy(tomMaaned = nesteUtbetaling.tomMaaned)
sammenslåttePerioder.apply { add(nySammenslåing) }
} else sammenslåttePerioder.apply { add(nesteUtbetaling) }
}
}

private fun hentUtvidetBarnetrygdUndervalgFraDb2(
stønad: TrunkertStønad
) = stønad.fnr?.let {
Expand Down
Loading

0 comments on commit fcd058c

Please sign in to comment.