$export_param .= ($export_param != '' ? '&' : '') . 'funktion=' . $funktion; } if (isset($stg_kz)) { $export_param .= ($export_param != '' ? '&' : '') . 'stg_kz=' . $stg_kz; } } $export_link .= $export_param; //Datumsbereich ermitteln $datum_obj = new datum(); $dTmpAktuellerMontag = date("Y-m-d", strtotime(date('Y') . "W" . date('W') . "1")); // Montag der Aktuellen Woche $dTmpAktuellesDatum = explode("-", $dTmpAktuellerMontag); $dTmpMontagPlus = date("Y-m-d", mktime(0, 0, 0, date($dTmpAktuellesDatum[1]), date($dTmpAktuellesDatum[2]) + $days, date($dTmpAktuellesDatum[0]))); $datum_beginn = $dTmpAktuellerMontag; $datum_ende = $dTmpMontagPlus; $ts_beginn = $datum_obj->mktime_fromdate($datum_beginn); $ts_ende = $datum_obj->mktime_fromdate($datum_ende); // Mitarbeiter laden $ma = new mitarbeiter(); if (!is_null($organisationseinheit)) { $mitarbeiter = $ma->getMitarbeiterOrganisationseinheit($organisationseinheit); } else { if (!is_null($lektor)) { $mitarbeiter = $lektor; } else { if (is_null($funktion)) { $mitarbeiter = $ma->getMitarbeiter($lektor, $fix); } else { $mitarbeiter = $ma->getMitarbeiterStg(null, null, $stge, $funktion, 'nachname,vorname'); } }
/** * * Zeichnet den Chart für alle Phasen eines übergebenen Projektes */ function getProjektGantt() { global $projekt_kurzbz; global $studienjahr; global $ansicht; $projektphasen = new projektphase(); if (!$projektphasen->getProjektphasen($projekt_kurzbz)) { die('Kein gültiges Projekt übergeben.'); } $projekt = new projekt(); if (!$projekt->load($projekt_kurzbz)) { die('Konnte Projekt nicht laden.'); } $datum = new datum(); $widthPerWeek = 16; $startX = 20; $startY = 90; // KW in der 28.12 liegt ist letzte KW $datum_gesamt = $studienjahr . '-12-28'; $timestamp_gesamt = $datum->mktime_fromdate($datum_gesamt); $kw_gesamt = date('W', $timestamp_gesamt); // kommt auf Anzahl der Phasen an $height = count($projektphasen->result) * 50; // Zeichne Kalenderjahr -> beginnend mit KW 1 if ($ansicht == 'kalenderjahr') { echo '<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">'; echo '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 750 700"> <rect x="' . $startX . '" y="' . $startY . '" width="' . $kw_gesamt * $widthPerWeek . '" height="' . $height . '" style="color:#000000;fill:none;stroke:#e1e1e1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />'; // Überschriften echo '<text x="25%" y="40" style="font-size:33px">Phasen Kalenderjahr: ' . $studienjahr . '</text>'; echo '<text x="' . ($startX - 10) . '" y="' . ($startY - 5) . '" style="font-size:13px" text-anchor="end"> KW:</text>'; // Zeichne Raster for ($i = 1; $i <= $kw_gesamt; $i++) { $x1 = $startX + $i * $widthPerWeek; echo '<line x1="' . $x1 . '" y1="' . $startY . '" x2="' . $x1 . '" y2="' . ($height + $startY) . '" style="stroke:#e1e1e1; stroke-width:2px;" />'; if ($i % 2 == 1) { echo '<text x="' . ($x1 - $widthPerWeek) . '" y="' . ($startY - 5) . '" style="font-size:13px">' . $i . '</text>'; } } // aktuelle KW markieren $timestamp_now = time(); $kw_now = kalenderwoche($timestamp_now); $year_now = date("Y", $timestamp_now); if ($year_now == $studienjahr) { $x = $startX + $kw_now * $widthPerWeek - $widthPerWeek / 2; echo '<line x1="' . $x . '" y1="' . ($startY - 20) . '" x2="' . $x . '" y2="' . ($height + $startY + 20) . '" style="stroke:red; stroke-width:4px;" />'; } $i = 0; foreach ($projektphasen->result as $phase) { $width = 0; $x = 0; // wenn kein start oder ende angegeben -> nichts zeichnen -> width=0 if ($phase->start != '' && $phase->ende != '') { $timestamp_beginn = $datum->mktime_fromdate($phase->start); $timestamp_end = $datum->mktime_fromdate($phase->ende); $kw_beginn = kalenderwoche($timestamp_beginn); $kw_end = kalenderwoche($timestamp_end); // kw soll bei 0 zu zeichnen beginnen $kw_beginn = $kw_beginn - 1; $kw_end = $kw_end - 1; $year_beginn = date("Y", $timestamp_beginn); $year_end = date("Y", $timestamp_end); // phase beginnt und endet im Jahr if ($year_end == $year_beginn && $year_beginn == $studienjahr) { $width = ($kw_end - $kw_beginn + 1) * $widthPerWeek; $x = $startX + $kw_beginn * $widthPerWeek; } else { if ($year_beginn == $studienjahr && $year_end > $year_beginn) { $width = ($kw_gesamt - $kw_beginn) * $widthPerWeek; $x = $startX + $kw_beginn * $widthPerWeek; } else { if ($year_beginn < $studienjahr && $year_end > $studienjahr) { $width = $kw_gesamt * $widthPerWeek; $x = $startX; } else { if ($year_beginn < $studienjahr && $year_end == $studienjahr) { $width = ($kw_end + 1) * $widthPerWeek; $x = $startX; } } } } } $style = ''; $pr_phase = new projektphase(); $ende_phase = $phase->ende; $date_now = date('Y-m-d', time()); // check ob phase in vergangenheit liegt und noch nicht abgeschlossen ist -> markieren if (!$pr_phase->isPhaseErledigt($phase->projektphase_id) && $date_now > $ende_phase) { $style = 'style ="stroke:pink;stroke-width:10;"'; } // zeichne balken echo '<rect x="' . $x . '" y="' . ($startY + 10 + $i * 50) . '" width ="' . $width . '" height ="30" fill="' . $phase->farbe . '" stroke="black" ' . $style . '/>'; echo '<text x="' . ($startX - 10) . '" y="' . ($startY + 30 + $i * 50) . '" style="font-size:15px" text-anchor="end">' . htmlspecialchars($phase->bezeichnung) . '</text>'; $i++; } echo '<text x="10%" y="' . (($i + 1) * 50 + $startY) . '" style="font-size:16px">Projekt: ' . htmlspecialchars($projekt->titel) . '</text>'; echo '</svg>'; } else { if ($ansicht == 'studienjahr') { echo '<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">'; echo '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 750 800">'; // Überschriften echo '<text x="25%" y="40" style="font-size:33px">Phasen Studienjahr: ' . $studienjahr . '/' . ($studienjahr + 1) . '</text>'; echo '<text x="' . ($startX - 10) . '" y="' . ($startY - 5) . '" style="font-size:13px" text-anchor="end"> KW:</text>'; // WS $year_old = $studienjahr . '-09-01'; $timestamp_old = $datum->mktime_fromdate($year_old); $kw_old = kalenderwoche($timestamp_old); // SS $year_new = $studienjahr + 1 . '-09-01'; $timestamp_new = $datum->mktime_fromdate($year_new); $kw_new = kalenderwoche($timestamp_new); // gesamtanzahl der KWs im Studienjahr $y = 0; // Zeichne Raster studienjahr WS for ($i = $kw_old; $i <= $kw_gesamt; $i++) { $x1 = $startX + $y * $widthPerWeek; echo '<line x1="' . $x1 . '" y1="' . $startY . '" x2="' . $x1 . '" y2="' . ($height + $startY) . '" style="stroke:#e1e1e1; stroke-width:2px;" />'; if ($y % 2 == 0) { echo '<text x="' . $x1 . '" y="' . ($startY - 5) . '" style="font-size:13px">' . $i . '</text>'; } $y++; } // Zeichne Raster studienjahr SS for ($i = 1; $i <= $kw_new; $i++) { $x1 = $startX + $y * $widthPerWeek; echo '<line x1="' . $x1 . '" y1="' . $startY . '" x2="' . $x1 . '" y2="' . ($height + $startY) . '" style="stroke:#e1e1e1; stroke-width:2px;" />'; if ($y % 2 == 0) { echo '<text x="' . $x1 . '" y="' . ($startY - 5) . '" style="font-size:13px">' . $i . '</text>'; } $y++; } echo '<rect x="' . $startX . '" y="' . $startY . '" width="' . $y * $widthPerWeek . '" height="' . $height . '" style="color:#000000;fill:none;stroke:#e1e1e1;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />'; $i = 0; foreach ($projektphasen->result as $phase) { $width = 0; $x = 0; // wenn kein start oder ende angegeben -> nichts zeichnen -> width=0 if ($phase->start != '' && $phase->ende != '') { $timestamp_beginn = $datum->mktime_fromdate($phase->start); $timestamp_end = $datum->mktime_fromdate($phase->ende); $kw_beginn = kalenderwoche($timestamp_beginn); $kw_end = kalenderwoche($timestamp_end); $kw_beginn = $kw_beginn; $kw_end = $kw_end; $startSS = $kw_gesamt - $kw_old; $year_beginn = date("Y", $timestamp_beginn); $year_end = date("Y", $timestamp_end); $test = 0; // phase beginnt und endet im WS if ($year_end == $year_beginn && $year_beginn == $studienjahr && $kw_beginn >= $kw_old) { $width = ($kw_end - $kw_beginn + 1) * $widthPerWeek; $x = $startX + ($kw_beginn - $kw_old) * $widthPerWeek; $test = 1; } // phase beginnt und endet im SS if ($year_end == $year_beginn && $year_beginn == $studienjahr + 1 && $kw_beginn >= 1 && $kw_end <= $kw_new) { if ($kw_end == 1) { // es kann auch sein dass 31.12 des kalenderjahres schon in der 1. KW liegt $kw_end = $kw_new; } $width = ($kw_end - $kw_beginn + 1) * $widthPerWeek; $x = $startX + ($kw_beginn + $startSS) * $widthPerWeek; $test = 2; } else { if ($year_beginn == $studienjahr && $year_end == $studienjahr + 1 && $kw_beginn >= $kw_old && $kw_end <= $kw_new) { $width = ($kw_gesamt - $kw_beginn + $kw_end + 1) * $widthPerWeek; $x = $startX + ($kw_beginn - $kw_old) * $widthPerWeek; $test = 3; } else { if ($year_beginn == $studienjahr && $kw_beginn <= $kw_old && ($year_end == $studienjahr + 1 && $kw_end >= $kw_new || $year_end > $studienjahr + 1)) { $width = $y * $widthPerWeek; $x = $startX; $test = 4; } else { if ($year_beginn < $studienjahr && $year_end > $studienjahr + 1) { $width = $y * $widthPerWeek; $x = $startX; $test = 5; } else { if (($year_beginn == $studienjahr && $kw_beginn < $kw_old || $year_beginn < $studienjahr) && ($year_end == $studienjahr && $kw_end >= $kw_old)) { $width = ($kw_end - $kw_old + 1) * $widthPerWeek; $x = $startX; $test = 6; } else { if (($year_beginn == $studienjahr && $kw_beginn < $kw_old || $year_beginn < $studienjahr) && ($year_end == $studienjahr + 1 && $kw_end <= $kw_new)) { if ($kw_end == 1) { // es kann auch sein dass 31.12 des kalenderjahres schon in der 1. KW liegt $kw_end = $kw_new; } $width = ($kw_gesamt - $kw_old + $kw_end + 1) * $widthPerWeek; $x = $startX; $test = 7; } else { if ($year_beginn == $studienjahr && $kw_beginn >= $kw_old && ($year_end == $studienjahr + 1 && $kw_end > $kw_new)) { $width = ($kw_gesamt - $kw_beginn + $kw_new + 1) * $widthPerWeek; $x = $startX + ($kw_beginn - $kw_old) * $widthPerWeek; $test = 8; } else { if ($year_beginn == $studienjahr && $kw_beginn > $kw_old && $year_end > $studienjahr + 1) { $width = ($kw_gesamt - $kw_beginn + $kw_new + 1) * $widthPerWeek; $x = $startX + ($kw_beginn - $kw_old) * $widthPerWeek; $test = 9; } else { if ($year_beginn == $studienjahr + 1 && $kw_beginn <= $kw_new && ($year_end == $studienjahr + 1 && ($kw_end > $kw_new || $kw_end == 1))) { $width = ($y - $kw_beginn - $startSS) * $widthPerWeek; $x = $startX + ($kw_beginn + $startSS) * $widthPerWeek; $test = 10; } else { if ($year_beginn == $studienjahr + 1 && $kw_beginn <= $kw_new && $year_end > $studienjahr + 1) { $width = ($y - $kw_beginn - $startSS) * $widthPerWeek; $x = $startX + ($kw_beginn + $startSS) * $widthPerWeek; $test = 11; } } } } } } } } } } } // zeichne balken $style = ''; $pr_phase = new projektphase(); $ende_phase = $phase->ende; $date_now = date('Y-m-d', time()); // check ob phase in vergangenheit liegt und noch nicht abgeschlossen ist -> markieren if (!$pr_phase->isPhaseErledigt($phase->projektphase_id) && $date_now > $ende_phase) { $style = 'style ="stroke:pink;stroke-width:10;"'; } echo '<rect x="' . $x . '" y="' . ($startY + 10 + $i * 50) . '" width ="' . $width . '" height ="30" fill="' . $phase->farbe . '" stroke="black" ' . $style . ' />'; echo '<text x="' . ($startX - 10) . '" y="' . ($startY + 30 + $i * 50) . '" style="font-size:15px" text-anchor="end">' . htmlspecialchars($phase->bezeichnung) . '</text>'; $i++; } echo '<text x="10%" y="' . (($i + 1) * 50 + $startY) . '" style="font-size:16px">Projekt: ' . htmlspecialchars($projekt->titel) . '</text>'; // aktuelle KW markieren $timestamp_now = time(); $kw_now = kalenderwoche($timestamp_now); $year_now = date("Y", $timestamp_now); if ($year_now == $studienjahr && $kw_now > $kw_old) { $x = $startX + ($kw_now - $kw_old) * $widthPerWeek - $widthPerWeek / 2; echo '<line x1="' . $x . '" y1="' . ($startY - 20) . '" x2="' . $x . '" y2="' . ($height + $startY + 20) . '" style="stroke:red; stroke-width:4px;" />'; } else { if ($year_now == $studienjahr + 1 && $kw_now < $kw_new) { $x = $startX + ($kw_now + $kw_gesamt - $kw_old + 1) * $widthPerWeek - $widthPerWeek / 2; echo '<line x1="' . $x . '" y1="' . ($startY - 20) . '" x2="' . $x . '" y2="' . ($height + $startY + 20) . '" style="stroke:red; stroke-width:4px;" />'; } } echo '</svg>'; } } }
} } if ($betrag < 0) { $class = 'danger'; } elseif ($betrag > 0) { $class = 'success'; } else { $class = ''; } ?> <tr class="<?php echo $class; ?> "> <td><?php echo date('d.m.Y', $datum_obj->mktime_fromdate($row['parent']->buchungsdatum)); ?> </td> <td><?php echo $buchungstyp[$row['parent']->buchungstyp_kurzbz]; ?> </td> <td><?php echo $stg_arr[$row['parent']->studiengang_kz]; ?> </td> <td><?php echo $row['parent']->studiensemester_kurzbz; ?> </td>
$ectspunkte = ''; if ($row->ects == 0 || $row->ects == '') { $ectspunkte = ''; } else { //Bei 2 Nachkommastellen beide anzeigen, sonst nur 1 if (number_format($row->ects, 1) == number_format($row->ects, 2)) { $ectspunkte = number_format($row->ects, 1); } else { $ectspunkte = number_format($row->ects, 2); } } $ects_gesamt += $ectspunkte; $xml .= "\t\t\t\t<ects>" . $ectspunkte . "</ects>"; $xml .= "\t\t\t\t<lv_lehrform_kurzbz>" . $row->lv_lehrform_kurzbz . "</lv_lehrform_kurzbz>"; if ($auslandssemester) { $xml .= "\t\t\t<bisio_von>" . date('d.m.Y', $datum->mktime_fromdate($bisio_von)) . "</bisio_von>"; $xml .= "\t\t\t<bisio_bis>" . date('d.m.Y', $datum->mktime_fromdate($bisio_bis)) . "</bisio_bis>"; $xml .= "\t\t\t<bisio_ort>{$bisio_ort}</bisio_ort>"; $xml .= "\t\t\t<bisio_universitaet>{$bisio_universitaet}</bisio_universitaet>"; } $xml .= "\t\t\t</unterrichtsfach>"; } } $xml .= "<ects_gesamt>" . $ects_gesamt . "</ects_gesamt>"; $xml .= $xml_fussnote; $xml .= "\t</zeugnis>"; } $xml .= "</zeugnisse>"; echo $xml; } ?>
} $error_log = ''; if ($row->gebdatum == '' || $row->gebdatum == NULL) { $error_log .= ($error_log != '' ? ', ' : '') . "Geburtsdatum ('" . $row->gebdatum . "')"; } if ($row->geschlecht == '' || $row->geschlecht == NULL) { $error_log .= ($error_log != '' ? ', ' : '') . "Geschlecht ('" . $row->geschlecht . "')"; } if ($row->ausbildungcode == '' || $row->ausbildungcode == NULL) { $error_log .= ($error_log != '' ? ', ' : '') . "HoechsteAbgeschlosseneAusbildung ('" . $row->ausbildungcode . "')"; } $mitarbeiter_data['uid'] = $row->uid; $mitarbeiter_data['personalnummer'] = sprintf("%015s", $row->personalnummer); $mitarbeiter_data['vorname'] = $row->vorname; $mitarbeiter_data['nachname'] = $row->nachname; $person_content .= "\n <Person>\n <PersonalNummer>" . sprintf("%015s", $row->personalnummer) . "</PersonalNummer>\n <GeburtsDatum>" . date("dmY", $datumobj->mktime_fromdate($row->gebdatum)) . "</GeburtsDatum>\n <Geschlecht>" . strtoupper($row->geschlecht) . "</Geschlecht>\n <HoechsteAbgeschlosseneAusbildung>" . $row->ausbildungcode . "</HoechsteAbgeschlosseneAusbildung>"; $qryvw = "SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid=" . $db->db_add_param($row->mitarbeiter_uid) . " AND habilitation=true;"; if ($resultvw = $db->db_query($qryvw)) { if ($db->db_num_rows($resultvw) > 0) { $person_content .= "\n <Habilitation>J</Habilitation>"; } else { $person_content .= "\n <Habilitation>N</Habilitation>"; } } $qryvw = "SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid=" . $db->db_add_param($row->mitarbeiter_uid) . " AND (ende is null OR ende>" . $db->db_add_param($bisprevious) . ") AND (beginn<" . $db->db_add_param($bisdatum) . " OR beginn is null);"; if ($resultvw = $db->db_query($qryvw)) { if ($db->db_num_rows($resultvw) > 0) { $verwendung_data = array(); while ($rowvw = $db->db_fetch_object($resultvw)) { if ($rowvw->ba1code == '' || $rowvw->ba1code == NULL) { $error_log .= ($error_log != '' ? ', ' : '') . "Beschaeftigungsart1 ('" . $rowvw->ba1code . "')";
<table id="myTable" class="tablesorter"> <thead> <tr> <th>' . $p->t('tools/ampelStatus') . '</th> <th>' . $p->t('tools/ampelKurzbz') . '</th> <th>' . $p->t('tools/ampelMitarbeiter') . '</th> <th>' . $p->t('global/organisationseinheit') . '</th> <th>' . $p->t('tools/ampelBestaetigtAm') . '</th> <th>' . $p->t('tools/ampelDeadline') . '</th> <th>' . $p->t('tools/ampelRestdauer') . '</th> </tr> </thead> <tbody> '; foreach ($ampel->result as $row) { $ts_deadline = $datum_obj->mktime_fromdate($row->deadline); $vlz = "-" . $row->vorlaufzeit . " day"; $ts_vorlaufzeit = strtotime($vlz, $ts_deadline); $ts_now = $datum_obj->mktime_fromdate(date('Y-m-d')); if ($ts_vorlaufzeit <= $ts_now && $ts_now <= $ts_deadline) { $ampelstatus = 'gelb'; } elseif ($ts_now > $ts_deadline) { $ampelstatus = 'rot'; } elseif ($ts_now < $ts_deadline && $ts_vorlaufzeit >= $ts_now) { $ampelstatus = 'gruen'; } //if($bestaetigt = $ampel->isBestaetigt($user,$row->ampel_id)) // $ampelstatus=''; if ($row->ampel_benutzer_bestaetigt_id != '') { $ampelstatus = ''; $bestaetigt = true;
if (!isset($begin)) { $objSS = new studiensemester(); if ($stsem == '') { $ss = $objSS->getaktorNext(); } else { $ss = $stsem; } $objSS->load($ss); $datum_obj = new datum(); $begin = $datum_obj->mktime_fromdate($objSS->start); // Ein Monat vor ende des Studiensemester soll zusaetzlich das kommende angezeigt werden $datum_obj = new datum(); $diff = $datum_obj->DateDiff($objSS->ende, date('Y-m-d H:i:s')); if ($diff >= -30) { $objSS->getNextFrom($ss); $ende = $datum_obj->mktime_fromdate($objSS->ende); } else { $ende = $datum_obj->mktime_fromdate($objSS->ende); } } // for spezial friends if ($uid == 'maderdon') { if (!isset($_GET['format'])) { $format = 'ical'; $version = 2; $target = 'ical'; $begin = 1188597600; $ende = 1202166000; } } $jahr = date("Y", $begin);
$lektor = $_REQUEST['lektor']; } else { $lektor = null; } // Link fuer den Export $export_link = 'zeitsperre_days.php?format=xls&'; $export_param = ''; if (!is_null($days)) { $export_param .= ($export_param != '' ? '&' : '') . "days={$days}"; } if (!is_null($lektor)) { $export_param .= ($export_param != '' ? '&' : '') . "lektor={$lektor}"; } $export_link .= $export_param; $datum_beginn = date('Y-m-d'); $ts_beginn = $datum_obj->mktime_fromdate($datum_beginn); $ts_ende = $datum_obj->jump_day($ts_beginn, $days); $datum_ende = date('Y-m-d', $ts_ende); // Lektoren holen $ma = new mitarbeiter(); $mitarbeiter = $ma->getMitarbeiterZeitsperre($datum_beginn, $datum_ende, $lektor); if (isset($_REQUEST['format']) && $_REQUEST['format'] == 'xls') { // Creating a workbook $workbook = new Spreadsheet_Excel_Writer(); // sending HTTP headers $workbook->send($p->t('zeitsperre/zeitsperren') . ".xls"); $workbook->setVersion(8); // Creating a worksheet $worksheet =& $workbook->addWorksheet($p->t('zeitsperre/zeitsperren')); $worksheet->setInputEncoding('utf-8'); $worksheet->setZoom(85);