diff --git a/CHANGELOG.md b/CHANGELOG.md index 42e898deb..2d712a143 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,7 +48,8 @@ lehre.tbl_zeugnis, fue.tbl_scrumsprint, fue.tbl_scrumteam, wawi.tbl_aufteilung, wawi.tbl_aufteilung_default, testtool.tbl_kategorie, testtool.tbl_kriterien, public.tbl_prestudent.rt_punkte1, public.tbl_prestudent.rt_punkte2 public.tbl_prestudent.rt_punkte3, public.tbl_prestudent.anmeldungreihungstest, public.tbl_prestudent.reihungstest_id - public.tbl_prestudent.ausstellungsstaat, public.tbl_prestudent.aufnahmeschluessel, lehre.tbl_lehrveranstaltung.old_lehrfach_id + public.tbl_prestudent.ausstellungsstaat, public.tbl_prestudent.aufnahmeschluessel, lehre.tbl_lehrveranstaltung.old_lehrfach_id, lehre.tbl_projektarbeit.gesamtstunden, lehre.tbl_projektarbeit.faktor, + lehre.tbl_projektarbeit.stundensatz - **[CORE]** LV-Infos werden mit der kommenden Version aus dem Core entfernt - Dies ist jetzt ein Addon - **[CORE]** WaWi wird mit der kommenden Version aus dem Core entfernt- Dies ist jetzt ein Addon - **[CIS]** Benotungstool/Kreuzerltool wird mit der kommenden Version aus dem Core entfernt diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index fdd45d9a6..b13cf4d9b 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -1463,7 +1463,7 @@ class InfoCenter extends Auth_Controller $data = array ( 'interessentbez' => $interessentbez, - 'studiengangbez' => $prestudent->studiengangbezeichnung, + 'studiengangbez' => $prestudentstatus->studiengangbezeichnung, 'studiengangtypbez' => $prestudent->studiengangtyp_bez, 'orgform' => $orgform, 'studiensemester' => $prestudentstatus->studiensemester_kurzbz, @@ -1487,7 +1487,7 @@ class InfoCenter extends Auth_Controller $this->load->library('LogLib'); $this->load->helper('hlp_sancho'); - $subject = ($person->geschlecht == 'm' ? 'Interessent ' : 'Interessentin ').$person->vorname.' '.$person->nachname.' für '.$prestudent->studiengangbezeichnung.$orgform.' freigegeben'; + $subject = ($person->geschlecht == 'm' ? 'Interessent ' : 'Interessentin ').$person->vorname.' '.$person->nachname.' für '.$prestudentstatus->studiengangbezeichnung.$orgform.' freigegeben'; $receiver = $prestudent->studiengangmail; diff --git a/application/helpers/hlp_sancho_helper.php b/application/helpers/hlp_sancho_helper.php index dfcebe809..6f5ef8c24 100644 --- a/application/helpers/hlp_sancho_helper.php +++ b/application/helpers/hlp_sancho_helper.php @@ -74,7 +74,7 @@ function sendSanchoMail($vorlage_kurzbz, $vorlage_data, $to, $subject, $headerIm $body = _parseMailContent('Sancho_Mail_Template', $layout); // Send mail - $ci->maillib->send($from, $to, $subject, $body, $alias = '', $cc = null, $bcc = null, $altMessage = '', $bulk = true, $autogenerated = true); + $ci->maillib->send($from, $to, $subject, $body, $alias = '', $cc, $bcc, $altMessage = '', $bulk = true, $autogenerated = true); } /** diff --git a/application/models/crm/Reihungstest_model.php b/application/models/crm/Reihungstest_model.php index d0efb8bc8..6102c2b5e 100644 --- a/application/models/crm/Reihungstest_model.php +++ b/application/models/crm/Reihungstest_model.php @@ -473,11 +473,30 @@ class Reihungstest_model extends DB_Model return $this->execQuery($query, array($reihungstest_id)); } + /** + * Loads the date of the next placement test to the given degree program + * @param integer $studiengang_kz Kennzahl of degree program to load the next placement test date + * @return string Returns date of the next placement test + */ + public function getNextPlacementtestDate($studiengang_kz) + { + $query = ' + SELECT * + FROM PUBLIC.tbl_reihungstest + WHERE studiengang_kz = ? + AND datum > now() + ORDER BY datum ASC + LIMIT 1 + '; + + return $this->execQuery($query, array($studiengang_kz)); + } + /** * Loads all placement tests of the given day and optional degree program * @param string $date Date of the tests to be loaded (YYYY-MM-DD) * @param integer $studiengang_kz Optional. Kennzahl of degree program to load - * @return array Returns object array with data of applicants. + * @return array Returns object array with data of placement tests */ public function getTestsOnDate($date, $studiengang_kz = null) { diff --git a/application/models/education/Lehreinheit_model.php b/application/models/education/Lehreinheit_model.php index 737d482f8..7dba40153 100644 --- a/application/models/education/Lehreinheit_model.php +++ b/application/models/education/Lehreinheit_model.php @@ -14,6 +14,7 @@ class Lehreinheit_model extends DB_Model $this->load->model('education/lehrveranstaltung_model', 'LehrveranstaltungModel'); $this->load->model('education/lehreinheitgruppe_model', 'LehreinheitgruppeModel'); $this->load->model('education/lehreinheitmitarbeiter_model', 'LehreinheitmitarbeiterModel'); + $this->load->model('organisation/studiengang_model', 'StudiengangModel'); } /** @@ -57,13 +58,22 @@ class Lehreinheit_model extends DB_Model { foreach ($lehreinheitgruppen->retval as $lehreinheitgruppe) { - $letoadd->lehreinheitgruppen[] = array( - 'semester' => $lehreinheitgruppe->semester, - 'verband' => $lehreinheitgruppe->verband, - 'gruppe' => $lehreinheitgruppe->gruppe, - 'gruppe_kurzbz' => $lehreinheitgruppe->gruppe_kurzbz, - 'direktinskription' => $lehreinheitgruppe->direktinskription - ); + $studiengangresponse = $this->StudiengangModel->load($lehreinheitgruppe->studiengang_kz); + if (hasData($studiengangresponse)) + { + $studiengang = $studiengangresponse->retval[0]; + $stgkuerzel = mb_strtoupper($studiengang->typ . $studiengang->kurzbz); + + $letoadd->lehreinheitgruppen[] = array( + 'semester' => $lehreinheitgruppe->semester, + 'verband' => $lehreinheitgruppe->verband, + 'gruppe' => $lehreinheitgruppe->gruppe, + 'gruppe_kurzbz' => $lehreinheitgruppe->gruppe_kurzbz, + 'direktinskription' => $lehreinheitgruppe->direktinskription, + 'studiengang_kz' => $lehreinheitgruppe->studiengang_kz, + 'studiengang_kuerzel' => $stgkuerzel + ); + } } } diff --git a/application/models/education/Lehrveranstaltung_model.php b/application/models/education/Lehrveranstaltung_model.php index 3c4bae1e3..1685ddf81 100644 --- a/application/models/education/Lehrveranstaltung_model.php +++ b/application/models/education/Lehrveranstaltung_model.php @@ -203,4 +203,65 @@ class Lehrveranstaltung_model extends DB_Model return $this->execQuery($qry, $params); } + + /** + * Gets valid Lehrveranstaltungen with incoming places for a Studiensemester. + * Only + * 1. Lvs with incoming places > 0 + * 2. Studienplan valid in current semester or with Lehrauftrag (i.e. assigned Lehreinheit) + * @param $studiensemester_kurzbz + * @return object + */ + public function getLvsWithIncomingPlaces($studiensemester_kurzbz) + { + $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); + + $studsemres = $this->StudiensemesterModel->load($studiensemester_kurzbz); + + if (!hasData($studsemres)) + return success(array()); + + $parametersarray = array($studiensemester_kurzbz, $studsemres->retval[0]->studienjahr_kurzbz, $studiensemester_kurzbz, $studiensemester_kurzbz); + + $query = " + SELECT * FROM ( + SELECT DISTINCT ON (lv.lehrveranstaltung_id) lv.lehrveranstaltung_id, lv.bezeichnung AS lv_bezeichnung, lv.kurzbz AS lv_kurzbz, lv.sprache, lv.ects, lv.lehre, + lv.lehreverzeichnis, lv.sws, lv.lvs, lv.alvs, lv.lvps, lv.las, lv.incoming, lv.lehrform_kurzbz, lv.orgform_kurzbz AS lv_orgform, lv.semester, + ? AS studiensemester_kurzbz, ? AS studienjahr_kurzbz, UPPER(stg.typ::VARCHAR(1) || stg.kurzbz) AS studiengang_kuerzel, + stg.bezeichnung AS studiengang_bezeichnung, stg.english AS studiengang_bezeichnung_english, stg.typ, stg.orgform_kurzbz AS studiengang_orgform, + tbl_sprache.locale, CASE WHEN lv.orgform_kurzbz NOTNULL THEN lv.orgform_kurzbz ELSE stg.orgform_kurzbz END AS orgform_kurzbz + FROM lehre.tbl_lehrveranstaltung lv + JOIN public.tbl_studiengang stg ON lv.studiengang_kz = stg.studiengang_kz + JOIN public.tbl_sprache ON lv.sprache = tbl_sprache.sprache + WHERE lv.lehrtyp_kurzbz != 'modul' + AND ( + EXISTS + ( + WITH gueltige_studienplaene AS ( + SELECT studienplan_id, semester + FROM lehre.tbl_studienplan + JOIN lehre.tbl_studienplan_semester USING(studienplan_id) + WHERE tbl_studienplan.aktiv + AND lehre.tbl_studienplan_semester.studiensemester_kurzbz = ? + ) + SELECT 1 + FROM lehre.tbl_studienplan_lehrveranstaltung + WHERE tbl_studienplan_lehrveranstaltung.studienplan_id IN (SELECT studienplan_id FROM gueltige_studienplaene) + AND tbl_studienplan_lehrveranstaltung.semester IN + (SELECT semester FROM gueltige_studienplaene + WHERE gueltige_studienplaene.studienplan_id = tbl_studienplan_lehrveranstaltung.studienplan_id) + AND tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id = lv.lehrveranstaltung_id + AND tbl_studienplan_lehrveranstaltung.export + ) + OR EXISTS (SELECT 1 FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = lv.lehrveranstaltung_id AND studiensemester_kurzbz = ?) + ) + AND lv.incoming > 0 + AND lv.aktiv + AND (stg.typ IN ('b', 'm') OR stg.studiengang_kz = 10006)-- ECI Studiengang Campus International + ) lvs + ORDER BY studiengang_kuerzel, orgform_kurzbz, lv_bezeichnung, lehrform_kurzbz, lehrveranstaltung_id; + "; + + return $this->execQuery($query, $parametersarray); + } } diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index d3919d25e..cc551b600 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -805,18 +805,32 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1)) $neuenoten = 0; $studlist = "