mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-06 05:19:28 +00:00
This commit is contained in:
+183
-154
@@ -20,7 +20,6 @@
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
//DB Verbindung herstellen
|
||||
require_once('../../config.inc.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/zeitsperre.class.php');
|
||||
@@ -28,7 +27,8 @@
|
||||
require_once('../../../include/resturlaub.class.php');
|
||||
require_once('../../../include/person.class.php');
|
||||
require_once('../../../include/benutzer.class.php');
|
||||
|
||||
|
||||
//DB Verbindung herstellen
|
||||
if (!$conn = @pg_pconnect(CONN_STRING))
|
||||
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
|
||||
|
||||
@@ -38,13 +38,14 @@ $resturlaubstage = '0';
|
||||
$mehrarbeitsstunden = '0';
|
||||
$anspruch = '25';
|
||||
$zaehl=1;
|
||||
$tage=array(); //Array Tage für Kalenderanzeige
|
||||
$tage=array(); //Array Tage für Kalenderanzeige
|
||||
$hgfarbe=array_fill(0,44,'white'); //Array mit Hintegrundfarben der Kalenderfelder
|
||||
$monatsname = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
|
||||
$jahre = array(); //Array Jahreszahlen für Auswahl (immer aktuelles Jahr und die 4 nächsten Jahre)
|
||||
$jahre = array(); //Array Jahreszahlen für Auswahl (immer aktuelles Jahr und die 4 nächsten Jahre)
|
||||
$akette=array_fill(0,2,0);
|
||||
$ekette=array_fill(0,2,0);
|
||||
$spmonat=array();
|
||||
$hgchange=false;
|
||||
$wvon='';
|
||||
$wbis='';
|
||||
$t=getdate();
|
||||
@@ -70,141 +71,30 @@ else
|
||||
$wjahr=0;
|
||||
}
|
||||
|
||||
if(isset($_GET['spmonat']) || isset($_POST['spmonat']))
|
||||
if (isset($_GET['kastl']) || isset($_POST['kastl']))
|
||||
$kastl=(isset($_GET['kastl'])?$_GET['kastl']:$_POST['kastl']);
|
||||
else
|
||||
{
|
||||
$spmonat=explode(",",$_GET['spmonat']);
|
||||
$mbeginn=mktime(0, 0, 0, ($wmonat+1) , 1, $jahre[$wjahr]);
|
||||
$ttt=getdate($mbeginn);
|
||||
$wotag="$ttt[wday]";
|
||||
if ($wotag==0)
|
||||
{
|
||||
$wotag=7;
|
||||
}
|
||||
$mende=cal_days_in_month(CAL_GREGORIAN, ($wmonat+1), $jahre[$wjahr]);
|
||||
$wvon=date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , 1, $jahre[$wjahr]));
|
||||
$wbis=date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $mende, $jahre[$wjahr]));
|
||||
for($i=1,$j=0;$i<44;$i++)
|
||||
{
|
||||
//ketten bilden
|
||||
if($spmonat[$i]=='lime')
|
||||
{
|
||||
if($akette[$j]==0 || $spmonat[$i-1]!='lime')
|
||||
{
|
||||
$j++;
|
||||
$akette[$j]=$i-$wotag+1;
|
||||
$ekette[$j]=$i-$wotag+1;
|
||||
}
|
||||
elseif($spmonat[$i-1]=='lime')
|
||||
{
|
||||
$ekette[$j]=$i-$wotag+1;
|
||||
}
|
||||
}
|
||||
}
|
||||
//print_r($akette);
|
||||
//print_r($ekette);
|
||||
if($ekette[1]!=0)
|
||||
{
|
||||
//Unterscheidung anhand bestehender Einträge
|
||||
//Urlaub vom Vormonat überragend
|
||||
$qry="SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub' AND mitarbeiter_uid='".$uid."' AND vondatum<='".$wvon."' AND bisdatum>='".$wvon."' AND bisdatum<='".$wbis."' ;";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==1)
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
if($akette[1]==1)
|
||||
{
|
||||
$qryupd="UPDATE campus.tbl_zeitsperre SET bisdatum='".date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $ekette[1], $jahre[$wjahr]))."' WHERE zeitsperre_id='".$row->zeitsperre_id."';";
|
||||
$result = pg_query($conn, $qryupd);
|
||||
$akette[1]=0;
|
||||
$ekette[1]=0;
|
||||
//echo "<br>".$qryupd;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//Urlaub ins nächste Monat überragend
|
||||
$qry="SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub' AND mitarbeiter_uid='".$uid."' AND bisdatum>='".$wbis."' AND vondatum>='".$wvon."' AND vondatum<='".$wbis."' ;";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==1)
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
if($ekette[count($akette)-1]==$mende)
|
||||
{
|
||||
$qryupd="UPDATE campus.tbl_zeitsperre SET vondatum='".date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $akette[count($akette)-1], $jahre[$wjahr]))."' WHERE zeitsperre_id='".$row->zeitsperre_id."';";
|
||||
$result = pg_query($conn, $qryupd);
|
||||
$akette[count($akette)-1]=0;
|
||||
$ekette[count($ekette)-1]=0;
|
||||
//print_r($akette);
|
||||
//print_r($ekette);
|
||||
//echo "<br>".$qryupd;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//Urlaub überragt beide Monatsenden
|
||||
$qry="SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub' AND mitarbeiter_uid='".$uid."' AND bisdatum>='".$wbis."' AND vondatum<='".$wvon."' ;";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
//"Abschneiden" des Eintrags am Ende des vorigen Monats
|
||||
$qryupd="UPDATE campus.tbl_zeitsperre SET
|
||||
bisdatum='".date("Y-m-d",mktime(0, 0, 0, ($wmonat) , cal_days_in_month(CAL_GREGORIAN, ($wmonat), $jahre[$wjahr]), $jahre[$wjahr]))."'
|
||||
WHERE zeitsperre_id='".$row->zeitsperre_id."';";
|
||||
$result = pg_query($conn, $qryupd);
|
||||
//Einfügen eines Eintrags ab dem 1Tag des nächsten Monats
|
||||
$qryins="INSERT INTO campus.tbl_zeitsperre (
|
||||
zeitsperretyp_kurzbz,mitarbeiter_uid,bezeichnung,vondatum,vonstunde,bisdatum,bisstunde,vertretung_uid,
|
||||
updateamum,updatevon,insertamum,insertvon, erreichbarkeit_kurzbz, freigabeamum, freigabevon) VALUES (
|
||||
'Urlaub','".$uid."', 'Urlaub', '".date("Y-m-d",mktime(0, 0, 0, ($wmonat+2) , 1, $jahre[$wjahr]))."',
|
||||
NULL,'".$row->bisdatum."',NULL,NULL,NULL,NULL,now(),'".$uid."','n',NULL,NULL
|
||||
)";
|
||||
$result = pg_query($conn, $qryins);
|
||||
//echo "<br>".$qryupd;
|
||||
//echo "<br>"."1-".$qryins;
|
||||
//Einfügen des Urlaubs innerhalb des Monats
|
||||
for($i=0;$i<count($akette);$i++)
|
||||
{
|
||||
if($akette[$i]!=0)
|
||||
{
|
||||
$qryins="INSERT INTO campus.tbl_zeitsperre (
|
||||
zeitsperretyp_kurzbz,mitarbeiter_uid,bezeichnung,vondatum,vonstunde,bisdatum,bisstunde,vertretung_uid,
|
||||
updateamum,updatevon,insertamum,insertvon, erreichbarkeit_kurzbz, freigabeamum, freigabevon) VALUES (
|
||||
'Urlaub','".$uid."', 'Urlaub', '".date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $akette[$i], $jahre[$wjahr]))."',
|
||||
NULL,'".date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $ekette[$i], $jahre[$wjahr]))."',NULL,NULL,NULL,NULL,now(),'".$uid."','n',NULL,NULL
|
||||
)";
|
||||
$result = pg_query($conn, $qryins);
|
||||
//echo "<br>"."2-".$qryins;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//Urlaub innerhalb des Monats
|
||||
$qrydel="DELETE FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub' AND mitarbeiter_uid='".$uid."' AND vondatum>='".$wvon."' AND bisdatum<='".$wbis."' ;";
|
||||
$result = pg_query($conn, $qrydel);
|
||||
//echo "<br>".$qrydel;
|
||||
for($i=0;$i<count($akette);$i++)
|
||||
{
|
||||
if($akette[$i]!=0)
|
||||
{
|
||||
$qryins="INSERT INTO campus.tbl_zeitsperre (
|
||||
zeitsperretyp_kurzbz,mitarbeiter_uid,bezeichnung,vondatum,vonstunde,bisdatum,bisstunde,vertretung_uid,
|
||||
updateamum,updatevon,insertamum,insertvon, erreichbarkeit_kurzbz, freigabeamum, freigabevon) VALUES (
|
||||
'Urlaub','".$uid."', 'Urlaub', '".date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $akette[$i], $jahre[$wjahr]))."',
|
||||
NULL,'".date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $ekette[$i], $jahre[$wjahr]))."',NULL,NULL,NULL,NULL,now(),'".$uid."','n',NULL,NULL
|
||||
)";
|
||||
$result = pg_query($conn, $qryins);
|
||||
//echo "<br>"."3-".$qryins;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$kastl=0;
|
||||
}
|
||||
|
||||
if (isset($_GET['hgfarbe']))
|
||||
{
|
||||
$hgfarbe=explode(",",$_GET['hgfarbe']);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (!isset($_GET['spmonat']))
|
||||
{
|
||||
for($i=0;$i<44;$i++)
|
||||
{
|
||||
if(!isset($hgfarbe[$i]) || $hgfarbe[$i]!='lime')
|
||||
$hgfarbe[$i]='white';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//if ((isset($_GET['wmonat']) || isset($_POST['wmonat']))&&(isset($_GET['wjahr']) || isset($_POST['wjahr'])))
|
||||
if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr)))
|
||||
{
|
||||
@@ -241,31 +131,170 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr)))
|
||||
}
|
||||
}
|
||||
}
|
||||
//print_r($hgfarbe);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_GET['kastl']) || isset($_POST['kastl']))
|
||||
$kastl=(isset($_GET['kastl'])?$_GET['kastl']:$_POST['kastl']);
|
||||
else
|
||||
{
|
||||
$kastl=0;
|
||||
}
|
||||
|
||||
if (isset($_GET['hgfarbe']))
|
||||
{
|
||||
$hgfarbe=explode(",",$_GET['hgfarbe']);
|
||||
}
|
||||
else
|
||||
if(isset($_GET['spmonat']) || isset($_POST['spmonat']))
|
||||
{
|
||||
$spmonat=explode(",",$_GET['spmonat']);
|
||||
//print_r($spmonat);
|
||||
//echo'<br>';
|
||||
//print_r($hgfarbe);
|
||||
for($i=0;$i<44;$i++)
|
||||
{
|
||||
if(!isset($hgfarbe[$i]) || $hgfarbe[$i]!='lime')
|
||||
$hgfarbe[$i]='white';
|
||||
{
|
||||
$hgchange=false;
|
||||
if($spmonat[$i]!==$hgfarbe[$i])
|
||||
{
|
||||
$hgchange=true;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
$hgchange=false;
|
||||
}
|
||||
}
|
||||
if ($hgchange)
|
||||
{
|
||||
$mbeginn=mktime(0, 0, 0, ($wmonat+1) , 1, $jahre[$wjahr]);
|
||||
$ttt=getdate($mbeginn);
|
||||
$wotag="$ttt[wday]";
|
||||
if ($wotag==0)
|
||||
{
|
||||
$wotag=7;
|
||||
}
|
||||
$mende=cal_days_in_month(CAL_GREGORIAN, ($wmonat+1), $jahre[$wjahr]);
|
||||
$wvon=date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , 1, $jahre[$wjahr]));
|
||||
$wbis=date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $mende, $jahre[$wjahr]));
|
||||
for($i=1,$j=0;$i<44;$i++)
|
||||
{
|
||||
//ketten bilden
|
||||
if($spmonat[$i]=='lime')
|
||||
{
|
||||
if($akette[$j]==0 || $spmonat[$i-1]!='lime')
|
||||
{
|
||||
$j++;
|
||||
$akette[$j]=$i-$wotag+1;
|
||||
$ekette[$j]=$i-$wotag+1;
|
||||
}
|
||||
elseif($spmonat[$i-1]=='lime')
|
||||
{
|
||||
$ekette[$j]=$i-$wotag+1;
|
||||
}
|
||||
}
|
||||
}
|
||||
//print_r($akette);
|
||||
//print_r($ekette);
|
||||
if($ekette[1]!=0)
|
||||
{
|
||||
//Unterscheidung anhand bestehender Einträge
|
||||
//Urlaub vom Vormonat überragend
|
||||
$qry="SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub' AND mitarbeiter_uid='".$uid."' AND vondatum<'".$wvon."' AND bisdatum>='".$wvon."' AND bisdatum<='".$wbis."' ;";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==1)
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
if($akette[1]==1)
|
||||
{
|
||||
$qryupd="UPDATE campus.tbl_zeitsperre SET bisdatum='".date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $ekette[1], $jahre[$wjahr]))."', updateamum=now(), updatevon='".$uid."' WHERE zeitsperre_id='".$row->zeitsperre_id."';";
|
||||
$result = pg_query($conn, $qryupd);
|
||||
$akette[1]=0;
|
||||
$ekette[1]=0;
|
||||
//echo "<br>".$qryupd;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//Urlaub ins nächste Monat überragend
|
||||
$qry="SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub' AND mitarbeiter_uid='".$uid."' AND bisdatum>'".$wbis."' AND vondatum>='".$wvon."' AND vondatum<='".$wbis."' ;";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==1)
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
if($ekette[count($akette)-1]==$mende)
|
||||
{
|
||||
$qryupd="UPDATE campus.tbl_zeitsperre SET vondatum='".date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $akette[count($akette)-1], $jahre[$wjahr]))."', updateamum=now(), updatevon='".$uid."' WHERE zeitsperre_id='".$row->zeitsperre_id."';";
|
||||
$result = pg_query($conn, $qryupd);
|
||||
$akette[count($akette)-1]=0;
|
||||
$ekette[count($ekette)-1]=0;
|
||||
//print_r($akette);
|
||||
//print_r($ekette);
|
||||
//echo "<br>".$qryupd;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//Urlaub überragt beide Monatsenden
|
||||
$qry="SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub' AND mitarbeiter_uid='".$uid."' AND bisdatum>='".$wbis."' AND vondatum<='".$wvon."' ;";
|
||||
if($result = pg_query($conn, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
//"Abschneiden" des Eintrags am Ende des vorigen Monats
|
||||
$qryupd="UPDATE campus.tbl_zeitsperre SET
|
||||
bisdatum='".date("Y-m-d",mktime(0, 0, 0, ($wmonat) , cal_days_in_month(CAL_GREGORIAN, ($wmonat), $jahre[$wjahr]), $jahre[$wjahr]))."',
|
||||
updateamum=now(), updatevon='".$uid."' WHERE zeitsperre_id='".$row->zeitsperre_id."';";
|
||||
$result = pg_query($conn, $qryupd);
|
||||
//Einfügen eines Eintrags ab dem 1Tag des nächsten Monats
|
||||
$qryins="INSERT INTO campus.tbl_zeitsperre (
|
||||
zeitsperretyp_kurzbz,mitarbeiter_uid,bezeichnung,vondatum,vonstunde,bisdatum,bisstunde,vertretung_uid,
|
||||
updateamum,updatevon,insertamum,insertvon, erreichbarkeit_kurzbz, freigabeamum, freigabevon) VALUES (
|
||||
'Urlaub','".$uid."', 'Urlaub', '".date("Y-m-d",mktime(0, 0, 0, ($wmonat+2) , 1, $jahre[$wjahr]))."',
|
||||
NULL,'".$row->bisdatum."',NULL,NULL,NULL,NULL,now(),'".$uid."','n',NULL,NULL
|
||||
)";
|
||||
$result = pg_query($conn, $qryins);
|
||||
//echo "<br>".$qryupd;
|
||||
//echo "<br>"."1-".$qryins;
|
||||
//Einfügen des Urlaubs innerhalb des Monats
|
||||
for($i=0;$i<count($akette);$i++)
|
||||
{
|
||||
if($akette[$i]!=0)
|
||||
{
|
||||
$qryins="INSERT INTO campus.tbl_zeitsperre (
|
||||
zeitsperretyp_kurzbz,mitarbeiter_uid,bezeichnung,vondatum,vonstunde,bisdatum,bisstunde,vertretung_uid,
|
||||
updateamum,updatevon,insertamum,insertvon, erreichbarkeit_kurzbz, freigabeamum, freigabevon) VALUES (
|
||||
'Urlaub','".$uid."', 'Urlaub', '".date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $akette[$i], $jahre[$wjahr]))."',
|
||||
NULL,'".date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $ekette[$i], $jahre[$wjahr]))."',NULL,NULL,NULL,NULL,now(),'".$uid."','n',NULL,NULL
|
||||
)";
|
||||
$result = pg_query($conn, $qryins);
|
||||
//echo "<br>"."2-".$qryins;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//Urlaub innerhalb des Monats
|
||||
$qrydel="DELETE FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub' AND mitarbeiter_uid='".$uid."' AND vondatum>='".$wvon."' AND bisdatum<='".$wbis."' ;";
|
||||
$result = pg_query($conn, $qrydel);
|
||||
//echo "<br>".$qrydel;
|
||||
for($i=0;$i<count($akette);$i++)
|
||||
{
|
||||
if($akette[$i]!=0)
|
||||
{
|
||||
$qryins="INSERT INTO campus.tbl_zeitsperre (
|
||||
zeitsperretyp_kurzbz,mitarbeiter_uid,bezeichnung,vondatum,vonstunde,bisdatum,bisstunde,vertretung_uid,
|
||||
updateamum,updatevon,insertamum,insertvon, erreichbarkeit_kurzbz, freigabeamum, freigabevon) VALUES (
|
||||
'Urlaub','".$uid."', 'Urlaub', '".date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $akette[$i], $jahre[$wjahr]))."',
|
||||
NULL,'".date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $ekette[$i], $jahre[$wjahr]))."',NULL,NULL,NULL,NULL,now(),'".$uid."','n',NULL,NULL
|
||||
)";
|
||||
$result = pg_query($conn, $qryins);
|
||||
//echo "<br>"."3-".$qryins;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$hgfarbe=explode(",",$_GET['spmonat']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$PHP_SELF = $_SERVER['PHP_SELF'];
|
||||
$datum_obj = new datum();
|
||||
|
||||
@@ -352,7 +381,7 @@ for($i=0;$i<5;$i++)
|
||||
$content.="<option value='$i' $selected>$jahre[$i]</option>";
|
||||
}
|
||||
$content.='</SELECT>';
|
||||
$content.=" <INPUT type='submit' value='OK'>";
|
||||
$content.=" <INPUT type='submit' name='ok' value='OK'>";
|
||||
$content.='</form>';
|
||||
|
||||
//Tage
|
||||
|
||||
Reference in New Issue
Block a user