diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 80d823a4f..eef40ff3f 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -166,7 +166,7 @@ $qry = 'SELECT tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, - tbl_zeugnisnote.note, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr + tbl_zeugnisnote.note, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang FROM campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) @@ -174,6 +174,7 @@ $qry = 'SELECT LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id 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 public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz) WHERE vw_student_lehrveranstaltung.lehrveranstaltung_id='.$db->db_add_param($lvid, FHC_INTEGER).' AND vw_student_lehrveranstaltung.studiensemester_kurzbz='.$db->db_add_param($studiensemester); @@ -229,7 +230,8 @@ if($result = $db->db_query($qry)) 'semester'=>$row->semester, 'verband'=>trim($row->verband), 'gruppe'=>trim($row->gruppe), - 'zusatz'=>$zusatz + 'zusatz'=>$zusatz, + 'studiengang_kurzbz'=>$row->kurzbzlang )); } } diff --git a/cis/private/lehre/notenliste.php b/cis/private/lehre/notenliste.php index 4e1ae2d95..38b50ae36 100644 --- a/cis/private/lehre/notenliste.php +++ b/cis/private/lehre/notenliste.php @@ -32,9 +32,11 @@ require_once('../../../include/datum.class.php'); require_once('../../../include/note.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/studiengang.class.php'); +require_once('../../../include/studienordnung.class.php'); require_once('../../../include/lehrveranstaltung.class.php'); require_once('../../../include/pruefung.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/prestudent.class.php'); $sprache = getSprache(); $p = new phrasen($sprache); @@ -47,11 +49,11 @@ echo ' - - - - - + + + + + '.$p->t('tools/leistungsbeurteilung').' @@ -118,7 +120,7 @@ if(!check_student($user)) } else { - $qry = "SELECT vw_student.vorname, vw_student.nachname, tbl_studiengang.studiengang_kz + $qry = "SELECT vw_student.vorname, vw_student.nachname, vw_student.prestudent_id, tbl_studiengang.studiengang_kz FROM public.tbl_studiengang JOIN campus.vw_student USING (studiengang_kz) WHERE campus.vw_student.uid = ".$db->db_add_param($user).";"; @@ -133,6 +135,19 @@ else $stg_obj = new studiengang(); $stg_obj->load($row->studiengang_kz); $stg_name = $stg_obj->bezeichnung_arr[$sprache]; + $prestudent_id = $row->prestudent_id; + $prestudent = new prestudent($prestudent_id); + if ($prestudent->getLastStatus($prestudent_id)) + { + $studienplan_id = $prestudent->studienplan_id; + $studienordnung = new studienordnung(); + if ($studienordnung->getStudienordnungFromStudienplan($studienplan_id)) + { + $studiengangbezeichnung_sto = $sprache === 'English' ? $studienordnung->__get('studiengangbezeichnung_englisch') : $studienordnung->__get('studiengangbezeichnung'); + } + } + + $studiengang_bezeichnung = empty($studiengangbezeichnung_sto) ? $stg_name : $studiengangbezeichnung_sto; } $notenarr=array(); @@ -152,7 +167,7 @@ else echo "
"; echo "".$p->t('global/name').": $vorname $nachname
"; - echo "".$p->t('global/studiengang').": $stg_name
"; + echo "".$p->t('global/studiengang').": $studiengang_bezeichnung
"; echo "".$p->t('global/studiensemester')." '; - +echo '

'; -$konto = new konto(); - -$buchungstypen = array(); -if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN")) -{ - $buchungstypen = unserialize (CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN); -} - -$stsem_zahlung = $konto->getLastStSemBuchungstypen($uid, $buchungstypen, $stsem); -if ($stsem_zahlung != FALSE && $stsem == $stsem_zahlung) -{ - $path = "../pdfExport.php?xsl=Inskription&xml=student.rdf.php&ss=".$stsem."&uid=".$uid."&xsl_stg_kz=".$xsl_stg_kz; - echo ''.$p->t('tools/inskriptionsbestaetigung').''; - echo ' - '.$p->t('tools/studienbeitragFuerSSBezahlt',array($stsem)); - echo '

'; -} -else -{ - echo $p->t('tools/inskriptionsbestaetigung'); - echo ' - '.$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem)); - echo '

'; -} - -if (defined('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN') && CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN) +// Wenn es für das übergebene Studiensemester keinen PreStudentStatus gibt, werden nur Abschlussdokumente angezeigt +if (in_array($stsem, $stsem_arr)) { + $konto = new konto(); + + $buchungstypen = array(); + if (defined("CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN")) + { + $buchungstypen = unserialize (CIS_DOKUMENTE_STUDIENBEITRAG_TYPEN); + } + echo '

' . $p->t('tools/inskriptionsbestaetigung') . '

'; + $stsem_zahlung = $konto->getLastStSemBuchungstypen($uid, $buchungstypen, $stsem); + echo ' + + + + + + + '; if ($stsem_zahlung != FALSE && $stsem == $stsem_zahlung) { - $pfad = "../pdfExport.php?xsl=Studienblatt&xml=studienblatt.xml.php&ss=".$stsem."&uid=".$uid; - echo ''.$p->t('tools/studienbuchblatt').''; - echo ' - '.$p->t('tools/studienbeitragFuerSSBezahlt',array($stsem)); + $path = "../pdfExport.php?xsl=Inskription&xml=student.rdf.php&ss=".$stsem."&uid=".$uid."&xsl_stg_kz=".$xsl_stg_kz; + echo ''; + echo ''; } else - echo $p->t('tools/studienbuchblatt')." - ".$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem)); - - echo '

'; + { + echo ''; + } + echo '
'.$p->t('global/name').'
'.$p->t('tools/inskriptionsbestaetigung').' '.$stsem.''.$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem)).'
'; + + if (defined('CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN') && CIS_DOKUMENTE_STUDIENBUCHLBATT_DRUCKEN) + { + echo '

' . $p->t('tools/studienbuchblatt') . '

'; + echo ' + + + + + + + '; + if ($stsem_zahlung != FALSE && $stsem == $stsem_zahlung) + { + $pfad = "../pdfExport.php?xsl=Studienblatt&xml=studienblatt.xml.php&ss=".$stsem."&uid=".$uid; + echo ''; + echo ''; + } + else + { + echo ''; + } + echo '
'.$p->t('global/name').'
'.$p->t('tools/studienbuchblatt').' '.$stsem.''.$p->t('tools/studienbeitragFuerSSNochNichtBezahlt',array($stsem)).'
'; + } + + if (defined('CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN') && CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN) + { + echo '

' . $p->t('tools/studienerfolgsbestaetigung') . '

'; + echo ' + + + + + + + + '; + echo ''; + echo ''; + echo ''; + + echo ''; + echo ''; + echo ''; + + echo ''; + echo ''; + echo ''; + + echo ''; + echo ''; + echo ''; + echo '
'.$p->t('global/name').'
'.$p->t('tools/studienerfolgsbestaetigung').' '.$stsem.' '.$p->t('global/deutsch').' '.$p->t('tools/vorlageWohnsitzfinanzamt').'
'.$p->t('tools/studienerfolgsbestaetigung').' '.$p->t('tools/alleStudiensemester').' '.$p->t('global/deutsch').' '.$p->t('tools/vorlageWohnsitzfinanzamt').'
'.$p->t('tools/studienerfolgsbestaetigung').' '.$stsem.' '.$p->t('global/englisch').' '.$p->t('tools/vorlageWohnsitzfinanzamt').'
'.$p->t('tools/studienerfolgsbestaetigung').' '.$p->t('tools/alleStudiensemester').' '.$p->t('global/englisch').' '.$p->t('tools/vorlageWohnsitzfinanzamt').'
'; + } } - -if (defined('CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN') && CIS_DOKUMENTE_STUDIENERFOLGSBESTAETIGUNG_DRUCKEN) -{ - echo "".$p->t('tools/studienerfolgsbestaetigung')." Deutsch
"; - echo "".$p->t('tools/studienerfolgsbestaetigung')." Englisch"; - echo "
"; -} -echo "
"; +else + echo '

'.$p->t('tools/keinStatusImStudiensemester',array($stsem)).'

'; $akte = new akte(); -if($akte->getArchiv($student_studiengang->person_id, true, true) && count($akte->result)>0) +echo '

' . $p->t('tools/abschlussdokumente') . '

'; +if($akte->getArchiv($student_studiengang->person_id, null, true) && count($akte->result)>0) { echo ' -

Abschlussdokumente

- +
- - + + + @@ -240,13 +324,30 @@ if($akte->getArchiv($student_studiengang->person_id, true, true) && count($akte- { $pfad = 'dokumente.php?action=download&id='.$row->akte_id.'&uid='.$uid; echo ''; + echo ''; echo ''; - echo ''; + echo ''; echo ''; } echo '
ErstelldatumDokument'.$p->t('tools/erstelldatum').''.$p->t('tools/dokument').'
'.$datum_obj->formatDatum($row->erstelltam,'d.m.Y').' '.$row->bezeichnung.''.$row->bezeichnung.'
'; } +else +{ + echo ' + + + + + + + + + + '; + echo ''; + echo '
'.$p->t('tools/erstelldatum').''.$p->t('tools/dokument').'
'.$p->t('tools/nochKeineAbschlussdokumenteVorhanden').'
'; +} echo ' '; diff --git a/cis/private/profile/index.php b/cis/private/profile/index.php index cafee56a1..d35b53655 100755 --- a/cis/private/profile/index.php +++ b/cis/private/profile/index.php @@ -25,6 +25,7 @@ require_once('../../../config/global.config.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/globals.inc.php'); require_once('../../../include/studiengang.class.php'); +require_once('../../../include/studienordnung.class.php'); require_once('../../../include/person.class.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/betriebsmittel.class.php'); @@ -34,6 +35,7 @@ require_once('../../../include/phrasen.class.php'); require_once('../../../include/betriebsmittel_betriebsmittelstatus.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/mitarbeiter.class.php'); +require_once('../../../include/prestudent.class.php'); require_once('../../../include/student.class.php'); require_once('../../../include/kontakt.class.php'); require_once('../../../include/fotostatus.class.php'); @@ -291,8 +293,21 @@ if ($type == 'student' && (!defined('CIS_PROFIL_STUDIENINFORMATION_ANZEIGEN') || { $studiengang->load($user->studiengang_kz); + $prestudent = new prestudent($user->prestudent_id); + if ($prestudent->getLastStatus($user->prestudent_id)) + { + $studienplan_id = $prestudent->studienplan_id; + $studienordnung = new studienordnung(); + if ($studienordnung->getStudienordnungFromStudienplan($studienplan_id)) + { + $studiengangbezeichnung_sto = $studienordnung->__get('studiengangbezeichnung'); + } + } + + $studiengang_bezeichnung = empty($studiengangbezeichnung_sto) ? $studiengang->bezeichnung : $studiengangbezeichnung_sto; + echo " - ".$p->t('global/studiengang').": $studiengang->bezeichnung
+ ".$p->t('global/studiengang').": $studiengang_bezeichnung
".$p->t('global/semester').": $user->semester ".$p->t('benotungstool/liste')."
".$p->t('global/verband').": $user->verband ".($user->verband!=' '?"".$p->t('benotungstool/liste')."":"")."
".$p->t('global/gruppe').": $user->gruppe ".($user->gruppe!=' '?"".$p->t('benotungstool/liste')."":"")."
"; diff --git a/cis/private/profile/studienerfolgsbestaetigung.php b/cis/private/profile/studienerfolgsbestaetigung.php deleted file mode 100644 index b7418075c..000000000 --- a/cis/private/profile/studienerfolgsbestaetigung.php +++ /dev/null @@ -1,114 +0,0 @@ -, - * Andreas Oesterreicher , - * Rudolf Hangl and - * Gerald Raab . - */ - -require_once('../../../config/cis.config.inc.php'); -require_once('../../../include/functions.inc.php'); -require_once('../../../include/studiensemester.class.php'); -require_once('../../../include/basis_db.class.php'); -require_once('../../../include/phrasen.class.php'); -require_once('../../../include/benutzerberechtigung.class.php'); - -$sprache = getSprache(); -$p = new phrasen($sprache); - -if (!$db = new basis_db()) - die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); - -$uid=get_uid(); - -if(isset($_GET['uid'])) -{ - // Administratoren duerfen die UID als Parameter uebergeben um die Studienerfolgsbestätigung - // von anderen Personen anzuzeigen - - $rechte = new benutzerberechtigung(); - $rechte->getBerechtigungen($uid); - if($rechte->isBerechtigt('admin')) - $uid=$_GET['uid']; -} - -if(isset($_GET['lang']) && $_GET['lang']=='en') - $xsl = 'StudienerfolgEng'; -else - $xsl = 'Studienerfolg'; - -echo ' - - -'.$p->t('tools/studienerfolgsbestaetigung').' - - - - - - -

'.$p->t('tools/studienerfolgsbestaetigung').'

-
'.$p->t('tools/studiensemesterAuswaehlen').'

'; - -$qry = "SELECT distinct studiensemester_kurzbz FROM campus.vw_student JOIN public.tbl_prestudentstatus USING(prestudent_id) WHERE uid='".addslashes($uid)."'"; -if($result = $db->db_query($qry)) -{ - echo $p->t('global/studiensemester').': '; - echo '

'.$p->t('tools/vorlageWohnsitzfinanzamt').'
'; - echo '

'; -} - -echo ' - -'; -?> \ No newline at end of file diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 9507b0f89..1f7788270 100755 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -91,22 +91,27 @@ $fieldheadings = array( if ($rechte->isBerechtigt('basis/servicezeitaufzeichnung')) { $za_simple = 0; - $activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'Dienstreise', 'Behoerde', 'Ersatzruhe'); + $activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe'); } else { $za_simple = 1; - $activities = array('Arbeit', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'Dienstreise', 'Behoerde', 'Ersatzruhe'); + $activities = array('Arbeit', 'Pause', 'LehreIntern', 'LehreExtern', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe'); } $activities_str = "'".implode("','", $activities)."'"; // definiert bis zu welchem Datum die Eintragung nicht mehr möglich ist -if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS != '') +$zasperre = new zeitaufzeichnung(); +if ($sperrdat = $zasperre->getEintragungGesperrtBisForUser($user)) + $gesperrt_bis = $sperrdat; +else if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS != '') $gesperrt_bis = CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS; else $gesperrt_bis = '2015-08-31'; +//var_dump($gesperrt_bis); + $sperrdatum = date('c', strtotime($gesperrt_bis)); // Uses urlencode to avoid XSS issues @@ -415,9 +420,13 @@ echo ' bisDatum=Jahr+\'\'+Monat+\'\'+Tag+\'\'+Stunde+\'\'+Minute; diff=bisDatum-vonDatum; + a = document.getElementById("aktivitaet"); + akt = a.options[a.selectedIndex].value; + //alert(akt); + if (bisDatum>vonDatum) { - if (diff>9999) + if (diff>9999 && akt != "DienstreiseMT") { Check = confirm("'.$p->t("zeitaufzeichnung/zeitraumAuffallendHoch").'"); document.getElementById("bis_datum").focus(); @@ -741,7 +750,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) // An der FHTW wird ins Moodle verlinkt if (CAMPUS_NAME == 'FH Technikum Wien') echo '

'.$p->t("zeitaufzeichnung/handbuchZeitaufzeichnung").'

'; - else + else echo '

'.$p->t("zeitaufzeichnung/handbuchZeitaufzeichnung").'

'; } if ($p->t("dms_link/fiktiveNormalarbeitszeit")!='') @@ -904,7 +913,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) // $qry = "SELECT * FROM fue.tbl_aktivitaet where sort != 5 or sort is null ORDER by sort,beschreibung"; if($result = $db->db_query($qry)) { - echo ''; if ($za_simple == 0) echo ''; //else @@ -1077,6 +1086,11 @@ if($projekt->getProjekteMitarbeiter($user, true)) } $summe=0; + $dr = new zeitaufzeichnung(); + $dr->getDienstreisenUser($user); + $dr_arr = $dr->result; + + //var_dump($dr->result); if(count($za->result)>0) { @@ -1108,6 +1122,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) $wochensaldo = '00:00'; $pflichtpause = false; + foreach($za->result as $row) { $datumtag = $datum_obj->formatDatum($row->datum, 'Y-m-d'); @@ -1119,6 +1134,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) $tag = $datumtag; if($tag!=$datumtag) { + //if ($row->uid) //{ if ($datum->formatDatum($tag,'N') == '6' || $datum->formatDatum($tag,'N') == '7') @@ -1188,9 +1204,11 @@ if($projekt->getProjekteMitarbeiter($user, true)) '.$tagessaldo.$erstr.'
'.date('H:i', ($pausesumme-3600)).' '; if ($tag > $sperrdatum) - echo '<-'; + echo '<-'; + + echo ''; + - echo ''; $tag=$datumtag; $tagessumme='00:00'; @@ -1207,6 +1225,9 @@ if($projekt->getProjekteMitarbeiter($user, true)) //{ // echo ''.$datum->formatDatum($row->datum,'D d.m.Y').' '; //} + + + } // Nach jeder Woche eine Summenzeile einfuegen und eine neue Tabelle beginnen $datumwoche = $datum_obj->formatDatum($row->datum, 'W'); @@ -1251,6 +1272,37 @@ if($projekt->getProjekteMitarbeiter($user, true)) $ersumme = '00:00'; $ersumme_woche = '00:00'; } + + // Diestreisen NEU + if (array_key_exists($datumtag, $dr_arr)) + { + $colspan=($za_simple)?4:7; + echo ''.$p->t('zeitaufzeichnung/dienstreise'); + if (array_key_exists('start', $dr_arr[$datumtag]) && !array_key_exists('ende', $dr_arr[$datumtag])) + echo ' '.$p->t('global/beginn'); + if (array_key_exists('ende', $dr_arr[$datumtag]) && !array_key_exists('start', $dr_arr[$datumtag])) + echo ' '.$p->t('global/ende'); + echo ''; + echo ''; + if (array_key_exists('start', $dr_arr[$datumtag])) + echo $dr_arr[$datumtag]['start']; + echo ''; + if (array_key_exists('ende', $dr_arr[$datumtag])) + echo $dr_arr[$datumtag]['ende']; + echo ''; + echo ''; + echo ''; +// if(!isset($_GET['filter']) && ($datumtag > $sperrdatum)) +// echo ''.$p->t("global/bearbeiten").''; + echo "\n"; + echo ""; + if(!isset($_GET['filter']) && ($datumtag > $sperrdatum)) + echo ''.$p->t("global/loeschen").''; + echo "\n"; + echo ''; + unset($dr_arr[$datumtag]); + } + if ($row->uid) { $wochensumme = $datum_obj->sumZeit($wochensumme, $row->diff); @@ -1314,8 +1366,11 @@ if($projekt->getProjekteMitarbeiter($user, true)) if ($row->aktivitaet_kurzbz == 'LehreExtern') $extlehrearr[] = array("start"=>$row->start, "ende"=>$row->ende, "diff"=>$row->diff); } + } echo ''; + + if ($alle===false) { echo ' @@ -1456,4 +1511,5 @@ function getZeitaufzeichnung($user, $von, $bis) $za->getListeUserFromTo($user, $von, $bis); return $za; } + ?> diff --git a/content/akteupload.php b/content/akteupload.php index 729454046..d29be6670 100644 --- a/content/akteupload.php +++ b/content/akteupload.php @@ -60,12 +60,8 @@ if(isset($_POST['submitbild'])) if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) { - if(!chgrp($uploadfile,'dms')) - echo 'CHGRP failed'; - if(!chmod($uploadfile, 0774)) - echo 'CHMOD failed'; - $dms = new dms(); + $dms->setPermission($uploadfile); $dms->version='0'; $dms->kategorie_kurzbz=$kategorie_kurzbz; diff --git a/content/statistik/lehrauftragsliste_mail.xls.php b/content/statistik/lehrauftragsliste_mail.xls.php index 3a754f915..fc7cf9afa 100644 --- a/content/statistik/lehrauftragsliste_mail.xls.php +++ b/content/statistik/lehrauftragsliste_mail.xls.php @@ -81,7 +81,7 @@ if(count($stg->result)>0) } } //Studiengaenge ermitteln bei denen sich die lektorzuordnung innerhalb der letzten 31 Tage geaendert haben -$qry_stg = "SELECT distinct studiengang_kz +$qry_stg = "SELECT distinct studiengang_kz, typ, kurzbz FROM ( SELECT studiengang_kz @@ -105,10 +105,13 @@ $qry_stg = "SELECT distinct studiengang_kz tbl_projektarbeit.lehreinheit_id = tbl_lehreinheit.lehreinheit_id AND tbl_lehreinheit.lehrveranstaltung_id = tbl_lehrveranstaltung.lehrveranstaltung_id ) as foo + JOIN public.tbl_studiengang USING (studiengang_kz) "; if(count($stg_arr)>0) $qry_stg.=" WHERE studiengang_kz in (".$db->db_implode4SQL($stg_arr).")"; + $qry_stg.=" ORDER BY typ, kurzbz"; + $liste_gesamt = array(); $gesamt =& $workbook->addWorksheet('Gesamt'); @@ -152,6 +155,8 @@ if($result_stg = $db->db_query($qry_stg)) $i=0; $gesamtsheet_row++; + $gesamt->write(0,0,'', $format_colored); + $gesamt->write(0,1,'Kennzeichnet Änderungen am Lehrauftrag innerhalb der letzten 31 Tage', $format_normal); $worksheet->write(0,0,'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' '.$studiengang->kuerzel, $format_bold); $gesamt->write($gesamtsheet_row,0,'Erstellt am '.date('d.m.Y').' '.$semester_aktuell.' '.$studiengang->kuerzel, $format_bold); $gesamtsheet_row+=2; @@ -166,6 +171,8 @@ if($result_stg = $db->db_query($qry_stg)) $gesamt->write($gesamtsheet_row,$i,"Vorname", $format_bold); $worksheet->write(2,++$i,"Familienname", $format_bold); $gesamt->write($gesamtsheet_row,$i,"Familienname", $format_bold); + $worksheet->write(2,++$i,"Fixangestellt", $format_bold); + $gesamt->write($gesamtsheet_row,$i,"Fixangestellt", $format_bold); $worksheet->write(2,++$i,"LV-Stunden", $format_bold); $gesamt->write($gesamtsheet_row,$i,"LV-Stunden", $format_bold); $worksheet->write(2,++$i,"LV-Kosten", $format_bold); @@ -185,6 +192,7 @@ if($result_stg = $db->db_query($qry_stg)) tbl_mitarbeiter.personalnummer, tbl_person.person_id, tbl_mitarbeiter.mitarbeiter_uid, tbl_lehreinheitmitarbeiter.faktor as faktor, tbl_lehreinheitmitarbeiter.stundensatz as stundensatz, tbl_lehreinheitmitarbeiter.semesterstunden as semesterstunden, + CASE WHEN tbl_mitarbeiter.fixangestellt = true THEN 'Ja' ELSE 'Nein' END as fixangestellt, CASE WHEN COALESCE(tbl_lehreinheitmitarbeiter.updateamum, tbl_lehreinheitmitarbeiter.insertamum)>now()-interval '31 days' THEN 't' ELSE 'f' END as geaendert FROM lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_mitarbeiter, @@ -228,6 +236,7 @@ if($result_stg = $db->db_query($qry_stg)) $liste[$row->mitarbeiter_uid]['titelpre'] = $row->titelpre; $liste[$row->mitarbeiter_uid]['vorname'] = $row->vorname; $liste[$row->mitarbeiter_uid]['nachname'] = $row->nachname; + $liste[$row->mitarbeiter_uid]['fixangestellt'] = $row->fixangestellt; $liste[$row->mitarbeiter_uid]['betreuergesamtstunden'] = 0; $liste[$row->mitarbeiter_uid]['betreuergesamtkosten'] = 0; if($row->geaendert=='t') @@ -236,7 +245,7 @@ if($result_stg = $db->db_query($qry_stg)) //Alle holen die eine Betreuung aber keinen Lehrauftrag haben $qry = "SELECT - distinct personalnummer, titelpre, vorname, nachname, uid + distinct personalnummer, titelpre, vorname, nachname, uid, CASE WHEN fixangestellt = true THEN 'Ja' ELSE 'Nein' END as fixangestellt FROM lehre.tbl_projektbetreuer, public.tbl_person, public.tbl_benutzer, public.tbl_mitarbeiter, lehre.tbl_projektarbeit, lehre.tbl_lehreinheit, @@ -276,6 +285,7 @@ if($result_stg = $db->db_query($qry_stg)) $liste[$row->uid]['titelpre'] = $row->titelpre; $liste[$row->uid]['vorname'] = $row->vorname; $liste[$row->uid]['nachname'] = $row->nachname; + $liste[$row->uid]['fixangestellt'] = $row->fixangestellt; $liste[$row->uid]['geaendert']=false; $liste[$row->uid]['gesamtstunden'] = 0; $liste[$row->uid]['gesamtkosten'] = 0; @@ -290,7 +300,10 @@ if($result_stg = $db->db_query($qry_stg)) //Betreuungen fuer Projektarbeiten foreach ($liste as $uid=>$arr) { - $qry = "SELECT tbl_projektbetreuer.faktor, tbl_projektbetreuer.stunden, tbl_projektbetreuer.stundensatz, CASE WHEN COALESCE(tbl_projektbetreuer.updateamum, tbl_projektbetreuer.insertamum)>now()-interval '31 days' THEN 't' ELSE 'f' END as geaendert + $qry = "SELECT tbl_projektbetreuer.faktor, + tbl_projektbetreuer.stunden, + tbl_projektbetreuer.stundensatz, + CASE WHEN COALESCE(tbl_projektbetreuer.updateamum, tbl_projektbetreuer.insertamum)>now()-interval '31 days' THEN 't' ELSE 'f' END as geaendert FROM lehre.tbl_projektbetreuer, lehre.tbl_lehreinheit, lehre.tbl_lehrveranstaltung, public.tbl_benutzer, lehre.tbl_projektarbeit, campus.vw_student WHERE tbl_projektbetreuer.person_id=tbl_benutzer.person_id AND tbl_benutzer.uid=".$db->db_add_param($uid)." AND @@ -354,6 +367,9 @@ if($result_stg = $db->db_query($qry_stg)) //Nachname $worksheet->write($zeile,++$i,$row['nachname'], $format); $gesamt->write($gesamtsheet_row,$i,$row['nachname'], $format); + //Fixangestellt + $worksheet->write($zeile,++$i,$row['fixangestellt'], $format); + $gesamt->write($gesamtsheet_row,$i,$row['fixangestellt'], $format); //LVStunden $lvstunden = str_replace(',', '.', $row['lvstunden']); $worksheet->write($zeile,++$i,$lvstunden, $format); @@ -401,8 +417,8 @@ if($result_stg = $db->db_query($qry_stg)) } //Gesamtkosten anzeigen - $worksheet->writeNumber($zeile,10,$gesamtkosten, $format_number_bold); - $gesamt->writeNumber($gesamtsheet_row,10,$gesamtkosten, $format_number_bold); + $worksheet->writeNumber($zeile,11,$gesamtkosten, $format_number_bold); + $gesamt->writeNumber($gesamtsheet_row,11,$gesamtkosten, $format_number_bold); } } diff --git a/content/statistik/studentenexportextended.xls.php b/content/statistik/studentenexportextended.xls.php index 46ab8669b..819e49b9c 100644 --- a/content/statistik/studentenexportextended.xls.php +++ b/content/statistik/studentenexportextended.xls.php @@ -94,7 +94,7 @@ $format_title->setAlign('merge'); //Zeilenueberschriften ausgeben $i = 0; -$zeile = 1; +$zeile = 0; $worksheet->write($zeile, $i, "ANREDE", $format_bold); $maxlength[$i] = 6; @@ -108,10 +108,8 @@ $worksheet->write($zeile, ++$i, "TITELPOST", $format_bold); $maxlength[$i] = 9; $worksheet->write($zeile, ++$i, "EMail Privat", $format_bold); $maxlength[$i] = 12; -$worksheet->write($zeile,++$i,"STRASSE", $format_bold); -$maxlength[$i]=7; -$worksheet->write($zeile-1,$i,"Zustelladresse", $format_bold); -$maxlength[$i]=14; +$worksheet->write($zeile,++$i,"STRASSE (Zustelladresse)", $format_bold); +$maxlength[$i]=12; $worksheet->write($zeile,++$i,"PLZ", $format_bold); $maxlength[$i]=3; $worksheet->write($zeile,++$i,"ORT", $format_bold); @@ -158,7 +156,7 @@ $maxlength[$i] = 16; $worksheet->write($zeile, ++$i, "STATUS", $format_bold); $maxlength[$i] = 6; -$worksheet->write($zeile, ++$i, "STATI IN ANDEREN STUDIENGÄNGEN", $format_bold); +$worksheet->write($zeile, ++$i, "STATUS IN ANDEREN STUDIENGÄNGEN", $format_bold); $maxlength[$i] = 8; $worksheet->write($zeile, ++$i, "EMail Intern", $format_bold); $maxlength[$i] = 12; diff --git a/include/betriebsmittel.class.php b/include/betriebsmittel.class.php index 6cec84f7b..efd275827 100644 --- a/include/betriebsmittel.class.php +++ b/include/betriebsmittel.class.php @@ -1233,15 +1233,20 @@ class betriebsmittel extends basis_db if($result = $this->db_query($qry)) { - $ausgegeben_am = ''; - while($row = $this->db_fetch_object($result)) - { - if(empty($ausgegeben_am) || (!empty($ausgegeben_am) && $ausgegeben_am < $row->ausgegebenam)) - $ausgegeben_am = $row->ausgegebenam; - } - //return latest issue date - $this->result = $ausgegeben_am; - return true; + if($this->db_num_rows($result) > 0) + { + $ausgegeben_am = ''; + while($row = $this->db_fetch_object($result)) + { + if(empty($ausgegeben_am) || (!empty($ausgegeben_am) && $ausgegeben_am < $row->ausgegebenam)) + $ausgegeben_am = $row->ausgegebenam; + } + //return latest issue date + $this->result = $ausgegeben_am; + return true; + } + else + return false; } else { diff --git a/include/filter.class.php b/include/filter.class.php index ed6076f10..3578d7dcf 100644 --- a/include/filter.class.php +++ b/include/filter.class.php @@ -33,6 +33,7 @@ class filter extends basis_db //Tabellenspalten protected $filter_id; // integer (PK) protected $kurzbz; // varchar(32) unique + protected $bezeichnung; // varchar(64) (label shown before filter dropdown) protected $sql; // text protected $valuename; // varchar(32) protected $showvalue; // boolean (should the value be showed in the input widget @@ -85,6 +86,7 @@ class filter extends basis_db { $this->filter_id=$row->filter_id; $this->kurzbz=$row->kurzbz; + $this->bezeichnung=$row->bezeichnung; $this->sql=$row->sql; $this->valuename=$row->valuename; $this->showvalue=$this->db_parse_bool($row->showvalue); @@ -125,6 +127,7 @@ class filter extends basis_db $obj->filter_id=$row->filter_id; $obj->kurzbz=$row->kurzbz; + $obj->bezeichnung=$row->bezeichnung; $obj->sql=$row->sql; $obj->valuename=$row->valuename; $obj->showvalue = $this->db_parse_bool($row->showvalue); @@ -164,6 +167,22 @@ class filter extends basis_db return false; } + /** + * Filter Bezeichnung des Filters mit einer gegebenen kurzbz holen + * @param $kurzbz kurzbz des Datensatzes, der gefunden werden soll + * @return string|boolean Bezeichnung wenn kurzbz gefunden, false andernfalls + */ + public function getBezeichnungFromKurzbz($kurzbz) + { + foreach ($this->result as $filter) + { + if ($filter->kurzbz==$kurzbz) + return $filter->__get('bezeichnung'); + } + + return false; + } + /** * Ausgabe des HTML Widgets * @param kurzbz des Datensatzes, der gefunden werden soll @@ -304,9 +323,10 @@ class filter extends basis_db if($this->new) { //Neuen Datensatz einfuegen - $qry='INSERT INTO public.tbl_filter (kurzbz, sql, valuename, + $qry='INSERT INTO public.tbl_filter (kurzbz, bezeichnung, sql, valuename, showvalue, type, htmlattr, insertamum, insertvon) VALUES ('. $this->db_add_param($this->kurzbz).', '. + $this->db_add_param($this->bezeichnung).', '. $this->db_add_param($this->sql).', '. $this->db_add_param($this->valuename).', '. $this->db_add_param($this->showvalue, FHC_BOOLEAN).', '. @@ -326,6 +346,7 @@ class filter extends basis_db $qry='UPDATE public.tbl_filter SET'. ' kurzbz='.$this->db_add_param($this->kurzbz).', '. + ' bezeichnung='.$this->db_add_param($this->bezeichnung).', '. ' sql='.$this->db_add_param($this->sql).', '. ' valuename='.$this->db_add_param($this->valuename).', '. ' showvalue='.$this->db_add_param($this->showvalue, FHC_BOOLEAN).', '. diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php index aff458aa0..35032a8ef 100644 --- a/include/reihungstest.class.php +++ b/include/reihungstest.class.php @@ -1259,4 +1259,35 @@ class reihungstest extends basis_db return false; } } + + /** + * Prueft ob eine Person-Reihungstest-Studienplan zuteilung existiert (Muss in der DB unique sein) + * @param int $person_id ID der Person. + * @param int $rt_id ID des Reihungstests. + * @param int $studienplan_id Studienplan ID. + * @return boolean true wenn vorhanden, false wenn nicht oder im Fehlerfall + */ + public function checkPersonRtStudienplanExists($person_id, $rt_id, $studienplan_id) + { + $qry = "SELECT + * + FROM + public.tbl_rt_person + WHERE + tbl_rt_person.person_id=".$this->db_add_param($person_id)." + AND tbl_rt_person.rt_id=".$this->db_add_param($rt_id)." + AND tbl_rt_person.studienplan_id=".$this->db_add_param($studienplan_id); + if($result = $this->db_query($qry)) + { + if($this->db_num_rows($result) > 0) + return true; + else + return false; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } diff --git a/include/zeitaufzeichnung.class.php b/include/zeitaufzeichnung.class.php index 07c87cf50..a713db0f0 100755 --- a/include/zeitaufzeichnung.class.php +++ b/include/zeitaufzeichnung.class.php @@ -487,7 +487,7 @@ class zeitaufzeichnung extends basis_db $where = "uid=".$this->db_add_param($user); if ($days!='') $where.= " AND ende>(now() - INTERVAL '".$days." days')"; - $where_join = "and z.uid=".$this->db_add_param($user); + $where_join = "and (z.aktivitaet_kurzbz != 'DienstreiseMT' or z.aktivitaet_kurzbz is null) and z.uid=".$this->db_add_param($user); if ($days!='') $where_join.= " AND z.ende>(now() - INTERVAL '".$days." days')"; if ($days=='') @@ -540,6 +540,64 @@ class zeitaufzeichnung extends basis_db } } + /** + * Laedt die Zeitaufzeichnungen eines Users aufgefüllt mit lehren Tagen. + * Default: Die letzten 40 Tage + * @param string $user + * @param integer $days deafult: 40 Tage + */ + public function getDienstreisenUser($user, $days='40') + { + $where = "uid=".$this->db_add_param($user); + if ($days!='') + $where.= " AND ende>(now() - INTERVAL '".$days." days')"; + $where .= " AND aktivitaet_kurzbz = 'DienstreiseMT'"; + $qry = "SELECT + zeitaufzeichnung_id, start::date as starttag, TO_CHAR(start, 'HH24:MI') as startzeit, ende::date as endtag, TO_CHAR(ende, 'HH24:MI') as endzeit + FROM campus.tbl_zeitaufzeichnung + where $where + ORDER BY ende DESC + "; + + if($result = $this->db_query($qry)) + { + $dr_arr = array(); + while($row = $this->db_fetch_object($result)) + { + if (array_key_exists($row->starttag, $dr_arr)) + { + $dr_arr[$row->starttag]['start'] = $row->startzeit; + $dr_arr[$row->starttag]['id'] = $row->zeitaufzeichnung_id; + } + else + { + $dr_arr[$row->starttag] = array(); + $dr_arr[$row->starttag]['start'] = $row->startzeit; + $dr_arr[$row->starttag]['id'] = $row->zeitaufzeichnung_id; + } + if (array_key_exists($row->endtag, $dr_arr)) + { + $dr_arr[$row->endtag]['ende'] = $row->endzeit; + $dr_arr[$row->endtag]['id'] = $row->zeitaufzeichnung_id; + } + else + { + $dr_arr[$row->endtag] = array(); + $dr_arr[$row->endtag]['ende'] = $row->endzeit; + $dr_arr[$row->endtag]['id'] = $row->zeitaufzeichnung_id; + } + + $this->result = $dr_arr; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + /** * Löscht sämtliche Einträge eines Users für einen Tag * @param string $user @@ -684,5 +742,48 @@ or not exists return $lehre_arr; } + + /** + * Holt das Datum bis zu dem die Eintragung für einen bestimmten User gesperrt ist + * @param string $user + * @return string $tag Y-m-d or false + */ + + public function getEintragungGesperrtBisForUser($user) + { + //check if addon casetime is installed + $qrytable = " + SELECT EXISTS( + SELECT * + FROM information_schema.tables + WHERE + table_schema = 'addon' AND + table_name = 'tbl_casetime_timesheet' + ); + "; + + $res = $this->db_query($qrytable); + if ($this->db_fetch_row($res)[0]===true) + { + //check if sent timesheets for the UID exist + $where = "uid=".$this->db_add_param($user); + + $qry = "select max(datum) from addon.tbl_casetime_timesheet where ".$where." and abgeschicktamum is not null"; + + if($result = $this->db_query($qry)) + { + $datum = $this->db_fetch_object($result); + return $datum->max; + } + else + { + return false; + } + } + else + { + return false; + } + } } ?> diff --git a/locale/de-AT/tools.php b/locale/de-AT/tools.php index 5d579e177..da72d4028 100644 --- a/locale/de-AT/tools.php +++ b/locale/de-AT/tools.php @@ -2,6 +2,9 @@ //Dokumente $this->phrasen['tools/dokumente']='Dokumente'; +$this->phrasen['tools/dokument']='Dokument'; +$this->phrasen['tools/erstelldatum']='Erstelldatum'; +$this->phrasen['tools/bestaetigungenZeugnisse']='Bestätigungen/Zeugnisse'; $this->phrasen['tools/inskriptionsbestaetigung']='Inskriptionsbestätigung'; $this->phrasen['tools/studienbeitragFuerSSBezahlt']='Studienbeitrag für das %1$s bezahlt'; $this->phrasen['tools/studienbeitragFuerSSNochNichtBezahlt']='Studienbeitrag für das %1$s noch nicht bezahlt'; @@ -9,6 +12,10 @@ $this->phrasen['tools/studienerfolgsbestaetigung']='Studienerfolgsbestätigung'; $this->phrasen['tools/studiensemesterAuswaehlen']='Bitte wählen Sie das entsprechende Studiensemester aus'; $this->phrasen['tools/vorlageWohnsitzfinanzamt']='zur Vorlage beim Wohnsitzfinanzamt'; $this->phrasen['tools/studienbuchblatt']='Studienbuchblatt'; +$this->phrasen['tools/alleStudiensemester']='Alle Studiensemester'; +$this->phrasen['tools/abschlussdokumente']='Abschlussdokumente/Zeugnisse'; +$this->phrasen['tools/nochKeineAbschlussdokumenteVorhanden']='Noch keine Abschlussdokumente vorhanden'; +$this->phrasen['tools/keinStatusImStudiensemester']='Für das übergebene Studiensemester %1$s existiert kein Status. Bitte wählen Sie ein gültiges Studiensemester aus dem DropDown.'; //Leistungsbeurteilung $this->phrasen['tools/leistungsbeurteilung']='Leistungsbeurteilung'; @@ -18,6 +25,10 @@ $this->phrasen['tools/nochKeineBeurteilungEingetragen']='Es wurden noch keine Be $this->phrasen['tools/fehlerBeimAuslesenDerNoten']='Fehler beim Auslesen der Noten'; $this->phrasen['tools/benotungsdatumDerZeugnisnote']='Benotungsdatum der Zeugnisnote'; $this->phrasen['tools/hinweistextMarkierung']='Kennzeichnet jene Einträge, bei denen sich die LV-Note von der Zeugnisnote unterscheidet. Letztgültig ist die Zeugnisnote.
Sollten diese Angaben nicht stimmen, wenden Sie sich bitte an Ihre zuständige Assistenz.'; +$this->phrasen['tools/notendurchschnittDerZeugnisnote']='Notendurchschnitt* der Zeugnisnote'; +$this->phrasen['tools/gewichteterNotendurchschnittDerZeugnisnote']='Gewichteter** Notendurchschnitt* der Zeugnisnote'; +$this->phrasen['tools/legendeGewichteterNotendurchschnitt']='Der gewichtete Notendurchschnitt errechnet sich aus der Note der Lehrveranstaltung, multipliziert mit deren ECTS, dividiert durch die Summe aller ECTS'; +$this->phrasen['tools/legendeNotendurchschnitt']='Bitte beachten Sie, dass außercurriculare Lehrveranstaltungen (zB Freifächer) den errechneten Notendurchschnitt verfälschen können'; //Zahlungen $this->phrasen['tools/zahlungen']='Zahlungen'; diff --git a/locale/de-AT/zeitaufzeichnung.php b/locale/de-AT/zeitaufzeichnung.php old mode 100644 new mode 100755 index 9a475bc1d..e3a156469 --- a/locale/de-AT/zeitaufzeichnung.php +++ b/locale/de-AT/zeitaufzeichnung.php @@ -57,4 +57,4 @@ $this->phrasen['zeitaufzeichnung/stunden']='Stunden'; $this->phrasen['zeitaufzeichnung/taetigkeit']='Tätigkeit'; $this->phrasen['zeitaufzeichnung/keineprojekte']='keine Projekte vorhanden'; $this->phrasen['zeitaufzeichnung/summe']='Summe:'; -?> +$this->phrasen['zeitaufzeichnung/dienstreise']='Dienstreise'; diff --git a/locale/en-US/tools.php b/locale/en-US/tools.php index 276c72bbb..177851def 100644 --- a/locale/en-US/tools.php +++ b/locale/en-US/tools.php @@ -2,6 +2,9 @@ //Dokumente $this->phrasen['tools/dokumente']='Documents'; +$this->phrasen['tools/dokument']='Document'; +$this->phrasen['tools/erstelldatum']='Creation date'; +$this->phrasen['tools/bestaetigungenZeugnisse']='Certificates/Transcripts'; $this->phrasen['tools/inskriptionsbestaetigung']='Enrollment Confirmation'; $this->phrasen['tools/studienbeitragFuerSSBezahlt']='tuition fee for semester %1$s paid'; $this->phrasen['tools/studienbeitragFuerSSNochNichtBezahlt']='tuition fee for semester %1$s not yet paid'; @@ -9,6 +12,10 @@ $this->phrasen['tools/studienerfolgsbestaetigung']='Student progress report'; $this->phrasen['tools/studiensemesterAuswaehlen']='Please select the corresponding semester'; $this->phrasen['tools/vorlageWohnsitzfinanzamt']='for submission to local tax office'; $this->phrasen['tools/studienbuchblatt']='Studienbuchblatt'; //Noch zu übersetzen +$this->phrasen['tools/alleStudiensemester']='All semester'; +$this->phrasen['tools/abschlussdokumente']='Final documents/Transcripts'; +$this->phrasen['tools/nochKeineAbschlussdokumenteVorhanden']='No final documents available yet'; +$this->phrasen['tools/keinStatusImStudiensemester']='No status found for %1$s. Please select a valid semester from the dropdown.'; //Leistungsbeurteilung $this->phrasen['tools/leistungsbeurteilung']='Performance Assessment '; @@ -18,6 +25,10 @@ $this->phrasen['tools/nochKeineBeurteilungEingetragen']='No grade has been enter $this->phrasen['tools/fehlerBeimAuslesenDerNoten']='Error reading the grades.'; $this->phrasen['tools/benotungsdatumDerZeugnisnote']='Date of grading'; $this->phrasen['tools/hinweistextMarkierung']='The marking indicates those entries where the grade for the course is different from the grade on the report card.The grade on the report card is the valid one.
Should these details not be correct please contact the Administrative Assistant responsible.'; +$this->phrasen['tools/notendurchschnittDerZeugnisnote']='Average of final grade*'; +$this->phrasen['tools/gewichteterNotendurchschnittDerZeugnisnote']='Weighted** average of final grade*'; +$this->phrasen['tools/legendeGewichteterNotendurchschnitt']='The weighted average grade is calculated using the grade of the course, multiplied with its ECTS, divided by the sum of all ECTS'; +$this->phrasen['tools/legendeNotendurchschnitt']='Please note that extracurricular courses (eg elective courses) may distort the calculated average grade'; //Zahlungen $this->phrasen['tools/zahlungen']='Payments'; diff --git a/locale/en-US/zeitaufzeichnung.php b/locale/en-US/zeitaufzeichnung.php old mode 100644 new mode 100755 index e7e92fa11..692e4f5b1 --- a/locale/en-US/zeitaufzeichnung.php +++ b/locale/en-US/zeitaufzeichnung.php @@ -57,4 +57,4 @@ $this->phrasen['zeitaufzeichnung/stunden']='Hours'; $this->phrasen['zeitaufzeichnung/taetigkeit']='Activity'; $this->phrasen['zeitaufzeichnung/keineprojekte']='no projects exist'; $this->phrasen['zeitaufzeichnung/summe']='Sum:'; -?> \ No newline at end of file +$this->phrasen['zeitaufzeichnung/dienstreise']='Business Trip'; diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 9c90a68c9..95c23ba99 100755 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -2297,6 +2297,31 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants } } +// Add UNIQUE constraint on kurzbz from public.tbl_filter +if($result = @$db->db_query("SELECT conname FROM pg_constraint WHERE conname = 'uk_filter_kurzbz'")) +{ + if($db->db_num_rows($result) == 0) + { + $qry = "ALTER TABLE public.tbl_filter ADD CONSTRAINT uk_filter_kurzbz UNIQUE(kurzbz);"; + + if(!$db->db_query($qry)) + echo 'public.tbl_filter '.$db->db_last_error().'
'; + else + echo '
Added UNIQUE constraint on "kurzbz" from public.tbl_filter
'; + } +} + +// Reporting filter: bezeichnung +if(!$result = @$db->db_query("SELECT bezeichnung FROM public.tbl_filter LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_filter ADD COLUMN bezeichnung varchar(65);"; + + if(!$db->db_query($qry)) + echo 'public.tbl_filter: '.$db->db_last_error().'
'; + else + echo '
public.tbl_filter: Spalte bezeichnung hinzugefuegt'; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -2462,7 +2487,7 @@ $tabellen=array( "public.tbl_dokumentstudiengang" => array("dokument_kurzbz","studiengang_kz","ext_id", "onlinebewerbung", "pflicht","beschreibung_mehrsprachig","nachreichbar"), "public.tbl_erhalter" => array("erhalter_kz","kurzbz","bezeichnung","dvr","logo","zvr"), "public.tbl_fachbereich" => array("fachbereich_kurzbz","bezeichnung","farbe","studiengang_kz","aktiv","ext_id","oe_kurzbz"), - "public.tbl_filter" => array("filter_id","kurzbz","sql","valuename","showvalue","insertamum","insertvon","updateamum","updatevon","type","htmlattr"), + "public.tbl_filter" => array("filter_id","kurzbz","sql","valuename","showvalue","insertamum","insertvon","updateamum","updatevon","type","htmlattr", "bezeichnung"), "public.tbl_firma" => array("firma_id","name","anmerkung","firmentyp_kurzbz","updateamum","updatevon","insertamum","insertvon","ext_id","schule","finanzamt","steuernummer","gesperrt","aktiv","lieferbedingungen","partner_code"), "public.tbl_firma_mobilitaetsprogramm" => array("firma_id","mobilitaetsprogramm_code","ext_id"), "public.tbl_firma_organisationseinheit" => array("firma_organisationseinheit_id","firma_id","oe_kurzbz","bezeichnung","kundennummer","updateamum","updatevon","insertamum","insertvon","ext_id"), diff --git a/vilesci/stammdaten/personen_wartung.php b/vilesci/stammdaten/personen_wartung.php index 2aca71d66..6a6d7628c 100644 --- a/vilesci/stammdaten/personen_wartung.php +++ b/vilesci/stammdaten/personen_wartung.php @@ -136,6 +136,8 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p $personToDelete_obj = new person(); if ($personToDelete_obj->load($personToDelete)) { + $error = false; + $sql_query_upd1 = "BEGIN;"; $personToKeep_obj = new person(); $personToKeep_obj->load($personToKeep); @@ -145,10 +147,32 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p { $msg_error[] = 'Beide Personen haben eine Sozialversicherungsnummer oder ein Ersatzkennzeichen und können nicht zusammengelegt werden.
Bitte wenden Sie sich an einen Administrator.'; + $error = true; } - else + + // Wenn zwei gleiche rt_person Einträge vorhanden sind, wird ein Fehler ausgegeben und abgebrochen + $reihungstest_personToKeep = new reihungstest(); + $reihungstest_personToKeep->getReihungstestPerson($personToKeep); + $doppelteReihungstestzuordnung = false; + + foreach ($reihungstest_personToKeep->result as $row) + { + $rt_doppelt = new reihungstest(); + if ($rt_doppelt->checkPersonRtStudienplanExists($personToDelete, $row->reihungstest_id, $row->studienplan_id)) + { + $doppelteReihungstestzuordnung = true; + $msg_error[] = "Die Person ".$personToDelete." hat schon eine Reihungstestzuordnung + zu Reihungstest ID ".$row->reihungstest_id." im Studienplan ".$row->studienplan_id.".
+ Sie müssen die Datensätze manuell bereinigen, bevor Sie die Personen zusammenlegen können."; + $error = true; + break; + } + } + if ($doppelteReihungstestzuordnung === false) + $sql_query_upd1 .= "UPDATE public.tbl_rt_person SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; + + if ($error == false) { - $sql_query_upd1 = "BEGIN;"; // Wenn bei einer der Personen das Foto gesperrt ist, dann die Sperre uebernehmen if ($personToDelete_obj->foto_sperre) $sql_query_upd1 .= "UPDATE public.tbl_person SET foto_sperre=true WHERE person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . ";"; @@ -218,8 +242,8 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p } // Bild in tbl_person auf 240x320 skalieren - //$base64_src = resize($base64foto, 240, 320); Auskommentiert bis das auch im Echtsystem geht - $base64_src = $base64foto; + $base64_src = resize($base64foto, 240, 320); + $sql_query_upd1 .= "UPDATE public.tbl_person SET foto=" . $db->db_add_param($base64_src) . " WHERE person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . ";"; } @@ -260,23 +284,6 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p else $zugangscode = $personToKeep_obj->zugangscode; - // Check ob rt_person-zuordnung schon vorhanden ist - // Wenn ja, wird der Eintrag der zu löschenden Person ebenfalls gelöscht - $reihungstest_person = new reihungstest(); - - - //if (!$reihungstest_person->getReihungstestPerson($personToKeep)) - $sql_query_upd1 .= "UPDATE public.tbl_rt_person SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; - /*else - { - $sql_query_upd1 .= "DELETE FROM public.tbl_rt_person WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; - $reihungstest = new reihungstest($reihungstest_person->result[0]->reihungstest_id); - $msg_warning[] = "Das verbliebene Person ".$personToKeep." hat schon eine Reihungstestzuordnung - zu Reihungstest ID".$reihungstest->reihungstest_id." am ".$reihungstest->datum." - für das ".$reihungstest->studiensemester_kurzbz." im Studiengang ".$reihungstest->studiengang_kz." (Studienplan ".$reihungstest_person->result[0]->studienplan_id.")
- Die Reihungstestzuordnung von ".$personToDelete." wurde gelöscht"; - }*/ - $sql_query_upd1 .= "UPDATE addon.tbl_kompetenz SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; $sql_query_upd1 .= "UPDATE lehre.tbl_abschlusspruefung SET pruefer1=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE pruefer1=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; $sql_query_upd1 .= "UPDATE lehre.tbl_abschlusspruefung SET pruefer2=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE pruefer2=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";"; @@ -928,6 +935,13 @@ function resize($base64, $width, $height) // 828 x 1104 -> 240 x 320 } function checkPersonen() { + // Check, ob jeweils ein Radiobutton ausgewählt wurde + if(!$('input[type=radio][name=radio_1]').is(':checked') || !$('input[type=radio][name=radio_2]').is(':checked')) + { + alert('Bitte wählen Sie auf beiden Seiten einen Radio-Button aus'); + return false; + } + // Wenn die Personen zu unterschiedlich sind, Warnung ausgeben // Prüfen auf Vorname, Nachname, Geburtsdatum var nachnameLinks = $('input[type=radio][name=radio_1]:checked').closest('tr').find('.nachname').text().toLowerCase(); diff --git a/vilesci/statistik/filter_details.php b/vilesci/statistik/filter_details.php index 14521ce55..8ff284b1f 100644 --- a/vilesci/statistik/filter_details.php +++ b/vilesci/statistik/filter_details.php @@ -44,6 +44,7 @@ $filter = new filter(); $filter->filter_id = ''; $filter->kurzbz = 'NewFilter'; + $filter->bezeichnung = 'New Filter'; $filter->sql = 'SELECT foo AS value, bar AS name FROM foobar WHERE ... ORDER BY name'; $filter->valuename = ''; $filter->showvalue = true; @@ -68,6 +69,7 @@ } $filter->kurzbz = $_POST["kurzbz"]; + $filter->bezeichnung = $_POST["bezeichnung"]; $filter->valuename = $_POST["valuename"]; $filter->sql = $_POST["sql"]; $filter->showvalue = isset($_POST["showvalue"]); @@ -104,19 +106,21 @@ $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= " \n"; - $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; + $htmlstr .= " \n"; $htmlstr .= " \n"; - $htmlstr .= " \n"; + $htmlstr .= " \n"; $htmlstr .= " \n"; - $htmlstr .= " \n"; + $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= " \n"; - $htmlstr .= " \n"; + $htmlstr .= " \n"; $htmlstr .= " \n"; - $htmlstr .= " \n"; + $htmlstr .= " \n"; $htmlstr .= " \n"; $htmlstr .= "
KurzBzBezeichnungValueNameTypeShowValue
SQLHTML-Attributes
\n"; $htmlstr .= "
\n";