Skip to content

Commit

Permalink
Merge pull request #2992 from Opetushallitus/tor-2173-korjaus-vuosilu…
Browse files Browse the repository at this point in the history
…okkavalidaatioon-3

TOR-2173: Korjaus vuosiluokkavalidaatioon
  • Loading branch information
ilkkahanninen authored Jun 10, 2024
2 parents 553d538 + f1de46c commit b9142f3
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions src/main/scala/fi/oph/koski/validation/DuplikaattiValidation.scala
Original file line number Diff line number Diff line change
Expand Up @@ -109,23 +109,23 @@ object DuplikaattiValidation extends Logging {
def getSuoritetutLuokkaAsteet(oo: Opiskeluoikeus): List[String] = getVuosiluokat(oo).filterNot(_.kesken).map(getLuokkaAste)
def getKeskeneräisetLuokkaAsteet(oo: Opiskeluoikeus): List[String] = getVuosiluokat(oo).filter(_.kesken).map(getLuokkaAste)

val aiemminTallennetutKeskeneräisetLuokkaAsteet =
aiemminTallennettuOpiskeluoikeus
.toOption.flatten.toList
.flatMap(getKeskeneräisetLuokkaAsteet)

val uudetkeskeneräisetLuokkaAsteet = getKeskeneräisetLuokkaAsteet(opiskeluoikeus)
val suoritetutLuokkaAsteet = getSuoritetutLuokkaAsteet(opiskeluoikeus)

val keskentilaisetVuosiluokanSuoritukset =
(aiemminTallennetutKeskeneräisetLuokkaAsteet.diff(suoritetutLuokkaAsteet) ++ uudetkeskeneräisetLuokkaAsteet).distinct

if (keskentilaisetVuosiluokanSuoritukset.size > 1) {
val luokat = keskentilaisetVuosiluokanSuoritukset.mkString(" ja ")
val message = s"Nuorten perusopetuksen opiskeluoikeudessa ei saa olla kuin enintään yksi kesken-tilainen vuosiluokan suoritus. Siirron jälkeen kesken olisivat perusopetuksen luokka-asteet $luokat."
Left(KoskiErrorCategory.badRequest.validation.tila.useitaKeskeneräisiäVuosiluokanSuoritukia(message))
} else {
Right(None)
aiemminTallennettuOpiskeluoikeus match {
case Right(Some(aiempi)) if aiempi.oid == opiskeluoikeus.oid =>
val aiemminTallennetutKeskeneräisetLuokkaAsteet = getKeskeneräisetLuokkaAsteet(aiempi)
val uudetkeskeneräisetLuokkaAsteet = getKeskeneräisetLuokkaAsteet(opiskeluoikeus)
val suoritetutLuokkaAsteet = getSuoritetutLuokkaAsteet(opiskeluoikeus)

val keskentilaisetVuosiluokanSuoritukset =
(aiemminTallennetutKeskeneräisetLuokkaAsteet.diff(suoritetutLuokkaAsteet) ++ uudetkeskeneräisetLuokkaAsteet).distinct

if (keskentilaisetVuosiluokanSuoritukset.size > 1) {
val luokat = keskentilaisetVuosiluokanSuoritukset.mkString(" ja ")
val message = s"Nuorten perusopetuksen opiskeluoikeudessa ei saa olla kuin enintään yksi kesken-tilainen vuosiluokan suoritus. Siirron jälkeen kesken olisivat perusopetuksen luokka-asteet $luokat."
Left(KoskiErrorCategory.badRequest.validation.tila.useitaKeskeneräisiäVuosiluokanSuoritukia(message))
} else {
Right(None)
}
case _ => Right(None)
}
}

Expand Down

0 comments on commit b9142f3

Please sign in to comment.