|
| 1 | +@file:Suppress("HttpUrlsUsage") |
| 2 | + |
| 3 | +package tilbakekreving.infrastructure.client |
| 4 | + |
| 5 | +import no.nav.su.se.bakover.common.ident.NavIdentBruker |
| 6 | +import tilbakekreving.domain.vurdering.PeriodevurderingMedKrav |
| 7 | +import tilbakekreving.domain.vurdering.VurderingerMedKrav |
| 8 | +import tilbakekreving.infrastructure.client.dto.AksjonsKode |
| 9 | +import tilbakekreving.infrastructure.client.dto.Skyld |
| 10 | +import tilbakekreving.infrastructure.client.dto.TilbakekrevingsHjemmel |
| 11 | +import tilbakekreving.infrastructure.client.dto.Tilbakekrevingsresultat |
| 12 | +import tilbakekreving.infrastructure.client.dto.TilbakekrevingsÅrsak |
| 13 | +import kotlin.math.max |
| 14 | + |
| 15 | +/** |
| 16 | + * Se: https://confluence.adeo.no/display/OKSY/Detaljer+om+de+enkelte+ID-koder |
| 17 | + * Se: https://github.com/navikt/tjenestespesifikasjoner/blob/master/tilbakekreving-v1-tjenestespesifikasjon/src/main/wsdl/no/nav/tilbakekreving/tilbakekreving-v1-tjenestespesifikasjon.wsdl |
| 18 | + */ |
| 19 | +internal fun buildTilbakekrevingSoapRequest( |
| 20 | + vurderingerMedKrav: VurderingerMedKrav, |
| 21 | + attestertAv: NavIdentBruker.Attestant, |
| 22 | +): String { |
| 23 | + // TODO jah: Vurder om vi skal legge til datoVedtakFagsystem istedenfor å få dagens dato. |
| 24 | + return """ |
| 25 | +<ns4:tilbakekrevingsvedtakRequest xmlns:ns2="urn:no:nav:tilbakekreving:typer:v1" |
| 26 | + xmlns:ns4="http://okonomi.nav.no/tilbakekrevingService/" |
| 27 | + xmlns:ns3="urn:no:nav:tilbakekreving:tilbakekrevingsvedtak:vedtak:v1"> |
| 28 | + <tilbakekrevingsvedtak> |
| 29 | + <ns3:kodeAksjon>${AksjonsKode.FATT_VEDTAK.nummer}</ns3:kodeAksjon> |
| 30 | + <ns3:vedtakId>${vurderingerMedKrav.eksternVedtakId}</ns3:vedtakId> |
| 31 | + <ns3:kodeHjemmel>${TilbakekrevingsHjemmel.T}</ns3:kodeHjemmel> |
| 32 | + <ns3:renterBeregnes>N</ns3:renterBeregnes> |
| 33 | + <ns3:enhetAnsvarlig>8020</ns3:enhetAnsvarlig> |
| 34 | + <ns3:kontrollfelt>${vurderingerMedKrav.eksternKontrollfelt}</ns3:kontrollfelt> |
| 35 | + <ns3:saksbehId>$attestertAv</ns3:saksbehId> |
| 36 | + ${ |
| 37 | + vurderingerMedKrav.perioder.joinToString(separator = "\n") { periode -> |
| 38 | + """ |
| 39 | + <ns3:tilbakekrevingsperiode> |
| 40 | + <ns3:periode> |
| 41 | + <ns2:fom>${periode.periode.fraOgMed}</ns2:fom> |
| 42 | + <ns2:tom>${periode.periode.tilOgMed}</ns2:tom> |
| 43 | + </ns3:periode> |
| 44 | + <ns3:renterBeregnes>N</ns3:renterBeregnes> |
| 45 | + <ns3:belopRenter>0</ns3:belopRenter> |
| 46 | + <ns3:tilbakekrevingsbelop> |
| 47 | + <ns3:kodeKlasse>SUUFORE</ns3:kodeKlasse> |
| 48 | + <ns3:belopOpprUtbet>${periode.bruttoTidligereUtbetalt}</ns3:belopOpprUtbet> |
| 49 | + <ns3:belopNy>${periode.bruttoNyUtbetaling}</ns3:belopNy> |
| 50 | + <ns3:belopTilbakekreves>${periode.bruttoSkalTilbakekreve}}</ns3:belopTilbakekreves> |
| 51 | + <ns3:belopUinnkrevd>${periode.bruttoSkalIkkeTilbakekreve}</ns3:belopUinnkrevd> |
| 52 | + <ns3:belopSkatt>${periode.skattSomGårTilReduksjon}</ns3:belopSkatt> |
| 53 | + <ns3:kodeResultat>${ |
| 54 | + when (periode) { |
| 55 | + is PeriodevurderingMedKrav.SkalIkkeTilbakekreve -> Tilbakekrevingsresultat.INGEN_TILBAKEKREV.toString() |
| 56 | + is PeriodevurderingMedKrav.SkalTilbakekreve -> Tilbakekrevingsresultat.FULL_TILBAKEKREV.toString() |
| 57 | + } |
| 58 | + }</ns3:kodeResultat> |
| 59 | + <ns3:kodeAarsak>${TilbakekrevingsÅrsak.ANNET}</ns3:kodeAarsak> |
| 60 | + <ns3:kodeSkyld>${ |
| 61 | + when (periode) { |
| 62 | + is PeriodevurderingMedKrav.SkalIkkeTilbakekreve -> Skyld.IKKE_FORDELT.toString() |
| 63 | + is PeriodevurderingMedKrav.SkalTilbakekreve -> Skyld.BRUKER.toString() |
| 64 | + } |
| 65 | + }</ns3:kodeSkyld> |
| 66 | + </ns3:tilbakekrevingsbelop> |
| 67 | + <ns3:tilbakekrevingsbelop> |
| 68 | + <ns3:kodeKlasse>KL_KODE_FEIL_INNT</ns3:kodeKlasse> |
| 69 | + <ns3:belopOpprUtbet>0</ns3:belopOpprUtbet> |
| 70 | + <ns3:belopNy>${max(periode.bruttoSkalTilbakekreve, periode.bruttoSkalIkkeTilbakekreve)}</ns3:belopNy> |
| 71 | + <ns3:belopTilbakekreves>0</ns3:belopTilbakekreves> |
| 72 | + <ns3:belopUinnkrevd>0</ns3:belopUinnkrevd> |
| 73 | + </ns3:tilbakekrevingsbelop> |
| 74 | + </ns3:tilbakekrevingsperiode>""" |
| 75 | + } |
| 76 | + } |
| 77 | + </tilbakekrevingsvedtak> |
| 78 | +</ns4:tilbakekrevingsvedtakRequest> |
| 79 | + """.trimIndent() |
| 80 | +} |
0 commit comments