0,0 → 1,826 |
<?php |
require_once('version.inc'); |
require_once('dbaccess.inc'); |
require_once('language.inc'); |
require_once('header.inc'); |
require_once('helper.inc'); |
require_once('crypt.inc'); |
require_once('settings.inc'); |
|
$drm = array(true, false, false, false, false, true, false, true); |
|
$knopf = 0; |
$func = $_REQUEST['func']; |
|
# Auswertungsmenue |
if (isset($_REQUEST['pjplan'])) { $knopf = 21; $headline = 27; } |
|
require_once('menu.inc'); |
require_once('knumber.inc'); |
|
# Folgende Funktion erlaubt die Auswahl eines Projekts dessen Plan |
# erzeugt werden soll. |
# |
function Preselect() { |
global $periode; |
global $unum; |
global $menu; |
global $rstufe; |
global $pmlight; |
global $dtformatshort; |
|
$db = OpenDB(); |
?> |
<form name="preselect" action="printplan.php" method="post"> |
<input type="hidden" name="menu" value="<? echo "$menu"; ?>"> |
<input type="hidden" name="headline" value="27"> |
<input type="hidden" name="func" value="printplan"> |
|
<table class="input"> |
<?php |
# Auswahl eines Projekts |
echo "<tr><td>Projektauswahl:</td>\n"; |
echo "<td>"; |
|
$query = "select pl_num, pl_prnum, pl_lfd, pr_name, pl_status from "; |
$query .= "plan, project where pr_num = pl_prnum and pr_status = 0 "; |
$query .= "order by pl_prnum, pl_lfd desc"; |
|
$result = QueryDB($db, $query); |
|
if (!$result) { |
closeDB($db); |
return; |
} |
|
echo "<select name=\"pl_num\">\n"; |
$numrows = numrowsDB($result); |
$rows = 0; |
|
while ($rows < $numrows) { |
$data = fetchDB($result, $rows); |
$pl_num = $data[0]; |
$pl_prnum = $data[1]; |
$pl_lfd = $data[2]; |
$pr_name = $data[3]; |
$pl_status = $data[4]; |
|
switch ($pl_status) { |
case 1: $stat = "In Erstellung"; break; |
case 2: $stat = "Freigegeben"; break; |
case 3: $stat = ""; break; |
case 4: $stat = "Aktiv"; break; |
case 5: $stat = "Inaktiv"; break; |
case 6: $stat = "Abgeschlossen"; break; |
} |
|
echo "<option value=\"$pl_num\">$pl_lfd ($stat): $pl_prnum $pr_name</option>\n"; |
$rows++; |
} |
|
echo "</select>"; |
echo "</td></tr>\n"; |
echo "<tr><td>IST-Werte berücksichtigen bis:</td>\n"; |
$sd = GetVisualDate($dtformatshort, true); |
|
if (!$pmlight) { |
$dat = time(); |
$day = gmdate("j", $dat); |
$mon = gmdate("n", $dat); |
$year = gmdate("Y", $dat); |
$dm = daysinmonth($mon, $year); |
|
if ($day < ($dm / 2)) { |
$mon--; |
|
if ($mon < 1) { |
$year--; |
$mon = 12; |
} |
} |
|
$vd = GetShortDate(gmmktime(0, 0, 0, $mon, daysinmonth($mon, $year), $year)); |
} else |
$vd = ""; |
|
echo "<td><input type=\"text\" name=\"datum\" value=\"$vd\" size=7 maxlength=7> $sd</td></tr>\n"; |
echo "</table>\n"; |
echo "<table class=\"indent\"><tr><td>"; |
ButtonSubmit("Senden", "preselect"); |
echo "</td></tr></table>\n"; |
echo "</form>\n"; |
closeDB($db); |
} |
|
function GetWD_HOURS($db, $dt, $ressource, $hash) { |
global $leneinheit; |
|
$mon = gmdate("n", $dt); |
$year = gmdate("Y", $dt); |
$dta = gmmktime(0, 0, 0, $mon, 1, $year); |
$dte = gmmktime(0, 0, 0, $mon, daysinmonth($mon, $year), $year); |
$query = "select sum(wd_hours)/$leneinheit from wdone where "; |
$query .= "wd_minum = $ressource and "; |
$query .= "wd_datum between $dta and $dte and "; |
$query .= "wd_task in (select ta_num from task, allocation where "; |
$query .= "al_task = ta_num and ta_hash = '$hash' and "; |
$query .= "al_ressource = $ressource)"; |
|
if (!($reswd = QueryDB($db, $query))) |
return 0; |
|
if (numrowsDB($reswd)> 0) { |
$data = fetchDB($reswd, 0); |
$wd_hours = $data[0]; |
} else |
$wd_hours = 0; |
|
return $wd_hours; |
} |
|
function PrintMa($db, $dstart, $dend, $al_task, $color, $pl_num, $ressource) { |
global $periode; |
global $einheit; |
global $leneinheit; |
global $menu; |
global $role; |
global $pmlight; |
|
$nav = "pl_num=$pl_num&al_task=$al_task&menu=$menu&headline=20"; |
$dt = $_REQUEST['datum']; |
|
if (isset($dt) && strlen($dt) > 0) { |
$darr = explode(".", $dt); |
$datum = gmmktime(0, 0, 0, $darr[0], daysinmonth($darr[0], $darr[1]), $darr[1]); |
} else |
$datum = 0; |
|
$query = "select am_num, am_task, am_ressource, am_hours, am_pstart,"; |
$query .= "am_pduration, am_role, am_krnum, am_nname, am_vname, am_phase "; |
$query .= "from allocmi where am_task = $al_task order by "; |
$query .= "am_nname, am_vname, am_pstart"; |
$erg = QueryDB($db, $query); |
|
if (!$erg) |
return 0; |
|
$erganz = numrowsDB($erg); |
$ergrow = 0; |
$oressource = 0; |
$dt = 0; |
$sum = 0; |
$sumi = 0; |
$sumip = 0; |
$total = 0; |
|
while ($ergrow < $erganz) { |
$data = fetchDB($erg, $ergrow); |
$am_num = $data[0]; |
$am_task = $data[1]; |
$am_ressource = $data[2]; |
$am_hours = $data[3]; |
$am_pstart = $data[4]; |
$am_pduration = $data[5]; |
$am_role = $data[6]; |
$am_krnum = $data[7]; |
$am_nname = $data[8]; |
$am_vname = $data[9]; |
$am_phase = $data[10]; |
|
if ($oressource != $am_ressource) { |
if ($oressource != 0) { |
$ed = GetEDate($einheit, $ta_start, $ta_duration); |
|
if ($dt < $ed) { |
while (PerDateComp($dt, $ed) >= 0) { |
if ($datum > 0 && $dt <= $datum) { |
$wd_hours = GetWD_HOURS($db, $dt, $oressource, $ta_hash); |
$sumip += $wd_hours; |
|
if ($wd_hours > 0) |
printf("<td style=\"background-color: #$color; border: 1px solid black;\">I: %s</td>\n", |
FormatNum($wd_hours, 3)); |
else |
echo "<td style=\"background-color: #$color; border: 1px solid black;\"> </td>\n"; |
} else |
echo "<td style=\"background-color: #$color; border: 1px solid black;\"> </td>\n"; |
|
$dt = IncDate($periode, $dt); |
} |
} |
|
while (PerDateComp($dt, $dend) >= 0) { |
if ($datum > 0 && $dt <= $datum) { |
if (($wd_hours = GetWD_HOURS($db, $dt, $oressource, $ta_hash)) > 0) { |
printf("<td class=\"selnum\">I: %s</td>\n", FormatNum($wd_hours, 3)); |
$sumip += $wd_hours; |
} else |
echo "<td class=\"sel\"> </td>"; |
} else |
echo "<td class=\"sel\"> </td>"; |
|
$dt = IncDate($periode, $dt); |
} |
|
echo "<td class=\"selnum\""; |
|
if ($datum > 0) |
printf("<b>%s</b></td>", FormatNum($sumip, 3)); |
else |
printf("><b>%s</b></td>", FormatNum($sum, 3)); |
|
$total += $sumip; |
$sum = 0; |
$sumi = 0; |
$sumip = 0; |
echo "</tr>\n"; |
} |
|
# Starrer Zeilenbegin ... |
echo "<tr>\n"; |
# Nummerierung |
echo "<td class=\"sel\"> </td>\n"; |
# Ressource |
echo "<td class=\"sel\" colspan=2 width=\"20%\"> </td>\n"; |
echo "<td class=\"sel\"><i>$am_nname $am_vname</i></td>\n"; |
# Tasklaenge mit Einheit |
echo "<td class=\"sel\" colspan=3> </td>\n"; |
# Mitarbeiterrolle |
if ($role) |
echo "<td class=\"sel\">$am_role</td>\n"; |
|
# Zellen bis zum Taskanfang schreiben |
$query = "select ta_start, ta_duration, ta_hash from task where ta_num = $am_task"; |
|
if (!($res = QueryDB($db, $query))) { |
Error("Keinen dazupassenden Task gefunden!"); |
return 0; |
} |
|
$data = fetchDB($res, 0); |
$ta_start = $data[0]; |
$ta_duration = $data[1]; |
$ta_hash = $data[2]; |
$dt = $dstart; |
|
while (PerDateComp($dt, $ta_start) > 0) { |
if ($datum > 0 && $dt <= $datum) { |
if (($wd_hours = GetWD_HOURS($db, $dt, $am_ressource, $ta_hash)) > 0) { |
printf("<td class=\"selnum\">I: %s</td>\n", FormatNum($wd_hours, 3)); |
$sumip += $wd_hours; |
} else |
echo "<td class=\"sel\"> </td>\n"; |
} else |
echo "<td class=\"sel\"> </td>"; |
|
$dt = IncDate($periode, $dt); |
} |
|
$oressource = $am_ressource; |
} |
|
# Rest der Zeile schreiben |
$PerStart = GetPeriode($am_pstart); |
$pyear = gmdate("Y", $am_pstart); |
$PerAkt = GetPeriode($dt); |
$tyear = gmdate("Y", $dt); |
|
# Wurde ein gueltiges Datum angegeben, dann blenden wir |
# die IST-Daten zum Task ein. |
if ($datum > 0 && $dt <= $datum) { |
$wd_hours = GetWD_HOURS($db, $dt, $am_ressource, $ta_hash); |
$sumi += $wd_hours; |
} |
|
if ($PerStart == $PerAkt && $pyear == $tyear) { |
echo "<td style=\"background-color: #$color; text-align: right; border: 1px solid black;\">"; |
|
if ($datum > 0 && $dt <= $datum) |
printf("I: %s</td>\n", FormatNum($wd_hours, 3)); |
else if ($datum > 0) |
printf("P: %s</td>\n", FormatNum($am_hours, 3)); |
else |
printf("%s</td>\n", FormatNum($am_hours, 3)); |
|
$sum += $am_hours; |
|
if ($datum > 0 && $dt > $datum) |
$sumip += $am_hours; |
else if ($datum > 0 && $dt <= $datum) |
$sumip += $wd_hours; |
|
$ergrow++; |
} else if ($datum > 0 && $wd_hours > 0 && $dt <= $datum) { |
printf("<td style=\"background-color: #$color; text-align: right; border: 1px solid black;\">I: %s</td>\n", |
FormatNum($wd_hours, 3)); |
$sumip += $wd_hours; |
} else |
echo "<td style=\"background-color: #$color; border: 1px solid black;\"> </td>\n"; |
|
$dt = IncDate($periode, $dt); |
} |
|
if ($erganz > 0) { |
$ed = GetEDate($einheit, $ta_start, $ta_duration); |
|
if ($dt < $ed) { |
while (PerDateComp($dt, $ed) >= 0) { |
if ($datum > 0 && $dt <= $datum) { |
$wd_hours = GetWD_HOURS($db, $dt, $am_ressource, $ta_hash); |
$sumip += $wd_hours; |
|
if ($wd_hours > 0) |
printf ("<td style=\"background-color: #$color; border: 1px solid black;\">I: %s</td>\n", |
FormatNum($wd_hours, 3)); |
else |
echo "<td style=\"background-color: #$color; border: 1px solid black;\"> </td>\n"; |
} else |
echo "<td style=\"background-color: #$color; border: 1px solid black;\"> </td>\n"; |
|
$dt = IncDate($periode, $dt); |
} |
} |
|
while (PerDateComp($dt, $dend) >= 0) { |
if ($datum > 0 && $dt <= $datum) { |
$wd_hours = GetWD_HOURS($db, $dt, $am_ressource, $ta_hash); |
$sumip += $wd_hours; |
|
if ($wd_hours > 0) |
printf ("<td class=\"selnum\">I: %s</td>\n", |
FormatNum($wd_hours, 3)); |
else |
echo "<td class=\"sel\"> </td>\n"; |
} else |
echo "<td class=\"sel\"> </td>"; |
|
$dt = IncDate($periode, $dt); |
} |
|
echo "<td class=\"selnum\">"; |
|
if ($datum > 0) |
printf("<b>%s</b></td>", FormatNum($sumip, 3)); |
else |
printf("<b>%s</b></td>", FormatNum($sum, 3)); |
|
$total += $sumip; |
echo "</tr>\n"; |
} |
|
return $total; |
} |
|
# Folgende Funktion zeichnet einen Plan in einer Form, welche gedruckt |
# werden kann. |
# Es wird immer der Zeitraum vom Start des Projekts bis zu seinem Ende |
# dargestellt. Bei sehr langen Projekten oder sehr kleinen Perioden, kann |
# die Tabelle durchaus sehr breit werden. |
# |
function PrintPlan($pl_num) { |
global $rstufe; |
global $unum; |
global $periode; |
global $verteil; |
global $einheit; |
global $menu; |
global $dtformatshort; |
global $role; |
global $leneinheit; |
|
if ($pl_num <= 0) { |
Error("Interner Fehler: Es wurde keine Plannummer an \"PrintPlan\" übergeben!"); |
return; |
} |
|
if ($rstufe == 0 || $rstufe == 5 || $rstufe == 7) { |
Error("Berechtigungsfehler!"); |
return; |
} |
|
$dt = $_REQUEST['datum']; |
|
if (isset($dt) && strlen($dt) > 0) { |
$darr = explode(".", $dt); |
$datum = gmmktime(0, 0, 0, $darr[0], daysinmonth($darr[0], $darr[1]), $darr[1]); |
} else |
$datum = 0; |
|
$db = OpenDB(); |
$query = "select pr_name, pl_prnum, mi_nname, mi_vname from "; |
$query .= "plan, project, mitarbeiter where pl_num = $pl_num and "; |
$query .= "pr_num = pl_prnum and mi_num = pr_pl"; |
$result = QueryDB($db, $query); |
|
if (!$result) { |
closeDB($db); |
return; |
} |
|
$data = fetchDB($result, 0); |
$pr_name = $data[0]; |
$pl_prnum = $data[1]; |
$mi_nname = $data[2]; |
$mi_vname = $data[3]; |
echo "<table class=\"sel\"><tr><td class=\"selakt\"><table border=0>"; |
echo "<tr><td>Projekt:</td><td>$pl_prnum $pr_name</td></tr>\n"; |
echo "<tr><td>Projektleiter:</td><td>$mi_nname $mi_vname</td></tr>\n"; |
# Anzeigen, bis zu welchem Datum IST-Buchungen beruecksichtigt |
# werden. |
if ($datum > 0) { |
echo "<tr><td>IST−Buchungen berücksichtigt bis:</td>"; |
echo "<td>" . GetShortDate($datum) . "</td></tr>\n"; |
} |
|
echo "</table></tr></td></table>\n"; |
# Zeichnen der fixen Kopfspalten. |
$nav = "pl_num=$pl_num&menu=$menu&headline=27"; |
?> |
<table class="sel"> |
<tr> |
<th class="sel" rowspan=2>Num.</th> |
<th class="sel" colspan=3 rowspan=2> |
<table border=0 width="100%"><tr><td align="center" colspan=2>Taskname</td></tr> |
<tr><td> </td><td align="right">Ressource</td></tr> |
</table> |
</th> |
<th class="sel" rowspan=2 colspan=3> |
<table border=0 width="100%"><tr><td align="center" colspan=3>Arbeit</td></tr> |
<td align="center">Dauer</td> |
<td align="center">Start</td> |
<td align="center">Ende</td></tr> |
</table> |
</th> |
<?php |
if ($role) |
echo " <th class=\"sel\" rowspan=2>Rolle</th>\n"; |
|
# Ermitteln des Projektstarts um den Tabellenkopf fertig zu schreiben. |
$query = "select ta_start, ta_duration, ta_meeting from task where "; |
$query .= "ta_plnum = $pl_num order by ta_start"; |
$result = QueryDB($db, $query); |
|
if (!$result) { |
closeDB($db); |
return; |
} |
|
$numrows = numrowsDB($result); |
$row = 0; |
$fdate = 0; |
$ldate = 0; |
|
while ($row < $numrows) { |
$data = fetchDB($result, $row); |
$ta_start = $data[0]; |
$ta_duration = $data[1]; |
$ta_meeting = $data[2]; |
|
if ($row == 0) |
$fdate = $ta_start; |
|
if ($ta_meeting) |
$ed = $ta_start; |
else |
$ed = GetEDate($einheit, $ta_start, $ta_duration); |
|
if ($ed > $ldate) |
$ldate = $ed; |
|
$row++; |
} |
|
# Erstellen des restlichen Tabellenkopfs ... |
$tm = gmdate("j.n.Y", $fdate); |
$dt = explode(".", $tm); |
$smon = $dt[1]; |
$syear = $dt[2]; |
$dt = $fdate; |
$cols = 0; |
$tbcols = 1; |
$oyear = $syear; |
|
while (PerDateComp($dt, $ldate) > 0) { |
$syear = gmdate("Y", $dt); |
|
if ($oyear != $syear) { |
if ($cols <= 1) |
echo "<th class=\"sel\">$oyear</th>\n"; |
else |
echo "<th class=\"sel\" colspan=$cols>$oyear</th>\n"; |
|
$oyear = $syear; |
$cols = 0; |
} |
|
$cols++; |
$tbcols++; |
$dt = IncDate($periode, $dt); |
} |
|
$cols++; |
|
if ($cols <= 1) |
echo "<th class=\"sel\">$syear</th>\n"; |
else |
echo "<th class=\"sel\" colspan=$cols>$syear</th>\n"; |
|
# Ueberschrift der letzten Spalte, welche die Summierungen der |
# geplanten Aufwaende enthaelt. |
echo "<th class=\"sel\" rowspan=2>Summe<br>Aufwand</th>\n"; |
echo "</tr>\n"; |
$dt = $fdate; |
|
while (PerDateComp($dt, $ldate) >= 0) { |
printf ("<th class=\"sel\">%s</th>\n", GetStrMonth($smon)); |
$smon++; |
$dt = IncDate($periode, $dt); |
|
if ($smon > 12) { |
$syear++; |
$smon = 1; |
} |
} |
|
echo "</tr>\n"; |
|
# Nun muessen wir die Tabelle mit Inhalten fuellen |
$query = "select ta_num, ta_id, ta_name, ta_meeting, ta_start,"; |
$query .= "ta_duration, ta_level, ta_phase, ta_color, ta_plnum "; |
$query .= "from task where ta_plnum = $pl_num order by ta_id"; |
$result = QueryDB($db, $query); |
|
if (!$result) { |
closeDB($db); |
return; |
} |
|
$numrows = numrowsDB($result); |
$row = 0; |
$snum = "1"; |
$ma = false; |
$done = false; |
$total = 0; |
|
while ($row < $numrows) { |
if (!$ma) { |
$data = fetchDB($result, $row); |
$ta_num = $data[0]; |
$ta_id = $data[1]; |
$ta_name = $data[2]; |
$ta_meeting = $data[3]; |
$ta_start = $data[4]; |
$ta_duration = $data[5]; |
$ta_level = $data[6]; |
$ta_phase = $data[7]; |
$ta_color = $data[8]; |
$ta_plnum = $data[9]; |
|
# Der Task muss oben summiert sein, also in der Taskzeile |
# selbst. Wurde jedoch ein Datum angegeben, dann muessen wir |
# bis zum Datum die IST-Werte summieren und erst ab da die |
# Planwerte. |
if ($ta_level == 1) { |
$query = "select ta_num, ta_level, ta_name from task where "; |
$query .= "ta_plnum = $ta_plnum and ta_id > $ta_id and "; |
$query .= "ta_meeting = 0 order by ta_id"; |
|
if (!($resta = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
$men = numrowsDB($resta); |
$i = 0; |
$al_hours = 0; |
$wd_hours = 0; |
|
while ($i < $men) { |
$data = fetchDB($resta, $i); |
$xnum = $data[0]; |
$xlevel = $data[1]; |
$xname = $data[2]; |
|
if ($xlevel <= $ta_level) |
break; |
|
$query = "select sum(al_hours) from allocation where "; |
$query .= "al_task = $xnum and al_pstart > $datum"; |
|
if (!($resal = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
$data = fetchDB($resal, 0); |
$al_hours += $data[0]; |
# Summieren der IST-Werte |
$query = "select sum(wd_hours)/$leneinheit from wdone where "; |
$query .= "wd_datum <= $datum and "; |
$query .= "wd_task in (select ta_num from task, plan where "; |
$query .= "pl_num = ta_plnum and ta_name = '$xname' and "; |
$query .= "pl_prnum = $pl_prnum)"; |
|
if (!($reswd = QueryDB($db, $query))) |
return 0; |
|
$data = fetchDB($reswd, 0); |
$wd_hours += $data[0]; |
$i++; |
} |
} else { |
$query = "select sum(al_hours) from allocation where "; |
$query .= "al_task = $ta_num and al_pstart > $datum"; |
|
if (!($resal = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
$data = fetchDB($resal, 0); |
$al_hours = $data[0]; |
# Summieren der IST-Werte |
$query = "select sum(wd_hours)/$leneinheit from wdone where "; |
$query .= "wd_datum <= $datum and "; |
$query .= "wd_task in (select ta_num from task, plan where "; |
$query .= "pl_num = ta_plnum and ta_name = '$ta_name' and "; |
$query .= "pl_prnum = $pl_prnum)"; |
|
if (!($reswd = QueryDB($db, $query))) |
return 0; |
|
$data = fetchDB($reswd, 0); |
$wd_hours = $data[0]; |
} |
} |
|
# Starrer Zeilenbegin ... |
echo "<tr>\n"; |
if (!$ma) |
$snum = GetTaskNum($pl_num, $ta_id, $ta_level, $ta_phase, $ta_meeting, $snum, &$typ, $db); |
|
# Nummerierung |
if (!$ma) { |
if ($ta_meeting) |
echo "<td class=\"nwb\">$snum</td>\n"; |
else |
echo "<td class=\"sel\">$snum</td>\n"; |
} else { |
echo "<td class=\"sel\"> </td>\n"; |
} |
|
# Tasknamendarstellung abhaenging vom Level |
if (!$ma) { |
if ($ta_level == 1 || !$typ) { |
if ($ta_meeting) |
echo "<td class=\"nwb\" colspan=3>$ta_name</td>\n"; |
else |
echo "<td class=\"nw\" colspan=3>$ta_name</td>\n"; |
} else { |
if ($ta_meeting) |
echo "<td class=\"sel\" width=\"10%\"> </td><td class=\"nwb\" colspan=2>$ta_name</td>\n"; |
else |
echo "<td class=\"sel\" width=\"10%\"> </td><td class=\"nw\" colspan=2>$ta_name</td>\n"; |
} |
} |
|
# Anzeigen Spalte: Arbeit |
if (!$ta_meeting) { |
if ($typ) { |
$sein = GetStrEinheit($einheit); |
echo "<td class=\"nw\" align=\"right\">$ta_duration $sein</td>\n"; |
$dt = gmdate($dtformatshort, $ta_start); |
$ed = GetEDate($einheit, $ta_start, $ta_duration); |
$dte = gmdate($dtformatshort, $ed); |
echo "<td class=\"selmid\">$dt</td>\n"; |
echo "<td class=\"selmid\">$dte</td>\n"; |
} else { |
echo "<td class=\"sel\" colspan=3> </td>\n"; |
} |
} else { |
echo "<td class=\"nwb\" align=\"center\">M</td>\n"; |
$dt = gmdate($dtformatshort, $ta_start); |
echo "<td class=\"selmid\" colspan=2>$dt</td>\n"; |
} |
|
# Spalte "Mitarbeierrolle" nur bei Mitarbeitern! |
if ($role) |
echo "<td class=\"sel\"> </td>\n"; |
|
# Dynamischer Aufbau der restlichen Tabelle. |
$color = dechex($ta_color); |
$len = strlen($color); |
|
while ($len < 6) { |
$color = "0" . $color; |
$len++; |
} |
|
$dt = $fdate; |
|
# Die leeren Spalten vor Beginn eines Tasks zeichnen. |
while (PerDateComp($dt, $ta_start) > 0) { |
$dt = IncDate($periode, $dt); |
echo "<td class=\"sel\"> </td>"; |
} |
|
if ($ta_meeting) |
$edate = $ta_start; |
else |
$edate = GetEDate($einheit, $ta_start, $ta_duration); |
|
# Den Zeitraum eines Tasks "grafisch" darstellen und den Aufwand |
# pro Periode anzeigen. |
do { |
if ($typ) |
echo "<td style=\"background-color: #$color; border: 1px solid black;\"> </td>\n"; |
else if ($ta_meeting) |
echo "<td style=\"color: #$color;background-color: #969696; border: 1px solid black;\"><center>###</center></td>\n"; |
else |
echo "<td style=\"color: #$color;background-color: #dddddd; border: 1px solid black;\"><center>===</center></td>\n"; |
|
$dt = IncDate($periode, $dt); |
} |
while (PerDateComp($dt, $edate) >= 0); |
|
# Die leeren Spalten nach dem Ende eines Tasks zeichnen. |
while (PerDateComp($dt, $ldate) >= 0) { |
$dt = IncDate($periode, $dt); |
echo "<td class=\"sel\"> </td>"; |
} |
|
# Ausfuellen der Summenspalte |
if (($typ && !$ma) || $ta_level == 1) { |
echo "<td class=\"two\" align=\"right\">"; |
printf ("<b><u>%s</u></b></td>\n", FormatNum($al_hours+$wd_hours, 3)); |
} else |
echo "<td class=\"sel\"> </td>\n"; |
|
if ($typ && !$ma) { |
if ($ta_num == $tanum) |
$sum = PrintMa($db, $fdate, $ldate, $ta_num, $color, $pl_num, $ressource); |
else |
$sum = PrintMa($db, $fdate, $ldate, $ta_num, $color, $pl_num, 0); |
|
$total += $sum; |
} |
|
echo "</tr>\n"; |
|
if ($ma) { |
$ma = false; |
$done = true; |
} |
|
if (!$done && $ta_num == $id) |
$ma = true; |
|
if (!$ma) |
$row++; |
} |
|
# Anfuegen der Summierungen |
if ($datum == 0 && $total > 0) { |
if ($role) |
$span = 8 + $tbcols; |
else |
$span = 7 + $tbcols; |
|
if (($typ && !$ma) || $ta_level == 1) { |
echo "<tr><td class=\"sel\" colspan=$span> </td>"; |
echo "<td class=\"two\" align=\"right\">"; |
printf("<b><u>%s</u></b></td></tr>\n", FormatNum($al_hours+$wd_hours, 3)); |
} |
|
echo "<tr><td class=\"selnum\" colspan=$span>Gesamtsumme:</td>"; |
printf("<td class=\"selgray\" align=\"right\"><b><u>%s</u></b></td></tr>\n", FormatNum($total, 3)); |
} |
|
echo "</table>\n"; |
closeDB($db); |
} |
|
# Auswertung des Menues: |
# |
if ($knopf == 21) // Statusbericht |
Preselect(); |
|
# Auswertung der Funktionen |
if ($func == "printplan") { |
$pl_num = $_REQUEST['pl_num']; |
$datum = $_REQUEST['datum']; |
echo "<table class=\"indent\"><tr><td>\n"; |
ButtonPrint("Drucken", "printplan.php", "pl_num=$pl_num&datum=$datum&header=2&func=PlanPrint"); |
echo "</td></tr></table>\n"; |
PrintPlan($pl_num); |
} |
|
if ($func == "PlanPrint") { |
$pl_num = $_REQUEST['pl_num']; |
|
PrintPlan($pl_num); |
} |
|
require('footer.inc'); |
|
?> |