Skip to content

Commit

Permalink
Merge branch 'OY-4797' into MERGE__OY-4799__OY-4780__OY-4797
Browse files Browse the repository at this point in the history
  • Loading branch information
augustk committed May 2, 2024
2 parents 5224846 + 5a0364a commit dc8b31c
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ object ExcelUtilV7 extends HakijatExcelWriterV3[JSONHakijatV7] {
ht.urheilijanLisakysymykset.flatMap(_.laji).getOrElse(""),
ht.urheilijanLisakysymykset.flatMap(_.liitto).getOrElse(""),
ht.urheilijanLisakysymykset.flatMap(_.seura).getOrElse(""),
if (h.hakemus.julkaisulupa.getOrElse(false)) "Kyllä" else ""
if (h.sahkoisenAsioinninLupa) "Kyllä" else ""
)

def getLisakysymysAnswer(lisakysymykset: Seq[Lisakysymys], id: String): String = {
Expand Down
33 changes: 31 additions & 2 deletions src/main/scala/fi/vm/sade/hakurekisteri/hakija/HakijaActor.scala
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,13 @@ class HakijaActor(
os: Option[XMLOsaaminen]
) = HakijaV6Hakemus(hakija, opiskelija, org, ht, os)

def createV7Hakemus(hakija: Hakija)(
opiskelija: Option[Opiskelija],
org: Option[Organisaatio],
ht: Seq[XMLHakutoive],
os: Option[XMLOsaaminen]
) = HakijaV7Hakemus(hakija, opiskelija, org, ht, os)

def getXmlHakemus(hakija: Hakija): Future[XMLHakemus] = {
val (opiskelutieto, lahtokoulu) = getOpiskelijaTiedot(hakija)
val ht: Future[Seq[XMLHakutoive]] = getXmlHakutoiveet(hakija)
Expand Down Expand Up @@ -246,6 +253,28 @@ class HakijaActor(
data.tupledMap(createV6Hakemus(hakija))
}

def getHakijaV7Hakemus(hakija: Hakija): Future[HakijaV7Hakemus] = {
val (opiskelutieto, lahtokoulu) = getOpiskelijaTiedot(hakija)
val ht: Future[Seq[XMLHakutoive]] = getXmlHakutoiveet(hakija)
val osaaminen: Future[Option[XMLOsaaminen]] = Future.successful(
Option(
XMLOsaaminen(
hakija.hakemus.osaaminen.yleinen_kielitutkinto_fi,
hakija.hakemus.osaaminen.valtionhallinnon_kielitutkinto_fi,
hakija.hakemus.osaaminen.yleinen_kielitutkinto_sv,
hakija.hakemus.osaaminen.valtionhallinnon_kielitutkinto_sv,
hakija.hakemus.osaaminen.yleinen_kielitutkinto_en,
hakija.hakemus.osaaminen.valtionhallinnon_kielitutkinto_en,
hakija.hakemus.osaaminen.yleinen_kielitutkinto_se,
hakija.hakemus.osaaminen.valtionhallinnon_kielitutkinto_se
)
)
)
val data = (opiskelutieto, lahtokoulu, ht, osaaminen).join

data.tupledMap(createV7Hakemus(hakija))
}

def getOpiskelijaTiedot(
hakija: Hakija
): (Future[Option[Opiskelija]], Future[Option[Organisaatio]]) = hakija.opiskeluhistoria match {
Expand Down Expand Up @@ -318,7 +347,7 @@ class HakijaActor(
}

def hakija2JSONHakijaV7(hakija: Hakija): Future[JSONHakijaV7] = {
getHakijaV6Hakemus(hakija).map(data2JsonHakijaV7(hakija))
getHakijaV7Hakemus(hakija).map(data2JsonHakijaV7(hakija))
}

def data2XmlHakija(hakija: Hakija)(hakemus: XMLHakemus) = {
Expand All @@ -343,7 +372,7 @@ class HakijaActor(
JSONHakijaV6(hakija, hakemus)
}

def data2JsonHakijaV7(hakija: Hakija)(hakemus: HakijaV6Hakemus) = {
def data2JsonHakijaV7(hakija: Hakija)(hakemus: HakijaV7Hakemus) = {
JSONHakijaV7(hakija, hakemus)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ object JSONHakijaV6 {
object JSONHakijaV7 {
import RicherString._

private[hakija] def apply(hakija: Hakija, hakemus: HakijaV6Hakemus): JSONHakijaV7 =
private[hakija] def apply(hakija: Hakija, hakemus: HakijaV7Hakemus): JSONHakijaV7 =
JSONHakijaV7(
hetu = hetu(hakija.henkilo.hetu, hakija.henkilo.syntymaaika),
oppijanumero = hakija.henkilo.oppijanumero,
Expand Down Expand Up @@ -246,8 +246,7 @@ object JSONHakijaV7 {
oikeusMaksuttomaanKoulutukseenVoimassaAsti =
hakija.henkilo.oikeusMaksuttomaanKoulutukseenVoimassaAsti,
lisakysymykset = hakija.henkilo.lisakysymykset,
valintatuloksenJulkaisulupa =
hakija.ataruHakemus.map(_.valintatuloksenJulkaisulupa).getOrElse(false)
sahkoisenAsioinninLupa = hakija.ataruHakemus.map(_.sahkoisenAsioinninLupa).getOrElse(false)
)

def hetu(hetu: String, syntymaaika: String): String = hetu match {
Expand Down Expand Up @@ -407,11 +406,11 @@ case class JSONHakijaV7(
kiinnostunutoppisopimuksesta: Boolean,
huoltaja1: Option[HuoltajaV7],
huoltaja2: Option[HuoltajaV7],
hakemus: HakijaV6Hakemus,
hakemus: HakijaV7Hakemus,
oppivelvollisuusVoimassaAsti: Option[String],
oikeusMaksuttomaanKoulutukseenVoimassaAsti: Option[String],
lisakysymykset: Seq[Lisakysymys],
valintatuloksenJulkaisulupa: Boolean
sahkoisenAsioinninLupa: Boolean
)

case class JSONHakijat(hakijat: Seq[JSONHakija])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,70 @@ case class HakijaV6Hakemus(
hakutoiveet: Seq[XMLHakutoive],
osaaminen: Option[XMLOsaaminen]
)

object HakijaV7Hakemus {
private[hakija] def apply(
hakija: Hakija,
opiskelutieto: Option[Opiskelija],
lahtokoulu: Option[Organisaatio],
toiveet: Seq[XMLHakutoive],
osaaminen: Option[XMLOsaaminen]
): HakijaV7Hakemus = {
HakijaV7Hakemus(
vuosi = hakija.hakemus.hakutoiveet.headOption
.flatMap(_.hakukohde.koulutukset.headOption.flatMap(_.alkamisvuosi))
.getOrElse(""),
kausi = hakija.hakemus.hakutoiveet.headOption
.flatMap(_.hakukohde.koulutukset.headOption.flatMap(_.alkamiskausi.map(_.toString)))
.getOrElse(""),
hakemusnumero = hakija.hakemus.hakemusnumero,
hakemuksenJattopaiva =
hakija.ataruHakemus.map(h => h.hakemusFirstSubmittedTime).getOrElse("ei tiedossa"),
hakemuksenMuokkauspaiva =
hakija.ataruHakemus.map(h => h.createdTime).getOrElse("ei tiedossa"),
lahtokoulu = lahtokoulu.flatMap(o => o.oppilaitosKoodi),
lahtokoulunnimi = lahtokoulu.flatMap(o => o.nimi.get("fi")),
luokka = opiskelutieto.map(_.luokka),
luokkataso = opiskelutieto.map(_.luokkataso),
pohjakoulutus = resolvePohjakoulutus(getRelevantSuoritus(hakija.suoritukset)),
todistusvuosi = getRelevantSuoritus(hakija.suoritukset).flatMap(resolveYear),
muukoulutus = hakija.henkilo.muukoulutus,
julkaisulupa = Some(hakija.hakemus.julkaisulupa),
yhteisetaineet = None,
lukiontasapisteet = None,
lisapistekoulutus = hakija.hakemus.lisapistekoulutus,
yleinenkoulumenestys = None,
painotettavataineet = None,
hakutoiveet = toiveet,
osaaminen = osaaminen,
sahkoisenAsioinninLupa = hakija.ataruHakemus.map(_.sahkoisenAsioinninLupa)
)
}
}

case class HakijaV7Hakemus(
vuosi: String,
kausi: String,
hakemusnumero: String,
hakemuksenJattopaiva: String, //alkuperäinen jättöpäivä
hakemuksenMuokkauspaiva: String, //viimeisimmän version tallennuspäivä
lahtokoulu: Option[String],
lahtokoulunnimi: Option[String],
luokka: Option[String],
luokkataso: Option[String],
pohjakoulutus: String,
todistusvuosi: Option[String],
muukoulutus: Option[String],
julkaisulupa: Option[Boolean],
yhteisetaineet: Option[BigDecimal],
lukiontasapisteet: Option[BigDecimal],
lisapistekoulutus: Option[String],
yleinenkoulumenestys: Option[BigDecimal],
painotettavataineet: Option[BigDecimal],
hakutoiveet: Seq[XMLHakutoive],
osaaminen: Option[XMLOsaaminen],
sahkoisenAsioinninLupa: Option[Boolean]
)
case class XMLHakutoive(
hakukohdeOid: String,
hakujno: Short,
Expand Down

0 comments on commit dc8b31c

Please sign in to comment.