Anzeige Block zukünftige Urlaube, neue Funktion getUrlaubstage

This commit is contained in:
ma0068
2022-08-02 08:50:26 +02:00
parent 35426251cb
commit 5ee7891a91
2 changed files with 91 additions and 1 deletions
+64
View File
@@ -633,5 +633,69 @@ class zeitsperre extends basis_db
return true;
}
/**
* Liefert zukünftige Urlaube eines Users ab dem heutigen Tag
*
* @param $user
* @param $enddatum optional, wird nur abgefragt wenn != null, Format 'YYYY-MM-DD'
* @param $freigegeben, wird nur abgefragt wenn != true
* @return true wenn ok, false im Fehlerfall
*/
public function getUrlaubstage($user, $enddatum=null, $freigegeben=false)
{
$qry = "
SELECT SUM(AnzahlTage) as output
FROM
(
SELECT
*
,(DATE_PART('day', bisdatum ::timestamp - vondatum ::timestamp )+1) as AnzahlTage
FROM
campus.tbl_zeitsperre
WHERE
zeitsperretyp_kurzbz = 'Urlaub'
AND vondatum >= now()
AND mitarbeiter_uid = ". $this->db_add_param($user);
if($enddatum)
$qry.= 'AND bisDatum <= '. $this->db_add_param($enddatum);
if( $freigegeben )
$qry .= 'AND freigabeamum is not null';
if($enddatum)
{
$qry .= "
UNION
SELECT *
,(DATE_PART('day',".$this->db_add_param($enddatum)."::timestamp - vondatum ::timestamp )+1) as AnzahlTage
FROM campus.tbl_zeitsperre
WHERE zeitsperretyp_kurzbz = 'Urlaub'
AND mitarbeiter_uid = ". $this->db_add_param($user);
$qry.=" AND bisDatum >=" . $this->db_add_param($enddatum)."
AND vonDatum <= " .$this->db_add_param($enddatum);
if( $freigegeben )
$qry .= 'AND freigabeamum is not null';
}
$qry .= ') AS countHolidays';
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
return $row->output;
}
}
else
{
$this->errormsg = 'Fehler beim Berechnen der Urlaubstage';
return false;
}
}
}
?>