Timesheet: Ersatzruhe, LehreExtern, Dienstreise

This commit is contained in:
Gerald Raab
2018-07-02 15:21:52 +02:00
parent a61e350705
commit a86111a803
4 changed files with 118 additions and 10 deletions
+59 -1
View File
@@ -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' 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