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
+27 -1
View File
@@ -64,6 +64,8 @@ else
$datum_obj = new datum();
echo '<html>
<head>
<title>Urlaubsfreigabe</title>
@@ -138,6 +140,7 @@ if ($result = $db->db_query($qry))
if ($uid != '' && !isset($mitarbeiter[$uid]) && $uid != $user && !$rechte->isBerechtigt('admin'))
die('Sie haben keine Berechtigung fuer diesen Mitarbeiter');
//Freigeben eines Urlaubes
if (isset($_GET['action']) && $_GET['action'] == 'freigabe')
{
@@ -213,6 +216,8 @@ function draw_monat($monat)
$qry.= " AND mitarbeiter_uid=". $db->db_add_param($uid);
$qry.="ORDER BY vondatum, mitarbeiter_uid";
if ($result = $db->db_query($qry))
{
while ($row = $db->db_fetch_object($result))
@@ -225,10 +230,15 @@ function draw_monat($monat)
}
echo "<span title='$freigabe'>";
echo $mitarbeiter[$row->mitarbeiter_uid]['nachname'].' '.$datum_obj->formatDatum($row->vondatum,'d.m.Y')." - ".$datum_obj->formatDatum($row->bisdatum,'d.m.Y');
if ($vertretung->uid != '')
echo ' (Vertretung: '.$vertretung->nachname.')';
if($row->freigabeamum=='')
echo " <a href='".$_SERVER['PHP_SELF']."?action=freigabe&id=$row->zeitsperre_id&year=$year&uid=$uid' class='Item'>Freigabe</a>";
{
echo " <a href='".$_SERVER['PHP_SELF']."?action=freigabe&id=$row->zeitsperre_id&year=$year&uid=$uid' class='Item'>Freigabe</a>";
}
echo "</span>";
echo '<br>';
}
@@ -247,6 +257,20 @@ if ($uid!='')
echo '<div id="resturlaub">';
echo '</div>';
//Abschnitt zukünftige Urlaube
$zeitsperre = new zeitsperre();
$enddatum= $year ."-08-31";
if($zeitsperre->getUrlaubstage($uid))
{
echo "<br><p class= 'text-warning'>zukünftige Urlaubstage* angesucht: <span style='margin-left: 30px;'>". $zeitsperre->getUrlaubstage($uid, $enddatum, false) . " Tage</span></p>";
if ($zeitsperre->getUrlaubstage($uid, $enddatum, true))
echo "<p>davon bereits genehmigt:<span style='margin-left: 84px;'> ". $zeitsperre->getUrlaubstage($uid, $enddatum, true) . " Tage</style></p>";
else
echo "<p>davon bereits genehmigt:<span style='margin-left: 84px;'> 0 Tage</style></p>";
echo "* bis 31.8.". $year;
}
echo '</td></tr></table>';
}
@@ -275,6 +299,8 @@ for($i = 0;$i < 12;$i++)
}
echo '</tr></table>
</body>
</html>';
?>
+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;
}
}
}
?>