Merge remote-tracking branch 'origin/master'

This commit is contained in:
Cris
2018-09-04 12:27:13 +02:00
20 changed files with 557 additions and 249 deletions
+14 -9
View File
@@ -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
{
+22 -1
View File
@@ -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).', '.
+31
View File
@@ -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;
}
}
}
+102 -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' 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;
}
}
}
?>