Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OY-4665 TUVA: store unfinished when start date after 1.8. previous year, finished always #587

Merged
merged 6 commits into from
Mar 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,9 @@ class KoskiDataHandler(
)
return false
}
if (KoskiUtil.isBeforeTuvaStartDate(lasnaDate.get)) {
if (!suoritus.laajuusVahintaan(19) && KoskiUtil.isBeforeTuvaStartDate(lasnaDate.get)) {
logger.info(
s"Filtteröitiin henkilöltä $henkiloOid tuva-suoritus, joka on alkanut ennen 1.8.2022."
s"Filtteröitiin henkilöltä $henkiloOid keskeneräinen tuva-suoritus, joka on alkanut ennen viime vuoden elokuun ensimmäistä päivää."
)
return false
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ object KoskiUtil {
OphUrlProperties.getProperty("suoritusrekisteri.koski.deadline.date")
)

val tuvaStartDate: LocalDate = LocalDate.parse("2022-08-01")
lazy val tuvaStartDate: LocalDate = {
new LocalDate(deadlineDate.year().get() - 1, 8, 1)
}

//format "2020-06-01T00:00:00+02:00"
lazy val koskiFetchStartTime: String =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import fi.vm.sade.hakurekisteri.rest.support.HakurekisteriDriver.api._
import fi.vm.sade.hakurekisteri.rest.support.JDBCJournal
import fi.vm.sade.hakurekisteri.tools.ItPostgres
import org.joda.time.{DateTime, LocalDate}
import org.joda.time.format.DateTimeFormat
import org.joda.time.format.{DateTimeFormat, ISODateTimeFormat}
import org.json4s._
import org.json4s.jackson.JsonMethods._
import org.scalatest.concurrent.Waiters
Expand Down Expand Up @@ -4346,10 +4346,14 @@ class KoskiDataHandlerTest
}

it should "import arvosanat for kesken-tilainen nuorten perusopetuksen oppiaineen oppimäärä without erityinen suoritustapa" in {
// After tuva cutoff date is dynamic, let's update it to be a valid one JSON before parsing.
val startDate = new LocalDate(LocalDate.now().year().get() - 1, 8, 22)
val dateStr = ISODateTimeFormat.date().print(startDate)
val json: String =
scala.io.Source
.fromFile(jsonDir + "koskidata_tuva_korotus_ei_erityinen_suoritustapa.json")
.mkString
.replaceFirst("PLACEHOLDER", dateStr)
val henkilo: KoskiHenkiloContainer = parse(json).extract[KoskiHenkiloContainer]
henkilo should not be null
henkilo.opiskeluoikeudet.head.tyyppi should not be empty
Expand Down Expand Up @@ -5589,7 +5593,7 @@ class KoskiDataHandlerTest
suoritus.head should include("yksilollistetty_ma_ai\":\"true\"")
}

it should "not store tutkintokoulutukseen valmentava koulutus as valmis without arvosanat if deadline date is tomorrow and alku is 310722 and opintoviikot is 29" in {
it should "store older tutkintokoulutukseen valmentava koulutus as valmis without arvosanat when length is 29 study weeks and status is valmis" in {
val json: String = scala.io.Source
.fromFile(jsonDir + "koskidata_tutkintokoulutukseen_valmentava_aloitus_310722_valmis.json")
.mkString
Expand All @@ -5608,16 +5612,23 @@ class KoskiDataHandlerTest
)

val opiskelijat = run(database.run(sql"select henkilo_oid from opiskelija".as[String]))
opiskelijat.size should equal(0)
opiskelijat.size should equal(1)
val suoritukset = run(database.run(sql"select count(*) from suoritus".as[String]))
suoritukset.head should equal("0")
suoritukset.head should equal("1")
val suoritus = run(
database.run(
sql"select tila from suoritus where komo = 'tuvakoulutuksensuoritus'"
.as[String]
)
)
suoritus.head should equal("VALMIS")
val arvosanat = run(
database.run(sql"select * from arvosana where deleted = false and current = true".as[String])
)
arvosanat should have length 0
}

it should "store tutkintokoulutukseen valmentava koulutus as valmis without arvosanat if deadline date is tomorrow and alku is 010822 and opintoviikot is 29" in {
it should "store tutkintokoulutukseen valmentava koulutus as valmis without arvosanat if deadline date is tomorrow, alku is before 1.8. last year and opintoviikot is 29" in {
val json: String = scala.io.Source
.fromFile(jsonDir + "koskidata_tutkintokoulutukseen_valmentava_aloitus_010822_valmis.json")
.mkString
Expand Down Expand Up @@ -5652,7 +5663,7 @@ class KoskiDataHandlerTest
arvosanat should have length 0
}

it should "store tutkintokoulutukseen valmentava koulutus as valmis without arvosanat if deadline date is tomorrow and alku is 030822 and opintoviikot is 19" in {
it should "store tutkintokoulutukseen valmentava koulutus as valmis without arvosanat if deadline date is tomorrow, alku is before 1.8. last year and opintoviikot is 19" in {
val json: String = scala.io.Source
.fromFile(
jsonDir + "koskidata_tutkintokoulutukseen_valmentava_aloitus_030822_19ov_kesken.json"
Expand Down Expand Up @@ -5689,7 +5700,7 @@ class KoskiDataHandlerTest
arvosanat should have length 0
}

it should "store tutkintokoulutukseen valmentava koulutus as valmis without arvosanat if deadline date was yesterday and alku is 030822 and opintoviikot is 19" in {
it should "store tutkintokoulutukseen valmentava koulutus as valmis without arvosanat if deadline date was yesterday, alku is before 1.8. last year and opintoviikot is 19" in {
val json: String = scala.io.Source
.fromFile(
jsonDir + "koskidata_tutkintokoulutukseen_valmentava_aloitus_030822_19ov_kesken.json"
Expand Down Expand Up @@ -5726,12 +5737,16 @@ class KoskiDataHandlerTest
arvosanat should have length 0
}

it should "store tutkintokoulutukseen valmentava koulutus as kesken without arvosanat if deadline date is tomorrow and alku is 030822 and opintoviikot is 18" in {
it should "store tutkintokoulutukseen valmentava koulutus as kesken without arvosanat if deadline date is tomorrow, alku is after 1.8. last year and opintoviikot is 18" in {
val startDate = new LocalDate(LocalDate.now().year().get() - 1, 8, 22)
val dateStr = ISODateTimeFormat.date().print(startDate)
val json: String = scala.io.Source
.fromFile(
jsonDir + "koskidata_tutkintokoulutukseen_valmentava_aloitus_030822_18ov_kesken.json"
)
.mkString
.replaceFirst("PLACEHOLDER", dateStr)

val henkilo: KoskiHenkiloContainer = parse(json).extract[KoskiHenkiloContainer]
henkilo should not be null
henkilo.opiskeluoikeudet.head.tyyppi should not be empty
Expand Down Expand Up @@ -5763,12 +5778,15 @@ class KoskiDataHandlerTest
arvosanat should have length 0
}

it should "store tutkintokoulutukseen valmentava koulutus as keskeytynyt without arvosanat if deadline date was yesterday and alku is 030822 and opintoviikot is 18" in {
it should "store tutkintokoulutukseen valmentava koulutus as keskeytynyt without arvosanat if deadline date was yesterday, alku is after 1.8. last year and opintoviikot is 18" in {
val startDate = new LocalDate(LocalDate.now().year().get() - 1, 8, 22)
val dateStr = ISODateTimeFormat.date().print(startDate)
val json: String = scala.io.Source
.fromFile(
jsonDir + "koskidata_tutkintokoulutukseen_valmentava_aloitus_030822_18ov_kesken.json"
)
.mkString
.replaceFirst("PLACEHOLDER", dateStr)
val henkilo: KoskiHenkiloContainer = parse(json).extract[KoskiHenkiloContainer]
henkilo should not be null
henkilo.opiskeluoikeudet.head.tyyppi should not be empty
Expand Down Expand Up @@ -5800,6 +5818,39 @@ class KoskiDataHandlerTest
arvosanat should have length 0
}

it should "not store tutkintokoulutukseen valmentava koulutus if deadline date was yesterday, alku is before 1.8. last year and opintoviikot is 18" in {
val startDate = new LocalDate(LocalDate.now().year().get() - 1, 7, 31)
val dateStr = ISODateTimeFormat.date().print(startDate)
val json: String = scala.io.Source
.fromFile(
jsonDir + "koskidata_tutkintokoulutukseen_valmentava_aloitus_030822_18ov_kesken.json"
)
.mkString
.replaceFirst("PLACEHOLDER", dateStr)
val henkilo: KoskiHenkiloContainer = parse(json).extract[KoskiHenkiloContainer]
henkilo should not be null
henkilo.opiskeluoikeudet.head.tyyppi should not be empty
KoskiUtil.deadlineDate = LocalDate.now().minusDays(1)

Await.result(
koskiDatahandler.processHenkilonTiedotKoskesta(
henkilo,
PersonOidsWithAliases(henkilo.henkilö.oid.toSet),
new KoskiSuoritusHakuParams(saveLukio = false, saveAmmatillinen = false)
),
5.seconds
)

val opiskelijat = run(database.run(sql"select henkilo_oid from opiskelija".as[String]))
opiskelijat.size should equal(0)
val suoritukset = run(database.run(sql"select count(*) from suoritus".as[String]))
suoritukset.head should equal("0")
val arvosanat = run(
database.run(sql"select * from arvosana where deleted = false and current = true".as[String])
)
arvosanat should have length 0
}

def getPerusopetusPäättötodistus(arvosanat: Seq[SuoritusArvosanat]): Option[SuoritusArvosanat] = {
arvosanat.find(_.suoritus.komo.contentEquals(Oids.perusopetusKomoOid))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
},
"tila" : {
"opiskeluoikeusjaksot" : [ {
"alku" : "2022-08-03",
"alku" : "PLACEHOLDER",
"tila" : {
"koodiarvo" : "lasna",
"nimi" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8219,7 +8219,7 @@
"arvioituPäättymispäivä" : "2024-04-10",
"tila" : {
"opiskeluoikeusjaksot" : [ {
"alku" : "2023-04-11",
"alku" : "PLACEHOLDER",
"tila" : {
"koodiarvo" : "lasna",
"nimi" : {
Expand Down
Loading