@@ -131,7 +131,7 @@ internal class BoforholdBarnServiceV3 {
131
131
val offentligePerioderJustertMotAttenårsdag =
132
132
justerMotAttenårsdag(attenårFraDato, typeBehandling, komplettOffentligTidslinje)
133
133
val sammenslåtteBehandledeOgOffentligePerioder =
134
- slåSammenPrim ærOgSekundærperioder(behandledeOpplysninger, offentligePerioderJustertMotAttenårsdag)
134
+ slåSammenPrim ærOgSekundærperioder(behandledeOpplysninger, offentligePerioderJustertMotAttenårsdag, true )
135
135
136
136
// Slår sammen sammenhengende perioder med lik Bostatuskode
137
137
val sammenslåttListe = slåSammenPerioderOgJusterPeriodeTom (sammenslåtteBehandledeOgOffentligePerioder)
@@ -185,7 +185,7 @@ internal class BoforholdBarnServiceV3 {
185
185
return emptyList()
186
186
}
187
187
188
- return slåSammenPrim ærOgSekundærperioder(oppdaterteBehandledeOpplysninger, justerteOffentligePerioder)
188
+ return slåSammenPrim ærOgSekundærperioder(oppdaterteBehandledeOpplysninger, justerteOffentligePerioder, true )
189
189
}
190
190
191
191
// Det finnes både behandlede og endrede perioder
@@ -196,7 +196,7 @@ internal class BoforholdBarnServiceV3 {
196
196
val offentligePerioderJustertMotAttenårsdag = justerMotAttenårsdag(attenårFraDato, typeBehandling, komplettOffentligTidslinje)
197
197
198
198
val sammenslåtteBehandledeOgOffentligePerioder =
199
- slåSammenPrim ærOgSekundærperioder(oppdaterteBehandledeOpplysninger, offentligePerioderJustertMotAttenårsdag)
199
+ slåSammenPrim ærOgSekundærperioder(oppdaterteBehandledeOpplysninger, offentligePerioderJustertMotAttenårsdag, false )
200
200
201
201
return sammenslåtteBehandledeOgOffentligePerioder.map {
202
202
BoforholdResponseV2 (
@@ -447,6 +447,7 @@ internal class BoforholdBarnServiceV3 {
447
447
private fun sl åSammenPrim ærOgSekund ærperioder (
448
448
primærperioder : List <BoforholdResponseV2 >,
449
449
sekundærperioder : List <BoforholdResponseV2 >,
450
+ slåSammenPerioderMedLikBostatus : Boolean ,
450
451
): List <BoforholdResponseV2 > {
451
452
val resultatliste = mutableListOf<BoforholdResponseV2 >()
452
453
@@ -518,7 +519,8 @@ internal class BoforholdBarnServiceV3 {
518
519
}
519
520
}
520
521
521
- val justertSekundærperiode = justerSekundærperiode(sekundærperiode, sammenslåttListeOverlappendePerioder)
522
+ val justertSekundærperiode =
523
+ justerSekundærperiode(sekundærperiode, sammenslåttListeOverlappendePerioder, slåSammenPerioderMedLikBostatus )
522
524
if (justertSekundærperiode != null ) {
523
525
resultatliste.addAll(justertSekundærperiode)
524
526
}
@@ -534,6 +536,7 @@ internal class BoforholdBarnServiceV3 {
534
536
private fun justerSekund ærperiode (
535
537
sekundærperiode : BoforholdResponseV2 ,
536
538
overlappendePerioder : List <BoforholdResponseV2 >,
539
+ slåSammenPerioderMedLikBostatus : Boolean ,
537
540
): List <BoforholdResponseV2 >? {
538
541
var periodeFom: LocalDate ? = null
539
542
var periodeTom: LocalDate ? = null
@@ -569,8 +572,8 @@ internal class BoforholdBarnServiceV3 {
569
572
}
570
573
if (periodeTom != null &&
571
574
(
572
- overlappendePerioder[indeks].kilde != sekundærperiode.kilde ||
573
- overlappendePerioder[indeks].bostatus != sekundærperiode.bostatus
575
+ overlappendePerioder[indeks].bostatus != sekundærperiode.bostatus ||
576
+ slå SammenPerioderMedLikBostatus
574
577
)
575
578
) {
576
579
// Første primære periode starter etter sekundær periode. Den sekundære perioden skrives med justert tomdato. Senere i logikken
@@ -592,8 +595,8 @@ internal class BoforholdBarnServiceV3 {
592
595
if (indeks < overlappendePerioder.size - 1 ) {
593
596
if (overlappendePerioder[indeks + 1 ].periodeFom.isAfter(overlappendePerioder[indeks].periodeTom!! .plusDays(1 )) &&
594
597
(
595
- overlappendePerioder[indeks].kilde != sekundærperiode.kilde ||
596
- overlappendePerioder[indeks].bostatus != sekundærperiode.bostatus
598
+ overlappendePerioder[indeks].bostatus != sekundærperiode.bostatus ||
599
+ slå SammenPerioderMedLikBostatus
597
600
)
598
601
) {
599
602
// Det er en åpen tidsperiode mellom to primære perioder, og den sekundære perioden skal fylle denne tidsperioden
@@ -616,7 +619,12 @@ internal class BoforholdBarnServiceV3 {
616
619
}
617
620
} else {
618
621
// Siste sekundærperiode
619
- if (overlappendePerioder[indeks].periodeTom != null ) {
622
+ if (overlappendePerioder[indeks].periodeTom != null &&
623
+ (
624
+ overlappendePerioder[indeks].bostatus != sekundærperiode.bostatus ||
625
+ slåSammenPerioderMedLikBostatus
626
+ )
627
+ ) {
620
628
if (sekundærperiode.periodeTom == null || sekundærperiode.periodeTom.isAfter(overlappendePerioder[indeks].periodeTom)) {
621
629
justertSekundærPeriodeListe.add(
622
630
BoforholdResponseV2 (
@@ -707,7 +715,7 @@ internal class BoforholdBarnServiceV3 {
707
715
708
716
TypeEndring .NY -> {
709
717
if (nyBostatus == null ) {
710
- // Hvis det ikke finnes en ny bostatus så kan det ikke leges til ny periode
718
+ // Hvis det ikke finnes en ny bostatus så kan det ikke legges til ny periode
711
719
secureLogger.info {
712
720
" Periode som skal legges til må være angitt som nyBostatus i input. endreBostatus: " +
713
721
" ${boforholdRequest.endreBostatus} "
@@ -726,7 +734,7 @@ internal class BoforholdBarnServiceV3 {
726
734
)
727
735
// Justerer perioder mot 18årsdag
728
736
val nyBostatusJustertMotAttenårsdag = justerMotAttenårsdag(attenårFraDato, typeBehandling, endredePerioder)
729
- val sammenslåttListe = slåSammenPrim ærOgSekundærperioder(nyBostatusJustertMotAttenårsdag, behandledeOpplysninger)
737
+ val sammenslåttListe = slåSammenPrim ærOgSekundærperioder(nyBostatusJustertMotAttenårsdag, behandledeOpplysninger, true )
730
738
return slåSammenPerioderOgJusterPeriodeTom (sammenslåttListe)
731
739
}
732
740
@@ -801,7 +809,7 @@ internal class BoforholdBarnServiceV3 {
801
809
// Justerer perioder mot 18årsdag
802
810
val nyPeriodeJustertMotAttenårsdag = justerMotAttenårsdag(attenårFraDato, typeBehandling, nyPeriode)
803
811
// Gjør en sammenslåing av perioder med lik bostatuskode og justerer periodeTom
804
- val sammenslåttListe = slåSammenPrim ærOgSekundærperioder(nyPeriodeJustertMotAttenårsdag, endredePerioder)
812
+ val sammenslåttListe = slåSammenPrim ærOgSekundærperioder(nyPeriodeJustertMotAttenårsdag, endredePerioder, true )
805
813
return slåSammenPerioderOgJusterPeriodeTom (sammenslåttListe)
806
814
}
807
815
0 commit comments