diff --git a/application/controllers/lehre/Pruefungsprotokoll.php b/application/controllers/lehre/Pruefungsprotokoll.php index 594d3a9e1..d9793ef06 100644 --- a/application/controllers/lehre/Pruefungsprotokoll.php +++ b/application/controllers/lehre/Pruefungsprotokoll.php @@ -51,7 +51,14 @@ class Pruefungsprotokoll extends Auth_Controller public function index() { $this->load->library('WidgetLib'); - $this->load->view('lehre/pruefungsprotokollUebersicht.php'); + + // Protokolle anzeigen seit heute / letzte Woche / alle + $period = $this->input->post('period'); + $period = (!is_null($period)) ? $period : 'today'; + + $data = array('period' => $period); + + $this->load->view('lehre/pruefungsprotokollUebersicht.php', $data); } /** diff --git a/application/models/CL/Messages_model.php b/application/models/CL/Messages_model.php index f023c9150..17824bbb8 100644 --- a/application/models/CL/Messages_model.php +++ b/application/models/CL/Messages_model.php @@ -284,9 +284,11 @@ class Messages_model extends CI_Model $sender = getData($senderResult)[0]; // Found sender data - // If the sender is not the system sender and are present configurations to reply + // If the sender is not the system sender and the receiver is not the system sender + // and are present configurations to reply $hrefReply = ''; if ($message->sender_id != $this->config->item(MessageLib::CFG_SYSTEM_PERSON_ID) + && $message->receiver_id != $this->config->item(MessageLib::CFG_SYSTEM_PERSON_ID) && !isEmptyString($this->config->item(MessageLib::CFG_REDIRECT_VIEW_MESSAGE_URL))) { $hrefReply = $this->config->item(MessageLib::CFG_MESSAGE_SERVER). @@ -294,6 +296,13 @@ class Messages_model extends CI_Model $token; } + // If the receiver is the system sender (the message was sent to an organization unit) + // redirect the reply to an authenticated controller to reply + if ($message->receiver_id == $this->config->item(MessageLib::CFG_SYSTEM_PERSON_ID)) + { + $hrefReply = site_url('system/messages/MessageClient/writeReply?token='.$token); + } + return array ( 'sender' => $sender, 'message' => $message, diff --git a/application/models/education/Abschlusspruefung_model.php b/application/models/education/Abschlusspruefung_model.php index 2762496f9..268e786cb 100644 --- a/application/models/education/Abschlusspruefung_model.php +++ b/application/models/education/Abschlusspruefung_model.php @@ -26,7 +26,7 @@ class Abschlusspruefung_model extends DB_Model $abschlusspruefungdata = array(); - $this->addSelect('tbl_abschlusspruefung.abschlusspruefung_id, tbl_abschlusspruefung.datum, tbl_abschlusspruefung.abschlussbeurteilung_kurzbz, tbl_abschlusspruefung.uhrzeit AS pruefungsbeginn, tbl_abschlusspruefung.endezeit AS pruefungsende, + $this->addSelect('tbl_abschlusspruefung.abschlusspruefung_id, tbl_abschlusspruefung.datum, tbl_abschlusspruefung.pruefungstyp_kurzbz AS studiengangstyp, tbl_abschlusspruefung.abschlussbeurteilung_kurzbz, tbl_abschlusspruefung.uhrzeit AS pruefungsbeginn, tbl_abschlusspruefung.endezeit AS pruefungsende, tbl_abschlusspruefung.freigabedatum, tbl_abschlusspruefung_antritt.bezeichnung AS pruefungsantritt_bezeichnung, tbl_abschlusspruefung_antritt.bezeichnung_english AS pruefungsantritt_bezeichnung_english, tbl_abschlusspruefung.protokoll, studentpers.vorname AS vorname_student, studentpers.nachname AS nachname_student, studentpers.titelpre AS titelpre_student, studentpers.titelpost AS titelpost_student, studentben.uid AS uid_student, matrikelnr, vorsitzenderben.uid AS uid_vorsitz, vorsitzenderpers.vorname AS vorname_vorsitz, vorsitzenderpers.nachname AS nachname_vorsitz, vorsitzenderpers.titelpre AS titelpre_vorsitz, vorsitzenderpers.titelpost AS titelpost_vorsitz, @@ -71,29 +71,42 @@ class Abschlusspruefung_model extends DB_Model $abschlusspruefungdata->studiengang_kz = $studienordnungdata->studiengang_kz; $abschlusspruefungdata->studiengangbezeichnung = $studienordnungdata->studiengangbezeichnung; $abschlusspruefungdata->studiengangbezeichnung_englisch = $studienordnungdata->studiengangbezeichnung_englisch; - - $this->StudiengangModel->addSelect('typ'); - $typ = $this->StudiengangModel->load($studienordnungdata->studiengang_kz); - if (isError($typ)) - return $typ; - elseif (hasData($typ)) + } + // if no Studienordnung available (e.g. Incomings), use Studiengangname provided by table student + elseif (!hasData($studienordnung)) + { + $this->resetQuery(); + + $this->load->model('crm/Student_model', 'StudentModel'); + $this->addSelect('studiengang_kz, bezeichnung, english'); + $this->addJoin('public.tbl_studiengang', 'studiengang_kz'); + $result = $this->StudentModel->load(array( + 'student_uid' => $student_uid) + ); + + if ($result = getData($result)[0]) { - $abschlusspruefungdata->studiengangstyp = getData($typ)[0]->typ; + $abschlusspruefungdata->studiengang_kz = $result->studiengang_kz; + $abschlusspruefungdata->studiengangbezeichnung = $result->bezeichnung; + $abschlusspruefungdata->studiengangbezeichnung_englisch = $result->english; } - - // get Abschlussarbeit + } + + // get Abschlussarbeit + if (isset($abschlusspruefungdata->studiengang_kz) && !empty($abschlusspruefungdata->studiengang_kz)) + { $projekttyp = array('Bachelor','Diplom','Master','Dissertation','Lizenziat','Magister'); - $abschlussarbeit = $this->ProjektarbeitModel->getProjektarbeit($student_uid, $studienordnungdata->studiengang_kz, null, $projekttyp, true); + $abschlussarbeit = $this->ProjektarbeitModel->getProjektarbeit($student_uid, $abschlusspruefungdata->studiengang_kz, null, $projekttyp, true); if (isError($abschlussarbeit)) return $abschlussarbeit; if (hasData($abschlussarbeit)) { - $abschlussarbeit = getData($abschlussarbeit)[0]; - $abschlusspruefungdata->projektarbeit_studiengangstyp_name = $abschlussarbeit->projekttyp_kurzbz; - $abschlusspruefungdata->abschlussarbeit_titel = $abschlussarbeit->titel; - $abschlusspruefungdata->abschlussarbeit_note = $abschlussarbeit->note; - } + $abschlussarbeit = getData($abschlussarbeit)[0]; + $abschlusspruefungdata->projektarbeit_studiengangstyp_name = $abschlussarbeit->projekttyp_kurzbz; + $abschlusspruefungdata->abschlussarbeit_titel = $abschlussarbeit->titel; + $abschlusspruefungdata->abschlussarbeit_note = $abschlussarbeit->note; + } } } } diff --git a/application/models/person/Adresse_model.php b/application/models/person/Adresse_model.php index e049f5ad6..fb5112a8d 100644 --- a/application/models/person/Adresse_model.php +++ b/application/models/person/Adresse_model.php @@ -14,12 +14,14 @@ class Adresse_model extends DB_Model /** - * gets person data from uid - * @param $uid + * Get Zustelladress of given person. + * @param string $person_id + * @param string $select * @return array */ - public function getZustellAdresse($person_id) + public function getZustellAdresse($person_id, $select = '*') { + $this->addSelect($select); return $this->loadWhere(array('person_id' => $person_id, 'zustelladresse'=> true)); } } diff --git a/application/models/person/Kontakt_model.php b/application/models/person/Kontakt_model.php index 33dc66c86..50ef18e15 100644 --- a/application/models/person/Kontakt_model.php +++ b/application/models/person/Kontakt_model.php @@ -119,4 +119,54 @@ class Kontakt_model extends DB_Model } return $firmentelefon; } + + /** + * Get all latest contact data of person, where Zustellung is true + * @param $person_id + * @return array + */ + public function getAll_byPersonID($person_id) + { + $this->addSelect('DISTINCT ON (kontakttyp) kontakttyp, kontakt'); + $this->addJoin('public.tbl_standort', 'standort_id', 'LEFT'); + $this->addJoin('public.tbl_firma', 'firma_id', 'LEFT'); + $this->addOrder('kontakttyp, kontakt, tbl_kontakt.updateamum, tbl_kontakt.insertamum'); + + return $this->loadWhere(array( + 'zustellung' => TRUE, + 'person_id' => $person_id + )); + } + + /** + * Get all latest phones of person where zustellung is true. Ordered by + * telefon > mobil > firmenhandy > else. + * @param string person_id + */ + public function getPhones_byPerson($person_id) + { + $qry = ' + WITH latest_phones AS( + SELECT DISTINCT ON (kontakttyp) kontakttyp, kontakt + FROM public.tbl_kontakt kontakt + LEFT JOIN public.tbl_standort USING (standort_id) + LEFT JOIN public.tbl_firma USING (firma_id) + WHERE person_id = ? + AND zustellung + AND kontakttyp IN (\'telefon\', \'mobil\', \'firmenhandy\') + ORDER BY kontakttyp, kontakt, kontakt.updateamum + ) + + SELECT * FROM latest_phones + ORDER BY + CASE + WHEN kontakttyp = \'telefon\' THEN 0 + WHEN kontakttyp = \'mobil\' THEN 1 + WHEN kontakttyp = \'firmenhandy\' THEN 2 + ELSE 3 + END + '; + + return $this->execQuery($qry, array($person_id)); + } } diff --git a/application/models/ressource/Betriebsmittelperson_model.php b/application/models/ressource/Betriebsmittelperson_model.php index 924f670e0..87915cfa8 100644 --- a/application/models/ressource/Betriebsmittelperson_model.php +++ b/application/models/ressource/Betriebsmittelperson_model.php @@ -1,7 +1,6 @@ dbTable = 'wawi.tbl_betriebsmittelperson'; $this->pk = 'betriebsmittelperson_id'; } + + /** + * Get Betriebsmittel by person. + * @param string $person_id + * @param string $betriebsmitteltyp + * @param bool $isRetourniert False to retrieve only active Betriebsmittel. + * @return array|bool + */ + public function getBetriebsmittel($person_id, $betriebsmitteltyp = null, $isRetourniert = null) + { + if (!is_numeric($person_id)) + { + $this->errormsg = 'Person_id type is not valid.'; + return false; + } + + $this->addJoin('wawi.tbl_betriebsmittel', 'betriebsmittel_id'); + + $condition = ' + person_id = '. $this->escape($person_id). ' + '; + + if (is_string($betriebsmitteltyp)) { + $condition .= ' + AND betriebsmitteltyp = ' . $this->escape($betriebsmitteltyp); + } + + if ($isRetourniert === true) { + $condition .= ' + AND retouram IS NOT NULL'; // return date is given + } + elseif ($isRetourniert === false) + { + $condition .= ' + AND retouram IS NULL'; // default + } + + $this->addOrder('ausgegebenam', 'DESC'); // default + + return $this->loadWhere($condition); + } } diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php index 385845026..e87f0945c 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftrag.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftrag.php @@ -189,7 +189,7 @@ $this->load->view(
- studiengangstyp == 'b' ? $this->p->t('abschlusspruefung', 'abgehaltenAmBachelor') : $this->p->t('abschlusspruefung', 'abgehaltenAmMaster'); ?> + studiengangstyp == 'Bachelor' ? $this->p->t('abschlusspruefung', 'abgehaltenAmBachelor') : $this->p->t('abschlusspruefung', 'abgehaltenAmMaster'); ?> studiengangbezeichnung : $abschlusspruefung->studiengangbezeichnung_englisch ?>, p->t('abschlusspruefung', 'studiengangskennzahl') ?> studiengang_kz ?>
@@ -156,7 +156,7 @@ $this->load->view( p->t('abschlusspruefung', 'pruefungsgegenstand') ?>| '.$p->t('global/datum').' | +'.$p->t('tools/zahlungstyp').' | +'.$p->t('lvplan/stg').' | +'.$p->t('global/studiensemester').' | +'.$p->t('tools/buchungstext').' | +'.$p->t('tools/betrag').' | +'.$p->t('tools/zahlungsbestaetigung').' | '; + echo '
|---|---|---|---|---|---|---|
| '.date('d.m.Y',$datum_obj->mktime_fromdate(isset($row['childs'][$i])?$row['childs'][$i]->buchungsdatum:$row['parent']->buchungsdatum)).' | '; + echo ''.$buchungstyp[$row['parent']->buchungstyp_kurzbz].' | '; + echo ''.$stg_arr[$row['parent']->studiengang_kz].' | '; + echo ''.$row['parent']->studiensemester_kurzbz.' | '; + + echo ''.$row['parent']->buchungstext.' | '; + echo '€ '.($betrag<0?'-':($betrag>0?'+':'')).sprintf('%.2f',abs($row['parent']->betrag)).' | '; + echo '';
+ if($betrag>=0 && $row['parent']->betrag<=0)
+ {
+ echo ' ';
+ }
+ elseif($row['parent']->betrag>0)
+ {
+ //Auszahlung
+ }
+ else
+ {
+ echo 'buchungsnr.$getParam."','Zahlungsdetails','height=500,width=550,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=no,toolbar=no,location=no,menubar=no,dependent=yes');return false;";
+ echo '" href="#">'.$p->t('tools/offen').'(€ '.sprintf('%.2f',$betrag*-1).')';
+
+ echo ' | ';
+ }
+ echo '
'.$p->t("zeitaufzeichnung/fiktiveNormalarbeitszeit").'
'; } echo ''.$p->t("urlaubstool/meineZeitsperren").'
'; - echo " + echo $p->t("zeitaufzeichnung/supportAnfragen"); + echo ' - "; + '; echo '| ';
diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php
index ec7bb360e..95bfd98e1 100644
--- a/config/global.config-default.inc.php
+++ b/config/global.config-default.inc.php
@@ -297,4 +297,7 @@ define('TESTTOOL_LOGIN_BEWERBUNGSTOOL', false);
// Prueft ob Buchungen bereits ins SAP uebertragen wurden und sperrt ggf die Bearbeitung
define('BUCHUNGEN_CHECK_SAP', true);
+
+// Gibt an, ob im FAS die Zahlungsbestaetigungen zum Download / im CIS generell die Zahlungen angezeigt werden
+define ('ZAHLUNGSBESTAETIGUNG_ANZEIGEN', true);
?>
diff --git a/content/akteupload.php b/content/akteupload.php
index f8c459845..bdd8ccf7d 100644
--- a/content/akteupload.php
+++ b/content/akteupload.php
@@ -123,8 +123,6 @@ if(isset($_POST['submitbild']))
$dokument = new dokument();
$dokument->loadDokumenttyp($_REQUEST['dokumenttyp']);
- $extension = end(explode(".",strtolower($_FILES['file']['name'])));
-
$akte->dokument_kurzbz = $_REQUEST['dokumenttyp'];
$akte->person_id = $_GET['person_id'];
//$akte->inhalt = base64_encode($content);
diff --git a/content/student/studentabschlusspruefung.js.php b/content/student/studentabschlusspruefung.js.php
index caaa32051..f46d7b2b9 100644
--- a/content/student/studentabschlusspruefung.js.php
+++ b/content/student/studentabschlusspruefung.js.php
@@ -352,6 +352,7 @@ function StudentAbschlusspruefungAuswahl()
sponsion = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#sponsion" ));
pruefungstyp_kurzbz = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#pruefungstyp_kurzbz" ));
anmerkung = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#anmerkung" ));
+ protokoll = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#protokoll" ));
stg_kz = studiengang_kz = document.getElementById('student-detail-menulist-studiengang_kz').value;
@@ -410,6 +411,7 @@ function StudentAbschlusspruefungAuswahl()
document.getElementById('student-abschlusspruefung-textbox-anmerkung').value=anmerkung;
document.getElementById('student-abschlusspruefung-textbox-abschlusspruefung_id').value=abschlusspruefung_id;
document.getElementById('student-abschlusspruefung-checkbox-neu').checked=false;
+ document.getElementById('student-abschlusspruefung-textbox-protokoll').value=protokoll;
StudentAbschlusspruefungTypChange();
}
diff --git a/content/student/studentabschlusspruefungoverlay.xul.php b/content/student/studentabschlusspruefungoverlay.xul.php
index e281a7a16..0f52650ec 100644
--- a/content/student/studentabschlusspruefungoverlay.xul.php
+++ b/content/student/studentabschlusspruefungoverlay.xul.php
@@ -339,6 +339,8 @@ echo '';
Supportanfragen unter zeiterfassung@technikum-wien.at'; diff --git a/locale/en-US/zeitaufzeichnung.php b/locale/en-US/zeitaufzeichnung.php index 8d2c217fa..a67a35e4b 100644 --- a/locale/en-US/zeitaufzeichnung.php +++ b/locale/en-US/zeitaufzeichnung.php @@ -62,3 +62,4 @@ $this->phrasen['zeitaufzeichnung/dienstreise']='Business Trip'; $this->phrasen['zeitaufzeichnung/projektphase']='WP'; $this->phrasen['zeitaufzeichnung/pauseEinfuegen']='insert break automatically'; $this->phrasen['zeitaufzeichnung/zeitraumZuKurz']='Timeslot too short for automatic break.'; +$this->phrasen['zeitaufzeichnung/supportAnfragen']=' Contact for support zeiterfassung@technikum-wien.at'; diff --git a/rdf/abschlusspruefung.rdf.php b/rdf/abschlusspruefung.rdf.php index 4ee4c1530..f28319599 100644 --- a/rdf/abschlusspruefung.rdf.php +++ b/rdf/abschlusspruefung.rdf.php @@ -378,6 +378,7 @@ if ($xmlformat=='rdf') |