Subversion Repositories public

Rev

Blame | Last modification | View Log | RSS feed

<?
require_once('version.inc');
require_once('dbaccess.inc');
require_once('language.inc');
require_once('header.inc');
require_once('crypt.inc');
require_once('settings.inc');
require_once('menu.inc');

function NewPj($unum, $headline, $menu, $rstufe) {
        global $pmlight;
        $db = OpenDB();

        $num = $_REQUEST['num'];
        $name = $_REQUEST['name'];
        $pl = $_REQUEST['pl'];
        $plav = $_REQUEST['plav'];
        $sgf = $_REQUEST['sgf'];
        $tmgroup = $_REQUEST['tmgroup'];
        $status = $_REQUEST['status'];
?>
<p class="cry">Neues Projekt anlegen</p>
<form name="edit" action="edit_pj.php" method="post">
<input type="hidden" name="unum" value="<? echo "$unum"; ?>">
<input type="hidden" name="headline" value="12">
<input type="hidden" name="menu" value="<? echo "$menu"; ?>">
<input type="hidden" name="rstufe" value="<? echo "$rstufe"; ?>">
<input type="hidden" name="func" value="CheckNewPj">
<br>
<table class="indent"><tr><td>
<?php
        ButtonLink("Zur&uuml;ck", "forms.php", "unum=$unum&headline=$headline&menu=$menu&rstufe=$rstufe");
//echo "<a href=\"forms.php?unum=$unum&headline=$headline&menu=$menu&rstufe=$rstufe\"><img src=\"image/button_back.png\" border=1 alt=\"Zurueck\"></a>\n";
?>
</td></tr></table>
<table class="input">
   <tr>
      <td>Projektnummer:</td>
      <td><input type="text" class="inputmust" name="num" value="<? echo "$num"; ?>" size=8 maxlength=8></td>
   </tr>
   <tr>
      <td>Bezeichnung:</td>
      <td><input type="text" class="inputmust" name="name" value="<? echo "$name"; ?>" size=60 maxlength=100></td>
   </tr>
   <tr>
      <td>Projektleiter:</td>
      <td><select name="pl"><?php
        $query = "select mi_num, mi_vname, mi_nname from mitarbeiter where ";
        $query .= "mi_rstufe in (1,2) and mi_plan = true ";
        $query .= "order by mi_nname, mi_vname";
        $result = QueryDB($db, $query);
        $numrows = numrowsDB($result);
        $row = 0;

        while ($row < $numrows) {
           $data = fetchDB($result, $row);
           $mi_num = $data[0];
           $mi_vname = $data[1];
           $mi_nname = $data[2];
           echo "<option value=\"$mi_num\"";

           if ($pl == $mi_num)
              echo " selected";

           echo ">$mi_nname $mi_vname</option>\n";
           $row++;
        }
?>
         </select>
      </td>
   </tr>
<?
        if (!$pmlight) {
?>
   <tr>
      <td>PLA-V:</td>
      <td><select name="plav"><?php
        $query = "select mi_num, mi_vname, mi_nname from mitarbeiter where ";
        $query .= "mi_rstufe in (1,2) and mi_plan = true ";
        $query .= "order by mi_nname, mi_vname";
        $result = QueryDB($db, $query);
        $numrows = numrowsDB($result);
        $row = 0;

        while ($row < $numrows) {
           $data = fetchDB($result, $row);
           $mi_num = $data[0];
           $mi_vname = $data[1];
           $mi_nname = $data[2];

           echo "<option value=\"$mi_num\"";

           if ($plav == $mi_num)
              echo " selected";

           echo ">$mi_nname $mi_vname</option>\n";
           $row++;
        }
?>
         </select>
      </td>
   </tr>
   <tr>
      <td>Auftraggeber:</td>
      <td><select name="sgf"><?php
        $query = "select ks_num, ks_sgf from key_sgf order by ks_sgf";
        $result = QueryDB($db, $query);
        $numrows = numrowsDB($result);
        $row = 0;

        while ($row < $numrows) {
           $data = fetchDB($result, $row);
           $ks_num = $data[0];
           $ks_sgf = $data[1];
           echo "<option value=\"$ks_num\"";

           if ($sgf == $ks_num)
              echo " selected";

           echo ">$ks_sgf</option>\n";
           $row++;
        }
?>
         </select>
      </td>
   </tr>
   <tr>
      <td>Themenmanagergruppe:</td>
      <td><select name="tmgroup"><?php
        $query = "select kt_num, kt_tm from key_tmgroup order by kt_tm";
        $result = QueryDB($db, $query);
        $numrows = numrowsDB($result);
        $row = 0;

        while ($row < $numrows) {
           $data = fetchDB($result, $row);
           $kt_num = $data[0];
           $kt_tm = $data[1];
           echo "<option value=\"$kt_num\"";

           if ($tmgroup == $kt_num)
              echo " selected";

           echo ">$kt_tm</option>\n";
           $row++;
        }
?>
         </select>
      </td>
   </tr>
<?
        }
?>
   <tr>
      <td>Projektart:</td>
      <td><select name="status">
             <option value="0">Projekt</option>
             <option value="1"<? if ($status == 1) echo " selected"; ?>>Konto</option>
          </select>
      </td>
   </tr>
<?
        if ($pmlight) {
           echo "<input type=\"hidden\" name=\"plav\" value=\"$unum\">\n";
           echo "<input type=\"hidden\" name=\"sgf\" value=\"1\">\n";
           echo "<input type=\"hidden\" name=\"tmgroup\" value=\"1\">\n";
        }
?>
</table>
<table class="indent"><tr><td>
<?
        ButtonSubmit("Speichern", "edit");
?>
</td></tr></table>
</form>
<?
        closeDB($db);
}

function EditPj($pjnum, $unum, $headline, $menu, $rstufe) {
        global $pmlight;
        global $role;
        $db = OpenDB();

        if ($pjnum > 0) {
           $query = "select pr_name, pr_pl, pr_plav, pr_sgf, pr_tmgroup, pr_status ";
           $query = $query . "from project where pr_num = $pjnum";
           $result = QueryDB($db, $query);
           $numrows = numrowsDB($result);

           if ($numrows != 1) {
              Error("Error: Projekt \"$pjnum\" wurde nicht gefunden!\n");
              return;
           }

           $data = fetchDB($result, 0);
           $pr_num = $pjnum;
           $pr_name = $data[0];
           $pr_pl = $data[1];
           $pr_plav = $data[2];
           $pr_sgf = $data[3];
           $pr_tmgroup = $data[4];
           $pr_status = $data[5];
           echo "<p class=\"cry\">Projekt Editieren</p>\n";
        } else {
           $pr_num = $_REQUEST['num'];
           $pr_name = $_REQUEST['name'];
           $pr_pl = $_REQUEST['pl'];
           $pr_plav = $_REQUEST['plav'];
           $pr_sgf = $_REQUEST['sgf'];
           $pr_tmgroup = $_REQUEST['tmgroup'];
           $pr_status = $_REQUEST['status'];
           $func = $_REQUEST['func'];

           if ($func != "matoprup")
              echo "<p class=\"cry\">Eingabefehler!</p>\n";
        }

        $matopr = $_REQUEST['matopr'];
?>
<form name="edit" action="edit_pj.php" method="post">
<input type="hidden" name="unum" value="<? echo "$unum"; ?>">
<?php
        if ($pjnum <= 0) {
           echo "<input type=\"hidden\" name=\"headline\" value=\"12\">\n";
        } else {
           echo "<input type=\"hidden\" name=\"headline\" value=\"13\">\n";
        }
?>
<input type="hidden" name="menu" value="<? echo "$menu"; ?>">
<input type="hidden" name="rstufe" value="<? echo "$rstufe"; ?>">
<input type="hidden" name="minum" value="<? echo "$pjnum"; ?>">
<input type="hidden" name="status" value="<? echo "$pr_status"; ?>">
<input type="hidden" name="num" value="<? echo "$pr_num"; ?>">
<input type="hidden" name="func" value="CheckEditPj">
<br>
<table class="indent"><tr><td>
<?php
        ButtonLink("Zur&uuml;ck", "forms.php", "unum=$unum&headline=$headline&menu=$menu&rstufe=$rstufe");
?>
</td></tr></table>
<table border=0 cellspacing=0 cellpadding=0><tr><td valign="top">
<table class="input">
   <tr>
      <td>Projektnummer:</td>
      <td><input type="text" class="inputmust" name="num" value="<? echo "$pr_num"; ?>" disabled size=8 maxlength=8></td>
   </tr>
   <tr>
      <td>Bezeichnung:</td>
      <td><input type="text" class="inputmust" name="name" value="<? echo "$pr_name"; ?>" size=60 maxlength=100></td>
   </tr>
   <tr>
      <td>Projektleiter:</td>
      <td><select name="pl"><?php
        $query = "select mi_num, mi_vname, mi_nname from mitarbeiter where ";
        $query .= "mi_rstufe in (1,2) and mi_plan = true ";
        $query .= "order by mi_nname, mi_vname";
        $result = QueryDB($db, $query);
        $numrows = numrowsDB($result);
        $row = 0;

        while ($row < $numrows) {
           $data = fetchDB($result, $row);
           $mi_num = $data[0];
           $mi_vname = $data[1];
           $mi_nname = $data[2];

           if ($pr_pl == $mi_num) {
              echo "<option selected value=\"$mi_num\">$mi_nname $mi_vname</option>\n";
           } else {
              echo "<option value=\"$mi_num\">$mi_nname $mi_vname</option>\n";
           }

           $row++;
        }
?>
         </select>
      </td>
   </tr>
<?
        if (!$pmlight) {
?>
   <tr>
      <td>PLA-V:</td>
      <td><select name="plav"><?php
        $query = "select mi_num, mi_vname, mi_nname from mitarbeiter where ";
        $query .= "mi_rstufe in (1,2) and mi_plan = true ";
        $query .= "order by mi_nname, mi_vname";
        $result = QueryDB($db, $query);
        $numrows = numrowsDB($result);
        $row = 0;

        while ($row < $numrows) {
           $data = fetchDB($result, $row);
           $mi_num = $data[0];
           $mi_vname = $data[1];
           $mi_nname = $data[2];

           if ($pr_plav == $mi_num) {
              echo "<option selected value=\"$mi_num\">$mi_nname $mi_vname</option>\n";
           } else {
              echo "<option value=\"$mi_num\">$mi_nname $mi_vname</option>\n";
           }

           $row++;
        }
?>
         </select>
      </td>
   </tr>
   <tr>
      <td>Auftraggeber:</td>
      <td><select name="sgf"><?php
        $query = "select ks_num, ks_sgf from key_sgf order by ks_sgf";
        $result = QueryDB($db, $query);
        $numrows = numrowsDB($result);
        $row = 0;

        while ($row < $numrows) {
           $data = fetchDB($result, $row);
           $ks_num = $data[0];
           $ks_sgf = $data[1];

           if ($ks_num == $pr_sgf) {
              echo "<option selected value=\"$ks_num\">$ks_sgf</option>\n";
           } else {
              echo "<option value=\"$ks_num\">$ks_sgf</option>\n";
           }

           $row++;
        }
?>
         </select>
      </td>
   </tr>
   <tr>
      <td>Themenmanagergruppe:</td>
      <td><select name="tmgroup"><?php
        $query = "select kt_num, kt_tm from key_tmgroup order by kt_tm";
        $result = QueryDB($db, $query);
        $numrows = numrowsDB($result);
        $row = 0;

        while ($row < $numrows) {
           $data = fetchDB($result, $row);
           $kt_num = $data[0];
           $kt_tm = $data[1];

           if ($kt_num == $pr_tmgroup) {
              echo "<option selected value=\"$kt_num\">$kt_tm</option>\n";
           } else {
              echo "<option value=\"$kt_num\">$kt_tm</option>\n";
           }

           $row++;
        }
?>
         </select>
      </td>
   </tr>
<?
        }
?>
   <tr>
      <td>Projektart:</td>
      <td><select name="status" disabled>
             <option value="0">Projekt</option>
             <option value="1" <? if (isset($pr_status) && $pr_status) echo "selected"; ?>>Konto</option>
          </select>
      </td>
   </tr>
<?
        if ($pmlight) {
           echo "<input type=\"hidden\" name=\"plav\" value=\"$unum\">\n";
           echo "<input type=\"hidden\" name=\"sgf\" value=\"1\">\n";
           echo "<input type=\"hidden\" name=\"tmgroup\" value=\"1\">\n";
        }
?>
</table>
</td><td valign="top">
<?
        # Mitarbeiter und Rolle suchen, falls eine ausgewaehlt wurde
        if ($matopr > 0) {
           $query = "select ma_minum, ma_role from matopr ";
           $query .= "where ma_num = $matopr";

           if (!($result = QueryDB($db, $query))) {
              Error("Interner Fehler: Mitarbeiter und Rolle wurde nicht gefunden!");
              closeDB($db);
              return;
           }

           if (numrowsDB($result) > 0) {
              $data = fetchDB($result, 0);
              $ma_minum = $data[0];
              $ma_role = $data[1];
           } else {
              $ma_minum = 0;
              $ma_role = 0;
           }
        }
?>
<table class="input">
  <tr>
    <td colspan=3 align="center">Benutzer und Rolle dem Projekt zuordnen:</td>
  </tr>
  <tr>
    <td><select name="mitarbeiter">
<?
        $query = "select mi_num, mi_nname, mi_vname from mitarbeiter ";
        $query .= "order by mi_nname, mi_vname";

        if (!($result = QueryDB($db, $query))) {
           Error("Interner Fehler: Es konnten keine Mitarbeiter gefunden werden!");
           closeDB($db);
           return;
        }

        $anz = numrowsDB($result);
        $i = 0;

        while ($i < $anz) {
           $data = fetchDB($result, $i);
           $mi_num = $data[0];
           $mi_nname = $data[1];
           $mi_vname = $data[2];
           echo "<option value=\"$mi_num\"";

           if ($ma_minum == $mi_num)
              echo " selected";

           echo ">$mi_nname $mi_vname</option>\n";
           $i++;
        }
?>
      </select>
    </td>
    <td>
<?
        if ($role) {
?>
      <select name="role">
<?
           $query = "select kr_num, kr_role from key_role order by kr_role";

           if (!($result = QueryDB($db, $query))) {
              Error("Interner Fehler: Es konnten keine Mitarbeiterrollen gefunden werden!");
              closeDB($db);
              return;
           }

           $anz = numrowsDB($result);
           $i = 0;

           while ($i < $anz) {
              $data = fetchDB($result, $i);
              $kr_num = $data[0];
              $kr_role = $data[1];
              echo "<option value=\"$kr_num\"";

              if ($ma_role == $kr_num)
                 echo " selected";

              echo ">$kr_role</option>\n";
              $i++;
           }
?>
      </select>
<?
        } else {
           echo "&nbsp;";
        }
?>
    </td>
    <td>
<?
        $lines = "num=$pjnum&name='+edit.name.value+'&pl=";
        $lines .= "'+edit.pl.value+'&plav='+edit.plav.value+'&sgf=";
        $lines .= "'+edit.sgf.value+'&tmgroup='+edit.tmgroup.value+";
        $lines .= "'&status='+edit.status.value+'&mitarbeiter='";
        $lines .= "+edit.mitarbeiter.value+'&role='+edit.role.value+'";
        ButtonLink("Hinzuf&uuml;gen", "edit_pj.php", "pjedit=$pjnum&unum=$unum&headline=$headline&menu=$menu&rstufe=$rstufe&func=matopr&$lines");
?>
    </td>
  </tr>
  <tr>
     <td colspan=2>
       <select size=6 name="matopr" onClick="javascript:MoveTo('edit_pj.php','<? echo "pjedit=$pjnum&unum=$unum&headline=$headline&menu=$menu&rstufe=$rstufe&func=matoprup&matopr='+this.value+'&$lines"; ?>')">
<?
        $query = "select ma_num, mi_nname, mi_vname, kr_role from matopr ";
        $query .= "left join mitarbeiter on mi_num = ma_minum ";
        $query .= "left join key_role on kr_num = ma_role ";
        $query .= "where ma_prnum = $pjnum ";
        $query .= "order by mi_nname, mi_vname";

        if (!($result = QueryDB($db, $query))) {
           Error("Interner Fehler: Keine Mitarbeiterzuordnungen gefunden!");
           closeDB($db);
           return;
        }

        $anz = numrowsDB($result);
        $i = 0;

        while ($i < $anz) {
           $data = fetchDB($result, $i);
           $ma_num = $data[0];
           $mi_nname = $data[1];
           $mi_vname = $data[2];
           $kr_role = $data[3];
           echo "<option value=\"$ma_num\"";

           if ($matopr == $ma_num)
              echo " selected";

           if ($role)
              echo ">$mi_nname $mi_vname, &lt;$kr_role&gt;</option>\n";
           else
              echo ">$mi_nname $mi_vname</option>\n";

           $i++;
        }
?>
      </select>
    </td>
    <td valign="bottom">
<?
        ButtonLink("L&ouml;schen", "edit_pj.php", "pjedit=$pjnum&unum=$unum&headline=$headline&menu=$menu&rstufe=$rstufe&func=matoprdel&matopr='+edit.matopr.value+'");
?>
    </td>
  </tr>
</table>
</td></tr></table>
<table class="indent"><tr><td>
<?
        ButtonSubmit("Speichern", "edit");
?>
</td></tr></table>
</form>
<?
        closeDB($db);
}

function CheckNewPj($unum, $headline, $menu, $rstufe) {
        $pr_num = $_REQUEST['num'];
        $pr_name = $_REQUEST['name'];
        $pr_pl = $_REQUEST['pl'];
        $pr_plav = $_REQUEST['plav'];
        $pr_sgf = $_REQUEST['sgf'];
        $pr_tmgroup = $_REQUEST['tmgroup'];
        $pr_status = $_REQUEST['status'];
        $err = 0;

        if ($pr_num < 1) {
           Error("Sie m&uuml;ssen eine Projektnummer eingeben!\n");
           $err = 1;
        }

        if (!strlen($pr_name)) {
           Error("Sie m&uuml;ssen eine Projektbezeichnung eingeben!\n");
           $err = 1;
        }

        $db = OpenDB();
        $query = "select pr_name from project where pr_num = $pr_num";
        $result = QueryDB($db, $query);
        $numrows = numrowsDB($result);

        if ($numrows != 0) {
           Error("Ein Projekt mit der Nummer \"$pr_num\" existiert bereits!\n");
           $err = 1;
        }

        $query = "select pr_num from project where pr_name = '$pr_name'";
        $result = QueryDB($db, $query);
        $numrows = numrowsDB($result);

        if ($numrows != 0) {
           Error("Ein Projekt mit dem Namen \"<i>$pr_name</i>\" existiert bereits!\n");
           $err = 1;
        }

        if ($err == 1) {
           EditPj(0, $unum, $headline, $menu, $rstufe);
           return false;
        }

        # An dieser Stelle haben wir eine gepruefte Datenbasis, welche wir
        # als neuen Datensatz speichern koennen.
        if (!QueryDB($db, "begin")) {
           closeDB($db);
           return false;
        }
        
        $query = "insert into project (pr_num, pr_name, pr_pl, pr_plav, pr_sgf, pr_tmgroup, pr_status) ";
        $query = $query . "values ($pr_num, '$pr_name', $pr_pl, $pr_plav, $pr_sgf, $pr_tmgroup, $pr_status)";

        if (!QueryDB($db, $query)) {
           QueryDB($db, "rollback");
           closeDB($db);
           return false;
        }
        
        # Handelt es sich um ein "Konto" dann muessen wir einen versteckten
        # Plan anlegen. Um Den Plan deutlich als Pseudoplan zu kennzeichnen
        # bekommt er den Status 0.
        if ($pr_status == 1) {
           $query = "select co_plan, co_task from counter";

           if (!($result = QueryDB($db, $query))) {
              QueryDB($db, "rollback");
              closeDB($db);
              return false;
           }

           $data = fetchDB($result, 0);
           $co_plan = $data[0] + 1;
           $co_task = $data[1] + 1;
           $query = "insert into plan (pl_num, pl_lfd, pl_prnum, pl_status) ";
           $query .= "values ($co_plan, 0, $pr_num, 0)";

           if (!QueryDB($db, $query)) {
              QueryDB($db, "rollback");
              closeDB($db);
              return false;
           }

           $ta_hash = md5($co_task);
           $query = "insert into task (ta_num, ta_plnum, ta_id, ta_name, ";
           $query .= "ta_meeting, ta_start, ta_duration, ta_level, ta_phase, ta_hash) ";
           $query .= "values ($co_task, $co_plan, 0, '$pr_name', 0, 0, ";
           $query .= "-32767, 0, 0, '$ta_hash')";

           if (!QueryDB($db, $query)) {
              QueryDB($db, "rollback");
              closeDB($db);
              return false;
           }

           $query = "update counter set co_plan = $co_plan, co_task = $co_task";

           if (!QueryDB($db, $query)) {
              QueryDB($db, "rollback");
              closeDB($db);
              return false;
           }
        }

        QueryDB($db, "commit");
        Journal(203, "Projekt: $pr_num $pr_name", $db);

        if ($pr_status == 1)
           Journal(204, "Plan: $co_plan; Projekt: $pr_num", $db);

        closeDB($db);
        return true;
}

function CheckEditPj($unum, $headline, $menu, $rstufe) {
        $pr_num = $_REQUEST['num'];
        $pr_name = $_REQUEST['name'];
        $pr_pl = $_REQUEST['pl'];
        $pr_plav = $_REQUEST['plav'];
        $pr_sgf = $_REQUEST['sgf'];
        $pr_tmgroup = $_REQUEST['tmgroup'];
        $pr_status = $_REQUEST['status'];
        $err = 0;

        if ($pr_num < 1) {
           Error("Sie m&uuml;ssen eine Projektnummer eingeben!\n");
           $err = 1;
        }

        if (!strlen($pr_name)) {
           Error("Sie m&uuml;ssen eine Projektbezeichnung eingeben!\n");
           $err = 1;
        }

        $db = OpenDB();
        $query = "select pr_name from project where pr_num = $pr_num";
        $result = QueryDB($db, $query);
        $numrows = numrowsDB($result);

        if ($numrows != 1) {
           Error("Ein Projekt mit der Nummer \"$pr_num\" existiert nicht!\n");
           $err = 1;
        }

        if ($err == 1) {
           EditPj(0, $unum, $headline, $menu, $rstufe);
           return false;
        }

        # An dieser Stelle haben wir eine gepruefte Datenbasis, welche wir
        # speichern koennen.
        if (!QueryDB($db, "begin")) {
           closeDB($db);
           return false;
        }

        $query = "update project set pr_name = '$pr_name', pr_pl = $pr_pl, pr_plav = $pr_plav, ";
        $query .= "pr_sgf = $pr_sgf, pr_tmgroup = $pr_tmgroup, pr_status = $pr_status ";
        $query .= "where pr_num = $pr_num";
        
        if (!QueryDB($db, $query)) {
           QueryDB($db, "rollback");
           closeDB($db);
           return false;
        }

        Journal(301, "Projekt: $pr_num $pr_name", $db);
        closeDB($db);
        return true;
}

function AskDelete ($pr_num) {
        $headline = $_REQUEST['headline'];
        $menu = $_REQUEST['menu'];

        $nav = "pr_num=$pr_num&menu=$menu&";
        $nav .= "headline=$headline&func=DeletePj";

        # Projektnamen auslesen
        $db = OpenDB();
        $query = "select pr_name from project where pr_num = $pr_num";

        if (!($result = QueryDB($db, $query))) {
           closeDB($db);
           return;
        }

        $data = fetchDB($result, 0);
        $pr_name = $data[0];
        closeDB($db);
?>
<br>
<form name="Alarm" method="post">
<table border=2 class="alarm">
   <tr><td colspan=2 style="text-align: center"><big>Warnung!</big><br><br>
           Wollen Sie wirklich das Projekt<br>
           <b><? echo "$pr_num $pr_name"; ?></b><br>
           unwiederbringlich l&ouml;schen?<br>
           Es werden alle Pl&auml;ne dieses Projekts und alle
           eventuell angefallenen Aufw&auml;nde der Mitarbeiter
           automatisch gel&ouml;scht!!<br><br>
           Projekt unwiederbringlich l&ouml;schen?
      </td>
   </tr>
   <tr>
      <td><center><input type="button" name="yes" value="L&ouml;schen" onClick="javascript:MoveTo('edit_pj.php','yes=yes&<? echo "$nav"; ?>')"></center></td>
      <td><center><input type="button" name="no" value="Abbruch" onClick="javascript:MoveTo('edit_pj.php','no=no&<? echo "$nav"; ?>')"></center></td>
   </tr>
</table>
</form>
<?php
}

function DeleteProject($pr_num) {
        global $rstufe;

        if ($rstufe != 1) {
           Error("Sie sind nicht berechtigt ein Projekt zu l&ouml;schen!");
           return false;
        }

        if (!isset($pr_num) || $pr_num <= 0) {
           Error("Interner Fehler: Projektnummer fehlt!");
           return false;
        }

        $db = OpenDB();

        if (!QueryDB($db, "begin")) {
           closeDB($db);
           return false;
        }

        # Als erstes loeschen wir eventuell vorhandene Kalendereintraege
        $query = "delete from calendar where ca_prnum = $pr_num";

        if (!QueryDB($db, $query)) {
           QueryDB($db, "rollback");
           closeDB($db);
           return false;
        }

        # Hier loeschen wir die IST-Erfassungen
        $query = "delete from wdone where wd_prnum = $pr_num";

        if (!QueryDB($db, $query)) {
           QueryDB($db, "rollback");
           closeDB($db);
           return false;
        }

        $query = "select pl_num from plan where pl_prnum = $pr_num";

        if (!($respl = QueryDB($db, $query))) {
           QueryDB($db, "rollback");
           closeDB($db);
           return false;
        }

        $numpl = numrowsDB($respl);
        $cnumpl = 0;

        while ($cnumpl < $numpl) {
           $data = fetchDB($respl, $cnumpl);
           $pl_num = $data[0];
           $query = "select ta_num from task where ta_plnum = $pl_num";

           if (!($resta = QueryDB($db, $query))) {
              QueryDB($db, "rollback");
              closeDB($db);
              return false;
           }

           $numta = numrowsDB($resta);
           $cnumta = 0;

           while ($cnumta < $numta) {
              $data = fetchDB($resta, $cnumta);
              $ta_num = $data[0];
              # Hier loeschen wir die Ressourcen zum Projekt
              $query = "delete from allocation where al_task = $ta_num";

              if (!QueryDB($db, $query)) {
                 QueryDB($db, "rollback");
                 closeDB($db);
                 return false;
              }

              $cnumta++;
           }

           # Hier loeschen wir die Tasks des Projekts
           $query = "delete from task where ta_plnum = $pl_num";

           if (!QueryDB($db, $query)) {
              QueryDB($db, "rollback");
              closeDB($db);
              return false;
           }

           $cnumpl++;
        }

        # Hier loeschen wir die Plaene des Projekts
        $query = "delete from plan where pl_prnum = $pr_num";

        if (!QueryDB($db, $query)) {
           QueryDB($db, "rollback");
           closeDB($db);
           return false;
        }

        # Hier loeschen wir die Mitarbeiter des Projekts
        $query = "delete from matopr where ma_prnum = $pr_num";

        if (!QueryDB($db, $query)) {
           QueryDB($db, "rollback");
           closeDB($db);
           return false;
        }

        # Schliesslich koennen wir das Projekt selbst loeschen
        $query = "delete from project where pr_num = $pr_num";

        if (!QueryDB($db, $query)) {
           QueryDB($db, "rollback");
           closeDB($db);
           return false;
        }

        # Jetzt da alles geloescht ist, wird es fix gemacht
        QueryDB($db, "commit");
        closeDB($db);
        return true;
}

function SaveMaToPr() {
        $mitarbeiter = $_REQUEST['mitarbeiter'];
        $role = $_REQUEST['role'];
        $pr_num = $_REQUEST['num'];

        if (!isset($mitarbeiter) || !isset($role) || $mitarbeiter < 1 || $role < 1) {
           Error("Interner Fehler: Ein Parameter fehlt oder ist ung&uuml;ltig!");
           return;
        }

        if (!isset($pr_num) || $pr_num < 1) {
           Error("Sie m&uuml;ssen eine Projektnummer eintragen!");
           return;
        }

        $db = OpenDB();
        $query = "select count(*) from matopr where ma_minum = $mitarbeiter and ";
        $query .= "ma_prnum = $pr_num";

        if (!($result = QueryDB($db, $query))) {
           Error("Interner Fehler: Datens&auml;tze konnten nicht gez&auml;hlt werden!");
           closeDB($db);
           return;
        }

        $data = fetchDB($result, 0);

        if ($data[0] > 0)
           $flag = true;
        else
           $flag = false;

        $query = "select co_matopr from counter";

        if (!($result = QueryDB($db, $query))) {
           Error("Interner Fehler: Z&auml;hler nicht gefunden!");
           closeDB($db);
           return;
        }

        $data = fetchDB($result, 0);
        $co_matopr = $data[0] + 1;

        if (!$flag) {
           $query = "insert into matopr (ma_num, ma_minum, ma_prnum, ma_role) ";
           $query .= "values ($co_matopr, $mitarbeiter, $pr_num, $role)";
        } else {
           $query = "update matopr set ma_role = $role where ";
           $query .= "ma_minum = $mitarbeiter and ma_prnum = $pr_num";
        }

        if (!QueryDB($db, "begin")) {
           Error("Interner Fehler: Transaktion fehlgeschlagen!");
           closeDB($db);
           return;
        }

        if (!QueryDB($db, $query)) {
           Error("Interner Fehler: Konnte Datensatz nicht einf&uuml;gen!");
           QueryDB($db, "rollback");
           closeDB($db);
           return;
        }

        if (!$flag) {
           $query = "update counter set co_matopr = $co_matopr";

           if (!QueryDB($db, $query)) {
              Error("Interner Fehler: Z&auml;hlerstand konnte nicht erh&ouml;ht werden!");
              QueryDB($db, "rollback");
              closeDB($db);
              return;
           }
        }

        QueryDB($db, "commit");
        closeDB($db);
}

function DeleteMaToPr() {
        $ma_num = $_REQUEST['matopr'];

        if (!isset($ma_num) || $ma_num < 1) {
           Error("Interner Fehler: Falsche oder fehlende Referenznummer!");
           return;
        }

        $db = OpenDB();
        $query = "select ma_minum, ma_prnum from matopr where ma_num = $ma_num";

        if (!($result = QueryDB($db, $query))) {
           closeDB($db);
           return;
        }

        if (numrowsDB($result) <= 0) {
           Error("Interner Fehler: Referenznummer wurde nicht gefunden!");
           closeDB($db);
           return;
        }

        $data = fetchDB($result, 0);
        $ma_minum = $data[0];
        $ma_prnum = $data[1];

        $query = "select count(*) from allocation ";
        $query .= "left join task on ta_num = al_task ";
        $query .= "left join plan on pl_num = ta_plnum ";
        $query .= "where al_ressource = $ma_minum and pl_prnum = $ma_prnum";

        if (!($result = QueryDB($db, $query))) {
           closeDB($db);
           return;
        }

        $data = fetchDB($result, 0);
        $anz = $data[0];

        if ($anz > 0) {
           Error("Mitarbeiter ist bereits im Projekt verplant und kann daher nicht gel&ouml;scht werden!");
           closeDB($db);
           return;
        }

        $query = "delete from matopr where ma_num = $ma_num";

        if (!QueryDB($db, $query)) {
           closeDB($db);
           return;
        }

        closeDB($db);
}

$pjnew = $_REQUEST['pjnew'];
$pjedit = $_REQUEST['pjedit'];
$pjdel = $_REQUEST['pjdel'];
$func = $_REQUEST['func'];
$yes = $_REQUEST['yes'];

if (isset($func)) {
   if ($func == "CheckNewPj") {
      if (CheckNewPj($unum, $headline, $menu, $rstufe)) {
         echo "<p>Daten wurden erfolgreich gespeichert!</p>\n";
         echo "<form name=\"forms\" action=\"forms.php\" method=\"post\">";
         echo "<input type=\"hidden\" name=\"unum\" value=\"$unum\">";
         echo "<input type=\"hidden\" name=\"headline\" value=\"4\">";
         echo "<input type=\"hidden\" name=\"menu\" value=\"$menu\">";
         echo "<input type=\"hidden\" name=\"rstufe\" value=\"$rstufe\">";
         echo "<input type=\"hidden\" name=\"knopf\" value=\"31\">";
         Button("Weiter -->", "forms");
//       echo "<input type=\"submit\" name=\"submit\" value=\"Weiter -->\">";
         echo "</form>\n";
      }
   }

   if ($func == "CheckEditPj") {
      if (CheckEditPj($unum, $headline, $menu, $rstufe)) {
         echo "<p>Daten wurden erfolgreich gespeichert!</p>\n";
         echo "<form name=\"forms\" action=\"forms.php\" method=\"post\">";
         echo "<input type=\"hidden\" name=\"unum\" value=\"$unum\">";
         echo "<input type=\"hidden\" name=\"headline\" value=\"4\">";
         echo "<input type=\"hidden\" name=\"menu\" value=\"$menu\">";
         echo "<input type=\"hidden\" name=\"rstufe\" value=\"$rstufe\">";
         echo "<input type=\"hidden\" name=\"knopf\" value=\"31\">";
         Button("Weiter -->", "forms");
//       echo "<input type=\"submit\" name=\"submit\" value=\"Weiter -->\">";
         echo "</form>\n";
      }
   }

   if ($func == "DeletePj" && isset($yes) && $yes == "yes") {
      $pr_num = $_REQUEST['pr_num'];
      if (DeleteProject($pr_num)) {
         echo "<p>Projekt $pr_num wurde unwiederbringlich gel&ouml;scht!</p>\n";
         Journal(102, "Projekt: $pr_num");
      }

      echo "<form name=\"forms\" action=\"forms.php\" method=\"post\">";
      echo "<input type=\"hidden\" name=\"unum\" value=\"$unum\">";
      echo "<input type=\"hidden\" name=\"headline\" value=\"4\">";
      echo "<input type=\"hidden\" name=\"menu\" value=\"$menu\">";
      echo "<input type=\"hidden\" name=\"rstufe\" value=\"$rstufe\">";
      echo "<input type=\"hidden\" name=\"knopf\" value=\"31\">";
      Button("Weiter -->", "forms");
//      echo "<input type=\"submit\" name=\"submit\" value=\"Weiter -->\">";
      echo "</form>\n";
   }

   if ($func == "matopr")
      SaveMaToPr();

   if ($func == "matoprdel")
      DeleteMaToPr();
}

if (isset($pjnew)) {
   NewPj($unum, $headline, $menu, $rstufe);
}

if (isset($pjedit)) {
   EditPj($pjedit, $unum, $headline, $menu, $rstufe);
}

if (isset($pjdel)) {
   AskDelete($pjdel);
}

require('footer.inc');
?>