Skip to content

Commit dfb2d5e

Browse files
authored
Merge pull request #1242 from navikt/debug/sprak-sendt-med-i-feltmap
Fikset en språkbug der ja og nei ikke ble oversatt
2 parents 9e699a1 + a8bec17 commit dfb2d5e

File tree

3 files changed

+84
-47
lines changed

3 files changed

+84
-47
lines changed

src/main/kotlin/no/nav/familie/ef/mottak/service/FeltformatererPdfKvittering.kt

+33-13
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ object FeltformatererPdfKvittering {
1717
/**
1818
* Håndterer formatering utover vanlig toString for endenodene
1919
*/
20-
fun genereltFormatMapperMapEndenode(entitet: Søknadsfelt<*>): VerdilisteElement? {
20+
fun genereltFormatMapperMapEndenode(
21+
entitet: Søknadsfelt<*>,
22+
språk: String,
23+
): VerdilisteElement? {
2124
// skal ekskluderes
2225
val skalEkskluderes =
2326
((entitet.label == "Jeg har sendt inn denne dokumentasjonen til Nav tidligere" || entitet.label == "I have already submitted this documentation to Nav in the past") && entitet.verdi.toString() == "false") ||
@@ -26,31 +29,36 @@ object FeltformatererPdfKvittering {
2629
if (skalEkskluderes) {
2730
return null
2831
}
29-
return mapTilVerdiListeElement(entitet)
32+
return mapTilVerdiListeElement(entitet, språk)
3033
}
3134

3235
fun mapVedlegg(vedleggTitler: List<String>): VerdilisteElement = VerdilisteElement("Vedlegg", verdi = vedleggTitler.joinToString("\n\n"))
3336

34-
private fun mapTilVerdiListeElement(entitet: Søknadsfelt<*>) =
35-
VerdilisteElement(
36-
entitet.label,
37-
verdi = mapVerdi(entitet.verdi!!),
38-
alternativer = entitet.alternativer?.joinToString(" / "),
39-
)
40-
41-
private fun mapVerdi(verdi: Any): String =
37+
private fun mapTilVerdiListeElement(
38+
entitet: Søknadsfelt<*>,
39+
språk: String,
40+
) = VerdilisteElement(
41+
entitet.label,
42+
verdi = mapVerdi(entitet.verdi!!, språk),
43+
alternativer = entitet.alternativer?.joinToString(" / "),
44+
)
45+
46+
private fun mapVerdi(
47+
verdi: Any,
48+
språk: String,
49+
): String =
4250
when (verdi) {
4351
is Month ->
4452
tilUtskriftsformat(verdi)
4553

4654
is Boolean ->
47-
tilUtskriftsformat(verdi)
55+
tilUtskriftsformat(verdi, språk)
4856

4957
is Double ->
5058
tilUtskriftsformat(verdi)
5159

5260
is List<*> ->
53-
verdi.joinToString("\n\n") { mapVerdi(it!!) }
61+
verdi.joinToString("\n\n") { mapVerdi(it!!, språk) }
5462

5563
is Fødselsnummer ->
5664
verdi.verdi
@@ -74,7 +82,19 @@ object FeltformatererPdfKvittering {
7482
verdi.toString()
7583
}
7684

77-
private fun tilUtskriftsformat(verdi: Boolean) = if (verdi) "Ja" else "Nei"
85+
private fun tilUtskriftsformat(
86+
verdi: Boolean,
87+
språk: String,
88+
): String =
89+
if (språk == "en") {
90+
englishResponse(verdi)
91+
} else {
92+
norwegianResponse(verdi)
93+
}
94+
95+
private fun englishResponse(verdi: Boolean) = if (verdi) "Yes" else "No"
96+
97+
private fun norwegianResponse(verdi: Boolean) = if (verdi) "Ja" else "Nei"
7898

7999
private fun tilUtskriftsformat(verdi: Double) = String.format("%.2f", verdi).replace(".", ",")
80100

src/main/kotlin/no/nav/familie/ef/mottak/service/SøknadTilFeltMap.kt

+34-21
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,10 @@ object SøknadTilFeltMap {
5050
knad: SøknadOvergangsstønad,
5151
vedleggTitler: List<String>,
5252
): FeltMap {
53-
val finnFelter = finnFelter(søknad)
54-
val vedlegg = mapTilVedlegg(vedleggTitler)
5553
val språk = søknad.innsendingsdetaljer.verdi.språk ?: "nb"
54+
val finnFelter = finnFelter(søknad, språk)
55+
val vedlegg = mapTilVedlegg(vedleggTitler)
56+
5657
return FeltMap(
5758
"Søknad om overgangsstønad",
5859
finnFelter + vedlegg,
@@ -65,9 +66,10 @@ object SøknadTilFeltMap {
6566
knad: SøknadBarnetilsyn,
6667
vedleggTitler: List<String>,
6768
): FeltMap {
68-
val finnFelter = finnFelter(søknad)
69-
val vedlegg = mapTilVedlegg(vedleggTitler)
7069
val språk = søknad.innsendingsdetaljer.verdi.språk ?: "nb"
70+
val finnFelter = finnFelter(søknad, språk)
71+
val vedlegg = mapTilVedlegg(vedleggTitler)
72+
7173
return FeltMap(
7274
"Søknad om stønad til barnetilsyn",
7375
finnFelter + vedlegg,
@@ -83,9 +85,10 @@ object SøknadTilFeltMap {
8385
knad: SøknadSkolepenger,
8486
vedleggTitler: List<String>,
8587
): FeltMap {
86-
val finnFelter = finnFelter(søknad)
87-
val vedlegg = mapTilVedlegg(vedleggTitler)
8888
val språk = søknad.innsendingsdetaljer.verdi.språk ?: "nb"
89+
val finnFelter = finnFelter(søknad, språk)
90+
val vedlegg = mapTilVedlegg(vedleggTitler)
91+
8992
return FeltMap(
9093
"Søknad om stønad til skolepenger",
9194
finnFelter + vedlegg,
@@ -95,8 +98,9 @@ object SøknadTilFeltMap {
9598
}
9699

97100
fun mapSkjemafelter(skjema: SkjemaForArbeidssøker): FeltMap {
98-
val finnFelter = finnFelter(skjema)
99101
val språk = skjema.innsendingsdetaljer.verdi.språk ?: "nb"
102+
val finnFelter = finnFelter(skjema, språk)
103+
100104
return FeltMap(
101105
"Skjema for arbeidssøker",
102106
finnFelter,
@@ -126,12 +130,15 @@ object SøknadTilFeltMap {
126130
return FeltMap("Ettersending", verdiliste = listOf(infoMap, vedleggMap))
127131
}
128132

129-
private fun finnFelter(entitet: Any): List<VerdilisteElement> {
133+
private fun finnFelter(
134+
entitet: Any,
135+
språk: String,
136+
): List<VerdilisteElement> {
130137
// Det går ikke å hente elementene i en liste med reflection, så vi traverserer den som vanlig.
131138
if (entitet is List<Any?>) {
132139
return entitet
133140
.filterNotNull()
134-
.map { finnFelter(it) }
141+
.map { finnFelter(it, språk) }
135142
.flatten()
136143
}
137144
val parametere = konstruktørparametere(entitet)
@@ -142,17 +149,17 @@ object SøknadTilFeltMap {
142149
.map { finnSøknadsfelt(entitet, it) }
143150
.filter { it.visibility == KVisibility.PUBLIC }
144151
.mapNotNull { getFeltverdi(it, entitet) }
145-
.map { finnFelter(it) } // Kall rekursivt videre
152+
.map { finnFelter(it, språk) } // Kall rekursivt videre
146153
.flatten()
147154
.toList()
148155

149156
if (entitet is Søknadsfelt<*>) {
150157
if (entitet.verdi!! is Dokumentasjon) {
151158
@Suppress("UNCHECKED_CAST")
152-
return mapDokumentasjon(entitet as Søknadsfelt<Dokumentasjon>)
159+
return mapDokumentasjon(entitet as Søknadsfelt<Dokumentasjon>, språk)
153160
}
154161
if (entitet.verdi!!::class in endNodes) {
155-
return FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(entitet)?.let { listOf(it) }
162+
return FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(entitet, språk)?.let { listOf(it) }
156163
?: emptyList()
157164
}
158165
if (entitet.alternativer != null) {
@@ -162,7 +169,7 @@ object SøknadTilFeltMap {
162169
val verdiliste = entitet.verdi as List<*>
163170

164171
if (verdiliste.firstOrNull() is String) {
165-
return FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(entitet)?.let { listOf(it) }
172+
return FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(entitet, språk)?.let { listOf(it) }
166173
?: emptyList()
167174
}
168175
val mappedElementer =
@@ -182,9 +189,9 @@ object SøknadTilFeltMap {
182189
mappedElementer
183190
.map {
184191
when (it) {
185-
is SøknadsfeltType.BarnElement -> mapBarnElementer(entitet.label, verdiliste.indexOf(it.barn), it.barn)
186-
is SøknadsfeltType.UtenlandsoppholdElement -> mapUtenlandsoppholdElementer(entitet.label, verdiliste.indexOf(it.utenlandsopphold), it.utenlandsopphold)
187-
is SøknadsfeltType.ArbeidsforholdElement -> mapArbeidsforholdElementer(entitet.label, verdiliste.indexOf(it.arbeidsforhold), it.arbeidsforhold)
192+
is SøknadsfeltType.BarnElement -> mapBarnElementer(entitet.label, verdiliste.indexOf(it.barn), it.barn, språk)
193+
is SøknadsfeltType.UtenlandsoppholdElement -> mapUtenlandsoppholdElementer(entitet.label, verdiliste.indexOf(it.utenlandsopphold), it.utenlandsopphold, språk)
194+
is SøknadsfeltType.ArbeidsforholdElement -> mapArbeidsforholdElementer(entitet.label, verdiliste.indexOf(it.arbeidsforhold), it.arbeidsforhold, språk)
188195
}
189196
}.filterNotNull(),
190197
visningsVariant = VisningsVariant.TABELL.toString(),
@@ -202,9 +209,12 @@ object SøknadTilFeltMap {
202209
return list
203210
}
204211

205-
private fun mapDokumentasjon(entitet: Søknadsfelt<Dokumentasjon>): List<VerdilisteElement> {
212+
private fun mapDokumentasjon(
213+
entitet: Søknadsfelt<Dokumentasjon>,
214+
språk: String,
215+
): List<VerdilisteElement> {
206216
val list =
207-
listOf(FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(entitet.verdi.harSendtInnTidligere))
217+
listOf(FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(entitet.verdi.harSendtInnTidligere, språk))
208218
if (list.size == 1 && list.first()?.verdiliste.isNullOrEmpty() && list.first()?.verdi.isNullOrEmpty()) {
209219
return emptyList()
210220
}
@@ -215,12 +225,13 @@ object SøknadTilFeltMap {
215225
elementLabel: String,
216226
indeks: Int,
217227
barn: Barn,
228+
språk: String,
218229
): VerdilisteElement? {
219230
val element = if (elementLabel.contains("Barn")) "Barn" else "Child"
220231
val tabellCaption = "$element ${indeks + 1}"
221232
val barnUtenFødselsdato = fjernFødselsdatoHvisFødt(barn)
222233
val verdilisteElementListe =
223-
finnFelter(barnUtenFødselsdato).filterNot { it.verdi == "" && it.verdiliste.isNullOrEmpty() }
234+
finnFelter(barnUtenFødselsdato, språk).filterNot { it.verdi == "" && it.verdiliste.isNullOrEmpty() }
224235
return verdilisteElementListe.takeIf { it.isNotEmpty() }?.let {
225236
VerdilisteElement(label = tabellCaption, verdiliste = it)
226237
}
@@ -237,10 +248,11 @@ object SøknadTilFeltMap {
237248
elementLabel: String,
238249
indeks: Int,
239250
arbeidsforhold: Arbeidsgiver,
251+
språk: String,
240252
): VerdilisteElement? {
241253
val element = if (elementLabel == "Om arbeidsforholdet ditt") "Arbeidsforhold" else "Employment"
242254
val tabellCaption = "$element ${indeks + 1}"
243-
val verdilisteElementListe = finnFelter(arbeidsforhold)
255+
val verdilisteElementListe = finnFelter(arbeidsforhold, språk)
244256
return verdilisteElementListe.takeIf { it.isNotEmpty() }?.let {
245257
VerdilisteElement(label = tabellCaption, verdiliste = it)
246258
}
@@ -250,9 +262,10 @@ object SøknadTilFeltMap {
250262
elementLabel: String,
251263
indeks: Int,
252264
utenlandsopphold: Utenlandsopphold,
265+
språk: String,
253266
): VerdilisteElement? {
254267
val tabellCaption = "$elementLabel ${indeks + 1}"
255-
val verdilisteElementListe = finnFelter(utenlandsopphold).filterNot { it.verdi == "" && it.verdiliste.isNullOrEmpty() }
268+
val verdilisteElementListe = finnFelter(utenlandsopphold, språk).filterNot { it.verdi == "" && it.verdiliste.isNullOrEmpty() }
256269
return verdilisteElementListe.takeIf { it.isNotEmpty() }?.let {
257270
VerdilisteElement(label = tabellCaption, verdiliste = it)
258271
}

src/test/kotlin/no/nav/familie/ef/mottak/service/FeltformatererPdfKvitteringTest.kt

+17-13
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ internal class FeltformatererPdfKvitteringTest {
1919
fun `mapEndenodeTilUtskriftMap formaterer Month korrekt`() {
2020
val testverdi = Søknadsfelt("label", Month.DECEMBER)
2121

22-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
22+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
2323

2424
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "desember"))
2525
}
@@ -28,7 +28,7 @@ internal class FeltformatererPdfKvitteringTest {
2828
fun `mapEndenodeTilUtskriftMap formaterer Boolean korrekt`() {
2929
val testverdi = Søknadsfelt("label", true)
3030

31-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
31+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
3232

3333
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Ja"))
3434
}
@@ -37,7 +37,7 @@ internal class FeltformatererPdfKvitteringTest {
3737
fun `mapEndenodeTilUtskriftMap formaterer liste med Boolean korrekt`() {
3838
val testverdi = Søknadsfelt("label", listOf(true, false))
3939

40-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
40+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
4141

4242
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Ja\n\nNei"))
4343
}
@@ -46,7 +46,7 @@ internal class FeltformatererPdfKvitteringTest {
4646
fun `mapEndenodeTilUtskriftMap formaterer List korrekt`() {
4747
val testverdi = Søknadsfelt<List<*>>("label", listOf("Lille", "Grimme", "Arne", "Trenger", "Ris"))
4848

49-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
49+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
5050

5151
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Lille\n\nGrimme\n\nArne\n\nTrenger\n\nRis"))
5252
}
@@ -56,7 +56,7 @@ internal class FeltformatererPdfKvitteringTest {
5656
val fnr = FnrGenerator.generer()
5757
val testverdi = Søknadsfelt("label", Fødselsnummer(fnr))
5858

59-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
59+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
6060

6161
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = fnr))
6262
}
@@ -65,7 +65,7 @@ internal class FeltformatererPdfKvitteringTest {
6565
fun `mapEndenodeTilUtskriftMap formaterer Adresse korrekt`() {
6666
val testverdi = Søknadsfelt("label", Adresse("Husebyskogen 15", "1572", "Fet", "Norge"))
6767

68-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
68+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
6969

7070
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Husebyskogen 15\n1572 Fet\nNorge"))
7171
}
@@ -74,7 +74,7 @@ internal class FeltformatererPdfKvitteringTest {
7474
fun `mapEndenodeTilUtskriftMap håndterer adresse med tomme felter korrekt`() {
7575
val testverdi = Søknadsfelt("label", Adresse("", "", "", ""))
7676

77-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
77+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
7878

7979
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Ingen registrert adresse"))
8080
}
@@ -83,7 +83,7 @@ internal class FeltformatererPdfKvitteringTest {
8383
fun `mapEndenodeTilUtskriftMap håndterer adresse med delvis utfylte felter korrekt`() {
8484
val testverdi = Søknadsfelt("label", Adresse("Husebyskogen 15", "", "Fet", ""))
8585

86-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
86+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
8787

8888
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Husebyskogen 15\n Fet"))
8989
}
@@ -92,7 +92,7 @@ internal class FeltformatererPdfKvitteringTest {
9292
fun `mapEndenodeTilUtskriftMap håndterer adresse med kun land`() {
9393
val testverdi = Søknadsfelt("label", Adresse("", "", "", "Norge"))
9494

95-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
95+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
9696

9797
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Norge"))
9898
}
@@ -101,7 +101,7 @@ internal class FeltformatererPdfKvitteringTest {
101101
fun `mapEndenodeTilUtskriftMap formaterer LocalDate korrekt`() {
102102
val testverdi = Søknadsfelt<LocalDate>("label", LocalDate.of(2015, 12, 5))
103103

104-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
104+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
105105

106106
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "05.12.2015"))
107107
}
@@ -110,7 +110,7 @@ internal class FeltformatererPdfKvitteringTest {
110110
fun `mapEndenodeTilUtskriftMap formaterer LocalDateTime korrekt`() {
111111
val testverdi = Søknadsfelt<LocalDateTime>("label", LocalDateTime.of(2015, 12, 5, 14, 52, 48))
112112

113-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
113+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
114114

115115
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "05.12.2015 14:52:48"))
116116
}
@@ -119,7 +119,7 @@ internal class FeltformatererPdfKvitteringTest {
119119
fun `mapEndenodeTilUtskriftMap formaterer MånedÅrPeriode korrekt`() {
120120
val testverdi = Søknadsfelt("label", MånedÅrPeriode(Month.FEBRUARY, 2015, Month.JULY, 2018))
121121

122-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
122+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
123123

124124
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Fra februar 2015 til juli 2018"))
125125
}
@@ -128,8 +128,12 @@ internal class FeltformatererPdfKvitteringTest {
128128
fun `mapEndenodeTilUtskriftMap formaterer Datoperiode korrekt`() {
129129
val testverdi = Søknadsfelt("label", Datoperiode(LocalDate.of(2015, 2, 1), LocalDate.of(2018, 7, 14)))
130130

131-
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi)
131+
val resultat = FeltformatererPdfKvittering.genereltFormatMapperMapEndenode(testverdi, SPRÅK)
132132

133133
assertThat(resultat).isEqualTo(VerdilisteElement(label = "label", verdi = "Fra 01.02.2015 til 14.07.2018"))
134134
}
135+
136+
companion object {
137+
private const val SPRÅK = "nb"
138+
}
135139
}

0 commit comments

Comments
 (0)