mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-06 14:49:27 +00:00
Anzeige Block zukünftige Urlaube, neue Funktion getUrlaubstage
This commit is contained in:
@@ -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>';
|
||||
?>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user