Merge branch 'Sonstiges-Sprint-176/Anrechnungen_Bugfixes'

This commit is contained in:
Andreas Österreicher
2022-01-17 11:11:23 +01:00
6 changed files with 80 additions and 59 deletions
+29 -20
View File
@@ -188,7 +188,7 @@ class AnrechnungJob extends JOB_Controller
$studiengang_bezeichnung = $this->StudiengangModel->load($studiengang_kz)->retval[0]->stg_bezeichnung;
// Get STGL mail address
list ($to, $vorname) = self::_getSTGLMailAddress($studiengang_kz);
$stglMailReceiver_arr = self::_getSTGLMailAddress($studiengang_kz);
// Get HTML table with new Anrechnungen of that STG plus amount of them
list ($anrechnungen_amount, $anrechnungen_table) = self::_getSTGLMailDataTable($studiengang_kz, $anrechnungen);
@@ -199,22 +199,25 @@ class AnrechnungJob extends JOB_Controller
CIS_ROOT. 'cis/menu.php?content_id=&content='.
CIS_ROOT. index_page(). self::APPROVE_ANRECHNUNG_URI;
foreach ($stglMailReceiver_arr as $stgl)
{
// Prepare mail content
$body_fields = array(
'vorname' => $vorname,
'studiengang' => $studiengang_bezeichnung,
'anzahl' => $anrechnungen_amount,
'datentabelle' => $anrechnungen_table,
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
);
// Send mail
sendSanchoMail(
'AnrechnungAntragStellen',
$body_fields,
$to,
'Anerkennung nachgewiesener Kenntnisse: Neuer Antrag wurde gestellt'
);
$body_fields = array(
'vorname' => $stgl['vorname'],
'studiengang' => $studiengang_bezeichnung,
'anzahl' => $anrechnungen_amount,
'datentabelle' => $anrechnungen_table,
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
);
// Send mail
sendSanchoMail(
'AnrechnungAntragStellen',
$body_fields,
$stgl['to'],
'Anerkennung nachgewiesener Kenntnisse: Neuer Antrag wurde gestellt'
);
}
}
$this->logInfo('SUCCEDED: Sending emails to STGL about yesterdays new Anrechnungen succeded.');
@@ -342,15 +345,21 @@ html;
// Get STGL mail address
private function _getSTGLMailAddress($studiengang_kz)
{
$stglMailAdress_arr = array();
$result = $this->StudiengangModel->getLeitung($studiengang_kz);
// Get STGL mail address
if (hasData($result))
{
return array(
$result->retval[0]->uid. '@'. DOMAIN,
$result->retval[0]->vorname
);
foreach (getData($result) as $stgl)
{
$stglMailAdress_arr[]= array(
'to' => $stgl->uid. '@'. DOMAIN,
'vorname' => $stgl->vorname
);
}
return $stglMailAdress_arr;
}
// If not available, get assistance mail address
else
@@ -412,28 +412,31 @@ class approveAnrechnungDetail extends Auth_Controller
{
$result = $this->AnrechnungModel->load($anrechnung_id);
if(!$result = getData($result)[0])
if(!hasData($result))
{
show_error('Failed loading Anrechnung');
}
$result = $this->LehrveranstaltungModel->loadWhere(array(
'lehrveranstaltung_id' => $result->lehrveranstaltung_id
'lehrveranstaltung_id' => getData($result)[0]->lehrveranstaltung_id
));
if(!$result = getData($result)[0])
if(!hasData($result))
{
show_error('Failed loading Lehrveranstaltung');
}
// Get STGL
$result = $this->StudiengangModel->getLeitung($result->studiengang_kz);
if($result = getData($result)[0])
$result = $this->StudiengangModel->getLeitung(getData($result)[0]->studiengang_kz);
if (hasData($result))
{
if ($result->uid == $this->_uid)
foreach (getData($result) as $stgl)
{
return;
if ($stgl->uid == $this->_uid)
{
return;
}
}
}
@@ -285,11 +285,14 @@ class approveAnrechnungUebersicht extends Auth_Controller
// Get STGL
$result = $this->StudiengangModel->getLeitung($result->studiengang_kz);
if($result = getData($result)[0])
if (hasData($result))
{
if ($result->uid == $this->_uid)
foreach (getData($result) as $stgl)
{
return;
if ($stgl->uid == $this->_uid)
{
return;
}
}
}
@@ -376,23 +379,24 @@ class approveAnrechnungUebersicht extends Auth_Controller
$this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel');
$result = $this->LehrveranstaltungModel->getLecturersByLv($anrechnung['studiensemester_kurzbz'], $anrechnung['lehrveranstaltung_id']);
if (!$result = getData($result))
if (!hasData($result))
{
show_error('Failed retrieving lectors of Lehrveranstaltung');
}
$lecturersByLv = getData($result);
// Check if lv has LV-Leitung
$key = array_search(true, array_column($result, 'lvleiter'));
$key = array_search(true, array_column($lecturersByLv, 'lvleiter'));
// If lv has LV-Leitung, keep only the one
if ($key !== false)
{
$lector_arr[]= $result[$key];
$lector_arr[]= $lecturersByLv[$key];
}
// ...otherwise keep all lectors
else
{
$lector_arr = array_merge($lector_arr, $result);
$lector_arr = array_merge($lector_arr, $lecturersByLv);
}
}
@@ -80,7 +80,7 @@ class requestAnrechnung extends Auth_Controller
$prestudent_id = getData($result)[0]->prestudent_id;
// Check if application deadline is expired
$is_expired = self::_checkAntragDeadline(
$is_expired = self::_isExpired(
$this->config->item('submit_application_start'),
$this->config->item('submit_application_end'),
$studiensemester_kurzbz
@@ -226,10 +226,10 @@ class requestAnrechnung extends Auth_Controller
* @param $start Start date for application submission.
* @param $ende End date for application submission.
* @param $studiensemester_kurzbz
* @return bool True if today is not during the start- and ending deadlines (= if is expired)
* @return bool True if deadline is expired
* @throws Exception
*/
private function _checkAntragDeadline($start, $ende, $studiensemester_kurzbz)
private function _isExpired($start, $ende, $studiensemester_kurzbz)
{
$this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel');
@@ -253,8 +253,8 @@ class requestAnrechnung extends Auth_Controller
$start = new DateTime($start);
$ende = new DateTime($ende);
// True if today is not during the start- and ending deadlines (= if is expired)
return ($today <= $start || $today >= $ende);
// True if expired
return ($today < $start || $today > $ende);
}
/**
@@ -324,8 +324,8 @@ class requestAnrechnung extends Auth_Controller
private function _LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id)
{
// Get Note of Lehrveranstaltung
$this->load->model('education/Lvgesamtnote_model', 'LvgesamtnoteModel');
$result = $this->LvgesamtnoteModel->load(array(
$this->load->model('education/Zeugnisnote_model', 'ZeugnisnoteModel');
$result = $this->ZeugnisnoteModel->load(array(
'student_uid' => $this->_uid,
'studiensemester_kurzbz' => $studiensemester_kurzbz,
'lehrveranstaltung_id' => $lehrveranstaltung_id
+18 -13
View File
@@ -4758,21 +4758,24 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants
// Add column dms_id, studiensemester_kurzbz, anmerkung_student und empfehlung_anrechnung
// Change genehmigt_von and begruendung_id to be NULLABLE
if(!$result = @$db->db_query("SELECT dms_id FROM lehre.tbl_anrechnung"))
if(!$result = @$db->db_query("SELECT dms_id FROM lehre.tbl_anrechnung LIMIT 1"))
{
$qry = "
ALTER TABLE lehre.tbl_anrechnung ADD COLUMN dms_id bigint;
ALTER TABLE lehre.tbl_anrechnung ADD COLUMN studiensemester_kurzbz varchar(6);
ALTER TABLE lehre.tbl_anrechnung ADD COLUMN anmerkung_student text;
ALTER TABLE lehre.tbl_anrechnung ADD COLUMN empfehlung_anrechnung boolean;
if($db->db_num_rows($result) == 0)
{
$qry = "
ALTER TABLE lehre.tbl_anrechnung ADD COLUMN dms_id bigint;
ALTER TABLE lehre.tbl_anrechnung ADD COLUMN studiensemester_kurzbz varchar(6);
ALTER TABLE lehre.tbl_anrechnung ADD COLUMN anmerkung_student text;
ALTER TABLE lehre.tbl_anrechnung ADD COLUMN empfehlung_anrechnung boolean;
ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_dms FOREIGN KEY (dms_id) REFERENCES campus.tbl_dms(dms_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_dms FOREIGN KEY (dms_id) REFERENCES campus.tbl_dms(dms_id) ON DELETE RESTRICT ON UPDATE CASCADE;
ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN genehmigt_von DROP NOT NULL;
ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN begruendung_id DROP NOT NULL;
ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN insertamum SET DEFAULT NOW();
";
ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN genehmigt_von DROP NOT NULL;
ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN begruendung_id DROP NOT NULL;
ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN insertamum SET DEFAULT NOW();
";
}
if(!$db->db_query($qry))
@@ -5821,7 +5824,9 @@ $tabellen=array(
"lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","uhrzeit","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note","protokoll","endezeit","pruefungsantritt_kurzbz","freigabedatum"),
"lehre.tbl_abschlusspruefung_antritt" => array("pruefungsantritt_kurzbz","bezeichnung","bezeichnung_english","sort"),
"lehre.tbl_akadgrad" => array("akadgrad_id","akadgrad_kurzbz","studiengang_kz","titel","geschlecht"),
"lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id"),
"lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id", "dms_id", "studiensemester_kurzbz", "anmerkung_student", "empfehlung_anrechnung"),
"lehre.tbl_anrechnungstatus" => array("status_kurzbz", "bezeichnung_mehrsprachig"),
"lehre.tbl_anrechnung_anrechnungstatus" => array("anrechnungstatus_id", "anrechnung_id", "status_kurzbz", "datum", "insertamum", "insertvon"),
"lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"),
"lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung","aktiv"),
"lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"),
+2 -2
View File
@@ -1562,13 +1562,13 @@ $phrases = array(
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Benotung der Lehrveranstaltung',
'text' => ' Lehrveranstaltung bereits benotet',
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => 'Grading of the course',
'text' => 'Course already graded',
'description' => '',
'insertvon' => 'system'
)