Skip to content

Commit

Permalink
Rydd i A009Mapper
Browse files Browse the repository at this point in the history
  • Loading branch information
RuneLind committed Nov 8, 2024
1 parent e80d258 commit cddf000
Showing 1 changed file with 42 additions and 50 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,66 +13,58 @@ import no.nav.melosys.eessi.models.sed.nav.VedtakA009
import no.nav.melosys.eessi.service.sed.helpers.LandkodeMapper.mapTilLandkodeIso2

class A009Mapper : LovvalgSedMapper<MedlemskapA009> {
override fun getMedlemskap(sedData: SedDataDto): MedlemskapA009 {
val medlemskapA009 = MedlemskapA009()
medlemskapA009.vedtak = getVedtak(sedData)
medlemskapA009.andreland = getAndreland(sedData)
medlemskapA009.utsendingsland = getUtsendingsland(sedData)

return medlemskapA009
}
override fun getSedType() = SedType.A009

private fun getVedtak(sedDataDto: SedDataDto): VedtakA009 {
val vedtak = VedtakA009()
val lovvalgsperiode = sedDataDto.finnLovvalgsperiode()
val gjelderperiode = Periode()
override fun getMedlemskap(sedData: SedDataDto) = MedlemskapA009(
vedtak = getVedtak(sedData),
andreland = getAndreland(sedData),
utsendingsland = getUtsendingsland(sedData)
)

if (lovvalgsperiode.isPresent) {
vedtak.land = mapTilLandkodeIso2(lovvalgsperiode.get().lovvalgsland)
private fun getVedtak(sedDataDto: SedDataDto): VedtakA009 {
val lovvalgsperiode = sedDataDto.finnLovvalgsperiode().orElse(null)

val gjelderperiode = Periode(
//Vil alltid være fast periode
gjelderperiode.fastperiode = lagFastPeriodeFraLovvalgsPeriode(lovvalgsperiode.get())
fastperiode = lovvalgsperiode?.let { lagFastPeriodeFraLovvalgsPeriode(it) }
)

if (!erGyldigLovvalgbestemmelse(lovvalgsperiode.get().bestemmelse)) {
lovvalgsperiode?.let {
if (!erGyldigLovvalgbestemmelse(it.bestemmelse)) {
throw MappingException("Lovvalgsbestemmelse er ikke av artikkel 12!")
}
vedtak.artikkelforordning = lovvalgsperiode.get().bestemmelse!!.value
}

setVedtaksdata(vedtak, sedDataDto.vedtakDto)
vedtak.gjeldervarighetyrkesaktivitet = "nei"
vedtak.gjelderperiode = gjelderperiode
return vedtak
}


private fun lagFastPeriodeFraLovvalgsPeriode(lovvalgsperiode: Lovvalgsperiode): Fastperiode {
val fastperiode = Fastperiode()
fastperiode.startdato = formaterDato(lovvalgsperiode.fom!!)
fastperiode.sluttdato = formaterDato(lovvalgsperiode.tom!!)
return fastperiode
}

private fun erGyldigLovvalgbestemmelse(bestemmelse: Bestemmelse?): Boolean {
return bestemmelse == Bestemmelse.ART_12_1
|| bestemmelse == Bestemmelse.ART_12_2
}

private fun getUtsendingsland(sedData: SedDataDto): Utsendingsland {
val lovvalgsland = sedData.finnLovvalgslandDefaultNO()
val utsendingsland = Utsendingsland()
utsendingsland.arbeidsgiver = hentArbeidsgivereILand(sedData.arbeidsgivendeVirksomheter!!, lovvalgsland)
return utsendingsland
}

private fun getAndreland(sedData: SedDataDto): Utsendingsland {
val lovvalgsland = sedData.finnLovvalgslandDefaultNO()
val utsendingsland = Utsendingsland()
utsendingsland.arbeidsgiver = hentArbeidsgivereIkkeILand(sedData.arbeidsgivendeVirksomheter!!, lovvalgsland)
return utsendingsland
return VedtakA009(
land = lovvalgsperiode?.lovvalgsland?.let { mapTilLandkodeIso2(it) },
artikkelforordning = lovvalgsperiode?.bestemmelse?.value,
gjelderperiode = gjelderperiode,
gjeldervarighetyrkesaktivitet = "nei"
).also {
setVedtaksdata(it, sedDataDto.vedtakDto)
}
}


override fun getSedType() = SedType.A009

private fun lagFastPeriodeFraLovvalgsPeriode(lovvalgsperiode: Lovvalgsperiode) = Fastperiode(
startdato = formaterDato(lovvalgsperiode.fom ?: throw IllegalArgumentException("lovvalgsperiode.fom kan ikke være null")),
sluttdato = formaterDato(lovvalgsperiode.tom ?: throw IllegalArgumentException("lovvalgsperiode.fom kan ikke være null"))
)

private fun erGyldigLovvalgbestemmelse(bestemmelse: Bestemmelse?): Boolean =
bestemmelse in listOf(Bestemmelse.ART_12_1, Bestemmelse.ART_12_2)

private fun getUtsendingsland(sedData: SedDataDto) = Utsendingsland(
arbeidsgiver = hentArbeidsgivereILand(
sedData.arbeidsgivendeVirksomheter.orEmpty(),
landkode = sedData.finnLovvalgslandDefaultNO()
)
)

private fun getAndreland(sedData: SedDataDto) = Utsendingsland(
arbeidsgiver = hentArbeidsgivereIkkeILand(
sedData.arbeidsgivendeVirksomheter.orEmpty(),
landkode = sedData.finnLovvalgslandDefaultNO()
)
)
}

0 comments on commit cddf000

Please sign in to comment.