diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php
index 2e4f012c2..bbb7c5e68 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,10 @@ 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 +92,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 +626,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
{
echo '
'.$p->t("zeitaufzeichnung/handbuchZeitaufzeichnung").'
';
}
- echo ''.$p->t("urlaubstool/meineZeitsperren").'
';
+ echo ''.$p->t("urlaubstool/meineZeitsperren").'
';
echo "
";
@@ -626,7 +636,7 @@ if($projekt->getProjekteMitarbeiter($user, true))
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 'Übersicht Lehre '.$sem_akt.' | ';
+ echo '| (in Stunden) | ';
+ echo ' | beauftragt (LE) | gebucht | ';
+ if ($lehre_inkludiert > 0 || $l_arr["LehreIntern"] > 0)
+ echo '| LehreIntern: | '.$lehre_inkludiert_norm.' ('.$lehre_inkludiert.') | '.$l_arr["LehreIntern"].' | ';
+ if ($l_extern_soll > 0 || $l_arr["LehreExtern"] > 0)
+ echo '| LehreExtern: | '.$l_extern_soll_norm.' ('.$l_extern_soll.') | '.$l_arr["LehreExtern"].' | ';
+
+ echo ' ';
+ }
+ echo ' |
';
+ echo '';
+
echo '
';
echo ''.($alle===true?$p->t('zeitaufzeichnung/alleEintraege'):$p->t('zeitaufzeichnung/xTageAnsicht', array($angezeigte_tage))).'
';
if ($alle===true)
@@ -943,7 +985,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/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')";