diff --git a/cis/private/lehre/benotungstool/studentenansicht.php b/cis/private/lehre/benotungstool/studentenansicht.php index 493c8ee67..be203d8d7 100644 --- a/cis/private/lehre/benotungstool/studentenansicht.php +++ b/cis/private/lehre/benotungstool/studentenansicht.php @@ -347,7 +347,7 @@ if($result = $db->db_query($qry)) $gruppen.=' '; } } - echo "\n"; + echo "\n"; } echo ' '; } diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 2e4f012c2..ca2c0a7b4 100755 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -38,6 +38,8 @@ require_once('../../../include/service.class.php'); require_once('../../../include/mitarbeiter.class.php'); require_once('../../../include/betriebsmittelperson.class.php'); require_once('../../../include/globals.inc.php'); +require_once('../../../include/bisverwendung.class.php'); +require_once('../../../include/studiensemester.class.php'); $sprache = getSprache(); $p=new phrasen($sprache); @@ -46,6 +48,11 @@ if (!$db = new basis_db()) die($p->t("global/fehlerBeimOeffnenDerDatenbankverbindung")); $user = get_uid(); +if ($user == 'raab' && isset($_GET["debuguser"])) + $user = $_GET["debuguser"]; + + + $datum = new datum(); @@ -86,7 +93,11 @@ $alle = (isset($_GET['alle'])?(isset($_GET['normal'])?false:true):false); $angezeigte_tage = '50'; $zs = new zeitsperre(); -$zs->getZeitsperrenForZeitaufzeichnung($user,$angezeigte_tage); +if ($alle) + $zs->getZeitsperrenForZeitaufzeichnung($user,'180'); +else + $zs->getZeitsperrenForZeitaufzeichnung($user,$angezeigte_tage); + $zeitsperren = $zs->result; echo ' @@ -616,7 +627,11 @@ if($projekt->getProjekteMitarbeiter($user, true)) { echo '

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

'; } - echo '

'.$p->t("urlaubstool/meineZeitsperren").'

'; + if ($p->t("dms_link/fiktiveNormalarbeitszeit")!='') + { + echo '

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

'; + } + echo '

'.$p->t("urlaubstool/meineZeitsperren").'

'; echo " "; @@ -626,7 +641,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) echo ' - -
'; + '; echo ''; if($za_simple == 0) { @@ -836,9 +851,41 @@ if($projekt->getProjekteMitarbeiter($user, true)) else echo ''; echo '
'; - echo '


'; - + + echo '

'; + + echo ''; + + // Summen Lehre anzeigen + $bv = new bisverwendung(); + $bv->getLastAktVerwendung($user); + $lehre_inkludiert = $bv->inkludierte_lehre; + if (!$lehre_inkludiert) + $lehre_inkludiert = 0; + + $stsem = new studiensemester(); + $sem_akt = $stsem->getakt(); + $lehre = new zeitaufzeichnung(); + $l_arr = $lehre->getLehreForUser($user, $sem_akt); + if ($l_arr["LehreAuftraege"]>0 || $l_arr["LehreIntern"] > 0 || $l_arr["LehreExtern"] > 0) + { + $l_extern_soll = $l_arr["LehreAuftraege"]-$lehre_inkludiert; + $l_extern_soll_norm = $l_extern_soll/4*3; + $lehre_inkludiert_norm = $lehre_inkludiert/4*3; + echo ''; + echo ''; + echo ''; + echo ''; + if ($lehre_inkludiert > 0 || $l_arr["LehreIntern"] > 0) + echo ''; + if ($l_extern_soll > 0 || $l_arr["LehreExtern"] > 0) + echo ''; + + echo '

Übersicht Lehre '.$sem_akt.'

(in Stunden)
beauftragt (LE)gebucht
LehreIntern:'.$lehre_inkludiert_norm.' ('.$lehre_inkludiert.')'.$l_arr["LehreIntern"].'
LehreExtern:'.$l_extern_soll_norm.' ('.$l_extern_soll.')'.$l_arr["LehreExtern"].'
'; + } + echo ''; + echo ''; + echo '
'; echo '

'.($alle===true?$p->t('zeitaufzeichnung/alleEintraege'):$p->t('zeitaufzeichnung/xTageAnsicht', array($angezeigte_tage))).'

'; if ($alle===true) @@ -943,7 +990,11 @@ if($projekt->getProjekteMitarbeiter($user, true)) } list($h2, $m2) = explode(':', $elsumme); $elsumme = $h2*3600+$m2*60; - if ($tagessaldo>18000 && $pflichtpause==false && $elsumme == 0) + if ($tagessaldo > 18000 && $tagessaldo < 19800 && $pflichtpause==false && $elsumme == 0) + { + $pausesumme = $tagessaldo-18000; + } + else if ($tagessaldo>18000 && $pflichtpause==false && $elsumme == 0) { $pausesumme = $pausesumme+1800; } diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index ddc2043b5..8cbcbd0eb 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -1847,7 +1847,7 @@ function StudentRolleBearbeiten() var prestudent_id = getTreeCellText(tree, 'student-prestudent-tree-rolle-prestudent_id', tree.currentIndex); var ausbildungssemester = getTreeCellText(tree, 'student-prestudent-tree-rolle-ausbildungssemester', tree.currentIndex); - window.open('content/student/studentrolledialog.xul.php?prestudent_id='+prestudent_id+'&status_kurzbz='+status_kurzbz+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&ausbildungssemester='+ausbildungssemester,"Status","status=no, width=500, height=300, centerscreen, resizable"); + window.open('content/student/studentrolledialog.xul.php?prestudent_id='+prestudent_id+'&status_kurzbz='+status_kurzbz+'&studiensemester_kurzbz='+studiensemester_kurzbz+'&ausbildungssemester='+ausbildungssemester,"Status","status=no, width=500, height=350, centerscreen, resizable"); } // **** diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index d13e5ed51..d2096818d 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -715,6 +715,7 @@ class mitarbeiter extends benutzer WHERE person_id=tbl_benutzer.person_id AND NOT EXISTS(SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='gedruckt') AND NOT EXISTS(SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='abgerechnet') + AND EXISTS(SELECT 1 FROM lehre.tbl_lehreinheitmitarbeiter WHERE vertrag_id=tbl_vertrag.vertrag_id) )"; } diff --git a/include/zeitaufzeichnung.class.php b/include/zeitaufzeichnung.class.php index c1c95ea2d..7bca0a777 100755 --- a/include/zeitaufzeichnung.class.php +++ b/include/zeitaufzeichnung.class.php @@ -437,6 +437,56 @@ class zeitaufzeichnung extends basis_db $this->errormsg = 'Fehler beim Laden der Daten'; return false; } + } + + /** + * Holt alle ZA-Einträge Typ LehreIntern und LehreExtern eines Users + * für das laufende Studienjahr und gibt die Summen in einem Array zurück + * @param string $user + * @return Array mit Keay: LehreIntern, LehreExtern, LehreAuftraege, LehreInkludiert + */ + public function getLehreForUser($user,$sem) + { + $where = "uid=".$this->db_add_param($user); + $where_sem = "studiensemester_kurzbz=".$this->db_add_param($sem); + $lehre_arr = array("LehreIntern"=>0, "LehreExtern"=>0, "LehreAuftraege"=>0); + + $qry = " + select sum(extract(epoch from ende-start))/3600 as lehre, aktivitaet_kurzbz from campus.tbl_zeitaufzeichnung where $where and aktivitaet_kurzbz in ('LehreIntern', 'LehreExtern') and start > (select start from public.tbl_studiensemester where $where_sem) group by aktivitaet_kurzbz + "; + + if($result = $this->db_query($qry)) + { + + while($row = $this->db_fetch_object($result)) + { + $lehre_arr[$row->aktivitaet_kurzbz] = round($row->lehre,2); + } + } + else + { + return false; + } + $where = "mitarbeiter_uid=".$this->db_add_param($user); + $where_sem = "l.studiensemester_kurzbz=".$this->db_add_param($sem); + $qry = " + select sum(m.semesterstunden) from lehre.tbl_lehreinheitmitarbeiter m, lehre.tbl_lehreinheit l where $where and $where_sem and l.lehreinheit_id = m.lehreinheit_id + "; + + if($result = $this->db_query($qry)) + { + + while($row = $this->db_fetch_object($result)) + { + $lehre_arr["LehreAuftraege"] = round($row->sum); + } + } + else + { + return false; + } + + return $lehre_arr; } } ?> diff --git a/include/zeitsperre.class.php b/include/zeitsperre.class.php index 0d049275e..572e22b85 100755 --- a/include/zeitsperre.class.php +++ b/include/zeitsperre.class.php @@ -482,7 +482,7 @@ class zeitsperre extends basis_db $qry = "select datum::date, freigabevon, zeitsperretyp_kurzbz from (SELECT generate_series(vondatum::timestamp, bisdatum::timestamp, '1 day') as datum, freigabevon, mitarbeiter_uid, zeitsperretyp_kurzbz FROM campus.tbl_zeitsperre where vonstunde is null and bisstunde is null) a - where a.mitarbeiter_uid = ".$this->db_add_param($uid)." and datum>(now() - interval '50 Days') and zeitsperretyp_kurzbz in ('Krank','Urlaub', 'ZA', 'DienstV','PflegeU')"; + where a.mitarbeiter_uid = ".$this->db_add_param($uid)." and datum>(now() - interval '".$anz_tage." Days') and zeitsperretyp_kurzbz in ('Krank','Urlaub', 'ZA', 'DienstV','PflegeU')"; diff --git a/locale/de-AT/dms_link.php b/locale/de-AT/dms_link.php index 3475c9888..70119b5d6 100755 --- a/locale/de-AT/dms_link.php +++ b/locale/de-AT/dms_link.php @@ -15,6 +15,7 @@ $this->phrasen['dms_link/bedienungsanleitungMailverteiler']='1474'; //Bedienungs $this->phrasen['dms_link/berechtigungskonzeptMailverteiler']='1475'; //Berechtigungskonzept Mailverteiler $this->phrasen['dms_link/handbuchUrlaubsverwaltung']='759'; //Handbuch Urlaubsverwaltung -> Leer lassen, falls es keines gibt $this->phrasen['dms_link/handbuchZeitaufzeichnung']='1545'; //Handbuch Zeitaufzeichnung -> Leer lassen, falls es keines gibt +$this->phrasen['dms_link/fiktiveNormalarbeitszeit']='2512'; //fiktive Normalarbeitszeit -> Leer lassen, falls es keines gibt // Content IDs (=Englisch) $this->phrasen['dms_link/lvPlanFAQ']='6887'; //Hilfe-Link aus dem LV-Plan in die LV-Plan FAQ auf der CIS (CMS-ID) diff --git a/locale/de-AT/zeitaufzeichnung.php b/locale/de-AT/zeitaufzeichnung.php index 51e7f60ae..30ca703e9 100755 --- a/locale/de-AT/zeitaufzeichnung.php +++ b/locale/de-AT/zeitaufzeichnung.php @@ -42,5 +42,6 @@ $this->phrasen['zeitaufzeichnung/summeEintraege']='Summe Einträge'; $this->phrasen['zeitaufzeichnung/arbeitszeit']='Arbeitszeit'; $this->phrasen['zeitaufzeichnung/pause']='Pausen';'inkl. 30 min. Pflichtpause'; $this->phrasen['zeitaufzeichnung/inklusivePflichtpause']='inkl. 30 min. Pflichtpause'; -$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Arbeitszeitaufzeichnung Leitfaden'; +$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Arbeitszeitaufzeichnung Leitfaden'; +$this->phrasen['zeitaufzeichnung/fiktiveNormalarbeitszeit']='Vereinbarung der fiktiven Normalarbeitszeit'; ?> diff --git a/locale/en-US/dms_link.php b/locale/en-US/dms_link.php index 5b36abdde..37d89a848 100755 --- a/locale/en-US/dms_link.php +++ b/locale/en-US/dms_link.php @@ -15,6 +15,7 @@ $this->phrasen['dms_link/bedienungsanleitungMailverteiler']='1474'; //Bedienungs $this->phrasen['dms_link/berechtigungskonzeptMailverteiler']='1475'; //Berechtigungskonzept Mailverteiler $this->phrasen['dms_link/handbuchUrlaubsverwaltung']='759'; //Handbuch Urlaubsverwaltung $this->phrasen['dms_link/handbuchZeitaufzeichnung']='1545'; //Handbuch Zeitaufzeichnung -> Leer lassen, falls es keines gibt +$this->phrasen['dms_link/fiktiveNormalarbeitszeit']='2512'; //fiktive Normalarbeitszeit -> Leer lassen, falls es keines gibt // Content IDs (=Deutsch) $this->phrasen['dms_link/lvPlanFAQ']='6887'; //Hilfe-Link aus dem LV-Plan in die LV-Plan FAQ auf der CIS (CMS-ID) diff --git a/locale/en-US/zeitaufzeichnung.php b/locale/en-US/zeitaufzeichnung.php index ad63edbcc..576657e8f 100755 --- a/locale/en-US/zeitaufzeichnung.php +++ b/locale/en-US/zeitaufzeichnung.php @@ -42,5 +42,6 @@ $this->phrasen['zeitaufzeichnung/summeEintraege']='Total'; $this->phrasen['zeitaufzeichnung/arbeitszeit']='Working time'; $this->phrasen['zeitaufzeichnung/pause']='Breaks'; $this->phrasen['zeitaufzeichnung/inklusicePlichtpause']='incl. 30 min. lunch break'; -$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Timesheet howto'; +$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Timesheet howto'; +$this->phrasen['zeitaufzeichnung/fiktiveNormalarbeitszeit']='Vereinbarung der fiktiven Normalarbeitszeit'; ?> \ No newline at end of file diff --git a/system/checksystem.php b/system/checksystem.php index 347d50df4..75a92fff8 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -3938,7 +3938,7 @@ $tabellen=array( "public.tbl_notiz_dokument" => array("notiz_id","dms_id"), "public.tbl_ort" => array("ort_kurzbz","bezeichnung","planbezeichnung","max_person","lehre","reservieren","aktiv","lageplan","dislozierung","kosten","ausstattung","updateamum","updatevon","insertamum","insertvon","ext_id","stockwerk","standort_id","telefonklappe","content_id","m2","gebteil","oe_kurzbz"), "public.tbl_ortraumtyp" => array("ort_kurzbz","hierarchie","raumtyp_kurzbz"), - "public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort","warn_semesterstunden_frei","warn_semesterstunden_fix"), + "public.tbl_organisationseinheit" => array("oe_kurzbz", "oe_parent_kurzbz", "bezeichnung","organisationseinheittyp_kurzbz", "aktiv","mailverteiler","freigabegrenze","kurzzeichen","lehre","standort","warn_semesterstunden_frei","warn_semesterstunden_fix","standort_id"), "public.tbl_organisationseinheittyp" => array("organisationseinheittyp_kurzbz", "bezeichnung", "beschreibung"), "public.tbl_person" => array("person_id","staatsbuergerschaft","geburtsnation","sprache","anrede","titelpost","titelpre","nachname","vorname","vornamen","gebdatum","gebort","gebzeit","foto","anmerkung","homepage","svnr","ersatzkennzeichen","familienstand","geschlecht","anzahlkinder","aktiv","insertamum","insertvon","updateamum","updatevon","ext_id","bundesland_code","kompetenzen","kurzbeschreibung","zugangscode", "foto_sperre","matr_nr"), "public.tbl_person_fotostatus" => array("person_fotostatus_id","person_id","fotostatus_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"), @@ -3960,7 +3960,7 @@ $tabellen=array( "public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"), "public.tbl_service" => array("service_id", "bezeichnung","beschreibung","ext_id","oe_kurzbz","content_id"), "public.tbl_sprache" => array("sprache","locale","flagge","index","content","bezeichnung"), - "public.tbl_standort" => array("standort_id","adresse_id","kurzbz","bezeichnung","insertvon","insertamum","updatevon","updateamum","ext_id", "firma_id"), + "public.tbl_standort" => array("standort_id","adresse_id","kurzbz","bezeichnung","insertvon","insertamum","updatevon","updateamum","ext_id", "firma_id","code"), "public.tbl_statistik" => array("statistik_kurzbz","bezeichnung","url","r","gruppe","sql","php","content_id","insertamum","insertvon","updateamum","updatevon","berechtigung_kurzbz","publish","preferences"), "public.tbl_student" => array("student_uid","matrikelnr","prestudent_id","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"), "public.tbl_studentlehrverband" => array("student_uid","studiensemester_kurzbz","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"), diff --git a/vilesci/lehre/studienordnung.php b/vilesci/lehre/studienordnung.php index f710b23e0..ae7272159 100644 --- a/vilesci/lehre/studienordnung.php +++ b/vilesci/lehre/studienordnung.php @@ -149,7 +149,7 @@ echo " if((!$rechte->isBerechtigt('lehre/studienordnung')) && (!$rechte->isBerechtigt('lehre/studienordnungInaktiv'))) die('Sie haben keine Berechtigung für diese Seite'); -if($rechte->isBerechtigt('lehre/studienordnungInaktiv')) +if(($rechte->isBerechtigt('lehre/studienordnungInaktiv')) && (!$rechte->isBerechtigt('lehre/studienordnung'))) echo ""; $stg_arr = $rechte->getStgKz('lehre/studienordnung'); if(empty($stg_arr))