, * Andreas Oesterreicher and * Rudolf Hangl . */ require_once('../../../config/cis.config.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/zeitsperre.class.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/resturlaub.class.php'); require_once('../../../include/person.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/mitarbeiter.class.php'); require_once('../../../include/mail.class.php'); if (!$db = new basis_db()) die('Fehler beim Oeffnen der Datenbankverbindung'); $content_resturlaub = ''; $content = ''; $resturlaubstage = '0'; $mehrarbeitsstunden = '0'; $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,1,0); $ekette=array_fill(0,1,0); $links=''; $rechts=''; $tag=array(); $vertretung=''; $erreichbar=''; $vgmail=''; $spmonat=array(); $hgchange=false; $wvon=''; $wbis=''; $datensatz=''; $t=getdate(); $uid = get_uid(); $taste=0; $ma= new mitarbeiter(); for($i=0;$i<6;$i++) { $jahre[$i]="$t[year]"+($i-1); } if (isset($_GET['wtag']) || isset($_POST['wtag'])) { $wtag=(isset($_GET['wtag'])?$_GET['wtag']:$_POST['wtag']); } else { $wtag=date("d.m.Y"); } if (isset($_GET['wmonat']) || isset($_POST['wmonat'])) { $wmonat=(isset($_GET['wmonat'])?$_GET['wmonat']:$_POST['wmonat']); } else { $wmonat="$t[mon]"-1; } if (isset($_GET['wjahr']) || isset($_POST['wjahr'])) { $wjahr=(isset($_GET['wjahr'])?$_GET['wjahr']:$_POST['wjahr']); } else { $wjahr=1; } 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'])) { for($i=0;$i<44;$i++) { if(!isset($hgfarbe[$i]) || $hgfarbe[$i]!='lime') $hgfarbe[$i]='white'; } } } if (isset($_GET['links_x']) || isset($_POST['links_x'])) { if ($wmonat==0) { if($wjahr>0) { $wmonat=11; $wjahr=$wjahr-1; } } else { $wmonat=$wmonat-1; $wjahr=$wjahr; } } if (isset($_GET['rechts_x']) || isset($_POST['rechts_x'])) { if($wmonat==11) { if($wjahr<4) { $wmonat=0; $wjahr=$wjahr+1; } } else { $wmonat=$wmonat+1; $wjahr=$wjahr; } } //Eintragung löschen if((isset($_GET['delete']) || isset($_POST['delete']))) { //print_r($_GET['delete']); //echo "
"; $qry="DELETE FROM campus.tbl_zeitsperre WHERE zeitsperre_id=".$_GET['delete']." AND (freigabevon!='' OR freigabevon IS NULL)"; $result = $db->db_query($qry); } //Eintragung speichern 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;$idb_query($qryins); } //Mail an Vorgesetzten $vorgesetzter = $ma->getVorgesetzte($uid); if($vorgesetzter) { $to=''; foreach($ma->vorgesetzte as $vg) { if($to!='') { $to.=', '.$vg.'@'.DOMAIN; } else { $to.=$vg.'@'.DOMAIN; } } //$to = 'oesi@technikum-wien.at'; $benutzer = new benutzer(); $benutzer->load($uid); $message = "Dies ist eine automatische Mail! \n". "$benutzer->nachname $benutzer->vorname hat neuen Urlaub eingetragen:\n"; for($i=0;$i=9) $jahr = date("Y", strtotime($akette[0]))+1; else $jahr = date("Y", strtotime($akette[0])); $message.="\nSie können diesen unter folgender Adresse freigeben:\n". APP_ROOT."cis/private/profile/urlaubsfreigabe.php?uid=$uid&year=".$jahr; $mail = new mail($to, 'vilesci@'.DOMAIN,'Freigabeansuchen Urlaub', $message); if($mail->send()) { $vgmail="
Freigabemail wurde an $to versandt!"; } else { $vgmail="
Fehler beim Senden des Freigabemails an $to!"; } } else { $vgmail="
Es konnte keine Freigabemail versendet werden, da kein Vorgesetzter eingetragen ist!"; } } //Eintragungen laden if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr))) { //Urlaubstageage markieren $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]); if($wmonat==0) { $mendev = cal_days_in_month(CAL_GREGORIAN, 12, $jahre[$wjahr]-1); } else { $mendev = cal_days_in_month(CAL_GREGORIAN, ($wmonat), $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])); $ttt=getdate(mktime(0, 0, 0, ($wmonat+1) , $mende, $jahre[$wjahr])); if($wmonat==0) { $wvon=date("Y-m-d",mktime(0, 0, 0, 12 , $mendev-($wotag-1), ($jahre[$wjahr])-1)); } else { $wvon=date("Y-m-d",mktime(0, 0, 0, ($wmonat) , $mendev-($wotag-1), ($jahre[$wjahr]))); } if($wmonat==11) { $wbis=date("Y-m-d",mktime(0, 0, 0, 1 , (7-($ttt['wday']==0?7:$ttt['wday'])), $jahre[$wjahr]+1)); } else { $wbis=date("Y-m-d",mktime(0, 0, 0, ($wmonat+2) , (7-($ttt['wday']==0?7:$ttt['wday'])), $jahre[$wjahr])); } $qry="SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub' AND mitarbeiter_uid='".$uid."' AND (vondatum<='".$wbis."' AND bisdatum>'".$wvon."') "; //echo "
"."db:".$qry; if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) { //echo " ".$row->vondatum; //echo "-".$row->bisdatum; for($i=1;$i<=$mende+($wotag-1)+(7-($ttt['wday']==0?7:$ttt['wday']));$i++) { 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) { if($row->freigabevon!='' || $row->bisdatumzeitsperre_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' && $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+$wotag+(7-($ttt['wday']==0?7:$ttt['wday']));$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; } } } } $PHP_SELF = $_SERVER['PHP_SELF']; $datum_obj = new datum(); ?> Urlaubstool Urlaubstool (".$uid.")"; //Anzeige Resturlaubsberechnung echo ''; echo '
'; $resturlaub = new resturlaub(); if($resturlaub->load($uid)) { $resturlaubstage = $resturlaub->resturlaubstage; $mehrarbeitsstunden = $resturlaub->mehrarbeitsstunden; $anspruch = $resturlaub->urlaubstageprojahr; } else { $resturlaubstage=0; $mehrarbeitsstunden=0; $anspruch=25; } $jahr=date('Y'); if (date('m')>8) { $datum_beginn_iso=$jahr.'-09-01'; $datum_beginn='1.Sept.'.$jahr; $datum_ende_iso=($jahr+1).'-08-31'; $datum_ende='31.Aug.'.($jahr+1); $geschaeftsjahr=$jahr.'/'.($jahr+1); } else { $datum_beginn_iso=($jahr-1).'-09-01'; $datum_beginn='1.Sept.'.($jahr-1); $datum_ende_iso=$jahr.'-08-31'; $datum_ende='31.Aug.'.$jahr; $geschaeftsjahr=($jahr-1).'/'.$jahr; } //Urlaub berechnen $gebuchterurlaub=0; $qry = "SELECT sum(bisdatum-vondatum+1) as anzahltage FROM campus.tbl_zeitsperre WHERE zeitsperretyp_kurzbz='Urlaub' AND mitarbeiter_uid='$uid' AND ( vondatum>='$datum_beginn_iso' AND bisdatum<='$datum_ende_iso' )"; $result = $db->db_query($qry); $row = $db->db_fetch_object($result); $gebuchterurlaub = $row->anzahltage; if($gebuchterurlaub=='') $gebuchterurlaub=0; $content_resturlaub.=""; $content_resturlaub.=""; $content_resturlaub.=""; $content_resturlaub.=""; $content_resturlaub .=""; $content_resturlaub.=""; $content_resturlaub.="

Urlaub im Geschäftsjahr $geschaeftsjahr

[AblaufUrlaubserfassung.pdf]
Anspruch$anspruch Tage   ( jährlich )
+ Resturlaub$resturlaubstage Tage   ( Stichtag: $datum_beginn )
- aktuell gebuchter Urlaub $gebuchterurlaub Tage   ( $datum_beginn - $datum_ende )
aktueller Stand".($anspruch+$resturlaubstage-$gebuchterurlaub)." Tage   ( Stichtag: $datum_ende )
"; //Formular Auswahl Monat und Jahr für Kalender echo ''; echo ""; echo ''; echo ''; $content.=''; $content.= "'; //Tage $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]); if($wmonat==0) { $mendev = cal_days_in_month(CAL_GREGORIAN, 12, $jahre[$wjahr]-1); } else { $mendev = cal_days_in_month(CAL_GREGORIAN, ($wmonat), $jahre[$wjahr]); } $ttt=getdate(mktime(0, 0, 0, ($wmonat+1) , $mende, $jahre[$wjahr])); //echo "monatsende:".$mende; for($i=1;$i<43;$i++) { if($i>=$wotag && $zaehl<=$mende) { $tage[$i]=$zaehl; $zaehl++; } elseif ($i<$wotag) { if($wmonat==0) { $tage[$i]=date("d.m.Y", mktime(0, 0, 0, 12 , $mendev+$i-($wotag-1), $jahre[$wjahr]-1)); } else { $tage[$i]=date("d.m.Y", mktime(0, 0, 0, ($wmonat) , $mendev+$i-($wotag-1), $jahre[$wjahr])); } } elseif ($i>$mende && $i<=$mende+($wotag-1)+(7-($ttt['wday']==0?7:$ttt['wday']))) { if($wmonat==11) { $tage[$i]=date("d.m.Y", mktime(0, 0, 0, 1 , $i-$mende-$wotag+1, $jahre[$wjahr+1])); } else { $tage[$i]=date("d.m.Y", mktime(0, 0, 0, ($wmonat+2) , $i-$mende-$wotag+1, $jahre[$wjahr])); } } else { $tage[$i]=''; } } $content.=''; $content.='
$content_resturlaub
'; $content= '
'; $content.=''; $content.=''; $content.=''; $content.=' '; $content.=" "; $content.='
'; $content.= " '; $content.=''; $content.=''; $content.=''; $content.=''; $content.='
'; $content.=''; $content.=''; for ($i=0;$i<6;$i++) { $content.=''; for ($j=1;$j<8;$j++) { if(strlen(stristr($tage[$j+7*$i],"."))>0) { $content.=''; } elseif($hgfarbe[$j+7*$i]=='white') { $content.=''.$tage[$j+7*$i].'
'; if(strlen(stristr($tage[$j+7*$i],"."))>0) { $content.=''; } else { $content.=''; } } else { $content.=''.$tage[$j+7*$i].'
'; if(isset($freigabeamum[$j+7*$i])) { $content.='freigegeben'; } else { $content.='freigegeben'; } } } else { $content.=' 
'; } } $content.=''; } $content.='
MontagDienstagMittwochDonnerstagFreitagSamstagSonntag
'; } else { $content.=''; } if($tage[$j+7*$i]!='') { if($hgfarbe[$j+7*$i]=='lime') { $content.=''.$tage[$j+7*$i].'
';; $k=$j+7*$i; $content.=""; $content.='loeschen
'; echo $content; echo "".$vgmail.""; ?>