This commit is contained in:
Rudolf Hangl
2008-06-23 10:13:19 +00:00
parent c7bae47704
commit 838441f8e9
+183 -154
View File
@@ -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&auml;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.="&nbsp;<INPUT type='submit' value='OK'>";
$content.="&nbsp;<INPUT type='submit' name='ok' value='OK'>";
$content.='</form>';
//Tage