mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 16:02:15 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -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).', '.
|
||||
|
||||
@@ -1097,4 +1097,42 @@ function PersonLog($person_id, $logtype_kurzbz, $logdata, $taetigkeit_kurzbz, $a
|
||||
$personlog = new personlog();
|
||||
$personlog->log($person_id, $logtype_kurzbz, $logdata, $taetigkeit_kurzbz, $app, $oe_kurzbz, $user);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sendet einen Request an den CaseTime Server um die Daten dort zu speichern
|
||||
*/
|
||||
function getCaseTimeErrors($uid)
|
||||
{
|
||||
$ch = curl_init();
|
||||
|
||||
$url = CASETIME_SERVER.'/sync/get_zeitfehler';
|
||||
|
||||
$params = 'sachb='.$uid;
|
||||
|
||||
curl_setopt($ch, CURLOPT_URL, $url.'?'.$params ); //Url together with parameters
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Return data instead printing directly in Browser
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT , 7); //Timeout after 7 seconds
|
||||
curl_setopt($ch, CURLOPT_USERAGENT , "FH-Complete CaseTime Addon");
|
||||
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||
|
||||
$result = curl_exec($ch);
|
||||
|
||||
if(curl_errno($ch))
|
||||
{
|
||||
return 'Curl error: ' . curl_error($ch);
|
||||
curl_close($ch);
|
||||
}
|
||||
else
|
||||
{
|
||||
curl_close($ch);
|
||||
$data = json_decode($result);
|
||||
|
||||
if(isset($data->STATUS) && $data->STATUS=='OK')
|
||||
{
|
||||
return $data->RESULT;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user