diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index ac6ca7cd6..f93a91811 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -74,10 +74,13 @@ echo ' $(document).ready(function() { - $("#t1").tablesorter( + $(".tablesorter").each(function(i,v) { - sortList: [[4,1]], - widgets: ["zebra"] + $("#"+v.id).tablesorter( + { + sortList: [[4,1]], + widgets: ["zebra"] + }) }); function formatItem(row) @@ -163,6 +166,11 @@ echo ''.$p->t("global/datenWurdenGespeichert").'
'; - $zeitaufzeichnung_id = $zeit->zeitaufzeichnung_id; + + // Nach dem Speichern in den neu Modus springen und als Von Zeit + // das Ende des letzten Eintrages eintragen + $zeitaufzeichnung_id = ''; + $uid = $zeit->uid; + $aktivitaet_kurzbz = ''; + $von = date('d.m.Y H:i', $datum->mktime_fromtimestamp($zeit->ende)); + $bis = date('d.m.Y H:i', $datum->mktime_fromtimestamp($zeit->ende)+3600); + $beschreibung = ''; + $oe_kurzbz_1 = ''; + $oe_kurzbz_2 = ''; + $projekt_kurzbz = ''; + $service_id = ''; + $kunde_uid = ''; } } @@ -482,8 +503,15 @@ if($projekt->getProjekteMitarbeiter($user)) //Start/Ende echo ' - '.$p->t("global/von").'                - '.$p->t("global/bis").'  + '.$p->t("global/von").' +   + +       + + + + '.$p->t("global/bis").'  + '; //Beschreibung echo ''.$p->t("global/beschreibung").''; @@ -537,9 +565,60 @@ if($projekt->getProjekteMitarbeiter($user)) '; - + $tag=null; + $tagessumme='00:00'; + $datum_obj = new datum(); + foreach($za->result as $row) - { + { + $datumtag = $datum_obj->formatDatum($row->start, 'Y-m-d'); + if(is_null($tag)) + $tag = $datumtag; + if($tag!=$datumtag) + { + echo ' + + + + + + + + + '.$p->t("zeitaufzeichnung/tagessumme").' + '.$tagessumme.' + + + + + + + '; + + echo ' + + + + + + + + + + + + + + + + + '; + + + $tag=$datumtag; + $tagessumme='00:00'; + } + $tagessumme = $datum_obj->sumZeit($tagessumme, $row->diff); $summe = $row->summe; echo ' @@ -562,7 +641,24 @@ if($projekt->getProjekteMitarbeiter($user)) echo "\n"; echo " \n"; } - echo "
'.$p->t("zeitaufzeichnung/id").''.$p->t("zeitaufzeichnung/projekt").''.$p->t("zeitaufzeichnung/aktivitaet").''.$p->t("zeitaufzeichnung/user").''.$p->t("zeitaufzeichnung/start").''.$p->t("zeitaufzeichnung/ende").''.$p->t("zeitaufzeichnung/dauer").''.$p->t("global/beschreibung").''.$p->t("global/organisationseinheit").''.$p->t("global/organisationseinheit").''.$p->t("global/aktion").'
'.$db->convert_html_chars($row->zeitaufzeichnung_id).'
\n"; + echo ' + + + + + + + + + '.$p->t("zeitaufzeichnung/tagessumme").' + '.$tagessumme.' + + + + + + + '; echo $p->t("zeitaufzeichnung/gesamtdauer").": ".$db->convert_html_chars($summe); } @@ -581,4 +677,4 @@ else echo ' '; -?> \ No newline at end of file +?> diff --git a/include/datum.class.php b/include/datum.class.php index 54b0ddaa9..c1cdf3874 100644 --- a/include/datum.class.php +++ b/include/datum.class.php @@ -160,10 +160,10 @@ class datum return false; } - /** - * Zieht ein Datum von einem anderen ab, und gibt die differenz in Tagen zurueck (mit Vorzeichen) - * @param $datum1 - * @param $datum2 + /** + * Zieht ein Datum von einem anderen ab, und gibt die differenz in Tagen zurueck (mit Vorzeichen) + * @param $datum1 + * @param $datum2 */ public function DateDiff($datum1, $datum2) { @@ -206,8 +206,38 @@ class datum return false; } + + /** + * Summiert 2 Zeiten Stunde:Minute + * Es liefert keine Uhrzeit zurueck sondern Stunden und Minuten + * zB 12:10 + 23:15 = 35:25 + * + * @param $zeit1 + * @param $zeit2 + * @return summe der beiden zeiten im Format Stunden:Minuten + */ + public function sumZeit($zeit1, $zeit2) + { + list($h1, $m1) = explode(':', $zeit1); + list($h2, $m2) = explode(':', $zeit2); + + $m1 +=$m2; + + if($m1>=60) + { + $uebertrag = (int)($m1/60); + $h1+= $uebertrag; + } + $m1=$m1%60; + $h1+=$h2; + if($m1<10) + $m1='0'.$m1; + if($h1<10) + $h1='0'.$h1; + + return $h1.':'.$m1; + } -#------------------------------------------------------------------------------------------------ /** * Prueft und Liefert ein Datum im angegeben Format * fuer die Formatierung wird die Funktion formatDatum verwendet diff --git a/include/zeitaufzeichnung.class.php b/include/zeitaufzeichnung.class.php index 3a5014bd0..ed4753609 100644 --- a/include/zeitaufzeichnung.class.php +++ b/include/zeitaufzeichnung.class.php @@ -307,7 +307,7 @@ class zeitaufzeichnung extends basis_db */ public function getListeUser($user, $days='40') { - $where = "uid='$user'"; + $where = "uid=".$this->db_add_param($user); if ($days!='') $where.= " AND ende>(now() - INTERVAL '".$days." days')"; @@ -355,4 +355,4 @@ class zeitaufzeichnung extends basis_db } } } -?> \ No newline at end of file +?> diff --git a/locale/de-AT/zeitaufzeichnung.php b/locale/de-AT/zeitaufzeichnung.php index b24719e92..d6b78594a 100644 --- a/locale/de-AT/zeitaufzeichnung.php +++ b/locale/de-AT/zeitaufzeichnung.php @@ -27,4 +27,5 @@ $this->phrasen['zeitaufzeichnung/alsEndzeitUebernehmen']='Als Endzeit übernehme $this->phrasen['zeitaufzeichnung/uebersicht']='Übersicht'; $this->phrasen['zeitaufzeichnung/zeitraumAuffallendHoch']='Achtung, eingegebener Zeitraum ist auffallend hoch. \nDaten wurden gespeichert.'; $this->phrasen['zeitaufzeichnung/bisDatumKleinerAlsVonDatum']='Das Bis-Datum darf nicht kleiner als das Von-Datum sein'; -?> \ No newline at end of file +$this->phrasen['zeitaufzeichnung/tagessumme']='Tagessumme:'; +?>