Location: PHPKode > projects > TheoPlan > pm/edit_pj.php
<?
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');
?>
Return current item: TheoPlan