diff --git a/application/controllers/jobs/AnrechnungJob.php b/application/controllers/jobs/AnrechnungJob.php
index 7aae80d54..5784830b6 100644
--- a/application/controllers/jobs/AnrechnungJob.php
+++ b/application/controllers/jobs/AnrechnungJob.php
@@ -37,6 +37,9 @@ class AnrechnungJob extends JOB_Controller
$this->load->helper('hlp_sancho_helper');
$this->load->library('AnrechnungLib');
+
+ // Load configs
+ $this->load->config('anrechnung');
}
/**
@@ -213,7 +216,7 @@ class AnrechnungJob extends JOB_Controller
'datentabelle' => $anrechnungen_table,
'link' => anchor($url, 'Anrechnungsanträge Übersicht')
);
-
+
// Send mail
sendSanchoMail(
'AnrechnungAntragStellen',
@@ -227,6 +230,82 @@ class AnrechnungJob extends JOB_Controller
$this->logInfo('SUCCEDED: Sending emails to STGL about yesterdays new Anrechnungen succeded.');
}
+ // Send Sancho mail to LV-Leitung (fallback Lectors) that were requested for recommendation yesterday.
+ public function sendMailRecommendationRequests(){
+
+ $this->logInfo('Start AnrechnungJob sendMailRecommendationRequests to inform lecturers about yesterdays requests for recommendation.');
+
+ // Get Anrechnungen, für die gestern eine Empfehlung angefragt worden ist
+ $this->AnrechnungModel->addSelect('astat.anrechnung_id, astat.datum, astat.insertamum');
+ $this->AnrechnungModel->addDistinct('astat.anrechnung_id');
+ $this->AnrechnungModel->addJoin('lehre.tbl_anrechnung_anrechnungstatus astat', 'anrechnung_id');
+
+ $result = $this->AnrechnungModel->loadWhere('
+ studiensemester_kurzbz = (SELECT studiensemester_kurzbz FROM tbl_studiensemester WHERE now()::date BETWEEN start AND ende)
+ AND genehmigt_von IS NULL
+ AND empfehlung_anrechnung IS NULL
+ AND status_kurzbz = '. $this->db->escape(self::ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR) .' -- in Bearbeitung durch Lektor
+ AND NOW()::date = (astat.datum + interval \'1 day\') -- nur gestrige Empfehlungsanfrage
+ ORDER BY astat.anrechnung_id, astat.datum DESC, astat.insertamum DESC -- nur letzten status dabei prüfen
+ ');
+
+ // Exit, wenn es gestern keine Empfehlungsanfragen gab
+ if (!hasData($result))
+ {
+ $this->logInfo('End AnrechnungJob sendMailRecommendationRequests, because no recommendations were requested yesterday.');
+ exit;
+ }
+
+ $anrechnung_id_arr = array_column(getData($result), 'anrechnung_id');
+
+ $arr_lvLector_arr = array();
+ foreach ($anrechnung_id_arr as $anrechnung_id)
+ {
+ // Get full name of Fachbereichsleitung or LV Leitung.
+ if($this->config->item('fbl') === TRUE)
+ {
+ $arr_lvLector_arr[] = $this->anrechnunglib->getLeitungOfLvOe($anrechnung_id);
+ }
+ else
+ {
+ $arr_lvLector_arr[] = $this->anrechnunglib->getLectors($anrechnung_id); // Returns LV Leitung. If not present, then all lectors of LV.
+ }
+ }
+
+ // Unique lector array to send only one mail per lector
+ $arr_lvLector_arr = array_unique($arr_lvLector_arr, SORT_REGULAR);
+
+ // Link to 'Anrechnungen prüfen' dashboard
+ $url =
+ CIS_ROOT. 'cis/index.php?menu='.
+ CIS_ROOT. 'cis/menu.php?content_id=&content='.
+ CIS_ROOT. index_page(). self::REVIEW_ANRECHNUNG_URI;
+
+ foreach ($arr_lvLector_arr as $lvLector_arr)
+ {
+ foreach ($lvLector_arr as $lector)
+ {
+ // Prepare mail content
+ $fields = array(
+ 'vorname' => $lector->vorname,
+ 'stgl_name' => 'Die Studiengangsleitung',
+ 'link' => anchor($url, 'Anrechnungsanträge Übersicht')
+ );
+
+ // Send mail
+ sendSanchoMail(
+ 'AnrechnungEmpfehlungAnfordern',
+ $fields,
+ $lector->uid. '@'. DOMAIN,
+ 'Deine Empfehlung wird benötigt zur Anerkennung nachgewiesener Kenntnisse'
+ );
+ }
+ }
+
+ $this->logInfo('SUCCEDED AnrechnungJob sendMailRecommendationRequests');
+
+ }
+
/**
* Send Sancho mail to students, whose Anrechnungen were approved 24 hours ago.
*/
@@ -308,7 +387,7 @@ class AnrechnungJob extends JOB_Controller
$db = new DB_Model();
$result = $db->execReadOnlyQuery($qry);
-
+
// Exit if there are no rejected Anrechnungen
if (!hasData($result))
{
@@ -361,9 +440,9 @@ html;
$result = $this->AnrechnungModel->loadWhere('
studiensemester_kurzbz = (
- SELECT studiensemester_kurzbz FROM tbl_studiensemester WHERE now()::date BETWEEN start AND ende)
+ SELECT studiensemester_kurzbz FROM tbl_studiensemester WHERE now()::date BETWEEN start AND ende
)
- AND genehmigt_von IS NULL
+ AND genehmigt_von IS NULL
AND empfehlung_anrechnung IS NULL
AND status_kurzbz = '. $this->db->escape(self::ANRECHNUNGSTATUS_PROGRESSED_BY_LEKTOR) .' -- in Bearbeitung durch Lektor
AND NOW()::date = (astat.datum + interval \'1 week\') -- eine Woche nach Empfehlungsanfrage
@@ -376,7 +455,7 @@ html;
$this->logInfo('End AnrechnungJob sendMailRemindRecommendation, because no recommendations to be done.');
exit;
}
-
+
$anrechnung_id_arr = array_column(getData($result), 'anrechnung_id');
$arr_lvLector_arr = array();
@@ -435,7 +514,7 @@ html;
'vorname' => $stgl->vorname
);
}
-
+
return $stglMailAdress_arr;
}
// If not available, get assistance mail address
diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php
index 8f71dc8d0..3a62ff7d9 100644
--- a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php
+++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php
@@ -242,7 +242,7 @@ class approveAnrechnungDetail extends Auth_Controller
$empfehlungsanfrage_an = !isEmptyArray($result) ? implode(', ', array_column($result, 'fullname')) : '';
// Request Recommendation
- if($this->anrechnunglib->requestRecommendation($anrechnung_id))
+ if ($this->anrechnunglib->requestRecommendation($anrechnung_id))
{
$retval[]= array(
'anrechnung_id' => $anrechnung_id,
@@ -254,31 +254,23 @@ class approveAnrechnungDetail extends Auth_Controller
);
}
- /**
- * Send mails to lectors
- * NOTE: mails are sent at the end to ensure sending only ONE mail to each LV-Leitung or lector
- * even if they are required for more recommendations
- * */
- if (!isEmptyArray($retval))
- {
- if ($this->config->item('send_mail') === TRUE)
- {
- $this->_sendSanchoMailToLectors($anrechnung_id);
- }
-
- // Output json to ajax
- return $this->outputJsonSuccess($retval);
- }
-
// Output json to ajax
+ if ($empfehlungsanfrage_an == '')
+ {
+ $this->terminateWithJsonError(
+ "Empfehlung wurde nicht angefordert,\nDer LV sind keine LektorInnen zugeteilt."
+ );
+ }
+
if (isEmptyArray($retval))
{
- $this->terminateWithJsonError(
- "Empfehlung wurde nicht angefordert,\nDer LV sind keine LektorInnen zugeteilt."
- );
+ $this->terminateWithJsonError("Empfehlung wurde nicht angefordert");
}
-
- $this->terminateWithJsonError($this->p->t('ui', 'errorNichtAusgefuehrt'));
+ else
+ {
+ // Output json to ajax
+ return $this->outputJsonSuccess($retval);
+ }
}
/**
diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php
index f13814e66..b5a44b8f6 100644
--- a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php
+++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php
@@ -249,19 +249,6 @@ class approveAnrechnungUebersicht extends Auth_Controller
}
}
- /**
- * Send mails
- * NOTE: mails are sent at the end to ensure sending only ONE mail to each LV-Leitung or lector
- * even if they are required for more recommendations
- * */
- if (!isEmptyArray($retval))
- {
- if ($this->config->item('send_mail') === TRUE)
- {
- $this->_sendSanchoMail($retval);
- }
- }
-
// Output json to ajax
if (isEmptyArray($retval))
{
@@ -273,7 +260,7 @@ class approveAnrechnungUebersicht extends Auth_Controller
$this->terminateWithJsonError('Es wurden keine Empfehlungen angefordert');
}
- return $this->outputJsonSuccess($retval);
+ $this->outputJsonSuccess($retval);
}
/**
diff --git a/application/controllers/lehre/anrechnung/RequestAnrechnung.php b/application/controllers/lehre/anrechnung/RequestAnrechnung.php
index e9059720b..1922bacda 100644
--- a/application/controllers/lehre/anrechnung/RequestAnrechnung.php
+++ b/application/controllers/lehre/anrechnung/RequestAnrechnung.php
@@ -111,6 +111,8 @@ class requestAnrechnung extends Auth_Controller
$lehrveranstaltung_id = $this->input->post('lv_id');
$studiensemester_kurzbz = $this->input->post('studiensemester');
$bestaetigung = $this->input->post('bestaetigung');
+ $begruendung_ects = $this->input->post('begruendung_ects');
+ $begruendung_lvinhalt = $this->input->post('begruendung_lvinhalt');
// Validate data
if (empty($_FILES['uploadfile']['name']))
@@ -121,7 +123,9 @@ class requestAnrechnung extends Auth_Controller
if (isEmptyString($begruendung_id) ||
isEmptyString($anmerkung) ||
isEmptyString($lehrveranstaltung_id) ||
- isEmptyString($studiensemester_kurzbz))
+ isEmptyString($studiensemester_kurzbz) ||
+ isEmptyString($begruendung_ects) ||
+ isEmptyString($begruendung_lvinhalt))
{
return $this->outputJsonError($this->p->t('ui', 'errorFelderFehlen'));
}
@@ -172,7 +176,9 @@ class requestAnrechnung extends Auth_Controller
$lehrveranstaltung_id,
$begruendung_id,
$lastInsert_dms_id,
- $anmerkung
+ $anmerkung,
+ $begruendung_ects,
+ $begruendung_lvinhalt
);
if (isError($result))
diff --git a/application/libraries/AnrechnungLib.php b/application/libraries/AnrechnungLib.php
index d8c4b1fd3..8ee1891b5 100644
--- a/application/libraries/AnrechnungLib.php
+++ b/application/libraries/AnrechnungLib.php
@@ -174,6 +174,8 @@ class AnrechnungLib
$anrechnung_data->insertvon = '';
$anrechnung_data->studiensemester_kurzbz = '';
$anrechnung_data->empfehlung = '';
+ $anrechnung_data->begruendung_ects = '';
+ $anrechnung_data->begruendung_lvinhalt = '';
$anrechnung_data->status_kurzbz = '';
$anrechnung_data->status = getUserLanguage() == 'German' ? 'neu' : 'new';
$anrechnung_data->dokumentname = '';
@@ -894,6 +896,8 @@ class AnrechnungLib
$anrechnung_data->insertvon= $anrechnung->insertvon;
$anrechnung_data->studiensemester_kurzbz= $anrechnung->studiensemester_kurzbz;
$anrechnung_data->empfehlung= $anrechnung->empfehlung_anrechnung;
+ $anrechnung_data->begruendung_ects = $anrechnung->begruendung_ects;
+ $anrechnung_data->begruendung_lvinhalt = $anrechnung->begruendung_lvinhalt;
// Get last status_kurzbz
$result = $this->ci->AnrechnungModel->getLastAnrechnungstatus($anrechnung->anrechnung_id);
diff --git a/application/libraries/MailLib.php b/application/libraries/MailLib.php
index dbbc22f08..60dd52342 100644
--- a/application/libraries/MailLib.php
+++ b/application/libraries/MailLib.php
@@ -182,6 +182,7 @@ class MailLib
{
if ($this->sended == $this->email_number_per_time_range)
{
+ $this->sended = 0;
sleep($this->email_time_range); // Wait!!!
}
}
diff --git a/application/models/education/Anrechnung_model.php b/application/models/education/Anrechnung_model.php
index ebecf4118..cbfdb6607 100644
--- a/application/models/education/Anrechnung_model.php
+++ b/application/models/education/Anrechnung_model.php
@@ -30,7 +30,7 @@ class Anrechnung_model extends DB_Model
*/
public function createAnrechnungsantrag(
$prestudent_id, $studiensemester_kurzbz, $lehrveranstaltung_id,
- $begruendung_id, $dms_id, $anmerkung_student = null
+ $begruendung_id, $dms_id, $anmerkung_student = null, $begruendung_ects = null, $begruendung_lvinhalt = null
)
{
// Start DB transaction
@@ -44,6 +44,8 @@ class Anrechnung_model extends DB_Model
'dms_id' => $dms_id,
'studiensemester_kurzbz' => $studiensemester_kurzbz,
'anmerkung_student' => $anmerkung_student,
+ 'begruendung_ects' => $begruendung_ects,
+ 'begruendung_lvinhalt' => $begruendung_lvinhalt,
'insertvon' => $this->_uid
));
diff --git a/application/views/lehre/anrechnung/approveAnrechnungDetail.php b/application/views/lehre/anrechnung/approveAnrechnungDetail.php
index 87b9d53cc..0970b6edd 100644
--- a/application/views/lehre/anrechnung/approveAnrechnungDetail.php
+++ b/application/views/lehre/anrechnung/approveAnrechnungDetail.php
@@ -92,85 +92,93 @@ $this->load->view(
-
+
- p->t('person', 'studentIn')); ?>
+ p->t('person', 'studentIn')); ?>
vorname . ' ' . $antragData->nachname; ?>
- p->t('person', 'personenkennzeichen'); ?>
+ p->t('person', 'personenkennzeichen'); ?>
matrikelnr ?>
- p->t('lehre', 'studiensemester')); ?>
+ p->t('lehre', 'studiensemester')); ?>
studiensemester_kurzbz ?>
- p->t('lehre', 'studiengang')); ?>
+ p->t('lehre', 'studiengang')); ?>
stg_bezeichnung ?>
- p->t('lehre', 'lehrveranstaltung'); ?>
+ p->t('lehre', 'lehrveranstaltung'); ?>
lv_bezeichnung ?>
-
-
-
-
-
-
-
-
-
- p->t('lehre', 'ects'); ?>
- ects ?>
-
-
- p->t('anrechnung', 'bisherAngerechneteEcts'); ?>
+ p->t('lehre', 'lektorInnen'); ?>
+
+ lektoren) - 1 ?>
+ lektoren as $key => $lektor): ?>
+ vorname . ' ' . $lektor->nachname;
+ echo $key === $len ? '' : ', ' ?>
+
+
+
+
+ p->t('lehre', 'ects'); ?>
+ ects ?>
+
+
+
+ p->t('anrechnung', 'bisherAngerechneteEcts'); ?>
-
+
Total: sumEctsSchulisch + $antragData->sumEctsBeruflich, 1) ?>
[Schulisch: sumEctsSchulisch ?> /
Beruflich: sumEctsBeruflich ?> ]
-
+
+
+
+
+
+
+
+
+
- p->t('lehre', 'lektorInnen'); ?>
-
- lektoren) - 1 ?>
- lektoren as $key => $lektor): ?>
- vorname . ' ' . $lektor->nachname;
- echo $key === $len ? '' : ', ' ?>
-
-
-
-
- p->t('global', 'zgv')); ?>
- zgv ?>
+ p->t('global', 'zgv')); ?>
+ zgv ?>
p->t('anrechnung', 'herkunftDerKenntnisse'); ?>
- anmerkung ?>
+ anmerkung ?>
p->t('anrechnung', 'nachweisdokumente'); ?>
-
+
dokumentname) ?>
p->t('global', 'begruendung'); ?>
- begruendung ?>
+ begruendung ?>
+
+
+ p->t('anrechnung', 'begruendungEctsLabel'); ?>
+ begruendung_ects ?>
+
+
+ p->t('anrechnung', 'begruendungLvinhaltLabel'); ?>
+ begruendung_lvinhalt ?>
diff --git a/application/views/lehre/anrechnung/requestAnrechnung.php b/application/views/lehre/anrechnung/requestAnrechnung.php
index cfd9058f5..18fd66a67 100644
--- a/application/views/lehre/anrechnung/requestAnrechnung.php
+++ b/application/views/lehre/anrechnung/requestAnrechnung.php
@@ -1,5 +1,8 @@
load->view(
'templates/FHC-Header',
@@ -197,6 +200,46 @@ $this->load->view(
+
+
+
+
+
+ p->t('anrechnung', 'begruendungEcts'); ?>
+
+
+
+
+
+
+ p->t('ui', 'maxZeichen'); ?> :
+
+
+
+
+
+
+
+
+
+ p->t('anrechnung', 'begruendungLvinhalt'); ?>
+
+
+
+
+
+
+ / p->t('ui', 'maxZeichen'); ?> :
+ p->t('ui', 'fehlendeMinZeichen'); ?> :
+
+
+
+
@@ -242,8 +285,8 @@ $this->load->view(
- p->t('ui', 'maxZeichen'); ?> :
+ maxlength="" required>anmerkung; ?>
+ p->t('ui', 'maxZeichen'); ?> :
diff --git a/application/views/lehre/anrechnung/requestAnrechnungImportant.php b/application/views/lehre/anrechnung/requestAnrechnungImportant.php
index d157b22c2..8cacb9c26 100644
--- a/application/views/lehre/anrechnung/requestAnrechnungImportant.php
+++ b/application/views/lehre/anrechnung/requestAnrechnungImportant.php
@@ -16,6 +16,23 @@
+
+
+
+
+
+ p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungBody'); ?>
+
+
+
diff --git a/application/views/lehre/anrechnung/reviewAnrechnungDetail.php b/application/views/lehre/anrechnung/reviewAnrechnungDetail.php
index 4c67c939a..08d23d8c4 100644
--- a/application/views/lehre/anrechnung/reviewAnrechnungDetail.php
+++ b/application/views/lehre/anrechnung/reviewAnrechnungDetail.php
@@ -84,49 +84,50 @@ $this->load->view(
-
+
- p->t('person', 'studentIn')); ?>
+ p->t('person', 'studentIn')); ?>
vorname . ' ' . $antragData->nachname; ?>
- p->t('person', 'personenkennzeichen'); ?>
+ p->t('person', 'personenkennzeichen'); ?>
matrikelnr ?>
- p->t('lehre', 'studiensemester')); ?>
+ p->t('lehre', 'studiensemester')); ?>
studiensemester_kurzbz ?>
- p->t('lehre', 'studiengang')); ?>
+ p->t('lehre', 'studiengang')); ?>
stg_bezeichnung ?>
- p->t('lehre', 'lehrveranstaltung'); ?>
+ p->t('lehre', 'lehrveranstaltung'); ?>
lv_bezeichnung ?>
-
-
-
-
-
-
-
- p->t('lehre', 'ects'); ?>
- ects ?>
-
-
- p->t('lehre', 'lektorInnen'); ?>
-
+
+ p->t('lehre', 'ects'); ?>
+ ects ?>
+
+
+ p->t('lehre', 'lektorInnen'); ?>
+
lektoren) - 1 ?>
lektoren as $key => $lektor): ?>
vorname . ' ' . $lektor->nachname;
echo $key === $len ? '' : ', ' ?>
-
-
+
+
+
+
+
+
+
+
+
p->t('global', 'zgv')); ?>
zgv ?>
@@ -142,6 +143,14 @@ $this->load->view(
target="_blank">dokumentname) ?>
+
+ p->t('anrechnung', 'begruendungEctsLabel'); ?>
+ begruendung_ects ?>
+
+
+ p->t('anrechnung', 'begruendungLvinhaltLabel'); ?>
+ begruendung_lvinhalt ?>
+
diff --git a/application/views/lehre/anrechnung/reviewAnrechnungInfo.php b/application/views/lehre/anrechnung/reviewAnrechnungInfo.php
index 4b899d4dc..7e658ffcb 100644
--- a/application/views/lehre/anrechnung/reviewAnrechnungInfo.php
+++ b/application/views/lehre/anrechnung/reviewAnrechnungInfo.php
@@ -15,6 +15,22 @@
+
+
+
+
+ p->t('anrechnung', 'requestAnrechnungInfoEctsBerechnungBody'); ?>
+
+
+
diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php
index 73d0e6fca..8337b7c36 100644
--- a/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php
+++ b/cis/private/lehre/benotungstool/lvgesamtnoteeintragen.php
@@ -98,9 +98,9 @@ if($stsem=='')
//$note = $_REQUEST["note"];
-if(!$rechte->isBerechtigt('admin',0) &&
- !$rechte->isBerechtigt('admin',$lv_obj->studiengang_kz) &&
- !$rechte->isBerechtigt('lehre',$lv_obj->studiengang_kz))
+if(!$rechte->isBerechtigt('admin', 0) &&
+ !$rechte->isBerechtigt('admin', $lv_obj->studiengang_kz) &&
+ !$rechte->isBerechtigt('lehre', $lv_obj->studiengang_kz))
{
$qry = "SELECT lehreinheit_id FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
@@ -117,11 +117,11 @@ if(!$rechte->isBerechtigt('admin',0) &&
}
}
-function savenote($db,$lvid, $student_uid, $note, $punkte=null)
+function savenote($db, $lvid, $student_uid, $note, $punkte = null)
{
global $stsem, $user, $p, $noten_anmerkung;
$jetzt = date("Y-m-d H:i:s");
- $punkte = str_replace(',','.',$punkte);
+ $punkte = str_replace(',', '.', $punkte);
//Ermitteln ob der Student diesem Kurs zugeteilt ist
$qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung WHERE uid=".$db->db_add_param($student_uid)." AND lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER);
if($result = $db->db_query($qry))
@@ -207,13 +207,12 @@ if (isset($_REQUEST["submit"]))
$note = $_REQUEST["note"];
$punkte = (isset($_REQUEST["punkte"])?$_REQUEST["punkte"]:'');
- $response = savenote($db,$lvid, $student_uid, $note, $punkte);
+ $response = savenote($db, $lvid, $student_uid, $note, $punkte);
echo $response;
}
else
{
-
- foreach ($_POST as $row=>$val)
+ foreach ($_POST as $row => $val)
{
if(mb_strstr(mb_strtolower($row), 'matrikelnr_'))
{
@@ -232,7 +231,7 @@ if (isset($_REQUEST["submit"]))
$response.="\nNote oder Punkte fehlen";
continue;
}
- $punkte=str_replace(',','.', $punkte);
+ $punkte=str_replace(',', '.', $punkte);
//check ob statt Matrikelnummer nicht bereits student_uid (Moodle Grade Import) vorliegt..
$student = new student();
@@ -241,7 +240,7 @@ if (isset($_REQUEST["submit"]))
//UID ermitteln
if(!$student_uid = $student->getUidFromMatrikelnummer($matrikelnummer))
{
- $response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht',array($matrikelnummer));
+ $response.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht', array($matrikelnummer));
continue;
}
}
@@ -268,7 +267,7 @@ if (isset($_REQUEST["submit"]))
}
}
- $val=savenote($db,$lvid, $student_uid, $note, $punkte);
+ $val=savenote($db, $lvid, $student_uid, $note, $punkte);
if($val!='neu' && $val!='update' && $val!='update_f')
$response.=$val;
}
diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php
index ddf3c54e4..6dce2b6ae 100644
--- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php
+++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php
@@ -20,33 +20,33 @@
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
* Manuela Thamer
*/
-require_once ('../../../../config/cis.config.inc.php');
-require_once ('../../../../config/global.config.inc.php');
-require_once ('../../../../include/functions.inc.php');
-require_once ('../../../../include/lehrveranstaltung.class.php');
-require_once ('../../../../include/studiengang.class.php');
-require_once ('../../../../include/studiensemester.class.php');
-require_once ('../../../../include/lehreinheit.class.php');
-require_once ('../../../../include/benutzerberechtigung.class.php');
-require_once ('../../../../include/uebung.class.php');
-require_once ('../../../../include/beispiel.class.php');
-require_once ('../../../../include/studentnote.class.php');
-require_once ('../../../../include/datum.class.php');
-require_once ('../../../../include/legesamtnote.class.php');
-require_once ('../../../../include/lvgesamtnote.class.php');
-require_once ('../../../../include/zeugnisnote.class.php');
-require_once ('../../../../include/pruefung.class.php');
-require_once ('../../../../include/person.class.php');
-require_once ('../../../../include/benutzer.class.php');
-require_once ('../../../../include/mitarbeiter.class.php');
-require_once ('../../../../include/mail.class.php');
-require_once ('../../../../include/phrasen.class.php');
-require_once ('../../../../include/note.class.php');
-require_once ('../../../../include/notenschluessel.class.php');
-require_once ('../../../../include/studienplan.class.php');
-require_once ('../../../../include/addon.class.php');
-require_once ('../../../../include/mobilitaet.class.php');
-require_once ('../../../../include/student.class.php');
+require_once('../../../../config/cis.config.inc.php');
+require_once('../../../../config/global.config.inc.php');
+require_once('../../../../include/functions.inc.php');
+require_once('../../../../include/lehrveranstaltung.class.php');
+require_once('../../../../include/studiengang.class.php');
+require_once('../../../../include/studiensemester.class.php');
+require_once('../../../../include/lehreinheit.class.php');
+require_once('../../../../include/benutzerberechtigung.class.php');
+require_once('../../../../include/uebung.class.php');
+require_once('../../../../include/beispiel.class.php');
+require_once('../../../../include/studentnote.class.php');
+require_once('../../../../include/datum.class.php');
+require_once('../../../../include/legesamtnote.class.php');
+require_once('../../../../include/lvgesamtnote.class.php');
+require_once('../../../../include/zeugnisnote.class.php');
+require_once('../../../../include/pruefung.class.php');
+require_once('../../../../include/person.class.php');
+require_once('../../../../include/benutzer.class.php');
+require_once('../../../../include/mitarbeiter.class.php');
+require_once('../../../../include/mail.class.php');
+require_once('../../../../include/phrasen.class.php');
+require_once('../../../../include/note.class.php');
+require_once('../../../../include/notenschluessel.class.php');
+require_once('../../../../include/studienplan.class.php');
+require_once('../../../../include/addon.class.php');
+require_once('../../../../include/mobilitaet.class.php');
+require_once('../../../../include/student.class.php');
$summe_stud = 0;
$summe_t2 = 0;
@@ -104,6 +104,152 @@ $sprachen->getAll(true);
$errormsg = '';
+// eingetragene lv-gesamtnoten freigeben
+if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
+{
+ // Passwort pruefen
+ if (checkldapuser($user, $_REQUEST['passwort']))
+ {
+ $jetzt = date("Y-m-d H:i:s");
+ $neuenoten = 0;
+
+ $studlist = "
+ ";
+
+ // entweder personenbezogene Daten einbinden
+ if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
+ {
+ $studlist .= "
+ " . $p->t('global/personenkz') . "
+ " . $p->t('global/studiengang') . "
+ " . $p->t('global/nachname') . "
+ " . $p->t('global/vorname') . "
+ ";
+
+ if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
+ {
+ $studlist .= "" . $p->t('benotungstool/punkte') . " \n";
+ }
+ $studlist .= "" . $p->t('benotungstool/note') . " \n";
+
+ $studlist .= "" . $p->t('benotungstool/bearbeitetvon') . " \n";
+ }
+ // oder anonymisiert nur die UIDs einbinden
+ else
+ {
+ $studlist .= "
+ " . $p->t('global/uid') . " \n
+ ";
+ }
+
+ // studentenquery
+ $qry_stud = "SELECT
+ DISTINCT uid, vorname, nachname, matrikelnr, kurzbzlang
+ FROM
+ campus.vw_student_lehrveranstaltung
+ JOIN campus.vw_student USING(uid)
+ JOIN public.tbl_studiengang ON campus.vw_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
+ WHERE
+ studiensemester_kurzbz = " . $db->db_add_param($stsem) . "
+ AND lehrveranstaltung_id = " . $db->db_add_param($lvid, FHC_INTEGER) . "
+ ORDER BY nachname, vorname ";
+ if ($result_stud = $db->db_query($qry_stud))
+ {
+ $i = 1;
+ while ($row_stud = $db->db_fetch_object($result_stud))
+ {
+ $lvgesamtnote = new lvgesamtnote();
+ if ($lvgesamtnote->load($lvid, $row_stud->uid, $stsem))
+ {
+ if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
+ {
+ $lvgesamtnote->freigabedatum = $jetzt;
+ $lvgesamtnote->freigabevon_uid = $user;
+ $lvgesamtnote->save();
+
+ if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
+ {
+ $studlist .= "" . trim($row_stud->matrikelnr) . " ";
+ $studlist .= "" . trim($row_stud->kurzbzlang) . " ";
+ $studlist .= "" . trim($row_stud->nachname) . " ";
+ $studlist .= "" . trim($row_stud->vorname) . " ";
+
+ if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
+ {
+ $studlist .= "";
+ if ($lvgesamtnote->punkte != '')
+ $studlist .= trim(number_format($lvgesamtnote->punkte, 2));
+ $studlist .= " \n";
+ }
+ $studlist .= "" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . " ";
+
+ $studlist .= "" . $lvgesamtnote->mitarbeiter_uid;
+ if ($lvgesamtnote->updatevon != '')
+ $studlist .= " (" . $lvgesamtnote->updatevon . ")";
+ $studlist .= " \n";
+ }
+ else
+ {
+ $studlist .= "" . trim($row_stud->uid) . " \n";
+ }
+
+ $neuenoten ++;
+ }
+ }
+ }
+ }
+
+ $studlist .= "
";
+
+ // mail an assistentin und den user selber verschicken
+ if ($neuenoten > 0)
+ {
+ $lv = new lehrveranstaltung($lvid);
+ $sg = new studiengang($lv->studiengang_kz);
+ $lektor_adresse = $user . "@" . DOMAIN;
+ $adressen = $sg->email . ", " . $user . "@" . DOMAIN;
+
+ $studienplan = new studienplan();
+ $studienplan->getStudienplanLehrveranstaltung($lvid, $stsem);
+ $studienplan_bezeichnung = '';
+ foreach ($studienplan->result as $row)
+ $studienplan_bezeichnung .= $row->bezeichnung . ' ';
+
+ $mit = new mitarbeiter();
+ $mit->load($user);
+ $name = $mit->anrede.' '.$mit->vorname.' '.$mit->nachname.' ('.$mit->kurzbz.')';
+
+ $betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung;
+ $mail = new mail($adressen, 'vilesci@' . DOMAIN, $betreff, '');
+ $htmlcontent = "
+
+ $name hat neue Noten für die Lehrveranstaltung\n\n
+ " . $sg->kuerzel . ' ' . $lv->semester . '.Semester
+ ' . $lv->bezeichnung . " " . $lv->orgform_kurzbz . " - " . $stsem . "
+ eingetragen.\n
+ Die Noten können jetzt ins Zeugnis übernommen werden.\n";
+
+ $htmlcontent .= $studlist;
+
+ $htmlcontent.= "
+ Anzahl der Noten:" . $neuenoten . "
+ " . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . "
+ ";
+ $mail->setHTMLContent($htmlcontent);
+ $mail->setReplyTo($lektor_adresse);
+ $mail->send();
+ }
+
+ http_response_code(303);
+ header('Location: ' . $_SERVER['REQUEST_URI']);
+ exit;
+ }
+ else
+ {
+ $errormsg = $p->t('gesamtnote/passwortFalsch');
+ }
+}
+
echo '
@@ -145,8 +291,8 @@ echo '
position:absolute;
top:100px;
left:300px;
- width:400px;
- height:200px;
+ min-width:450px;
+ min-height:200px;
background-color:#cccccc;
visibility:hidden;
border-style:solid;
@@ -190,11 +336,14 @@ foreach ($noten_obj->result as $row)
$noten_array[$row->note]['lehre'] = $row->lehre;
$noten_array[$row->note]['lkt_ueberschreibbar'] = $row->lkt_ueberschreibbar;
$noten_array[$row->note]['anmerkung'] = $row->anmerkung;
- foreach ($sprachen->result AS $s)
+ foreach ($sprachen->result as $s)
$noten_array[$row->note]['bezeichnung_mehrsprachig'][$s->sprache] = $row->bezeichnung_mehrsprachig[$s->sprache];
}
?>
+
+ const CIS_GESAMTNOTE_PUNKTE = ;
+
function getOffset(pos)
{
var x,y;
@@ -376,7 +525,7 @@ foreach ($noten_obj->result as $row)
var datum_test = datum.split(".");
if (datum_test[0].length != 2 || datum_test[1].length != 2 || datum_test[2].length!=4
|| isNaN(datum_test[2]) || datum_test[1]>12 || datum_test[1]<1 || datum_test[0]>31 || datum_test[0]<1)
- alert("Invalid Date Format: DD.MM.YYYY");
+ alert("Das Datum entspricht nicht dem Format TT.MM.JJJJ!");
else
{
var anlegendiv = document.getElementById("nachpruefung_div");
@@ -402,6 +551,7 @@ foreach ($noten_obj->result as $row)
url += '&typ='+typ;
url += '&'+ts;
+
$.ajax({
type:"GET",
url: url,
@@ -593,8 +743,8 @@ foreach ($noten_obj->result as $row)
str += "X ";
var anlegendiv = document.getElementById("nachpruefung_div");
var y = getOffset('y'); y = y+50; anlegendiv.style.top = y+"px";
- str += 't('benotungstool/importAnweisung');?>: ';
- str += ' ';
+ str += 't('benotungstool/importAnweisung');?>:
';
+ str += ' ';
str += " ' onclick='saveGradeBulk();'>";
str += " ";
anlegendiv.innerHTML = str;
@@ -602,6 +752,25 @@ foreach ($noten_obj->result as $row)
$('#noteimporttextarea').focus();
}
+ // ****
+ // * Oeffnet ein Fenster fuer den Import von Noten für die Nachprüfung aus dem Excel
+ // ****
+ function GradeImportNachp(termin)
+ {
+ var str = "";
+ anlegendiv.innerHTML = str;
+ anlegendiv.style.visibility = "visible";
+ $('#noteimporttextareaNachp').focus();
+ }
+
// Speichert die Noten ueber den Import
function saveGradeBulk()
{
@@ -633,33 +802,48 @@ foreach ($noten_obj->result as $row)
}
?>
+ var linenumber = 0;
for(row in rows)
{
- zeile = rows[row].split(" ");
-
-
-
- if (zeile[0]!='' && zeile[1]!='')
+ linenumber++;
+ if( rows[row] == '' )
{
- gradedata['matrikelnr_'+i]=zeile[0];
-
-
- i++;
+ //skip empty lines
+ continue;
}
+ zeile = rows[row].split(" ");
+
+ if( zeile.length < 2 )
+ {
+ alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ + 'Zu wenig Paramter - 2 erforderlich. '
+ + 'Die Zeile wurde uebersprungen.' + "\n\n";
+ continue;
+ }
+
+ if (CIS_GESAMTNOTE_PUNKTE == false)
+ {
+ // check for valid grades
+ if (validGrades.indexOf(zeile[1]) === -1)
+ {
+ alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ + "Die Note "+zeile[1]+" ist nicht zulaessig. "
+ + "Die Zeile wurde uebersprungen. \n\n";
+ continue;
+ }
+ }
+
+ gradedata['matrikelnr_'+i]=zeile[0];
+ if (CIS_GESAMTNOTE_PUNKTE)
+ {
+ gradedata['punkte_'+i]= zeile[1];
+ }
+ else
+ {
+ gradedata['note_'+i]= zeile[1];
+ }
+
+ i++;
}
if (alertMsg != "")
@@ -698,6 +882,142 @@ foreach ($noten_obj->result as $row)
}
}
+ // Speichert die Noten der Nachprüfung ueber den Import
+ function saveGradeBulkNachp(typ)
+ {
+ data = $('#noteimporttextareaNachp').val();
+ closeDiv();
+
+ //Reihen ermitteln
+ var rows = data.split("\n");
+ var i=0;
+ var params='';
+ alertMsg = '';
+
+ var gradedata = {};
+ var validGrades = '';
+
+ result as $row_note)
+ {
+ if ($row_note->lehre && $row_note->aktiv)
+ $gradesArray[] = '"' . $row_note->anmerkung . '"';
+ }
+ // Output JS variable with valid grades
+ echo 'var validGrades = [' . implode(',', $gradesArray) . '];';
+ }
+ ?>
+
+ var linenumber = 0;
+ for(row in rows)
+ {
+ linenumber++;
+ if( rows[row] == '' )
+ {
+ //skip empty lines
+ continue;
+ }
+ zeile = rows[row].split(" ");
+
+ if( zeile.length < 3 )
+ {
+ alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ + 'Zu wenig Paramter - 3 erforderlich. '
+ + 'Die Zeile wurde uebersprungen.' + "\n\n";
+ continue;
+ }
+
+ if( zeile[1] == '' && zeile[2] == '' )
+ {
+ // ignore lines just copied from excel
+ continue;
+ }
+
+ if( zeile[2] == '' )
+ {
+ alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ + "Die Note oder Punkte fehlen. "
+ + "Die Zeile wurde uebersprungen. \n\n";
+ continue;
+ }
+
+ if (CIS_GESAMTNOTE_PUNKTE == false)
+ {
+ // check for valid grades
+ if (validGrades.indexOf(zeile[2]) === -1)
+ {
+ alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ + "Die Note "+zeile[2]+" ist nicht zulaessig. "
+ + "Die Zeile wurde uebersprungen. \n\n";
+ continue;
+ }
+ }
+
+ if( !zeile[1].match(/[0-9]{2}\.[0-9]{2}\.[0-9]{4}/) )
+ {
+ alertMsg = alertMsg + "Zeile " + linenumber + ': '
+ + "Das Datum "+zeile[1]+" fehlt oder ist nicht zulaessig. "
+ + "Die Zeile wurde uebersprungen. \n\n";
+ continue;
+ }
+
+ gradedata['student_uid_'+i]=zeile[0];
+ gradedata['datumNachp_'+i]=zeile[1];
+ if (CIS_GESAMTNOTE_PUNKTE)
+ {
+ gradedata['punkte_'+i]= zeile[2];
+ }
+ else
+ {
+ gradedata['note_'+i]= zeile[2];
+ }
+ i++;
+ }
+
+
+ if (alertMsg != "")
+ alert(alertMsg);
+
+ if (i>0)
+ {
+
+ var jetzt = new Date();
+ var ts = jetzt.getTime();
+ var url= '';
+ url += '&sammel=1';
+ url += '&typ=' + typ;
+ url += '&submit=1&'+ts;
+ $.ajax({
+ type:"POST",
+ url: url,
+ data: gradedata,
+ success:function(result)
+ {
+ var resp = result;
+ if (resp!='')
+ {
+ alert(resp);
+ }
+ window.location.reload();
+ },
+ error:function(result)
+ {
+ alert('Request Nachprüfung fehlgeschlagen');
+ }
+ });
+
+ }
+ else
+ {
+ alert('t('benotungstool/hilfeImport');?>');
+ }
+ }
+
//-->
@@ -803,149 +1123,6 @@ if (defined('CIS_ANWESENHEITSLISTE_NOTENLISTE_ANZEIGEN') && CIS_ANWESENHEITSLIST
{
$hrefpath = "../notenliste.xls.php?stg=$stg_obj->studiengang_kz&lvid=$lvid&stsem=$stsem";
echo "" . $p->t('benotungstool/notenlisteImport') . " ";
-
-}
-
-// eingetragene lv-gesamtnoten freigeben
-if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1))
-{
- // Passwort pruefen
- if (checkldapuser($user, $_REQUEST['passwort']))
- {
- $jetzt = date("Y-m-d H:i:s");
- $neuenoten = 0;
-
- $studlist = "
- ";
-
- // entweder personenbezogene Daten einbinden
- if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
- {
- $studlist .= "
- " . $p->t('global/personenkz') . "
- " . $p->t('global/studiengang') . "
- " . $p->t('global/nachname') . "
- " . $p->t('global/vorname') . "
- ";
-
- if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
- {
- $studlist .= "" . $p->t('benotungstool/punkte') . " \n";
- }
- $studlist .= "" . $p->t('benotungstool/note') . " \n";
-
- $studlist .= "" . $p->t('benotungstool/bearbeitetvon') . " \n";
- }
- // oder anonymisiert nur die UIDs einbinden
- else
- {
- $studlist .= "
- " . $p->t('global/uid') . " \n
- ";
- }
-
- // studentenquery
- $qry_stud = "SELECT
- DISTINCT uid, vorname, nachname, matrikelnr, kurzbzlang
- FROM
- campus.vw_student_lehrveranstaltung
- JOIN campus.vw_student USING(uid)
- JOIN public.tbl_studiengang ON campus.vw_student.studiengang_kz = public.tbl_studiengang.studiengang_kz
- WHERE
- studiensemester_kurzbz = " . $db->db_add_param($stsem) . "
- AND lehrveranstaltung_id = " . $db->db_add_param($lvid, FHC_INTEGER) . "
- ORDER BY nachname, vorname ";
- if ($result_stud = $db->db_query($qry_stud))
- {
- $i = 1;
- while ($row_stud = $db->db_fetch_object($result_stud))
- {
- $lvgesamtnote = new lvgesamtnote();
- if ($lvgesamtnote->load($lvid, $row_stud->uid, $stsem))
- {
- if ($lvgesamtnote->benotungsdatum > $lvgesamtnote->freigabedatum)
- {
- $lvgesamtnote->freigabedatum = $jetzt;
- $lvgesamtnote->freigabevon_uid = $user;
- $lvgesamtnote->save();
-
- if (defined('CIS_GESAMTNOTE_FREIGABEMAIL_NOTE') && CIS_GESAMTNOTE_FREIGABEMAIL_NOTE)
- {
- $studlist .= "" . trim($row_stud->matrikelnr) . " ";
- $studlist .= "" . trim($row_stud->kurzbzlang) . " ";
- $studlist .= "" . trim($row_stud->nachname) . " ";
- $studlist .= "" . trim($row_stud->vorname) . " ";
-
- if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
- {
- $studlist .= "";
- if ($lvgesamtnote->punkte != '')
- $studlist .= trim(number_format($lvgesamtnote->punkte, 2));
- $studlist .= " \n";
- }
- $studlist .= "" . $noten_array[trim($lvgesamtnote->note)]['bezeichnung_mehrsprachig'][$sprache] . " ";
-
- $studlist .= "" . $lvgesamtnote->mitarbeiter_uid;
- if ($lvgesamtnote->updatevon != '')
- $studlist .= " (" . $lvgesamtnote->updatevon . ")";
- $studlist .= " \n";
- }
- else
- {
- $studlist .= "" . trim($row_stud->uid) . " \n";
- }
-
- $neuenoten ++;
- }
- }
- }
- }
-
- $studlist .= "
";
-
- // mail an assistentin und den user selber verschicken
- if ($neuenoten > 0)
- {
- $lv = new lehrveranstaltung($lvid);
- $sg = new studiengang($lv->studiengang_kz);
- $lektor_adresse = $user . "@" . DOMAIN;
- $adressen = $sg->email . ", " . $user . "@" . DOMAIN;
-
- $studienplan = new studienplan();
- $studienplan->getStudienplanLehrveranstaltung($lvid, $stsem);
- $studienplan_bezeichnung = '';
- foreach ($studienplan->result as $row)
- $studienplan_bezeichnung .= $row->bezeichnung . ' ';
-
- $mit = new mitarbeiter();
- $mit->load($user);
- $name = $mit->anrede.' '.$mit->vorname.' '.$mit->nachname.' ('.$mit->kurzbz.')';
-
- $betreff = 'Notenfreigabe ' . $lv->bezeichnung . ' ' . $lv->orgform_kurzbz . ' - ' . $studienplan_bezeichnung;
- $mail = new mail($adressen, 'no-reply@' . DOMAIN, $betreff, '');
- $htmlcontent = "
-
- $name hat neue Noten für die Lehrveranstaltung\n\n
- " . $sg->kuerzel . ' ' . $lv->semester . '.Semester
- ' . $lv->bezeichnung . " " . $lv->orgform_kurzbz . " - " . $stsem . "
- eingetragen.\n
- Die Noten können jetzt ins Zeugnis übernommen werden.\n";
-
- $htmlcontent .= $studlist;
-
- $htmlcontent.= "
- Anzahl der Noten: " . $neuenoten . "
- " . $p->t('abgabetool/mailVerschicktAn') . ": " . $adressen . "
- ";
- $mail->setHTMLContent($htmlcontent);
- $mail->setReplyTo($lektor_adresse);
- $mail->send();
- }
- }
- else
- {
- $errormsg = $p->t('gesamtnote/passwortFalsch');
- }
}
if (defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
@@ -1052,11 +1229,15 @@ $htmlstring .= "" . $p->t('benotungstool/punkte') . ' / ' . $p->t('benotungs
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
{
- $htmlstring .= " " . $p->t('benotungstool/nachpruefung') . " ";
+ $htmlstring .= " " . $p->t('benotungstool/nachpruefung') . "
+
+ ";
}
if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
{
- $htmlstring .= "" . $p->t('benotungstool/nachpruefung2') . " ";
+ $htmlstring .= " " . $p->t('benotungstool/nachpruefung2') . "
+
+ ";
}
if (defined('CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF') && CIS_GESAMTNOTE_PRUEFUNG_KOMMPRUEF)
{
@@ -1184,7 +1365,7 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
foreach ($addon_obj->result as $row)
{
if (file_exists('../../../../addons/' . $row->kurzbz . '/cis/grades.inc.php'))
- include ('../../../../addons/' . $row->kurzbz . '/cis/grades.inc.php');
+ include('../../../../addons/' . $row->kurzbz . '/cis/grades.inc.php');
}
}
}
@@ -1193,7 +1374,6 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
foreach ($grades as $uid => $data)
//Ausgabe Array
{
-
$htmlstring .= '
' . $db->convert_html_chars($uid) . '
@@ -1325,7 +1505,6 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG
// Punkte
if (CIS_GESAMTNOTE_PUNKTE)
{
-
$htmlstring .= '
checkformatDatum($datum, 'Y-m-d', true) OR die('Invalid date format');
-}
-else
- die('Fehlerhafte Parameteruebergabe');
-
-//Laden der Lehrveranstaltung
-$lv_obj = new lehrveranstaltung();
-if(!$lv_obj->load($lvid))
- die($lv_obj->errormsg);
-
-//Studiengang laden
-$stg_obj = new studiengang($lv_obj->studiengang_kz);
+ $lehreinheit_id_pr = $_GET['lehreinheit_id_pr'];
if(isset($_GET['stsem']))
$stsem = $_GET['stsem'];
else
$stsem = '';
-
-$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
-$uid = (isset($_GET['uid'])?$_GET['uid']:'');
-
//Studiensemester laden
$stsem_obj = new studiensemester();
if($stsem=='')
$stsem = $stsem_obj->getaktorNext();
-$student_uid = $_REQUEST["student_uid"];
-
-$note = $_REQUEST["note"];
-if(isset($_REQUEST['punkte']))
- $punkte = $_REQUEST['punkte'];
-else
- $punkte = '';
-
-$punkte = str_replace(',','.',$punkte);
-
-if($punkte!='')
+//Notenanmerkung für Eintragung von nichtnumerischen Noten wie en (entschuldigt), ue(unentschuldigt)
+$noten_anmerkung = array();
+$noten_arr = array();
+$note_obj = new note();
+$note_obj->getAll();
+foreach($note_obj->result as $row)
{
- // Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
- $notenschluessel = new notenschluessel();
- $note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
- if($note_pruef!=$note)
- {
- $note = $note_pruef;
- $note_dirty=true;
- }
+ $noten_anmerkung[$row->anmerkung] = $row->note;
+ $noten_arr[$row->note] = $row;
}
if(!isset($_GET['typ']))
@@ -122,22 +97,177 @@ if(!isset($_GET['typ']))
}
else
{
- if(in_array($_GET['typ'],array('Termin2','Termin3')))
+ if(in_array($_GET['typ'], array('Termin2', 'Termin3')))
$typ=$_GET['typ'];
else
die('Typ ist ungueltig');
}
-if($note=='')
- $note = 9;
-
-$old_note = $note;
-
-// lvgesamtnote für studenten speichern
-if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
+if (isset($_REQUEST['sammel']) && $_REQUEST["sammel"] == 1)
+{
+ $errorMatrnr = '';
+ $errorDatum = '';
+ $errorNachp = '';
+
+ foreach ($_POST as $row => $val)
+ {
+ if(mb_strstr(mb_strtolower($row), 'student_uid_'))
+ {
+ $id=mb_substr($row, mb_strlen('student_uid_'));
+
+ $student_uid = $_POST['student_uid_'.$id];
+ $note = null;
+ $punkte = null;
+ $datum = null;
+ $response = '';
+ if(isset($_POST['note_'.$id]))
+ $note = $_POST['note_'.$id];
+ elseif(isset($_POST['punkte_'.$id]))
+ $punkte = $_POST['punkte_'.$id];
+ else
+ {
+ $response.="\nNote oder Punkte fehlen";
+ continue;
+ }
+ $punkte=str_replace(',', '.', $punkte);
+ if($punkte!='')
+ {
+ // Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
+ $notenschluessel = new notenschluessel();
+ $note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
+ if($note_pruef!=$note)
+ {
+ $note = $note_pruef;
+ $note_dirty=true;
+ }
+ }
+
+ $datum = $_POST['datumNachp_'.$id];
+ //check Datumsformat
+ $checkedDatum = $datum;
+ $datum_obj = new datum();
+ if(!$datum = $datum_obj->checkformatDatum($datum, 'Y-m-d', true))
+ {
+ $errorDatum .="\n".$p->t('benotungstool/datumsformatUnzulaessig', array($checkedDatum));
+ continue;
+ }
+
+ //check ob Matrikelnummer anstelle der student_uid übergeben wurde
+ $student = new student();
+ if (!$student->checkIfValidStudentUID($student_uid))
+ {
+ $checkedMatrnr = $student_uid;
+ //UID ermitteln
+ if(!$student_uid = $student->getUidFromMatrikelnummer($student_uid))
+ {
+ $errorMatrnr.="\n".$p->t('benotungstool/studentMitMatrikelnummerExistiertNicht', array($checkedMatrnr));
+ continue;
+ }
+ }
+
+ //check ob eine Note vorhanden ist oder (intern) angerechnet wurde
+ $lvnote = new lvgesamtnote();
+ if (!$lvnote->load($lvid, $student_uid, $stsem))
+ {
+ $errorNachp.="\n".$p->t('benotungstool/NachpruefungNichtZulaessig', array($student_uid));
+ continue;
+ }
+
+ $lehreinheit_id = getLehreinheit($db, $lvid, $student_uid, $stsem);
+
+ if(isset($_POST['student_uid_'.$id]) && (isset($_POST['note_'.$id]) || isset($_POST['punkte_'.$id])) && isset($_POST['datumNachp_'.$id]))
+ {
+ if(!is_numeric($note))
+ {
+ if(isset($noten_anmerkung[$note]))
+ $note = $noten_anmerkung[$note];
+ }
+ $response = savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note, $punkte);
+ if($response!='neu' && $response!='update' && $response!='update_f')
+ {
+ echo $response;
+ }
+ }
+ else
+ {
+ echo "\n fehlende oder fehlerhafte Inputparameter";
+ }
+ }
+ }
+ echo $errorMatrnr . $errorDatum . $errorNachp;
+}
+else
+{
+ // Einzelupdate
+
+ if(isset($_GET['datum']))
+ {
+ $datum = $_GET['datum'];
+ $datum_obj = new datum();
+ $datum = $datum_obj->checkformatDatum($datum, 'Y-m-d', true) or die($p->t('benotungstool/datumsformatUnzulaessig', array($checkedDatum)));
+ }
+ $student_uid = $_REQUEST["student_uid"];
+
+ $note = $_REQUEST["note"];
+ if(isset($_REQUEST['punkte']))
+ $punkte = $_REQUEST['punkte'];
+ else
+ $punkte = '';
+
+ $punkte = str_replace(',', '.', $punkte);
+
+ if($punkte!='')
+ {
+ // Bei Punkteeingabe wird die Note nochmals geprueft und ggf korrigiert
+ $notenschluessel = new notenschluessel();
+ $note_pruef = $notenschluessel->getNote($punkte, $lvid, $stsem);
+ if($note_pruef!=$note)
+ {
+ $note = $note_pruef;
+ $note_dirty=true;
+ }
+ }
+
+ if($note=='')
+ $note = 9;
+
+ $old_note = $note;
+
+ //Laden der Lehrveranstaltung
+ $lv_obj = new lehrveranstaltung();
+ if(!$lv_obj->load($lvid))
+ die($lv_obj->errormsg);
+
+ //Studiengang laden
+ $stg_obj = new studiengang($lv_obj->studiengang_kz);
+
+ $uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:'');
+ $uid = (isset($_GET['uid'])?$_GET['uid']:'');
+
+ // lvgesamtnote für studenten speichern
+ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != ''))
+ {
+ // Die Pruefung muss einer Lehreinheit zugeordnet werden
+ // deshalb wird hier versucht eine passende Lehreinheit zu ermitteln.
+ $lehreinheit_id = getLehreinheit($db, $lvid, $student_uid, $stsem);
+
+ $response = savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note);
+ echo $response;
+ }
+ else
+ echo "Fehler beim Eintragen der Prüfungen";
+}
+
+/**
+ * Berechnet Lehreinheit auf Basis LV-Daten
+ * @param string $db Datenbankvariable
+ * @param string $student_uid student_uid
+ * @param int $lvid Lehrveranstaltungsid
+ * @param string $stsem Studiensemester im Format 'WSYYYY'
+ * @return String LehreinheitId
+ */
+function getLehreinheit($db, $lvid, $student_uid, $stsem)
{
- // Die Pruefung muss einer Lehreinheit zugeordnet werden
- // deshalb wird hier versucht eine passende Lehreinheit zu ermitteln.
$le_arr = array();
$qry_stud = "SELECT lehreinheit_id, lehrform_kurzbz
FROM
@@ -158,104 +288,159 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
}
}
- if (!in_array($lehreinheit_id,$le_arr))
+ //if (!in_array($lehreinheit_id,$le_arr))
$lehreinheit_id = $le_arr[0];
+ return $lehreinheit_id;
+}
+
+/**
+ * Prüfung speichern
+ */
+function savePruefung($lvid, $student_uid, $stsem, $lehreinheit_id, $datum, $typ, $note, $punkte = null)
+{
$jetzt = date("Y-m-d H:i:s");
+ global $user; //, $note, $punkte, $datum;
- $pr = new Pruefung();
-
- // Wenn eine Pruefung angelegt wird, wird zuerst eine Pruefung mit 1. Termin angelegt
- // und dort die Zeugnisnote gespeichert
- if($pr->getPruefungen($student_uid, "Termin1", $lvid, $stsem))
+ if ($typ == "Termin2")
{
- if ($pr->result)
+ $pr = new Pruefung();
+ // Wenn eine Pruefung angelegt wird, wird zuerst eine Pruefung mit 1. Termin angelegt
+ // und dort die Zeugnisnote gespeichert
+ if($pr->getPruefungen($student_uid, "Termin1", $lvid, $stsem))
{
- $termin1 = 1;
- }
- else
- {
- $lvnote = new lvgesamtnote();
- if ($lvnote->load($lvid, $student_uid, $stsem))
+ if ($pr->result)
{
- $pr_note = $lvnote->note;
- $pr_punkte = $lvnote->punkte;
- $benotungsdatum = $lvnote->benotungsdatum;
+ $termin1 = 1;
}
else
{
- $pr_note = 9;
- $pr_punkte = '';
- $benotungsdatum = $jetzt;
+ $lvnote = new lvgesamtnote();
+ if ($lvnote->load($lvid, $student_uid, $stsem))
+ {
+ $pr_note = $lvnote->note;
+ $pr_punkte = $lvnote->punkte;
+ $benotungsdatum = $lvnote->benotungsdatum;
+ }
+ else
+ {
+ $pr_note = 9;
+ $pr_punkte = '';
+ $benotungsdatum = $jetzt;
+ }
+
+ $pr_1 = new Pruefung();
+ $pr_1->lehreinheit_id = $lehreinheit_id;
+ $pr_1->student_uid = $student_uid;
+ $pr_1->mitarbeiter_uid = $user;
+ $pr_1->note = $pr_note;
+ $pr_1->punkte = $pr_punkte;
+ $pr_1->pruefungstyp_kurzbz = "Termin1";
+ $pr_1->datum = $benotungsdatum;
+ $pr_1->anmerkung = "";
+ $pr_1->insertamum = $jetzt;
+ $pr_1->insertvon = $user;
+ $pr_1->updateamum = null;
+ $pr_1->updatevon = null;
+ $pr_1->ext_id = null;
+ $pr_1->new = true;
+ $pr_1->save();
+ $response = "neu T1";
}
- $pr_1 = new Pruefung();
- $pr_1->lehreinheit_id = $lehreinheit_id;
- $pr_1->student_uid = $student_uid;
- $pr_1->mitarbeiter_uid = $user;
- $pr_1->note = $pr_note;
- $pr_1->punkte = $pr_punkte;
- $pr_1->pruefungstyp_kurzbz = "Termin1";
- $pr_1->datum = $benotungsdatum;
- $pr_1->anmerkung = "";
- $pr_1->insertamum = $jetzt;
- $pr_1->insertvon = $user;
- $pr_1->updateamum = null;
- $pr_1->updatevon = null;
- $pr_1->ext_id = null;
- $pr_1->new = true;
- $pr_1->save();
+ $prTermin2 = new Pruefung();
+ $pr_2 = new Pruefung();
+
+ // Die Pruefung wird als Termin2 eingetragen
+ if ($prTermin2->getPruefungen($student_uid, 'Termin2', $lvid, $stsem))
+ {
+ if ($prTermin2->result)
+ {
+ $pr_2->load($prTermin2->result[0]->pruefung_id);
+ $pr_2->new = null;
+ $pr_2->updateamum = $jetzt;
+ $pr_2->updatevon = $user;
+ $old_note = $pr_2->note;
+ $pr_2->note = $note;
+ $pr_2->punkte = $punkte;
+ $pr_2->datum = $datum;
+ $pr_2->anmerkung = "";
+ $response = "update T2";
+ }
+ else
+ {
+ $pr_2->lehreinheit_id = $lehreinheit_id;
+ $pr_2->student_uid = $student_uid;
+ $pr_2->mitarbeiter_uid = $user;
+ $pr_2->note = $note;
+ $pr_2->punkte = $punkte;
+ $pr_2->pruefungstyp_kurzbz = $typ;
+ $pr_2->datum = $datum;
+ $pr_2->anmerkung = "";
+ $pr_2->insertamum = $jetzt;
+ $pr_2->insertvon = $user;
+ $pr_2->updateamum = null;
+ $pr_2->updatevon = null;
+ $pr_2->ext_id = null;
+ $pr_2->new = true;
+ $old_note = -1;
+ $response = "new T2";
+ }
+ $pr_2->save();
+ }
}
}
-
-
- $prTermin2 = new Pruefung();
- $pr_2 = new Pruefung();
-
- // Die Pruefung wird als Termin2 eingetragen
- if ($prTermin2->getPruefungen($student_uid, $typ, $lvid, $stsem))
+ elseif ($typ == "Termin3")
{
- if ($prTermin2->result)
+ $prTermin3 = new Pruefung();
+ $pr_3 = new Pruefung();
+
+ if ($prTermin3->getPruefungen($student_uid, 'Termin3', $lvid, $stsem))
{
- $pr_2->load($prTermin2->result[0]->pruefung_id);
- $pr_2->new = null;
- $pr_2->updateamum = $jetzt;
- $pr_2->updatevon = $user;
- $old_note = $pr_2->note;
- $pr_2->note = $note;
- $pr_2->punkte = $punkte;
- $pr_2->datum = $datum;
- $pr_2->anmerkung = "";
+ if ($prTermin3->result)
+ {
+ $pr_3->load($prTermin3->result[0]->pruefung_id);
+ $pr_3->new = null;
+ $pr_3->updateamum = $jetzt;
+ $pr_3->updatevon = $user;
+ $old_note = $pr_3->note;
+ $pr_3->note = $note;
+ $pr_3->punkte = $punkte;
+ $pr_3->datum = $datum;
+ $pr_3->anmerkung = "";
+ $response = "update T3";
+ }
+ else
+ {
+ $pr_3->lehreinheit_id = $lehreinheit_id;
+ $pr_3->student_uid = $student_uid;
+ $pr_3->mitarbeiter_uid = $user;
+ $pr_3->note = $note;
+ $pr_3->punkte = $punkte;
+ $pr_3->pruefungstyp_kurzbz = $typ;
+ $pr_3->datum = $datum;
+ $pr_3->anmerkung = "";
+ $pr_3->insertamum = $jetzt;
+ $pr_3->insertvon = $user;
+ $pr_3->updateamum = null;
+ $pr_3->updatevon = null;
+ $pr_3->ext_id = null;
+ $pr_3->new = true;
+ $old_note = -1;
+ $response = "new T3";
+ }
+ $pr_3->save();
}
- else
- {
- $pr_2->lehreinheit_id = $lehreinheit_id;
- $pr_2->student_uid = $student_uid;
- $pr_2->mitarbeiter_uid = $user;
- $pr_2->note = $note;
- $pr_2->punkte = $punkte;
- $pr_2->pruefungstyp_kurzbz = $typ;
- $pr_2->datum = $datum;
- $pr_2->anmerkung = "";
- $pr_2->insertamum = $jetzt;
- $pr_2->insertvon = $user;
- $pr_2->updateamum = null;
- $pr_2->updatevon = null;
- $pr_2->ext_id = null;
- $pr_2->new = true;
- $old_note = -1;
- }
- $pr_2->save();
+ }
+ else
+ {
+ $response = "fehlende oder fehlerhafte Inputparameter";
}
-
- // Wenn eine Pruefung eingetragen wird, wird danach die LV-Note korrigiert
- $jetzt = date("Y-m-d H:i:s");
-
- $lvid = $_REQUEST["lvid"];
+ //Gesamtnote updaten
$lvgesamtnote = new lvgesamtnote();
- if (!$lvgesamtnote->load($lvid, $student_uid, $stsem))
- {
+ if (!$lvgesamtnote->load($lvid, $student_uid, $stsem))
+ {
$lvgesamtnote->student_uid = $student_uid;
$lvgesamtnote->lehrveranstaltung_id = $lvid;
$lvgesamtnote->studiensemester_kurzbz = $stsem;
@@ -272,9 +457,9 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
$lvgesamtnote->insertvon = $user;
$new = true;
$response = "neu";
- }
- else
- {
+ }
+ else
+ {
$lvgesamtnote->note = $note;
$lvgesamtnote->punkte = $punkte;
$lvgesamtnote->benotungsdatum = $jetzt;
@@ -286,12 +471,11 @@ if (isset($_REQUEST["submit"]) && ($_REQUEST["student_uid"] != '') )
else
$response = "update";
}
+
if (!$lvgesamtnote->save($new))
- echo "".$lvgesamtnote->errormsg." ";
+ return $lvgesamtnote->errormsg;
else
- echo $response;
+ return $response;
}
-else
- echo "Fehler beim Eintragen der Prüfungen";
?>
diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php
index 74cb7e7c1..63cf45d29 100644
--- a/cis/private/lehre/notenliste.xls.php
+++ b/cis/private/lehre/notenliste.xls.php
@@ -35,6 +35,7 @@ require_once('../../../include/note.class.php');
require_once('../../../include/notenschluessel.class.php');
require_once('../../../include/Excel/excel.php');
require_once('../../../include/phrasen.class.php');
+require_once('../../../include/pruefung.class.php');
$uid = get_uid();
@@ -120,6 +121,13 @@ else
$format_highlightright->setBorderColor('white');
$format_highlightright->setAlign('right');
+ $format_highlightright_date=& $workbook->addFormat();
+ $format_highlightright_date->setFgColor(15);
+ $format_highlightright_date->setBorder(1);
+ $format_highlightright_date->setBorderColor('white');
+ $format_highlightright_date->setAlign('right');
+ $format_highlightright_date->setNumFormat(49);
+
$format_border_bottom =& $workbook->addFormat();
$format_border_bottom ->setBottom(2);
$format_border_bottom->setBold();
@@ -191,6 +199,19 @@ else
}
//Studenten holen
+
+ //Spaltengruppe für Nachprüfung
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
+ {
+ $worksheet->write($lines,8,$p->t('benotungstool/nachpruefung'),$format_bold);
+ }
+
+ //Spaltengruppe für 2.Nebensprüfungstermin
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
+ {
+ $worksheet->write($lines,12,$p->t('benotungstool/nachpruefung2'),$format_bold);
+ }
+
$lines++;
$worksheet->write($lines,1,$p->t('global/uid'),$format_border_bottom);
$worksheet->write($lines,2,$p->t('global/nachname'),$format_border_bottom);
@@ -203,6 +224,26 @@ else
else
$worksheet->write($lines,6,$p->t('benotungstool/note'),$format_border_bottom);
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
+ {
+ $worksheet->write($lines,8,$p->t('global/personenkennzeichen'),$format_border_bottom);
+ $worksheet->write($lines,9,$p->t('global/datum'),$format_border_bottom);
+ if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
+ $worksheet->write($lines,10,$p->t('benotungstool/punkte'),$format_border_bottom);
+ else
+ $worksheet->write($lines,10,$p->t('benotungstool/note'),$format_border_bottom);
+ }
+
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
+{
+ $worksheet->write($lines,12,$p->t('global/personenkennzeichen'),$format_border_bottom);
+ $worksheet->write($lines,13,$p->t('global/datum'),$format_border_bottom);
+ if(defined('CIS_GESAMTNOTE_PUNKTE') && CIS_GESAMTNOTE_PUNKTE)
+ $worksheet->write($lines,14,$p->t('benotungstool/punkte'),$format_border_bottom);
+ else
+ $worksheet->write($lines,14,$p->t('benotungstool/note'),$format_border_bottom);
+}
+
$stsem_obj = new studiensemester();
$stsem_obj->load($stsem);
$stsemdatumvon = $stsem_obj->start;
@@ -229,17 +270,18 @@ else
AND tbl_zeugnisnote.student_uid=tbl_student.student_uid
AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz)
LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid)
- LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id)
+ LEFT JOIN bis.tbl_mobilitaet ON (bis.tbl_mobilitaet.prestudent_id = public.tbl_student.prestudent_id)
LEFT JOIN lehre.tbl_note USING(note)
WHERE
vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)."
- AND vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);";";
+ AND vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);";";
if($lehreinheit_id!='')
$qry.=" AND vw_student_lehrveranstaltung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER);
$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis, doubledegree DESC';
+
if($result = $db->db_query($qry))
{
$i=1;
@@ -282,6 +324,49 @@ else
$worksheet->write($lines,4,'="'.$elem->semester.$elem->verband.$elem->gruppe.'"');
$worksheet->write($lines,5,'="'.trim($elem->matrikelnr).'"',$format_highlight);
$worksheet->write($lines,6, $note, $format_highlightright);
+
+ // Nachprüfung
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
+ {
+ $worksheet->write($lines,8, '="'.trim($elem->matrikelnr).'"', $format_highlight);
+ $pr = new Pruefung();
+ $pr->getPruefungen($elem->uid, "Termin2", $lvid, $sem);
+ $output2 = $pr->result;
+
+ if ($output2)
+ {
+ $resultPr = $output2[0];
+ $worksheet->write($lines,9, date('d.m.Y', strtotime($resultPr->datum)), $format_highlightright_date);
+ $worksheet->write($lines,10, $resultPr->note, $format_highlightright);
+ }
+ else
+ {
+ $worksheet->write($lines,9, '', $format_highlightright_date);
+ $worksheet->write($lines,10, '', $format_highlightright);
+ }
+ }
+
+ // Nachprüfung
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
+ {
+ $worksheet->write($lines,12, '="'.trim($elem->matrikelnr).'"', $format_highlight);
+ $pr = new Pruefung();
+ $pr->getPruefungen($elem->uid, "Termin3", $lvid, $sem);
+ $output3 = $pr->result;
+
+ if ($output3)
+ {
+ $resultPr = $output3[0];
+ $worksheet->write($lines,13, date('d.m.Y', strtotime($resultPr->datum)), $format_highlightright_date);
+ $worksheet->write($lines,14, $resultPr->note, $format_highlightright);
+ }
+ else
+ {
+ $worksheet->write($lines,13, '', $format_highlightright_date);
+ $worksheet->write($lines,14, '', $format_highlightright);
+ }
+ }
+
$i++;
$lines++;
}
@@ -335,5 +420,17 @@ else
$worksheet->setColumn(0, 3, 25);
$worksheet->setColumn(0, 4, 7);
$worksheet->setColumn(0, 5, 21);
+
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN2)
+ {
+ $worksheet->setColumn(8, 8, 15);
+ $worksheet->setColumn(9, 9, 10);
+ }
+ if (defined('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3') && CIS_GESAMTNOTE_PRUEFUNG_TERMIN3)
+ {
+ $worksheet->setColumn(12, 12, 15);
+ $worksheet->setColumn(13, 13, 10);
+ }
+
$workbook->close();
?>
diff --git a/locale/de-AT/benotungstool.php b/locale/de-AT/benotungstool.php
index 3c8063936..d6e77d3ce 100644
--- a/locale/de-AT/benotungstool.php
+++ b/locale/de-AT/benotungstool.php
@@ -148,8 +148,11 @@ $this->phrasen['benotungstool/anzahlKommisionellePruefungen']='Anzahl kommission
$this->phrasen['benotungstool/pruefungAnlegenFuer']='Prüfung anlegen für';
$this->phrasen['benotungstool/kreuzerltool']='Kreuzerltool';
$this->phrasen['benotungstool/studentIstLvNichtZugeordnet']='Der Student %s %s (%s) ist dieser Lehrveranstaltung nicht zugeordnet. Die Note wird nicht uebernommen!';
-$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student mit Matrikelnummer %s existiert nicht.';
-$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Für Student mit Matrikelnummer %s eingetragene Zeugnisote %s ist nicht überschreibbar';
+$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student*in mit Matrikelnummer %s existiert nicht.';
+$this->phrasen['benotungstool/datumsformatUnzulaessig']='Das Datum %s entspricht nicht dem Format TT.MM.JJJJ!';
+$this->phrasen['benotungstool/NachpruefungNichtZulaessig']='Nachprüfung für Student*in %s nicht zulässig.';
+$this->phrasen['benotungstool/noteUnzulaessig']='Die Note %s ist nicht zulaessig. Die Zeile wurde uebersprungen.';
+$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Für Student mit Matrikelnummer %s eingetragene Zeugnisnote %s ist nicht überschreibbar';
$this->phrasen['benotungstool/fehlerhafteNoteBeiStudent']='Fehlerhafte Note bei Student %s %s';
$this->phrasen['benotungstool/keineKreuzerllistenFuerDieseLehrveranstaltung']='Derzeit gibt es keine Kreuzerllisten für diese Lehrveranstaltung';
$this->phrasen['benotungstool/notenuebersichtFuer']='Notenübersicht für';
@@ -170,7 +173,8 @@ $this->phrasen['benotungstool/eingetrageneNoten']='Eingetragene Noten';
$this->phrasen['benotungstool/zeunis']='Zeugnis';
$this->phrasen['benotungstool/handbuch']='Handbuch';
$this->phrasen['benotungstool/punkte']='Punkte';
-$this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten Personenkennzeichen und Note aus der Notenliste (bzw. StudentenUid und Note aus dem MoodleExport) und fügen Sie diese in folgendes Feld ein';
+$this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten StudentenUid und Note aus der Notenliste (bzw. StudentenUid und Note aus dem MoodleExport) und fügen Sie diese in folgendes Feld ein';
+$this->phrasen['benotungstool/importAnweisungNachp']='Kopieren Sie die Spalten StudentenUid (bzw. Personenkennzeichen), Datum und Note aus der Notenliste bzw. dem Moodle Export File und fügen Sie diese in folgendes Feld ein';
$this->phrasen['benotungstool/pruefung']='Prüfung';
$this->phrasen['benotungstool/notenlisteImport']='Notenliste für den LV-Noten-Import (Excel)';
$this->phrasen['benotungstool/bearbeitetvon']='Bearbeitet von';
diff --git a/locale/en-US/benotungstool.php b/locale/en-US/benotungstool.php
index 17f78d2ba..73a3bd343 100644
--- a/locale/en-US/benotungstool.php
+++ b/locale/en-US/benotungstool.php
@@ -148,6 +148,8 @@ $this->phrasen['benotungstool/pruefungAnlegenFuer']='Create an examination for '
$this->phrasen['benotungstool/kreuzerltool']='"Kreuzerl" tool';
$this->phrasen['benotungstool/studentIstLvNichtZugeordnet']='Student is not assigned to this course. The grade was not accepted!';
$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Student with student ID number %s does not exist.';
+$this->phrasen['benotungstool/NachpruefungNichtZulaessig']='Re-examination for student %s not allowed.';
+$this->phrasen['benotungstool/datumsformatUnzulaessig']='The date %s is not in valid format TT.MM.JJJJ.';
$this->phrasen['benotungstool/noteNichtUeberschreibbar']='Transcript grade %2$s for student with Personal identifier %1$s is not rewritable';
$this->phrasen['benotungstool/fehlerhafteNoteBeiStudent']='Incorrect grade for student %s %s';
$this->phrasen['benotungstool/keineKreuzerllistenFuerDieseLehrveranstaltung']='There are currently no checklists for this course';
@@ -170,6 +172,7 @@ $this->phrasen['benotungstool/zeunis']='Transcript';
$this->phrasen['benotungstool/handbuch']='Handbook';
$this->phrasen['benotungstool/punkte']='Points';
$this->phrasen['benotungstool/importAnweisung']='Copy the columns "personal identifier" and "grade" from the grade list (or "student ID number" and "grade" from the moodle export file) and insert them in the following field';
+$this->phrasen['benotungstool/importAnweisungNachp']='Copy the columns "student ID number" (or "personal identifier"), "date" and "grade" from the grade list or from the moodle export file and insert them in the following field';
$this->phrasen['benotungstool/pruefung']='Examination';
$this->phrasen['benotungstool/notenlisteImport']='Grade list for the subject grade import (Excel)';
$this->phrasen['benotungstool/geaenderteNotenVorhanden']='There are changed grades. Please send the changes to the assistant by clicking "Approval"';
diff --git a/public/js/lehre/anrechnung/requestAnrechnung.js b/public/js/lehre/anrechnung/requestAnrechnung.js
index 5edb4e162..2947aebe9 100644
--- a/public/js/lehre/anrechnung/requestAnrechnung.js
+++ b/public/js/lehre/anrechnung/requestAnrechnung.js
@@ -1,6 +1,9 @@
const ANRECHNUNGSTATUS_APPROVED = 'approved';
const ANRECHNUNGSTATUS_REJECTED = 'rejected';
-const HERKUNFT_DER_KENNTNISSE_MAX_LENGTH = 125;
+const CHAR_LENGTH125 = 125;
+const CHAR_LENGTH150 = 150;
+const CHAR_LENGTH500 = 500;
+const CHAR_LENGTH1000 = 1000;
const COLOR_DANGER = '#f2dede';
@@ -25,7 +28,7 @@ $(function(){
// Alert message inside Begruendungsbox, if maximum ECTS exceeded
requestAnrechnung.alertIfMaxEctsExceededInsideBegruendungsbox();
- // Set chars counter for textarea 'Herkunft der Kenntnisse'
+ // Set chars counter for textareas
requestAnrechnung.setCharsCounter();
// If Sperregrund exists: display Sperre panel, hide Status panel and disable all form elements
@@ -98,6 +101,8 @@ $(function(){
begruendung: this.begruendung.value,
lv_id: this.lv_id.value,
studiensemester: this.studiensemester.value,
+ begruendung_ects: this.begruendung_ects.value,
+ begruendung_lvinhalt: this.begruendung_lvinhalt.value,
bestaetigung: this.bestaetigung.value,
uploadfile: this.uploadfile.files
},
@@ -207,11 +212,22 @@ var requestAnrechnung = {
},
setCharsCounter: function(){
$('#requestAnrechnung-herkunftDerKenntnisse').keyup(function() {
-
- let length = HERKUNFT_DER_KENNTNISSE_MAX_LENGTH - $(this).val().length;
-
+ let length = CHAR_LENGTH125 - $(this).val().length;
$('#requestAnrechnung-herkunftDerKenntnisse-charCounter').text(length);
});
+
+ $('#requestAnrechnung-begruendungEcts').keyup(function() {
+ let length = CHAR_LENGTH150 - $(this).val().length;
+ $('#requestAnrechnung-begruendungEcts-charCounter').text(length);
+ });
+
+ $('#requestAnrechnung-begruendungLvinhalt').keyup(function() {
+ let maxlength = CHAR_LENGTH1000 - $(this).val().length;
+ $('#requestAnrechnung-begruendungLvinhalt-charCounterMax').text(maxlength);
+
+ let minlength = CHAR_LENGTH500 - $(this).val().length;
+ $('#requestAnrechnung-begruendungLvinhalt-charCounterMin').text(minlength);
+ });
},
formatAnrechnungIsApplied: function (antragdatum, dms_id, filename){
$('#requestAnrechnung-antragdatum').text(antragdatum);
diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php
index ed60aeddf..eba880225 100644
--- a/system/dbupdate_3.4.php
+++ b/system/dbupdate_3.4.php
@@ -27,6 +27,7 @@ require_once('dbupdate_3.4/example.php');
require_once('dbupdate_3.4/example2.php');
...
*/
+require_once('dbupdate_3.4/25003_notenimport_nachpruefung.php');
require_once('dbupdate_3.4/26173_index_webservicelog.php');
require_once('dbupdate_3.4/24682_reihungstest_zugangscode_fuer_login.php');
@@ -40,6 +41,7 @@ require_once('dbupdate_3.4/24913_tabelle_raumtyp_neues_attribut_aktiv.php');
require_once('dbupdate_3.4/28089_plausichecks_in_extension_hinzufuegen.php');
require_once('dbupdate_3.4/29133_einzelne_studiengaenge_aus_issuechecks_ausnehmen.php');
require_once('dbupdate_3.4/30537_anmerkung_in_tbl_rolleberechtigung.php');
+require_once('dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php');
// *** Pruefung und hinzufuegen der neuen Attribute und Tabellen
echo 'Pruefe Tabellen und Attribute! ';
@@ -150,7 +152,7 @@ $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", "dms_id", "studiensemester_kurzbz", "anmerkung_student", "empfehlung_anrechnung"),
+ "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", "begruendung_ects", "begruendung_lvinhalt"),
"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"),
diff --git a/system/dbupdate_3.4/25003_notenimport_nachpruefung.php b/system/dbupdate_3.4/25003_notenimport_nachpruefung.php
new file mode 100644
index 000000000..7c2406d0e
--- /dev/null
+++ b/system/dbupdate_3.4/25003_notenimport_nachpruefung.php
@@ -0,0 +1,15 @@
+db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefungstyp_kurzbz='Termin3'"))
+{
+ if($db->db_num_rows($result)==0)
+ {
+ $qry = "INSERT INTO lehre.tbl_pruefungstyp(pruefungstyp_kurzbz, beschreibung, abschluss) VALUES('Termin3', '3.Termin', false);";
+
+ if(!$db->db_query($qry))
+ echo 'Prüfungstyp: '.$db->db_last_error().' ';
+ else
+ echo ' Prüfungstyp 3.Termin in lehre.tbl_pruefungstyp hinzugefügt';
+ }
+}
diff --git a/system/dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php b/system/dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php
new file mode 100644
index 000000000..922920071
--- /dev/null
+++ b/system/dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruendung.php
@@ -0,0 +1,28 @@
+db_query("SELECT begruendung_ects FROM lehre.tbl_anrechnung LIMIT 1"))
+{
+ $qry = "ALTER TABLE lehre.tbl_anrechnung ADD COLUMN begruendung_ects text;
+ COMMENT ON COLUMN lehre.tbl_anrechnung.begruendung_ects IS 'Begruendung gleichwertiger ECTS';
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'lehre.tbl_anrechnung '.$db->db_last_error().' ';
+ else
+ echo ' Spalte begruendung_ects zu Tabelle lehre.tbl_anrechnung hinzugefügt';
+}
+
+//Add column begruendung_lvinhalt to lehre.tbl_anrechnung
+if(!@$db->db_query("SELECT begruendung_lvinhalt FROM lehre.tbl_anrechnung LIMIT 1"))
+{
+ $qry = "ALTER TABLE lehre.tbl_anrechnung ADD COLUMN begruendung_lvinhalt text;
+ COMMENT ON COLUMN lehre.tbl_anrechnung.begruendung_lvinhalt IS 'Begruendung gleichwertiger LV-Inhalte';
+ ";
+
+ if(!$db->db_query($qry))
+ echo 'lehre.tbl_anrechnung '.$db->db_last_error().' ';
+ else
+ echo ' Spalte begruendung_lvinhalt zu Tabelle lehre.tbl_anrechnung hinzugefügt';
+}
\ No newline at end of file
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index 28735e07f..9114c36a9 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -10909,6 +10909,178 @@ Any unusual occurrences
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'begruendungEcts',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Begründen Sie die Gleichwertigkeit der ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Give reasons for the equivalence of ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'begruendungLvinhalt',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Begründen Sie die Gleichwertigkeit der Lehrveranstaltungsinhalte',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Give reasons for the equivalence of the course contents',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungBegruendungEctsTooltipText',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Hinsichtlich des Umfangs der LV, die Sie anrechnen lassen wollen: Bitte erläutern Sie, warum Ihr Zeugnis bzw. Ihre berufliche Praxis mit dem Umfang der LV gleichwertig ist. Referenzbeispiele für die ECTS-Berechnung finden Sie rechts in der Infobox.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Regarding the scope of the course you want to have credited: Please explain why your certificate or your professional practice is equivalent to the scope of the course. Reference examples for the ECTS calculation can be found in the info box on the right.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'anrechnungBegruendungLvinhaltTooltipText',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Hinsichtlich der Lernergebnisse der LV (vgl. CIS), die Sie anrechnen lassen wollen: Bitte erläutern Sie, warum die von Ihnen erworbenen Kompetenzen mit diesen Lernergebnissen gleichwertig sind.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'With regard to the learning outcomes of the course (cf. CIS) for which you want to receive credit: Please explain why the competences you have acquired are equivalent to these learning outcomes.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'requestAnrechnungInfoEctsBerechnungTitle',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Referenzbeispiele ECTS-Berechnung',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reference examples of ECTS calculation',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'requestAnrechnungInfoEctsBerechnungBody',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "1 ECTS an der FH Technikum Wien entspricht einem Arbeitsaufwand von 25 Stunden.
+ Schulisches Zeugnis:
+ Bitte die Unterrichtsstunden nachvollziehbar in ECTS umrechnen (ein Schuljahr besteht aus ca. 40 Wochen; d.h., eine Unterrichtsstunde pro Woche sind insgesamt ca. 40 Stunden Jahresaufwand.)
+ Hochschulzeugnis:
+ Bitte die ECTS angeben.
+ Berufliche Praxis:
+ Bitte die Dauer der einschlägigen beruflichen Praxis nachvollziehbar in ECTS umrechnen (1,5 ECTS sind ungefähr eine Arbeitswoche im Umfang von 37,5 Stunden).",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => " 1 ECTS at the FH Technikum Wien corresponds to a workload of 25 hours.
+ School certificate:
+ Please convert the teaching hours into ECTS in a comprehensible way (a school year consists of approx. 40 weeks; i.e. one teaching hour per week is a total of approx. 40 hours of annual work).
+ University certificate:
+ Please indicate the ECTS.
+ Professional practice:
+ Please convert the duration of the relevant professional practice into ECTS in a comprehensible way (1.5 ECTS are approximately one working week of 37.5 hours).",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'begruendungEctsLabel',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Begründung Gleichwertigkeit ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason Equivalency of ECTS',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'core',
+ 'category' => 'anrechnung',
+ 'phrase' => 'begruendungLvinhaltLabel',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Begründung Gleichwertigkeit LV-Inhalt',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Reason Equivalency of Course content',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'anrechnung',
@@ -13745,6 +13917,26 @@ array(
)
)
),
+ array(
+ 'app' => 'core',
+ 'category' => 'ui',
+ 'phrase' => 'fehlendeMinZeichen',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => "Fehlende min. Zeichen",
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => "Missing min. Characters",
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
array(
'app' => 'core',
'category' => 'anrechnung',