use of fi.otavanopisto.pyramus.koski.koodisto.OpintojenRahoitus in project pyramus by otavanopisto.
the class KoskiInternetixLukioStudentHandler method studentToModel.
public OpiskeluoikeusInternetix studentToModel(Student student, String academyIdentifier) {
StudentSubjectSelections studentSubjects = loadStudentSubjectSelections(student, getDefaultSubjectSelections());
String studyOid = resolveInternetixOid(student, HANDLER_TYPE);
// Skip student if it is archived and the studyoid is blank
if (Boolean.TRUE.equals(student.getArchived()) && StringUtils.isBlank(studyOid)) {
return null;
}
if (student.getStudyStartDate() == null) {
koskiPersonLogDAO.create(student.getPerson(), student, KoskiPersonState.NO_STUDYSTARTDATE, new Date());
return null;
}
boolean defaultStudyProgramme = settings.getStudyProgrammeHandlerType(student.getStudyProgramme().getId()) == HANDLER_TYPE;
LukionOpiskeluoikeus opiskeluoikeus = new LukionOpiskeluoikeus();
opiskeluoikeus.setLahdejarjestelmanId(getLahdeJarjestelmaID(HANDLER_TYPE, student.getId()));
opiskeluoikeus.setAlkamispaiva(student.getStudyStartDate());
opiskeluoikeus.setPaattymispaiva(student.getStudyEndDate());
if (StringUtils.isNotBlank(studyOid)) {
opiskeluoikeus.setOid(studyOid);
}
opiskeluoikeus.setLisatiedot(getLisatiedot(student));
OpintojenRahoitus opintojenRahoitus = opintojenRahoitus(student);
StudyEndReasonMapping lopetusSyy = opiskelujaksot(student, opiskeluoikeus.getTila(), opintojenRahoitus);
boolean laskeKeskiarvot = lopetusSyy != null ? lopetusSyy.getLaskeAinekeskiarvot() : false;
boolean sisällytäVahvistus = lopetusSyy != null ? lopetusSyy.getSisällytäVahvistaja() : false;
boolean lukionOppimääräSuoritettu = lopetusSyy != null ? lopetusSyy.isLukionOppimääräSuoritettu() : false;
opiskeluoikeus.setOppimaaraSuoritettu(lukionOppimääräSuoritettu || sisällytäVahvistus);
KoskiStudyProgrammeHandlerParams handlerParams = getHandlerParams(HANDLER_TYPE);
// toimipiste-oid joko a) handlerParams:sta b) studyprogramme-asetuksista c) yleisesti kaikelle asetettu academyIdentifier
String toimipisteOID = StringUtils.isNotBlank(handlerParams.getToimipisteOID()) ? handlerParams.getToimipisteOID() : settings.getToimipisteOID(student.getStudyProgramme().getId(), academyIdentifier);
assessmentsToModel(opiskeluoikeus, student, studentSubjects, laskeKeskiarvot, sisällytäVahvistus, toimipisteOID, defaultStudyProgramme);
// Aineopiskelija
boolean eiSuorituksia = CollectionUtils.isEmpty(opiskeluoikeus.getSuoritukset());
if (eiSuorituksia) {
LukionOppiaineenTunniste oppiaineenTunniste = new LukionOppiaineenSuoritusEiTiedossa();
LukionOppiaineenSuoritus oppiaineenSuoritus = new LukionOppiaineenSuoritus(oppiaineenTunniste);
LukionOppiaineenOppimaaranSuoritus oppiaineenOppimaaranSuoritus = LukionOppiaineenOppimaaranSuoritus.from(oppiaineenSuoritus, Kieli.FI, new OrganisaationToimipisteOID(toimipisteOID));
opiskeluoikeus.addSuoritus(oppiaineenOppimaaranSuoritus);
}
return new OpiskeluoikeusInternetix(opiskeluoikeus, eiSuorituksia);
}
use of fi.otavanopisto.pyramus.koski.koodisto.OpintojenRahoitus in project pyramus by otavanopisto.
the class KoskiLukioStudentHandler method studentToModel.
public Opiskeluoikeus studentToModel(Student student, String academyIdentifier, KoskiStudyProgrammeHandler handler) {
if (handler != HANDLER_TYPE) {
logger.log(Level.SEVERE, String.format("Wrong handler type %s, expected %s w/person %d.", handler, HANDLER_TYPE, student.getPerson().getId()));
return null;
}
StudentSubjectSelections studentSubjects = loadStudentSubjectSelections(student, getDefaultSubjectSelections());
String studyOid = userVariableDAO.findByUserAndKey(student, KOSKI_STUDYPERMISSION_ID);
// Skip student if it is archived and the studyoid is blank
if (Boolean.TRUE.equals(student.getArchived()) && StringUtils.isBlank(studyOid)) {
return null;
}
OpiskelijanOPS ops = resolveOPS(student);
if (ops == null) {
koskiPersonLogDAO.create(student.getPerson(), student, KoskiPersonState.NO_CURRICULUM, new Date());
return null;
}
if (student.getStudyStartDate() == null) {
koskiPersonLogDAO.create(student.getPerson(), student, KoskiPersonState.NO_STUDYSTARTDATE, new Date());
return null;
}
LukionOpiskeluoikeus opiskeluoikeus = new LukionOpiskeluoikeus();
opiskeluoikeus.setLahdejarjestelmanId(getLahdeJarjestelmaID(handler, student.getId()));
opiskeluoikeus.setAlkamispaiva(student.getStudyStartDate());
opiskeluoikeus.setPaattymispaiva(student.getStudyEndDate());
if (StringUtils.isNotBlank(studyOid)) {
opiskeluoikeus.setOid(studyOid);
}
opiskeluoikeus.setLisatiedot(getLisatiedot(student));
OpintojenRahoitus opintojenRahoitus = opintojenRahoitus(student);
StudyEndReasonMapping lopetusSyy = opiskelujaksot(student, opiskeluoikeus.getTila(), opintojenRahoitus);
boolean laskeKeskiarvot = lopetusSyy != null ? lopetusSyy.getLaskeAinekeskiarvot() : false;
boolean sisällytäVahvistus = lopetusSyy != null ? lopetusSyy.getSisällytäVahvistaja() : false;
opiskeluoikeus.setOppimaaraSuoritettu(sisällytäVahvistus);
String departmentIdentifier = settings.getToimipisteOID(student.getStudyProgramme().getId(), academyIdentifier);
OrganisaationToimipiste toimipiste = new OrganisaationToimipisteOID(departmentIdentifier);
EducationType studentEducationType = student.getStudyProgramme() != null && student.getStudyProgramme().getCategory() != null ? student.getStudyProgramme().getCategory().getEducationType() : null;
Set<LukionOppiaineenSuoritus> oppiaineet = assessmentsToModel(handler, ops, student, studentEducationType, studentSubjects, laskeKeskiarvot);
LukionOppimaaranSuoritus suoritus = new LukionOppimaaranSuoritus(LukionOppimaara.aikuistenops, Kieli.FI, toimipiste);
suoritus.getKoulutusmoduuli().setPerusteenDiaarinumero(getDiaarinumero(student));
suoritus.setTodistuksellaNakyvatLisatiedot(getTodistuksellaNakyvatLisatiedot(student));
if (sisällytäVahvistus) {
suoritus.setVahvistus(getVahvistus(student, departmentIdentifier));
}
opiskeluoikeus.addSuoritus(suoritus);
oppiaineet.forEach(oppiaine -> suoritus.addOsasuoritus(oppiaine));
return opiskeluoikeus;
}
use of fi.otavanopisto.pyramus.koski.koodisto.OpintojenRahoitus in project pyramus by otavanopisto.
the class KoskiInternetixLukioStudentHandler2019 method oppiaineidenOppimaaranOpiskeluoikeus.
public OpiskeluoikeusInternetix oppiaineidenOppimaaranOpiskeluoikeus(Student student, String academyIdentifier) {
StudentSubjectSelections studentSubjects = loadStudentSubjectSelections(student, getDefaultSubjectSelections());
String studyOid = userVariableDAO.findByUserAndKey(student, KOSKI_STUDYPERMISSION_ID);
// Skip student if it is archived and the studyoid is blank
if (Boolean.TRUE.equals(student.getArchived()) && StringUtils.isBlank(studyOid)) {
return null;
}
OpiskelijanOPS ops = resolveOPS(student);
if (ops == null) {
koskiPersonLogDAO.create(student.getPerson(), student, KoskiPersonState.NO_CURRICULUM, new Date());
return null;
}
if (student.getStudyStartDate() == null) {
koskiPersonLogDAO.create(student.getPerson(), student, KoskiPersonState.NO_STUDYSTARTDATE, new Date());
return null;
}
LukionOpiskeluoikeus opiskeluoikeus = new LukionOpiskeluoikeus();
opiskeluoikeus.setLahdejarjestelmanId(getLahdeJarjestelmaID(HANDLER_TYPE, student.getId()));
opiskeluoikeus.setAlkamispaiva(student.getStudyStartDate());
opiskeluoikeus.setPaattymispaiva(student.getStudyEndDate());
if (StringUtils.isNotBlank(studyOid)) {
opiskeluoikeus.setOid(studyOid);
}
opiskeluoikeus.setLisatiedot(getLisatiedot(student));
OpintojenRahoitus opintojenRahoitus = opintojenRahoitus(student);
StudyEndReasonMapping lopetusSyy = opiskelujaksot(student, opiskeluoikeus.getTila(), opintojenRahoitus);
boolean laskeKeskiarvot = lopetusSyy != null ? lopetusSyy.getLaskeAinekeskiarvot() : false;
boolean sisällytäVahvistus = lopetusSyy != null ? lopetusSyy.getSisällytäVahvistaja() : false;
boolean lukionOppimääräSuoritettu = lopetusSyy != null ? lopetusSyy.isLukionOppimääräSuoritettu() : false;
opiskeluoikeus.setOppimaaraSuoritettu(lukionOppimääräSuoritettu || sisällytäVahvistus);
String departmentIdentifier = settings.getToimipisteOID(student.getStudyProgramme().getId(), academyIdentifier);
OrganisaationToimipiste toimipiste = new OrganisaationToimipisteOID(departmentIdentifier);
EducationType studentEducationType = student.getStudyProgramme() != null && student.getStudyProgramme().getCategory() != null ? student.getStudyProgramme().getCategory().getEducationType() : null;
Set<LukionOsasuoritus2019> oppiaineet = assessmentsToModel(ops, student, studentEducationType, studentSubjects, laskeKeskiarvot);
LukionOppiaineenOppimaaranSuoritus2019 suoritus = new LukionOppiaineenOppimaaranSuoritus2019(LukionOppimaara.aikuistenops, Kieli.FI, toimipiste, getDiaarinumero(student));
suoritus.setTodistuksellaNakyvatLisatiedot(getTodistuksellaNakyvatLisatiedot(student));
if (sisällytäVahvistus) {
suoritus.setVahvistus(getVahvistus(student, departmentIdentifier));
}
opiskeluoikeus.addSuoritus(suoritus);
for (LukionOsasuoritus2019 oppiaine : oppiaineet) {
// Aineopinnot sallivat vain oppiaineen suorituksia
if (oppiaine instanceof LukionOppiaineenSuoritus2019) {
suoritus.addOsasuoritus((LukionOppiaineenSuoritus2019) oppiaine);
} else {
String tyyppi = String.valueOf(oppiaine.getTyyppi().getValue());
koskiPersonLogDAO.create(student.getPerson(), KoskiPersonState.GENERIC_WARNING, new Date(), tyyppi);
}
}
return new OpiskeluoikeusInternetix(opiskeluoikeus, false);
}
use of fi.otavanopisto.pyramus.koski.koodisto.OpintojenRahoitus in project pyramus by otavanopisto.
the class KoskiSettings method readSettings.
private void readSettings(JSONObject settings) {
JSONObject koskiSettings = settings.getJSONObject("koski");
JSONObject courseTypeMapping = koskiSettings.getJSONObject("courseTypeMapping");
for (Object courseTypeMappingKey : courseTypeMapping.keySet()) {
Long courseSubTypeId = Long.parseLong(courseTypeMappingKey.toString());
this.courseTypeMapping.put(courseSubTypeId, courseTypeMapping.getString(courseSubTypeId.toString()));
}
JSONObject courseTypeMapping2019 = koskiSettings.getJSONObject("courseTypeMapping2019");
for (Object courseTypeMappingKey : courseTypeMapping2019.keySet()) {
Long courseSubTypeId = Long.parseLong(courseTypeMappingKey.toString());
this.courseTypeMapping2019.put(courseSubTypeId, courseTypeMapping2019.getString(courseSubTypeId.toString()));
}
JSONObject subjectToLanguageMapping = koskiSettings.getJSONObject("subjectToLanguageMapping");
for (Object key : subjectToLanguageMapping.keySet()) {
String keyStr = (String) key;
this.subjectToLanguageMapping.put(keyStr, subjectToLanguageMapping.getString(keyStr));
}
JSONObject studyProgrammeMappings = koskiSettings.getJSONObject("studyProgrammes");
for (Object studyProgrammeKey : studyProgrammeMappings.keySet()) {
Long studyProgrammeId = Long.parseLong(studyProgrammeKey.toString());
JSONObject studyProgramme = studyProgrammeMappings.getJSONObject(studyProgrammeId.toString());
if (studyProgramme.getBoolean("enabled")) {
enabledStudyProgrammes.add(studyProgrammeId);
}
if (studyProgramme.getBoolean("freeLodging")) {
freeLodgingStudyProgrammes.add(studyProgrammeId);
}
if (studyProgramme.has("yksityisopiskelija") && studyProgramme.getBoolean("yksityisopiskelija")) {
yksityisopiskelijaStudyProgrammes.add(studyProgrammeId);
}
if (EnumUtils.isValidEnum(KoskiStudyProgrammeHandler.class, studyProgramme.getString("handler"))) {
KoskiStudyProgrammeHandler handlerType = KoskiStudyProgrammeHandler.valueOf(studyProgramme.getString("handler"));
handlerTypes.put(studyProgrammeId, handlerType);
} else {
logger.warning(String.format("Unknown handler %s", studyProgramme.getString("handler")));
}
if (studyProgramme.has("opintojenRahoitus")) {
String opintojenRahoitusStr = studyProgramme.getString("opintojenRahoitus");
if (StringUtils.isNotBlank(opintojenRahoitusStr)) {
OpintojenRahoitus or = OpintojenRahoitus.reverseLookup(opintojenRahoitusStr);
if (or != null) {
opintojenRahoitus.put(studyProgrammeId, or);
}
}
}
if (studyProgramme.has("perusopetuksenSuoritusTapa")) {
String pstString = studyProgramme.getString("perusopetuksenSuoritusTapa");
if (EnumUtils.isValidEnum(PerusopetuksenSuoritusTapa.class, pstString)) {
PerusopetuksenSuoritusTapa pst = EnumUtils.getEnum(PerusopetuksenSuoritusTapa.class, pstString);
if (pst != null) {
perusopetuksenSuoritusTapa.put(studyProgrammeId, pst);
}
}
}
if (studyProgramme.has("toimipisteOID")) {
String toimipisteOID = studyProgramme.getString("toimipisteOID");
if (StringUtils.isNotBlank(toimipisteOID)) {
toimipisteOIDt.put(studyProgrammeId, toimipisteOID);
}
}
JSONObject diaariJSON = studyProgramme.getJSONObject("diaari");
if (diaariJSON != null) {
for (Object curriculumIdKey : diaariJSON.keySet()) {
Long curriculumId = Long.parseLong(curriculumIdKey.toString());
diaarinumerot.put(String.format("%d.%d", studyProgrammeId, curriculumId), diaariJSON.getString(curriculumIdKey.toString()));
}
}
String pakollisetOppiaineet = studyProgramme.getString("pakollisetOppiaineet");
if (StringUtils.isNotBlank(pakollisetOppiaineet)) {
Set<KoskiOppiaineetYleissivistava> set = new HashSet<>();
for (String s : StringUtils.split(pakollisetOppiaineet, ',')) {
KoskiOppiaineetYleissivistava oppiaine = KoskiOppiaineetYleissivistava.valueOf(s);
if (oppiaine != null) {
set.add(oppiaine);
} else {
logger.log(Level.WARNING, String.format("No equivalent enum found for value %s of studyprogramme %d.", s, studyProgrammeId));
}
}
this.pakollisetOppiaineet.put(studyProgrammeId, set);
}
}
}
use of fi.otavanopisto.pyramus.koski.koodisto.OpintojenRahoitus in project pyramus by otavanopisto.
the class APOOppimaaraData method getTestStudent.
public static Oppija getTestStudent() {
Oppija oppija = new Oppija();
oppija.setHenkilo(new HenkiloUusi("111111A111C", "Sally", "Student", "Sally"));
AikuistenPerusopetuksenOpiskeluoikeus opiskeluoikeus = new AikuistenPerusopetuksenOpiskeluoikeus();
oppija.addOpiskeluoikeus(opiskeluoikeus);
Date paattymispaiva = date(2017, 10, 10);
opiskeluoikeus.setPaattymispaiva(paattymispaiva);
OpiskeluoikeusJakso jakso = new OpiskeluoikeusJakso(new Date(), OpiskeluoikeudenTila.lasna);
jakso.setOpintojenRahoitus(new KoodistoViite<OpintojenRahoitus>(OpintojenRahoitus.K1));
opiskeluoikeus.getTila().addOpiskeluoikeusJakso(jakso);
opiskeluoikeus.getTila().addOpiskeluoikeusJakso(new OpiskeluoikeusJakso(paattymispaiva, OpiskeluoikeudenTila.valmistunut));
opiskeluoikeus.setLahdejarjestelmanId(getLahdeJarjestelmaID(1l));
OrganisaationToimipiste toimipiste = new OrganisaationToimipisteOID(ACADEMYOID);
AikuistenPerusopetuksenOppimaaranSuoritus suoritus = new AikuistenPerusopetuksenOppimaaranSuoritus(PerusopetuksenSuoritusTapa.koulutus, Kieli.FI, toimipiste);
opiskeluoikeus.addSuoritus(suoritus);
// Oppiaine
AikuistenPerusopetuksenOppiaineenTunniste koulutusmoduuli = new AikuistenPerusopetuksenOppiaineenSuoritusAidinkieli(OppiaineAidinkieliJaKirjallisuus.AI1, true);
AikuistenPerusopetuksenOppiaineenSuoritus oppiaine = new AikuistenPerusopetuksenOppiaineenSuoritus(koulutusmoduuli);
suoritus.addOsasuoritus(oppiaine);
// Oppiaineen arviointi
oppiaine.addArviointi(new KurssinArviointiNumeerinen(ArviointiasteikkoYleissivistava.GRADE_9, paattymispaiva));
// Kurssi 1
AikuistenPerusopetuksenKurssinTunniste kurssinTunniste = new AikuistenPerusopetuksenKurssinTunnisteOPS2015(AikuistenPerusopetuksenKurssit2015.ÄI1);
AikuistenPerusopetuksenKurssinSuoritus kurssi = new AikuistenPerusopetuksenKurssinSuoritus(kurssinTunniste);
kurssi.addArviointi(new KurssinArviointiNumeerinen(ArviointiasteikkoYleissivistava.GRADE_9, paattymispaiva));
oppiaine.addOsasuoritus(kurssi);
// Kurssi 2
kurssinTunniste = new AikuistenPerusopetuksenKurssinTunnistePaikallinen(new PaikallinenKoodi("ÄI123", kuvaus("ABC")));
kurssi = new AikuistenPerusopetuksenKurssinSuoritus(kurssinTunniste);
kurssi.addArviointi(new KurssinArviointiSanallinen(ArviointiasteikkoYleissivistava.GRADE_S, paattymispaiva, kuvaus("S")));
oppiaine.addOsasuoritus(kurssi);
return oppija;
}
Aggregations