/**
 * 
 * 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>';
        }
    }
}
 *
 * Authors: Karl Burkhart <*****@*****.**>
 */
require_once '../config/vilesci.config.inc.php';
require_once '../include/rdf.class.php';
require_once '../include/wawi_bestellung.class.php';
require_once '../include/projekt.class.php';
require_once '../include/projektphase.class.php';
require_once '../include/projekttask.class.php';
require_once '../include/ressource.class.php';
if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") {
    if (isset($_GET['projekt_kurzbz'])) {
        $projekt_kurzbz = $_GET['projekt_kurzbz'];
        $timestamp = time();
        $datum = date("d.m.Y", $timestamp);
        $projekt = new projekt();
        if (!$projekt->load($projekt_kurzbz)) {
            die("Fehler beim laden des Projektes");
        }
        $projektphase = new projektphase();
        if (!$projektphase->getProjektphasen($projekt_kurzbz)) {
            die("Fehler beim laden der Phasen");
        }
        // Offene Projekttasks - > current_date - ORDER BY Ende - LIMIT 3
        $projekttasksOffen = new projekttask();
        if (!$projekttasksOffen->getProjekttasksForStatusbericht($projekt_kurzbz)) {
            die("Fehler beim laden der Tasks");
        }
        // Projektphasen nur 1. Ebene - keine Unterphasen
        $projektphasenStatusbericht = new projektphase();
        if (!$projektphasenStatusbericht->getProjektphasen($projekt_kurzbz, true)) {
 echo "<table border = 0 width= '100%' class='dark'>\n";
 echo "<tr>\n";
 echo "\t<td>Titel: </td>\n";
 echo "\t<td><input name= 'titel' type='text' size='60' maxlength='256' value ='" . $bestellung->titel . "'></td>\n";
 echo "\t<td>Erstellt am:</td>\n";
 echo "\t<td><span name='erstellt' title ='" . $bestellung->insertvon . "' >" . $date->formatDatum($bestellung->insertamum, 'd.m.Y') . "</span></td>\n";
 echo "\t<td>Liefertermin: <input type='text' name ='liefertermin'  size='16' maxlength='16' value='" . $bestellung->liefertermin . "'></td>\n";
 echo "</tr>\n";
 echo "<tr>\n";
 echo "\t<td>Firma: </td>\n";
 echo "\t<td><input type='text' name='firmenname' id='firmenname' size='60' maxlength='256' value ='" . $firma->name . "'>\n";
 echo "\t<input type='hidden' name='firma_id' id='firma_id' size='5' maxlength='7' value ='" . $bestellung->firma_id . "'></td>\n";
 echo "\t<td>Kontaktperson:</td><td> <input type='text' name='besteller' id='besteller' size='30' maxlength='256' value ='" . $besteller_vorname . ' ' . $besteller_nachname . "'>\n";
 echo "  <td>";
 // wenn user projekt zugeordnet ist -> Projekt Drop Down anzeigen
 $ProjektUser = new projekt();
 $ProjektUser->getProjektFromBestellung($bestellung->bestellung_id);
 $Bestellung_Projekt = false;
 // Projekt DropDown aus allen Projekten von eingeloggten User und dem der Bestellung -> true wenn Projekt aus Bestellung in User Projekten enthalten ist
 if ($projektZugeordnet == true) {
     echo " Projekt:";
     echo "  <SELECT name='filter_projekt' id='filter_projekt' style='width: 230px;'>\n";
     echo "   <option value=''>-- Kein Projekt ausgewählt --</option>";
     // Projekte vom User
     foreach ($projekt->result as $userProjekts) {
         $selected = "";
         if ($ProjektUser->projekt_kurzbz == $userProjekts->projekt_kurzbz) {
             $selected = 'selected';
             $Bestellung_Projekt = true;
         }
         echo "    <option value='" . $userProjekts->projekt_kurzbz . "' {$selected}>" . $userProjekts->titel . "</option>";
/**
 * 
 * Speichert das vom Webservice übergebene Projekt in die DB
 * @param $username
 * @param $passwort
 * @param $projekt
 */
function saveProjekt($username, $passwort, $projekt)
{
    if (!($user = check_user($username, $passwort))) {
        return new SoapFault("Server", "Invalid Credentials");
    }
    $rechte = new benutzerberechtigung();
    $rechte->getBerechtigungen($user);
    if (!$rechte->isBerechtigt('planner', null, 'sui')) {
        return new SoapFault("Server", "Sie haben keine Berechtigung zum Speichern von Projekten.");
    }
    $projektNew = new projekt();
    $projektNew->projekt_kurzbz = $projekt->projekt_kurzbz;
    $projektNew->nummer = $projekt->nummer;
    $projektNew->titel = $projekt->titel;
    $projektNew->beschreibung = $projekt->beschreibung;
    $projektNew->beginn = $projekt->beginn;
    $projektNew->ende = $projekt->ende;
    $projektNew->budget = $projekt->budget;
    $projektNew->farbe = $projekt->farbe;
    $projektNew->oe_kurzbz = $projekt->oe_kurzbz;
    $projektNew->aufwandstyp_kurzbz = $projekt->aufwandstyp_kurzbz;
    if ($projekt->neu == 'true') {
        $projektNew->new = true;
    } else {
        $projektNew->new = false;
    }
    if ($projektNew->save()) {
        return $projektNew->projekt_kurzbz;
    } else {
        return new SoapFault("Server", $projektNew->errormsg);
    }
}
 * Authors: Christian Paminger <*****@*****.**>
 */
header("Content-type: application/xhtml+xml");
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
require_once '../config/vilesci.config.inc.php';
require_once '../include/functions.inc.php';
require_once '../include/benutzerberechtigung.class.php';
require_once '../include/projekt.class.php';
require_once '../include/datum.class.php';
$rdf_url = 'http://www.technikum-wien.at/projekt/';
if (isset($_GET['oe'])) {
    $oe = $_GET['oe'];
} else {
    $oe = null;
}
$projekt_obj = new projekt();
if (isset($_REQUEST['filter'])) {
    if ($_REQUEST['filter'] == '') {
        $projekt_obj->getProjekte($oe);
    }
    if ($_REQUEST['filter'] == 'aktuell') {
        $projekt_obj->getProjekteAktuell(false, $oe);
    }
    if ($_REQUEST['filter'] == 'kommende') {
        $projekt_obj->getProjekteAktuell(true, $oe);
    }
} else {
    $projekt_obj->getProjekte($oe);
}
//var_dump($projekt_obj);
$datum_obj = new datum();
         $idx = $oRdf->newObjekt($phase->projektphase_id);
         $oRdf->obj[$idx]->setAttribut('projektphase_id', $phase->projektphase_id);
         $oRdf->obj[$idx]->setAttribut('projekt_kurzbz', $phase->projekt_kurzbz);
         $oRdf->obj[$idx]->setAttribut('projektphase_fk', $phase->projektphase_fk);
         $oRdf->obj[$idx]->setAttribut('bezeichnung', $phase->bezeichnung);
         $oRdf->obj[$idx]->setAttribut('beschreibung', $phase->beschreibung);
         $oRdf->obj[$idx]->setAttribut('start', $phase->start);
         $oRdf->obj[$idx]->setAttribut('ende', $phase->ende);
         $oRdf->obj[$idx]->setAttribut('budget', $phase->budget);
         $oRdf->obj[$idx]->setAttribut('personentage', $phase->personentage);
         $oRdf->obj[$idx]->setAttribut('farbe', $phase->farbe);
         $oRdf->obj[$idx]->setAttribut('typ', $phase->typ);
         $oRdf->addSequence($phase->projektphase_id);
     }
 } else {
     $projekt_obj = new projekt();
     if (!isset($_REQUEST['filter'])) {
         $projekt_obj->getProjekte();
     } else {
         if ($_REQUEST['filter'] == 'aktuell') {
             $projekt_obj->getProjekteAktuell();
         } else {
             if ($_REQUEST['filter'] == 'kommende') {
                 $projekt_obj->getProjekteAktuell(true);
             }
         }
     }
     $projektphase_obj = new projektphase();
     $sequenzProjektphase = array();
     $descr = '';
     $sequenz = '';