From 0ebc362123efe11e2caebcd023b90f8948ebac62 Mon Sep 17 00:00:00 2001 From: Rudolf Hangl Date: Wed, 25 Jun 2008 09:14:50 +0000 Subject: [PATCH] --- cis/private/profile/urlaubstool.php | 418 +++++++++++++++------------- 1 file changed, 219 insertions(+), 199 deletions(-) diff --git a/cis/private/profile/urlaubstool.php b/cis/private/profile/urlaubstool.php index d02a9fa6c..78fe30962 100644 --- a/cis/private/profile/urlaubstool.php +++ b/cis/private/profile/urlaubstool.php @@ -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='".$wvon."') "; - echo "
"."db:".$qry; + //echo "
"."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'
'; - //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 "
".$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 "
".$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 "
".$qryupd; - //echo "
"."1-".$qryins; - //Einfügen des Urlaubs innerhalb des Monats - for($i=0;$i"."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 "
".$qrydel; - for($i=0;$i"."3-".$qryins; - } - } - } - } - $hgfarbe=explode(",",$_GET['spmonat']); -} -*/ - - - - - $PHP_SELF = $_SERVER['PHP_SELF']; $datum_obj = new datum(); @@ -352,12 +323,13 @@ $content_resturlaub.=""; //Formular Auswahl Monat und Jahr für Kalender echo ''; -echo ""; +echo ""; +echo ""; echo ''; echo '"; +$content.=''; +$content.= "'; //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.=''; //style="background-color:lime" + $content.=''; + } + else + { + $content.=''.$tage[$j+7*$i].'
'; + $content.='freigegeben'; + } + } } $content.=''; } -$content.='
$content_resturlaub$content_resturlaubtwlogo
'; $content= '
'; - -$content.='Monat '; +$content.=''; -$content.=' Jahr '; +$content.=' '; -$content.=" "; -$content.='
'; +$content.=" 
'; +$content.= " '; +$content.=''; -$content.=''; -$content.=' - '.$tage[$j+7*$i].' - '; + if($tage[$j+7*$i]!='') + { + if($hgfarbe[$j+7*$i]=='lime') + { + $content.=''.$tage[$j+7*$i].'
'; + $content.=''; + } + elseif($hgfarbe[$j+7*$i]=='white') + { + $content.=''.$tage[$j+7*$i].'
'; + $content.='
'; +$content.=''; echo $content; ?>