Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.0.3 #31

Merged
merged 15 commits into from
May 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@
<modelVersion>4.0.0</modelVersion>
<groupId>no.nav.pensjon.regler</groupId>
<artifactId>pensjon-regler-api</artifactId>
<version>1.0.2</version>
<version>1.0.3</version>
<packaging>jar</packaging>
<name>NAV :: Pensjon-Regler API</name>

<properties>
<java.jdk.version>17</java.jdk.version>
<kotlin.version>1.9.0</kotlin.version>
<!-- Config properties -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.release>17</maven.compiler.release>
<kotlin.code.style>official</kotlin.code.style>
<jackson.version>2.17.0</jackson.version>
</properties>

<dependencies>
Expand All @@ -40,7 +40,18 @@
<version>${kotlin.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
</dependencies>

<build>
<sourceDirectory>src/main/kotlin</sourceDirectory>
<testSourceDirectory>src/test/kotlin</testSourceDirectory>
Expand Down
10 changes: 0 additions & 10 deletions src/main/kotlin/no/nav/pensjon/regler/domain/IBeregning.kt

This file was deleted.

10 changes: 10 additions & 0 deletions src/main/kotlin/no/nav/pensjon/regler/domain/Omsorgsopptjening.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
package no.nav.pensjon.regler.domain

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import no.nav.pensjon.regler.domain.beregning.Poengtall
import no.nav.pensjon.regler.domain.beregning2011.OpptjeningUT

@JsonSubTypes(
JsonSubTypes.Type(value = Poengtall::class),
JsonSubTypes.Type(value = OpptjeningUT::class)
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
interface Omsorgsopptjening {
/**
* Gitt år for opptjeningen
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package no.nav.pensjon.regler.domain.beregning

import no.nav.pensjon.regler.domain.IBeregning
import no.nav.pensjon.regler.domain.Merknad
import no.nav.pensjon.regler.domain.PenPerson
import no.nav.pensjon.regler.domain.Trygdetid
Expand All @@ -16,7 +15,7 @@ import java.util.*
/**
* Beregning er resultatet fra en beregning i pensjon-regler.
*/
class Beregning : IBeregning, Serializable {
class Beregning : Serializable {

/**
* Representerer personen beregning gjelder for.
Expand Down Expand Up @@ -179,9 +178,9 @@ class Beregning : IBeregning, Serializable {
var trygdetid: Trygdetid? = null

/**
* Liste av beregninger.Kan inneholde alternative beregninger gjort ved lønnsomhetsberegninger.Vinneren ligger da i hovedobjektet mens taperen(e) ligger i denne listen.
* Liste av beregninger. Kan inneholde alternative beregninger gjort ved lønnsomhetsberegninger.Vinneren ligger da i hovedobjektet mens taperen(e) ligger i denne listen.
*/
override var delberegningsListe: List<BeregningRelasjon> = mutableListOf()
var delberegningsListe: List<BeregningRelasjon> = mutableListOf()

/**
* Angir type beregning: BER, HJELPEBER, SAM_BER, VUR_BER.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package no.nav.pensjon.regler.domain.beregning

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import no.nav.pensjon.regler.domain.beregning2011.BasisGrunnpensjon
import no.nav.pensjon.regler.domain.kode.FormelKodeCti
import no.nav.pensjon.regler.domain.kode.GPSatsTypeCti
import no.nav.pensjon.regler.domain.kode.YtelsekomponentTypeCti
Expand All @@ -8,6 +11,10 @@ import no.nav.pensjon.regler.domain.trygdetid.AnvendtTrygdetid
/**
* Grunnpensjon
*/
@JsonSubTypes(
JsonSubTypes.Type(value = BasisGrunnpensjon::class)
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
open class Grunnpensjon : Ytelseskomponent {
/**
* Prosentsatsen.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
package no.nav.pensjon.regler.domain.beregning

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import no.nav.pensjon.regler.domain.beregning2011.BasisTilleggspensjon
import no.nav.pensjon.regler.domain.kode.FormelKodeCti
import no.nav.pensjon.regler.domain.kode.YtelsekomponentTypeCti
import no.nav.pensjon.regler.domain.util.formula.Formel
import no.nav.pensjon.regler.domain.util.formula.IFormelProvider

/*
* Tilleggspensjon
*/
@JsonSubTypes(
JsonSubTypes.Type(value = BasisTilleggspensjon::class)
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
open class Tilleggspensjon : Ytelseskomponent, IFormelProvider {
/**
* Det ordinåre sluttpoengtallet.
Expand Down Expand Up @@ -39,14 +43,12 @@ open class Tilleggspensjon : Ytelseskomponent, IFormelProvider {
*/
override var formelMap: HashMap<String, Formel> = HashMap()

override val formelPrefix: String
get() = ytelsekomponentType.kode!!

override var ytelsekomponentType: YtelsekomponentTypeCti = YtelsekomponentTypeCti("TP")

constructor() {
formelKode = FormelKodeCti("TPx")
}

constructor(tilleggspensjon: Tilleggspensjon) : super(tilleggspensjon) {
if (tilleggspensjon.spt != null) {
spt = Sluttpoengtall(tilleggspensjon.spt!!)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package no.nav.pensjon.regler.domain.beregning

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import no.nav.pensjon.regler.domain.Merknad
import no.nav.pensjon.regler.domain.beregning2011.ReguleringsInformasjon
import no.nav.pensjon.regler.domain.beregning.penobjekter.*
import no.nav.pensjon.regler.domain.beregning2011.*
import no.nav.pensjon.regler.domain.kode.FormelKodeCti
import no.nav.pensjon.regler.domain.kode.SakTypeCti
import no.nav.pensjon.regler.domain.kode.YtelsekomponentTypeCti
Expand All @@ -11,6 +14,46 @@ import java.io.Serializable
* Superklasse for alle ytelser, Grunnpensjon, Sertillegg, AfpTillegg osv. For
* alle ytelser gjelder at brutto - netto = fradrag.
*/
@JsonSubTypes(
JsonSubTypes.Type(value = AfpKompensasjonstillegg::class),
JsonSubTypes.Type(value = AfpKronetillegg::class),
JsonSubTypes.Type(value = AfpLivsvarig::class),
JsonSubTypes.Type(value = AfpTillegg::class),
JsonSubTypes.Type(value = BeregningYtelseskomponent::class),
JsonSubTypes.Type(value = Ektefelletillegg::class),
JsonSubTypes.Type(value = EktefelletilleggUT::class),
JsonSubTypes.Type(value = Familietillegg::class),
JsonSubTypes.Type(value = FasteUtgifterTillegg::class),
JsonSubTypes.Type(value = FasteUtgifterTilleggUT::class),
JsonSubTypes.Type(value = Garantipensjon::class),
JsonSubTypes.Type(value = Garantitillegg::class),
JsonSubTypes.Type(value = Garantitillegg_Art_27::class),
JsonSubTypes.Type(value = Garantitillegg_Art_27_UT::class),
JsonSubTypes.Type(value = Garantitillegg_Art_50::class),
JsonSubTypes.Type(value = Gjenlevendetillegg::class),
JsonSubTypes.Type(value = GjenlevendetilleggAP::class),
JsonSubTypes.Type(value = GjenlevendetilleggAPKap19::class),
JsonSubTypes.Type(value = Grunnpensjon::class),
JsonSubTypes.Type(value = Hjelpeloshetsbidrag::class),
JsonSubTypes.Type(value = Inntektspensjon::class),
JsonSubTypes.Type(value = KrigOgGammelYrkesskade::class),
JsonSubTypes.Type(value = Mendel::class),
JsonSubTypes.Type(value = MinstenivatilleggIndividuelt::class),
JsonSubTypes.Type(value = MinstenivatilleggPensjonistpar::class),
JsonSubTypes.Type(value = Paragraf_8_5_1_tillegg::class),
JsonSubTypes.Type(value = Pensjonstillegg::class),
JsonSubTypes.Type(value = Sertillegg::class),
JsonSubTypes.Type(value = Skjermingstillegg::class),
JsonSubTypes.Type(value = TemporarYtelseskomponent::class),
JsonSubTypes.Type(value = Tilleggspensjon::class),
JsonSubTypes.Type(value = TilleggTilHjelpIHuset::class),
JsonSubTypes.Type(value = UforetilleggTilAlderspensjon::class),
JsonSubTypes.Type(value = UforetrygdOrdiner::class),
JsonSubTypes.Type(value = Ventetillegg::class),

JsonSubTypes.Type(value = AbstraktBarnetillegg::class)
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
abstract class Ytelseskomponent : Serializable {
/**
* Brutto beløp.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
package no.nav.pensjon.regler.domain.beregning.penobjekter

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import no.nav.pensjon.regler.domain.beregning.Beregning
import no.nav.pensjon.regler.domain.beregning.Ytelseskomponent

/**
* Created by N123422 on 06.11.2014.
*/
@JsonSubTypes(
JsonSubTypes.Type(value = MotregningYtelseskomponent::class),
JsonSubTypes.Type(value = SkattefriGrunnpensjon::class),
JsonSubTypes.Type(value = SkattefriUforetrygdOrdiner::class)
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
abstract class BeregningYtelseskomponent : Ytelseskomponent() {
//Benyttes i PEN domenemodell for MapKey in Beregning.
private var ytelseKomponentTypeName: String? = null
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
package no.nav.pensjon.regler.domain.beregning.penobjekter

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo

/**
* Created by N123422 on 06.11.2014.
*/
@JsonSubTypes(
JsonSubTypes.Type(value = ArbeidsavklaringspengerUT::class),
JsonSubTypes.Type(value = Arbeidsavklaringspenger::class),
JsonSubTypes.Type(value = Sykepenger::class),
JsonSubTypes.Type(value = SykepengerUT::class),
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
abstract class MotregningYtelseskomponent : BeregningYtelseskomponent() {
var dagsats = 0
var antallDager = 0
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,18 @@
package no.nav.pensjon.regler.domain.beregning2011

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import no.nav.pensjon.regler.domain.kode.InntektsavkortingTypeCti
import java.io.Serializable

/**
* Inneholder felles felt for avkorting av både UT og BT. Enkelte felt fra tidligere klasse Avkortningsinformasjon.
*/
@JsonSubTypes(
JsonSubTypes.Type(value = AvkortingsinformasjonBT::class),
JsonSubTypes.Type(value = AvkortingsinformasjonBT::class),
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
abstract class AbstraktAvkortingsinformasjon : Serializable {
/**
* Antall måneder før virk.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
package no.nav.pensjon.regler.domain.beregning2011

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import no.nav.pensjon.regler.domain.beregning.BarnetilleggFellesbarn
import no.nav.pensjon.regler.domain.beregning.BarnetilleggSerkullsbarn
import no.nav.pensjon.regler.domain.beregning.Ytelseskomponent
import no.nav.pensjon.regler.domain.kode.AvkortingsArsakCti
import java.io.Serializable

@JsonSubTypes(
JsonSubTypes.Type(value = BarnetilleggSerkullsbarn::class),
JsonSubTypes.Type(value = BarnetilleggFellesbarn::class),
JsonSubTypes.Type(value = AbstraktBarnetilleggUT::class),
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
abstract class AbstraktBarnetillegg : Ytelseskomponent, Serializable {
/**
* Antall barn i kullet.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
package no.nav.pensjon.regler.domain.beregning2011

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import java.io.Serializable

@JsonSubTypes(
JsonSubTypes.Type(value = BarnetilleggFellesbarnUT::class),
JsonSubTypes.Type(value = BarnetilleggSerkullsbarnUT::class),
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
abstract class AbstraktBarnetilleggUT : AbstraktBarnetillegg, Serializable, UforetrygdYtelseskomponent {
/**
* Detaljer rundt avkortning av netto barnetillegg.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
package no.nav.pensjon.regler.domain.beregning2011

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import no.nav.pensjon.regler.domain.trygdetid.Brok
import java.io.Serializable
import java.util.*

@JsonSubTypes(
JsonSubTypes.Type(value = TidligereBarnetilleggperiode::class),
JsonSubTypes.Type(value = FremtidigBarnetilleggperiode::class),
JsonSubTypes.Type(value = AvkortingsinformasjonBT::class)
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
abstract class AbstraktBarnetilleggperiode : Serializable {
/**
* Start for periode med et antall barn.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
package no.nav.pensjon.regler.domain.beregning2011

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import no.nav.pensjon.regler.domain.Merknad
import no.nav.pensjon.regler.domain.kode.BeregningArsakCti
import no.nav.pensjon.regler.domain.kode.BorMedTypeCti
import no.nav.pensjon.regler.domain.kode.SivilstandTypeCti
import java.io.Serializable
import java.util.*

@JsonSubTypes(
JsonSubTypes.Type(value = BeregningsresultatUforetrygd::class),
JsonSubTypes.Type(value = BeregningsResultatAlderspensjon2016::class),
JsonSubTypes.Type(value = BeregningsResultatAlderspensjon2025::class),
JsonSubTypes.Type(value = BeregningsResultatAfpPrivat::class),
JsonSubTypes.Type(value = BeregningsResultatAlderspensjon2011::class)
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
abstract class AbstraktBeregningsResultat protected constructor() : Serializable {
var virkFom: Date? = null
var pensjonUnderUtbetaling: PensjonUnderUtbetaling? = null
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
package no.nav.pensjon.regler.domain.beregning2011

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import no.nav.pensjon.regler.domain.beregning.BarnetilleggFellesbarn
import no.nav.pensjon.regler.domain.beregning.BarnetilleggSerkullsbarn
import no.nav.pensjon.regler.domain.kode.FormelKodeCti
import java.io.Serializable

@JsonSubTypes(
JsonSubTypes.Type(value = BeregningsgrunnlagKonvertert::class),
JsonSubTypes.Type(value = BeregningsgrunnlagOrdiner::class),
JsonSubTypes.Type(value = BeregningsgrunnlagYrkesskade::class),
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
abstract class AbstraktBeregningsgrunnlag protected constructor() : Serializable {
var formelKode: FormelKodeCti? = null
var arsbelop = 0
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
package no.nav.pensjon.regler.domain.beregning2011

import com.fasterxml.jackson.annotation.JsonSubTypes
import com.fasterxml.jackson.annotation.JsonTypeInfo
import no.nav.pensjon.regler.domain.beregning.Ytelseskomponent
import no.nav.pensjon.regler.domain.kode.FormelKodeCti
import no.nav.pensjon.regler.domain.kode.YtelsekomponentTypeCti
import no.nav.pensjon.regler.domain.vedtak.VilkarsprovInformasjon2011
import no.nav.pensjon.regler.domain.vedtak.VilkarsprovInformasjon2016
import no.nav.pensjon.regler.domain.vedtak.VilkarsprovInformasjon2025

@JsonSubTypes(
JsonSubTypes.Type(value = FremskrevetAfpLivsvarig::class)
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
open class AfpLivsvarig : Ytelseskomponent {
var justeringsbelop = 0
var afpProsentgrad = 0.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import no.nav.pensjon.regler.domain.beregning.Ytelseskomponent
import java.io.Serializable
import java.util.*

class BeregnetUtbetalingsperiode : Serializable {
class BeregnetUtbetalingsperiode() : Serializable {
/**
* Periodens startdato.
*/
Expand Down
Loading
Loading