This commit is contained in:
Rudolf Hangl
2008-06-25 09:14:50 +00:00
parent 60d562b427
commit 0ebc362123
+219 -199
View File
@@ -40,20 +40,29 @@ $anspruch = '25';
$zaehl=1;
$tage=array(); //Array Tage für Kalenderanzeige
$hgfarbe=array_fill(0,44,'white'); //Array mit Hintegrundfarben der Kalenderfelder
$datensatz=array_fill(0,44,0);
$freigabevon=array();
$freigabeamum=array();
$vertretung_uid=array();
$erreichbarkeit_kurzbz=array();
$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)
$akette=array_fill(0,2,0);
$ekette=array_fill(0,2,0);
$akette=array_fill(0,1,0);
$ekette=array_fill(0,1,0);
$tag=array();
$vertretung='';
$erreichbar='';
$spmonat=array();
$hgchange=false;
$wvon='';
$wbis='';
$datensatz='';
$t=getdate();
$uid = get_uid();
for($i=0;$i<5;$i++)
for($i=0;$i<6;$i++)
{
$jahre[$i]="$t[year]"+$i;
$jahre[$i]="$t[year]"+($i-1);
}
if (isset($_GET['wtag']) || isset($_POST['wtag']))
@@ -72,7 +81,7 @@ if (isset($_GET['wjahr']) || isset($_POST['wjahr']))
$wjahr=(isset($_GET['wjahr'])?$_GET['wjahr']:$_POST['wjahr']);
else
{
$wjahr=0;
$wjahr=1;
}
if (isset($_GET['kastl']) || isset($_POST['kastl']))
@@ -99,7 +108,88 @@ else
}
}
//if ((isset($_GET['wmonat']) || isset($_POST['wmonat']))&&(isset($_GET['wjahr']) || isset($_POST['wjahr'])))
if (isset($_GET['links']) || isset($_POST['links']))
{
if ($wmonat==0)
{
if($wjahr>0)
{
$wmonat=11;
$wjahr=$wjahr-1;
}
}
else
{
$wmonat=$wmonat-1;
$wjahr=$wjahr;
}
}
if (isset($_GET['rechts']) || isset($_POST['rechts']))
{
if($wmonat==11)
{
if($wjahr<4)
{
$wmonat=0;
$wjahr=$wjahr+1;
}
}
else
{
$wmonat=$wmonat+1;
$wjahr=$wjahr;
}
}
if((isset($_GET['delete']) || isset($_POST['delete'])))
{
//echo "delete".$_GET['delete'];
$qry="DELETE FROM campus.tbl_zeitsperre WHERE zeitsperre_id=".$_GET['delete'];
$result = pg_query($conn, $qry);
}
if(isset($_GET['speichern']) && isset($_GET['wtag']))
{
$vertretung=$_GET['vertretung_uid'];
$erreichbar=$_GET['erreichbar'];
if($erreichbar=='')
{
$erreichbar='n';
}
$wtag=$_GET['wtag'];
$akette[0]=date("Y-m-d",strtotime($wtag[0]));
$ekette[0]=date("Y-m-d",strtotime($wtag[0]));
for($i=1,$j=0;$i<count($wtag);$i++)
{
//ketten bilden
if(date("Y-m-d",strtotime($wtag[$i]))==date("Y-m-d",strtotime("+1 Day",strtotime($wtag[$i-1]))))
{
$ekette[$j]=date("Y-m-d",strtotime($wtag[$i]));
}
else
{
$j++;
$akette[$j]=date("Y-m-d",strtotime($wtag[$i]));
$ekette[$j]=date("Y-m-d",strtotime($wtag[$i]));
}
}
//print_r($akette);
//print_r($ekette);
FOR($i=0;$i<count($akette);$i++)
{
$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",strtotime($akette[$i]))."',
NULL,'".date("Y-m-d", strtotime($ekette[$i]))."',NULL,'".$vertretung."',NULL,NULL,now(),'".$uid."','".$erreichbar."',NULL,NULL
)";
$result = pg_query($conn, $qryins);
//echo $qryins;
}
}
if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr)))
{
//Urlaubstageage markieren
@@ -114,11 +204,20 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($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]));
$qry="SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub' AND mitarbeiter_uid='".$uid."' AND (vondatum<='".$wbis."' AND bisdatum>='".$wvon."') ";
echo "<br>"."db:".$qry;
//echo "<br>"."db:".$qry;
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
for($i=0;$i<$wotag;$i++)
{
$hgfarbe[$i]='white';
$datensatz[$i]=0;
$freigabevon[$i]=$row->freigabevon;
$freigabeamum[$i]=$row->freigabeamum;
$vertretung_uid[$i]=$row->vertretung_uid;
$erreichbarkeit_kurzbz[$i]=$row->erreichbarkeit_kurzbz;
}
//echo " ".$row->vondatum;
//echo "-".$row->bisdatum;
for($i=$wotag;$i<$mende+$wotag;$i++)
@@ -126,178 +225,50 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr)))
if(date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $i-$wotag+1, $jahre[$wjahr]))>=$row->vondatum
&& date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $i-$wotag+1, $jahre[$wjahr]))<=$row->bisdatum)
{
$hgfarbe[$i]='lime';
if($row->freigabevon!='')
{
$hgfarbe[$i]='green';
$datensatz[$i]=$row->zeitsperre_id;
$freigabevon[$i]=$row->freigabevon;
$freigabeamum[$i]=$row->freigabeamum;
$vertretung_uid[$i]=$row->vertretung_uid;
$erreichbarkeit_kurzbz[$i]=$row->erreichbarkeit_kurzbz;
}
else
{
$hgfarbe[$i]='lime';
}
$datensatz[$i]=$row->zeitsperre_id;
$freigabevon[$i]=$row->freigabevon;
$freigabeamum[$i]=$row->freigabeamum;
$vertretung_uid[$i]=$row->vertretung_uid;
$erreichbarkeit_kurzbz[$i]=$row->erreichbarkeit_kurzbz;
}
else
{
if($hgfarbe[$i]!='lime')
if($hgfarbe[$i]!='lime' && $hgfarbe[$i]!='green')
{
$hgfarbe[$i]='white';
$datensatz[$i]=0;
$freigabevon[$i]=$row->freigabevon;
$freigabeamum[$i]=$row->freigabeamum;
$vertretung_uid[$i]=$row->vertretung_uid;
$erreichbarkeit_kurzbz[$i]=$row->erreichbarkeit_kurzbz;
}
}
}
for($i=$mende;$i<44;$i++)
{
$hgfarbe[$i]='white';
$datensatz[$i]=0;
$freigabevon[$i]=$row->freigabevon;
$freigabeamum[$i]=$row->freigabeamum;
$vertretung_uid[$i]=$row->vertretung_uid;
$erreichbarkeit_kurzbz[$i]=$row->erreichbarkeit_kurzbz;
}
}
}
}
/*
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++)
{
$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,12 +323,13 @@ $content_resturlaub.="</table>";
//Formular Auswahl Monat und Jahr für Kalender
echo '<table width="80%" align="center">';
echo "<td class='tdvertical'>$content_resturlaub</td>";
echo "<td class='tdvertical' align='center' >$content_resturlaub</td>";
echo "<td class='tdvertical' align='right' colspan='2'><img src='../../../skin/images/TWLogo_klein.jpg' height='53' width='170' alt='twlogo'></td>";
echo '</td></tr><tr height=20></tr>';
echo '<tr><td>';
$content= '<form action="'.$_SERVER['PHP_SELF'].'" method="GET">';
$content.='Monat <SELECT name="wmonat">';
$content.='<INPUT name="links" value="links" type="image" src="../../../skin/images/left.gif" alt="links">';
$content.='<SELECT name="wmonat">';
for($i=0;$i<12;$i++)
{
if($wmonat==$i)
@@ -371,7 +343,10 @@ for($i=0;$i<12;$i++)
$content.="<option value='$i' $selected>$monatsname[$i]</option>";
}
$content.='</SELECT>';
$content.='&nbsp;Jahr <SELECT name="wjahr">';
$content.='<INPUT name="rechts" value="rechts" type="image" src="../../../skin/images/right.gif" alt="rechts">';
$content.='&nbsp;<SELECT name="wjahr">';
for($i=0;$i<5;$i++)
{
if($wjahr==$i)
@@ -385,8 +360,51 @@ for($i=0;$i<5;$i++)
$content.="<option value='$i' $selected>$jahre[$i]</option>";
}
$content.='</SELECT>';
$content.="&nbsp;<INPUT type='submit' name='ok' value='OK'>";
$content.='</form>';
$content.="&nbsp;<INPUT type='submit' name='ok' value='OK'></td></form>";
$content.='<form action="'.$_SERVER['PHP_SELF'].'" method="GET">';
$content.= "<td align='center'><SELECT name='vertretung_uid' id='vertretung_uid'>";
//dropdown fuer vertretung
$qry = "SELECT * FROM campus.vw_mitarbeiter WHERE uid not LIKE '\\\_%' ORDER BY nachname, vorname";
$content.= "<OPTION value=''>-- Vertretung --</OPTION>\n";
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
if($vertretung == $row->uid)
{
$content.= "<OPTION value='$row->uid' selected>$row->nachname $row->vorname ($row->uid)</OPTION>\n";
}
else
{
$content.= "<OPTION value='$row->uid'>$row->nachname $row->vorname ($row->uid)</OPTION>\n";
}
}
}
$content.= '</SELECT>';
$content.= "&nbsp;<SELECT name='erreichbar' id='erreichbarkeit_kurzbz'>";
//dropdown fuer vertretung
$qry = "SELECT * FROM campus.tbl_erreichbarkeit ORDER BY erreichbarkeit_kurzbz";
$content.= "<OPTION value=''>-- Erreichbar --</OPTION>\n";
if($result = pg_query($conn, $qry))
{
while($row = pg_fetch_object($result))
{
if($erreichbar == $row->erreichbarkeit_kurzbz)
{
$content.= "<OPTION value='$row->erreichbarkeit_kurzbz' selected>$row->beschreibung</OPTION>\n";
}
else
{
$content.= "<OPTION value='$row->erreichbarkeit_kurzbz'>$row->beschreibung</OPTION>\n";
}
}
}
$content.= '</SELECT>';
$content.='</td>';
//Tage
$mbeginn=mktime(0, 0, 0, ($wmonat+1) , 1, $jahre[$wjahr]);
@@ -410,26 +428,12 @@ for($i=1;$i<43;$i++)
$zaehl++;
}
}
//Toggle der Hintergrundfarbe
if($kastl>0)
{
if($hgfarbe[$kastl]=="white" )
{
$hgfarbe[$kastl]='lime';
}
else
{
$hgfarbe[$kastl]='white';
}
}
ksort($hgfarbe);
$content.='</td><td>';
$content.='<form action="'.$_SERVER['PHP_SELF'].'" method="GET">';
$content.='<input type="hidden" name="spmonat" value="'.implode(",",$hgfarbe).'"';
$content.='<td align="right">';
$content.='<input type="hidden" name="wmonat" value="'.$wmonat.'"';
$content.='<input type="hidden" name="wjahr" value="'.$wjahr.'"';
$content.='<input type="submit" name="speichern" value="Monat speichern">';
$content.='</form>';
$content.='<input type="submit" name="speichern" value="Eintragungen speichern">';
//$content.='</form>';
$content.='</td></tr>';
$content.='</table>';
$content.='<table border=1 width="80%" align="center">';
@@ -437,16 +441,32 @@ $content.='<table border=1 width="80%" align="center">';
$content.='<th width="14%">Montag</th><th width="14%">Dienstag</th><th width="14%">Mittwoch</th><th width="15%">Donnerstag</th><th width="14%">Freitag</th><th width="14%">Samstag</th><th width="14%">Sonntag</th>';
for ($i=0;$i<6;$i++)
{
$content.='<tr height="80" style="font-family:Arial,sans-serif; font-size:52px; color:blue">';
$content.='<tr height="90" style="font-family:Arial,sans-serif; font-size:50px; color:blue">';
for ($j=1;$j<8;$j++)
{
$content.='<td align="center" valign="center" style="background-color: '.$hgfarbe[$j+7*$i].'">
<a href="'.$PHP_SELF.'?kastl='.($j+7*$i).'&wmonat='.$wmonat.'&wjahr='.$wjahr.'&wtag="'.date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $tage[$j+7*$i], $jahre[$wjahr])).'"><b>'.$tage[$j+7*$i].'</b></a>
<form action="'.$_SERVER['PHP_SELF'].'" method="GET"><input type="checkbox" name="wtag" onclick=" "></form></td>'; //style="background-color:lime"
$content.='<td align="center" valign="center" style="background-color: '.$hgfarbe[$j+7*$i].'">';
if($tage[$j+7*$i]!='')
{
if($hgfarbe[$j+7*$i]=='lime')
{
$content.='<b title="Vertretung: '.$vertretung_uid[$j+7*$i].' - erreichbar: '.$erreichbarkeit_kurzbz[$j+7*$i].'">'.$tage[$j+7*$i].'</b><br>';
$content.='<INPUT name="delete" value="'.$datensatz[$j+7*$i].'" type="image" src="../../../skin/images/DeleteIcon.png" alt="loeschen" title="Eintragung löschen">';
}
elseif($hgfarbe[$j+7*$i]=='white')
{
$content.='<b>'.$tage[$j+7*$i].'</b><br>';
$content.='<input type="checkbox" name="wtag[]" value="'.date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $tage[$j+7*$i], $jahre[$wjahr])).'"></td>';
}
else
{
$content.='<b title="Vertretung: '.$vertretung_uid[$j+7*$i].' - erreichbar: '.$erreichbarkeit_kurzbz[$j+7*$i].'">'.$tage[$j+7*$i].'</b><br>';
$content.='<img src="../../../skin/images/person.gif" alt="freigegeben" title="Freigegeben durch '.$freigabevon[$j+7*$i].' am '.date("d-m-Y",strtotime($freigabeamum[$j+7*$i])).'"></td>';
}
}
}
$content.='</tr>';
}
$content.='</table>';
$content.='</table></form>';
echo $content;
?>
</body>