, * Andreas Oesterreicher and * Rudolf Hangl . */ /** * Seite zum Eintragen von Urlaubstagen */ 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'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/globals.inc.php'); require_once('../../../include/sprache.class.php'); $sprache = getSprache(); $lang = new sprache(); $lang->load($sprache); $p = new phrasen($sprache); if (!$db = new basis_db()) die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); $content_resturlaub = ''; $content = ''; $resturlaubstage = '0'; $mehrarbeitsstunden = '0'; $anspruch = '25'; $zaehl=1; $tage=array(); //Array Tage für Kalenderanzeige $hgfarbe=array_fill(0,44,'#E9ECEE'); //Array mit Hintegrundfarben der Kalenderfelder $datensatz=array_fill(0,44,0); $freigabevon=array(); $freigabeamum=array(); $vertretung_uid=array(); $erreichbarkeit_kurzbz=array(); /* Monatsnamenarray kommt aus globals.inc.php */ //$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=''; $vtmail=''; $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]!='#FFFC7F') $hgfarbe[$i]='#E9ECEE'; } } } 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']))) { $zeitsperre = new zeitsperre(); if(!$zeitsperre->delete($_GET['delete'])) echo $zeitsperre->errormsg; } //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]=$wtag[0]; $ekette[0]=$wtag[0]; for($i=1,$j=0;$iUrlaubEingetragen($uid, $akette[$i], $ekette[$i])) { $vgmail.='
'.$p->t('zeitsperre/urlaubBereitsEingetragen').''; $error=true; break; } } if(!$error) { for($i=0;$inew = true; $zeitsperre->zeitsperretyp_kurzbz='Urlaub'; $zeitsperre->mitarbeiter_uid=$uid; $zeitsperre->bezeichnung='Urlaub'; $zeitsperre->vondatum=$akette[$i]; $zeitsperre->vonstunde=''; $zeitsperre->bisdatum=$ekette[$i]; $zeitsperre->bisstunde=''; $zeitsperre->vertretung_uid=$vertretung; $zeitsperre->updateamum=''; $zeitsperre->updatevon=''; $zeitsperre->insertamum=date('Y-m-d H:i:s'); $zeitsperre->insertvon=$uid; $zeitsperre->erreichbarkeit=$erreichbar; $zeitsperre->freigabeamum=''; $zeitsperre->freigabevon=''; if(!$zeitsperre->save()) echo $zeitsperre->errormsg; } //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 = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n". $p->t('urlaubstool/xHatNeuenUrlaubEingetragen',array($benutzer->nachname,$benutzer->vorname)).":\n"; for($i=0;$it('urlaubstool/von')." ".date("d.m.Y", strtotime($akette[$i]))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($ekette[$i]))."\n"; } //Ab September wird das neue Jahr uebergeben if(date("m",strtotime($akette[0]))>=9) $jahr = date("Y", strtotime($akette[0]))+1; else $jahr = date("Y", strtotime($akette[0])); $message.="\n".$p->t('urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben').":\n". APP_ROOT."cis/private/profile/urlaubsfreigabe.php?uid=$uid&year=".$jahr; $mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigabeansuchenUrlaub'), $message); if($mail->send()) { $vgmail="".$p->t('urlaubstool/freigabemailWurdeVersandt',array($to)).""; } else { $vgmail="
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($to))."!"; } } else { $vgmail="
".$p->t('urlaubstool/konnteKeinFreigabemailVersendetWerden').""; } //Mail an Vertretung. Wird derzeit nicht gewuenscht. /* if($vertretung!='') { $to = $vertretung.'@'.DOMAIN; $benutzer = new benutzer(); $benutzer->load($uid); $datumsbereich = ''; for($i=0;$it('urlaubstool/mailtextVertretung', array ($benutzer->nachname,$benutzer->vorname,$datumsbereich)); //"Dies ist eine automatische Mail. \n". // "$benutzer->nachname $benutzer->vorname hat neuen Urlaub eingetragen und sie wurden als Vertretung angegeben:\n"; $mail = new mail($to, 'vilesci@'.DOMAIN,'Urlaubsvertretung für '.$benutzer->nachname.' '.$benutzer->vorname.'', $message); if($mail->send()) { $vtmail="".$p->t('urlaubstool/vertretungsmailWurdeVersandt',$to)."!"; } else { $vtmail="
".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',$to)."!"; } } else { $vtmail="
".$p->t('urlaubstool/keineVertretungEingetragen').""; }*/ if($vertretung=='') { $vtmail="
".$p->t('urlaubstool/keineVertretungEingetragen').""; } } } //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='".addslashes($uid)."' AND (vondatum<='".addslashes($wbis)."' AND bisdatum>'".addslashes($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]!='#FFFC7F' && $hgfarbe[$i]!='#bbb') { $hgfarbe[$i]='#E9ECEE'; $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]='#E9ECEE'; $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(); ?> <?php echo $p->t('urlaubstool/urlaubstool');?> ".$p->t('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; // wenn mitarbeiter ist kein fixangestellter --> kein urlaubsanspruch $mitarbeiter_anspruch = new mitarbeiter(); $mitarbeiter_anspruch->load($uid); if($mitarbeiter_anspruch->fixangestellt == true) $anspruch=25; else $anspruch = 0; } $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.="

".$p->t('urlaubstool/urlaubImGeschaeftsjahr')." $geschaeftsjahr

".$p->t('urlaubstool/anspruch')."$anspruch ".$p->t('urlaubstool/tage')."   ( ".$p->t('urlaubstool/jaehrlich')." )
+ ".$p->t('urlaubstool/resturlaub')."$resturlaubstage ".$p->t('urlaubstool/tage')."   ( ".$p->t('urlaubstool/stichtag').": $datum_beginn )
- ".$p->t('urlaubstool/aktuellGebuchterUrlaub')." $gebuchterurlaub ".$p->t('urlaubstool/tage')."   ( $datum_beginn - $datum_ende )
".$p->t('urlaubstool/aktuellerStand')."".($anspruch+$resturlaubstage-$gebuchterurlaub)." ".$p->t('urlaubstool/tage')."   ( ".$p->t('urlaubstool/stichtag').": $datum_ende )
"; //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]); $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.= $p->t('urlaubstool/vertretung').": "; //dropdown fuer vertretung. Ersetzt durch AutoComplete /*$qry = "SELECT * FROM campus.vw_mitarbeiter WHERE uid not LIKE '\\\_%' ORDER BY nachname, vorname"; $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]=='#E9ECEE') { $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.='
'.$tagbez[$lang->index][1].''.$tagbez[$lang->index][2].''.$tagbez[$lang->index][3].''.$tagbez[$lang->index][4].''.$tagbez[$lang->index][5].''.$tagbez[$lang->index][6].''.$tagbez[$lang->index][7].'
'; } else { $content.=''; } if($tage[$j+7*$i]!='') { if($hgfarbe[$j+7*$i]=='#FFFC7F') { $content.='t('urlaubstool/erreichbar').': '.$erreichbarkeit_kurzbz[$j+7*$i].'">'.$tage[$j+7*$i].'
';; $k=$j+7*$i; $content.=""; $content.='loeschen
'; echo $content; echo "

".$vgmail; echo "
".$vtmail."
"; ?>