Subversion Repositories public

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 andreas 1
<?
2
require_once('version.inc');
3
require_once('dbaccess.inc');
4
require_once('language.inc');
5
require_once('header.inc');
6
require_once('helper.inc');
7
require_once('crypt.inc');
8
require_once('settings.inc');
9
 
10
$knopf = 0;
11
$func = $_REQUEST['func'];
12
 
13
# Auswertungsmenue
14
//if (isset($_REQUEST['revisor'])) { $knopf = 27; $headline = 34; }
15
 
16
$drm = array(true, false, false, false, false, true, false);
17
 
18
require_once('menu.inc');
19
require_once('knumber.inc');
20
require_once('tempplan.inc');
21
 
22
# This module contains the following functions:
23
#    Preselect
24
#    ZSum
25
#    Cell
26
#    ProjektMa
27
#    MitarbeiterPj
28
#    PrintList
29
 
30
# Folgende Funktion erlaubt die Auswahl einiger Voreinstellungen und
31
# Einschraenkungen fuer den Statusbericht.
32
#
33
function Preselect($repeat=0) {
34
	global $periode;
35
	global $phase;
36
	global $menu;
37
 
38
	$db = OpenDB();
39
	$nav = "mi_num='+wahl.mi_num.value+'&sort1='+wahl.sort[0].checked+'&sort2='+wahl.sort[1].checked+'&menu=$menu&headline=31";
40
 
41
	if ($repeat == 1)
42
	   $plnum = $_REQUEST['pl_num'];
43
 
44
	# Folgende Maske zeigt zwei ineinander verschachtelte Tabellen
45
	# um die einzelnen Wahlelemente optisch voneinader zu trennen.
46
?>
47
<form name="wahl" action="auswertung.php" method="post">
48
<input type="hidden" name="menu" value="<? echo "$menu"; ?>">
49
<input type="hidden" name="headline" value="31">
50
<input type="hidden" name="func" value="prlist">
51
 
52
<table class="sel">
53
<tr><th class="sel" colspan=2>Projektauswahl</th></tr>
54
<tr><td class="sel">
55
<?php
56
	# Auswahl eines freigegebenen oder fertigen Projekts
57
	echo "Projekte:</td>\n";
58
	echo "<td class=\"sel\">";
59
 
60
	$query = "select pl_num, pl_prnum, pl_lfd, pr_name, pl_status from plan, project ";
61
	$query .= "where pr_num = pl_prnum and pl_status in (1,2,3,4) ";
62
	$query .= "order by pl_prnum, pl_lfd desc";
63
 
64
	$result = QueryDB($db, $query);
65
 
66
	if (!$result) {
67
	   closeDB($db);
68
	   return;
69
	}
70
 
71
	echo "<select name=\"pl_num\" ";
72
	echo "onchange=\"javascript:MoveTo('auswertung.php', ";
73
	echo "'func=repeatpj&pl_num='+this.value+'&$nav')\">\n";
74
	$numrows = numrowsDB($result);
75
	$rows = 0;
76
 
77
	while ($rows < $numrows) {
78
	   $data = fetchDB($result, $rows);
79
	   $pl_num = $data[0];
80
	   $pl_prnum = $data[1];
81
	   $pl_lfd = $data[2];
82
	   $pr_name = $data[3];
83
	   $pl_status = $data[4];
84
 
85
	   if ($rows == 0) {
86
	      if (isset($plnum) && $plnum == 0)
87
	         echo "<option value=\"0\" selected>Alle</option>\n";
88
	      else
89
	         echo "<option value=\"0\">Alle</option>\n";
90
	   }
91
 
92
	   if ($pl_status == 1)
93
	      $vz = "<*>:";
94
	   else
95
	      $vz = "$pl_lfd:";
96
 
97
	   if (isset($plnum) && $plnum == $pl_num)
98
	      echo "<option value=\"$pl_num\" selected>$vz $pl_prnum $pr_name</option>\n";
99
	   else
100
	      echo "<option value=\"$pl_num\">$vz $pl_prnum $pr_name</option>\n";
101
	   $rows++;
102
	}
103
 
104
	echo "</select></td></tr>\n";
105
	# Mitarbeiterauswahl
106
	echo "<tr><th class=\"sel\" colspan=2>Mitarbeiterauswahl</th></tr>\n";
107
	echo "<tr><td class=\"sel\">Mitarbeiter:</td>";
108
	echo "<td class=\"sel\">\n";
109
 
110
 
111
	if ($repeat == 1 && isset($plnum) && $plnum > 0) {
112
	   $query = "select distinct wd_minum, mi_nname, mi_vname from ";
113
	   $query .= "wdone, mitarbeiter, task where mi_num = wd_minum and ";
114
	   $query .= "ta_num = wd_task and ta_plnum = $plnum ";
115
	   $query .= "order by mi_nname, mi_vname";
116
	} else {
117
	   $query = "select mi_num, mi_nname, mi_vname from mitarbeiter ";
118
	   $query .= "order by mi_nname, mi_vname";
119
	}
120
 
121
	$result = QueryDB($db, $query);
122
 
123
	if (!$result) {
124
	   closeDB($db);
125
	   return;
126
	}
127
 
128
	echo "<select name=\"mi_num\">\n";
129
	$numrows = numrowsDB($result);
130
	$rows = 0;
131
 
132
	while ($rows < $numrows) {
133
	   $data = fetchDB($result, $rows);
134
	   $mi_num = $data[0];
135
	   $mi_nname = $data[1];
136
	   $mi_vname = $data[2];
137
 
138
	   if ($rows == 0)
139
	      echo "<option value=\"0\">Alle</option>\n";
140
 
141
	   if ($mi_num == $_REQUEST['mi_num'])
142
	      echo "<option selected value=\"$mi_num\">$mi_nname $mi_vname</option>\n";
143
	   else
144
	      echo "<option value=\"$mi_num\">$mi_nname $mi_vname</option>\n";
145
	   $rows++;
146
	}
147
 
148
	echo "</select></td></tr>\n";
149
 
150
	# Zeitraum
151
	echo "<tr><th class=\"sel\" colspan=2>Anzuzeigender Zeitraum</th></tr>\n";
152
	echo "<tr><td class=\"sel\">Zeitraum:</td>\n";
153
	echo "<td class=\"sel\">";
154
	$query = "select ta_start from task";
155
 
156
	if ($repeat == 1 && isset($plnum) && $plnum > 1)
157
	   $query .= " where ta_plnum = $plnum ";
158
 
159
	$query .= " order by ta_start";
160
	$result = QueryDB($db, $query);
161
 
162
	if (!$result) {
163
	   closeDB($db);
164
	   return;
165
	}
166
 
167
	$data = fetchDB($result, 0);
168
	$fdate = $data[0];
169
 
170
	$query = "select ta_start + (ta_duration * 86400) as ds from task";
171
 
172
	if ($repeat == 1 && isset($plnum) && $plnum > 1)
173
	   $query .= " where ta_plnum = $plnum ";
174
 
175
	$query .= " order by ds desc";
176
	$result = QueryDB($db, $query);
177
 
178
	if (!$result) {
179
	   closeDB($db);
180
	   return;
181
	}
182
 
183
	$data = fetchDB($result, 0);
184
	$ldate = $data[0];
185
	$dt = time();
186
	$mon = date ("n", $dt);
187
	$year = date("Y", $dt);
188
 
189
	if ($mon < 6)
190
	   $mon = 1;
191
	else
192
	   $mon = 6;
193
 
194
	$dfirst = mktime(0, 0, 0, $mon, 1, $year);
195
 
196
	if ($ldate < $dt) {
197
	   $mon = date("n", $ldate);
198
	   $year = date("Y", $ldate);
199
	   $dlast = mktime(0, 0, 0, $mon, 1, $year);
200
	}
201
	else {
202
	   if ($mon == 1)
203
	      $mon = 6;
204
	   else if ($mon == 6)
205
	      $mon = 12;
206
 
207
	   $zw = mktime(0, 0, 0, $mon, 1, $year);
208
 
209
	   if ($zw <= $ldate)
210
	      $dlast = $zw;
211
	   else {
212
	      $mon = date("n", $ldate);
213
	      $dlast = mktime(0, 0, 0, $mon, 1, $year);
214
	   }
215
	}
216
 
217
	$cd = $fdate;
218
	echo "Von:&nbsp;<select name=\"dfrom\">\n";
219
 
220
	while ($cd < $ldate) {
221
	   $mon = date("n", $cd);
222
	   $year = date("Y", $cd);
223
	   $zw = mktime(0, 0, 0, $mon, 1, $year);
224
 
225
	   if ($zw == $dfirst)
226
	      echo "<option value=\"$zw\" selected>$mon.$year</option>\n";
227
	   else
228
	      echo "<option value=\"$zw\">$mon.$year</option>\n";
229
 
230
	   $cd = IncDate($periode, $zw);
231
	}
232
 
233
	echo "</select>&nbsp;&nbsp;&nbsp;&nbsp;";
234
	$cd = $fdate;
235
	echo "Bis:&nbsp;<select name=\"dto\">\n";
236
 
237
	while ($cd < $ldate) {
238
	   $mon = date("n", $cd);
239
	   $year = date("Y", $cd);
240
	   $zw = mktime(0, 0, 0, $mon, 1, $year);
241
 
242
	   if ($zw == $dlast)
243
	      echo "<option value=\"$zw\" selected>$mon.$year</option>\n";
244
	   else
245
	      echo "<option value=\"$zw\">$mon.$year</option>\n";
246
 
247
	   $cd = IncDate($periode, $zw);
248
	}
249
 
250
	echo "</select></td></tr>\n";
251
	# Anzeigenauswahl
252
	echo "<tr><th class=\"sel\" colspan=2>Anzeigenauswahl</th></tr>\n";
253
	echo "<tr><td class=\"sel\">Spaltenauswahl:</td>\n";
254
	echo "<td class=\"sel\"><table border=0><tr>";
255
	echo "<td class=\"selnf\"><input type=\"checkbox\" value=\"1\" name=\"fields_0\">Tasks anzeigen</td>\n";
256
	echo "<td class=\"selnf\"><input type=\"checkbox\" value=\"2\" name=\"fields_1\">Anmerkungen</td></tr><tr>\n";
257
	echo "<td class=\"selnf\"><input type=\"checkbox\" value=\"3\" name=\"fields_2\">Gruppe</td>\n";
258
	echo "<td class=\"selnf\"><input type=\"checkbox\" value=\"4\" name=\"fields_3\" checked ";
259
	echo "onClick=\"javascript:if (document.wahl.fields_4.checked == false ||";
260
	echo "document.wahl.fields_5.checked == false) { this.checked = false; }\">IST- Plandifferenz</td></tr><tr>\n";
261
	echo "<td class=\"selnf\"><input type=\"checkbox\" value=\"5\" name=\"fields_4\" checked ";
262
	echo "onClick=\"javascript:if (this.checked == false) { document.wahl.fields_3.checked = false; } ";
263
	echo "if (this.checked == false && document.wahl.fields_5.checked == false) { this.checked = true; }\">IST-Werte</td>\n";
264
	echo "<td class=\"selnf\"><input type=\"checkbox\" value=\"6\" name=\"fields_5\" checked ";
265
	echo "onClick=\"javascript:if (this.checked == false) { document.wahl.fields_3.checked = false; } ";
266
	echo "if (this.checked == false && document.wahl.fields_4.checked == false) { this.checked = true; }\">Planwerte</td></tr>\n";
267
 
268
	if ($phase)
269
	   echo "<tr><td class=\"selnf\" colspan=2><input type=\"checkbox\" value=\"7\" name=\"fields_6\" checked>Phase</td></tr>\n";
270
 
271
	echo "</table>\n";
272
	echo "</td></tr>\n";
273
 
274
	echo "<tr><td class=\"sel\">Sortierreihenfolge:</td>\n";
275
 
276
	if ($_REQUEST['sort1'] == "true")
277
	   $sort = 1;
278
	else if ($_REQUEST['sort2'] == "true")
279
	   $sort = 2;
280
	else
281
	   $sort = 2;
282
 
283
	echo "<td class=\"sel\">";
284
	echo "<input type=\"radio\" name=\"sort\" ";
285
 
286
	if ($sort == 1)
287
	   echo "checked ";
288
 
289
	echo "value=\"1\">Projekte / Mitarbeiter<br>\n";
290
	echo "<input type=\"radio\" name=\"sort\" ";
291
 
292
	if ($sort == 2)
293
	   echo "checked ";
294
 
295
	echo "value=\"2\">Mitarbeiter / Projekte\n";
296
	echo "</td></tr>\n";
297
 
298
	echo "<tr><td class=\"sel\">Plantiefe:</td>\n";
299
	echo "<td class=\"sel\">";
300
	echo "<select name=\"level\" disabled>\n";
301
	echo "<option value=\"-1\">Alle</option>\n";
302
	echo "<option value=\"0\">0</option>\n";
303
	echo "<option value=\"1\">1</option>\n";
304
	echo "<option value=\"2\">2</option>\n";
305
	echo "<option value=\"3\">3</option>\n";
306
	echo "<option value=\"4\">4</option>\n";
307
	echo "<option value=\"5\">5</option>\n";
308
	echo "<option value=\"6\">6</option>\n";
309
	echo "<option value=\"7\">7</option>\n";
310
	echo "<option value=\"8\">8</option>\n";
311
	echo "<option value=\"9\">9</option>\n";
312
	echo "</select></td></tr>\n";
313
 
314
	echo "<tr><td class=\"selmid\" colspan=2>";
315
	ButtonSubmit("Senden", "wahl");
316
//	echo "<input type=\"submit\" name=\"submit\" value=\"Senden\"> <input type=\"reset\">\n";
317
	echo "</td></tr></table>\n";
318
	echo "</form>\n";
319
	closeDB($db);
320
}
321
 
322
# Zeilensumme ausgeben
323
#
324
function ZSum($sumi, $sump) {
325
	$fields_3 = $_REQUEST['fields_3'];
326
	$fields_4 = $_REQUEST['fields_4'];
327
	$fields_5 = $_REQUEST['fields_5'];
328
 
329
	if ($fields_4 > 0)
330
	   echo "<td class=\"seldkgray\" align=\"right\">" . FormatNum($sumi, 3) . "</td>";
331
 
332
	if ($fields_3 > 0)
333
	   echo "<td class=\"seldkgray\" align=\"right\">" . FormatNum($sump - $sumi, 3) . "</td>";
334
 
335
	if ($fields_5 > 0)
336
	   echo "<td class=\"seldkgray\" align=\"right\">" . FormatNum($sump, 3) . "</td>";
337
 
338
	echo "\n";
339
}
340
 
341
# Schreiben einer Zelle
342
#
343
function Cell($class, $ist, $plan, $blank=false, $per=0) {
344
	$fields_3 = $_REQUEST['fields_3'];
345
	$fields_4 = $_REQUEST['fields_4'];
346
	$fields_5 = $_REQUEST['fields_5'];
347
 
348
	if ($fields_4 > 0) {
349
	   echo "<td class=\"$class\" align=\"right\">";
350
 
351
	   if ($blank)
352
	      echo "&nbsp;";
353
	   else
354
	      echo FormatNum($ist, 3);
355
 
356
	   if ($per > 0)
357
	      echo "<br>" . date("n/Y", $per);
358
 
359
	   echo "</td>";
360
	}
361
 
362
	if ($fields_3 > 0) {
363
	   echo "<td class=\"$class\" align=\"right\">";
364
 
365
	   if ($blank)
366
	      echo "&nbsp;";
367
	   else
368
	      echo FormatNum($plan - $ist, 3);
369
 
370
	   echo "</td>";
371
	}
372
 
373
	if ($fields_5 > 0) {
374
	   echo "<td class=\"$class\" align=\"right\">";
375
 
376
	   if ($blank)
377
	      echo "&nbsp;";
378
	   else
379
	      echo FormatNum($plan, 3);
380
 
381
	   echo "</td>";
382
	}
383
}
384
 
385
# Folgende Funktion erzeugt die Liste aller Projekte. Die Liste
386
# sortiert nach Projekten und Mitarbeitern (Projektsicht).
387
#
388
function ProjektMa($db, $pr_num, $mi_num=0) {
389
	global $periode;
390
	global $phase;
391
	$pl_num = $_REQUEST['pl_num'];
392
	$dfrom = $_REQUEST['dfrom'];
393
	$dto = $_REQUEST['dto'];
394
	$fields_0 = $_REQUEST['fields_0'];
395
	$fields_1 = $_REQUEST['fields_1'];
396
	$fields_2 = $_REQUEST['fields_2'];
397
	$fields_3 = $_REQUEST['fields_3'];
398
	$fields_4 = $_REQUEST['fields_4'];
399
	$fields_5 = $_REQUEST['fields_5'];
400
	$fields_6 = $_REQUEST['fields_6'];
401
	$sort = $_REQUEST['sort'];
402
	$level = $_REQUEST['level'];
403
 
404
	# Beim bis-Datum den Monatsletzten ermitteln
405
	$mon = date("n", $dto);
406
	$year = date("Y", $dto);
407
	$day = daysinmonth($mon, $year);
408
	$dto = mktime(23, 59, 59, $mon, $day, $year);
409
	# Den Projektnamen ermitteln
410
	$query = "select pr_num, pr_name from project ";
411
 
412
	if ($pr_num > 0)
413
	   $query .= "where pr_num = $pr_num ";
414
 
415
	$query .= "order by pr_num";
416
	$respr = QueryDB($db, $query);
417
 
418
	if (!$respr)
419
	   return;
420
 
421
	$numpr = numrowsDB($respr);
422
	$pospr = 0;
423
 
424
	$pdiff = $fields_3;
425
	$pist = $fields_4;
426
	$pplan = $fields_5;
427
	$mult = 0;
428
 
429
	if ($pist > 0)
430
	   $mult++;
431
 
432
	if ($pplan > 0)
433
	   $mult++;
434
 
435
	if ($pplan > 0 && $pdiff > 0)
436
	   $mult++;
437
 
438
	$csp = 4;
439
 
440
	if ($fields_6 > 0)
441
	   $csp++;
442
 
443
	if ($fields_0 > 0)
444
	   $csp++;
445
 
446
	if ($fields_1 > 0)
447
	   $csp++;
448
 
449
	if ($fields_2 > 0)
450
	   $csp++;
451
 
452
	$pl_flag = false;
453
	$TempTable = false;
454
 
455
	while ($pospr < $numpr) {
456
	   $data = fetchDB($respr, $pospr);
457
	   $pr_num = $data[0];
458
	   $pr_name = $data[1];
459
 
460
	   # Wurde kein Projekt gewaehlt, dann muessen wir die Plannummer
461
	   # ermitteln. In diesem Fall zeigen wir immer den aktuelsten Plan
462
	   # an.
463
	   #
464
	   if ($pl_flag || !isset($pl_num) || $pl_num <= 0) {
465
	      $query = "select pl_num from plan where pl_prnum = $pr_num order by pl_num desc";
466
	      $result = QueryDB($db, $query);
467
 
468
	      if (!$result)
469
	         return;
470
 
471
	      if (numrowsDB($result) > 0) {
472
	         $data = fetchDB($result, 0);
473
	         $pl_num = $data[0];
474
	         $pl_flag = true;
475
	      } else {
476
	         $pl_num = 0;
477
	         $pl_flag = false;
478
	         $pospr++;
479
	         continue;
480
	      }
481
	   }
482
 
483
	   if ($TempTable && $pospr > 0)
484
	      TQueryDB($db, "drop table TempPlan");
485
 
486
	   $TempTable = true;
487
 
488
	   if (!CreateTempPlan($db, $pl_num, $pr_num, $dfrom, $dto, true)) {
489
	      $pospr++;
490
	      continue;
491
	   }
492
 
493
	   # Wieviele Perioden gibt es insgesamt?
494
	   $query = "select count(distinct tmp_periode) from TempPlan";
495
	   $result = QueryDB($db, $query);
496
 
497
	   if (!$result) {
498
	      closeDB($db);
499
	      return;
500
	   }
501
 
502
	   $data = fetchDB($result, 0);
503
	   $numper = $data[0];
504
	   $np = $numper * $mult;
505
	   $c = $csp + $np;
506
 
507
	   # Zeichnen des Tabellenkopfs
508
	   echo "<table class=\"sel\"><tr>";
509
	   echo "<td class=\"sel\" colspan=$c>Projekt: $pr_num $pr_name</td></tr>\n";
510
	   $c = $csp - 3;
511
	   echo "<tr><td class=\"sel\" colspan=$c>&nbsp;</td>\n";
512
 
513
	   # Ermitteln der einzelnen Perioden und Darstellung der Selben.
514
	   #
515
	   $query = "select distinct tmp_periode from TempPlan order by tmp_periode";
516
	   $result = QueryDB($db, $query);
517
 
518
	   # Wurde kein Projekt gewaehlt, dann muessen wir die Plannummer
519
	   # ermitteln. In diesem Fall zeigen wir immer den aktuelsten Plan
520
	   # an.
521
 
522
	   if (!$result) {
523
	      echo "</tr></table>";
524
	      return;
525
	   }
526
 
527
	   $numrows = numrowsDB($result);
528
	   $r = 0;
529
	   $x = 0;
530
 
531
	   while ($r < $numrows) {
532
	      $data = fetchDB($result, $r);
533
	      $tmp_periode = $data[0];
534
 
535
	      $mon = date("n", $tmp_periode);
536
	      $year = date("Y", $tmp_periode);
537
 
538
	      if ($r == 0) {
539
	         $fdate = $tmp_periode;
540
	         $adate = $fdate;
541
	      }
542
 
543
	      while ($adate < $tmp_periode) {
544
	         $p = date("n/Y", $adate);
545
	         echo "<th colspan=$mult class=\"sel\">$p</th>\n";
546
	         $adate = IncDate($periode, $adate);
547
	         $sumperp[$x] = 0.0;
548
	         $sumperi[$x] = 0.0;
549
	         $totalis[$x] = 0.0;
550
	         $totalpl[$x] = 0.0;
551
	         $x++;
552
	      }
553
 
554
	      echo "<th colspan=$mult class=\"sel\">$mon/$year</th>\n";
555
	      $sumperp[$x] = 0.0;
556
	      $sumperi[$x] = 0.0;
557
	      $totalis[$x] = 0.0;
558
	      $totalpl[$x] = 0.0;
559
	      $adate = IncDate($periode, $adate);
560
	      $r++;
561
	      $x++;
562
	   }
563
 
564
	   $ldate = $tmp_periode;
565
	   echo "<th colspan=$mult class=\"sel\">Summen</th></tr>\n";
566
	   echo "<tr><th class=\"sel\">Mitarbeiter</th>";
567
 
568
	   if ($fields_2 > 0)
569
	      echo "<th class=\"sel\">Gruppe</th>";
570
 
571
	   if ($phase && $fields_6 > 0)
572
	      echo "<th class=\"sel\">Phase</th>";
573
 
574
	   if ($fields_0 > 0)
575
	      echo "<th class=\"sel\">Tasks</th>";
576
 
577
	   if ($fields_1 > 0)
578
	      echo "<th class=\"sel\">Anmerkungen</th>";
579
 
580
	   $r = 0;
581
 
582
	   while ($r <= $x) {
583
	      if ($pist > 0)
584
	         echo "<th class=\"sel\">IST</th>\n";
585
 
586
	      if ($pplan > 0 && $pdiff > 0)
587
	         echo "<th class=\"sel\">Diff.</th>\n";
588
 
589
	      if ($pplan > 0)
590
	         echo "<th class=\"sel\">Plan</th>\n";
591
 
592
	      $r++;
593
	   }
594
 
595
	   echo "</tr>\n";
596
 
597
	   $query = "select tmp_phase, tmp_periode, tmp_plan, tmp_ist,";
598
	   $query .= "tmp_taname, tmp_notiz, mi_nname, mi_vname, kp_phase, ";
599
	   $query .= "kl_land, tmp_miname ";
600
	   $query .= "from TempPlan, mitarbeiter, key_phase, key_land where ";
601
	   $query .= "mi_num = tmp_miname and kp_num = tmp_phase and kl_num = mi_land ";
602
	   $query .= "order by mi_nname, mi_vname, tmp_phase, tmp_taname, tmp_periode";
603
	   $result = QueryDB($db, $query);
604
	   # Wurde kein Projekt gewaehlt, dann muessen wir die Plannummer
605
	   # ermitteln. In diesem Fall zeigen wir immer den aktuelsten Plan
606
	   # an.
607
 
608
	   if (!$result)
609
	      return;
610
 
611
	   $numrows = numrowsDB($result);
612
	   $rows = 0;
613
	   $oldminame = 0;
614
	   $oldphase = 0;
615
	   $oldtask = "";
616
	   $sumlpl = 0.0;
617
	   $sumlis = 0.0;
618
	   $per = 0;
619
	   $first = true;
620
	   $adate = $fdate;
621
	   $class = "nw";
622
 
623
	   while ($rows < $numrows) {
624
	      $data = fetchDB($result, $rows);
625
	      $tmp_phase = $data[0];
626
	      $tmp_periode = $data[1];
627
	      $tmp_plan = $data[2];
628
	      $tmp_ist = $data[3];
629
	      $tmp_taname = $data[4];
630
	      $tmp_notiz = $data[5];
631
	      $mi_nname = $data[6];
632
	      $mi_vname = $data[7];
633
	      $kp_phase = $data[8];
634
	      $kl_land = $data[9];
635
	      $tmp_miname = $data[10];
636
 
637
	      # Summen und Zeilenanfang schreiben
638
	      #
639
	      if ($oldminame != $tmp_miname || $oldphase != $tmp_phase ||
640
		  $oldtask != $tmp_taname) {
641
		 # Aktuelle Zeile vervollstaendigen (nur wenn eine Zeile
642
		 # bereits geschrieben wurde).
643
		 #
644
		 if (!$first) {
645
		    while ($adate <= $ldate) {
646
		       Cell($class, 0, 0, true);
647
 
648
		       if ($class == "selltgray")
649
		          $class = "selgray";
650
		       else
651
		          $class = "selltgray";
652
 
653
		       $adate = IncDate($periode, $adate);
654
		    }
655
 
656
		    ZSum($sumlis, $sumlpl);
657
		    echo "</tr>\n";
658
		 }
659
 
660
		 if (!$first && $oldminame != $tmp_miname) {
661
		    $cp = $csp - 3;
662
		    # Monatssummen nach einem Mitarbeiterwechsel
663
		    #
664
		    echo "<tr><td class=\"selnum\" colspan=$cp><b>Zwischensumme:</b></td>";
665
		    $adate = $fdate;
666
		    $per = 0;
667
		    $sumi = 0.0;
668
		    $sump = 0.0;
669
 
670
		    while ($adate <= $ldate) {
671
		       Cell("lsum", $sumperi[$per], $sumperp[$per]);
672
		       $adate = IncDate($periode, $adate);
673
		       $sumi += $sumperi[$per];
674
		       $sump += $sumperp[$per];
675
		       $sumperi[$per] = 0.0;
676
		       $sumperp[$per] = 0.0;
677
		       $per++;
678
		    }
679
 
680
		    Zsum($sumi, $sump);
681
		    echo "\n";
682
		 }
683
 
684
		 # Beginn der Zeile: Schreiben der ersten fixen Zellen.
685
		 #
686
		 echo "<tr><td class=\"selltgray\">$mi_nname $mi_vname</td>\n";
687
 
688
		 if ($fields_2 > 0)
689
		    echo "<td class=\"selltgray\">$kl_land</td>\n";
690
 
691
		 if ($phase && $fields_6 > 0)
692
		    echo "<td class=\"selltgray\">$tmp_phase: $kp_phase</td>\n";
693
 
694
		 if ($fields_0 > 0)
695
		    echo "<td class=\"selltgray\">$tmp_taname</td>\n";
696
 
697
		 if ($fields_1 > 0)
698
		    echo "<td class=\"selltgray\">$tmp_notiz</td>\n";
699
 
700
		 # Variablen initialisieren...
701
		 #
702
		 $sumlis = 0.0;
703
		 $sumlpl = 0.0;
704
		 $per = 0;
705
		 $adate = $fdate;
706
		 $oldminame = $tmp_miname;
707
		 $oldphase = $tmp_phase;
708
		 $oldtask = $tmp_taname;
709
		 $first = false;
710
		 $class = "nw";
711
	      }
712
 
713
	      # Stimmt die aktuelle Position nicht mit der Periode ueberein,
714
	      # uebergehen wir die Zellen.
715
	      #
716
	      while ($adate < $tmp_periode) {
717
		 Cell($class, 0, 0, true);
718
 
719
		 if ($class == "selltgray")
720
		    $class = "selgray";
721
		 else
722
		    $class = "selltgray";
723
 
724
		 $adate = IncDate($periode, $adate);
725
		 $per++;
726
	      }
727
 
728
	      # Schreiben einer Zelle mit den aktuellen Werten.
729
	      Cell($class, $tmp_ist, $tmp_plan);
730
 
731
	      if ($class == "selltgray")
732
	         $class = "selgray";
733
	      else
734
	         $class = "selltgray";
735
 
736
	      $sumperp[$per] += $tmp_plan;
737
	      $sumperi[$per] += $tmp_ist;
738
	      $totalis[$per] += $tmp_ist;
739
	      $totalpl[$per] += $tmp_plan;
740
	      $sumlpl += $tmp_plan;
741
	      $sumlis += $tmp_ist;
742
	      $adate = IncDate($periode, $adate);
743
	      $per++;
744
	      $rows++;
745
	   }
746
 
747
	   # Beenden der der letzten Datenzeile der aktuellen Tabelle.
748
	   #
749
	   while ($adate <= $ldate) {
750
	      Cell($class, 0, 0, true);
751
 
752
	      if ($class == "nw")
753
	         $class = "nw1";
754
	      else
755
	         $class = "nw";
756
 
757
	      $adate = IncDate($periode, $adate);
758
	   }
759
 
760
	   ZSum($sumlis, $sumlpl);
761
	   # Summenzeile am Ende der Tabelle fuer den letzten Mitarbeiter
762
	   # anzeigen.
763
	   #
764
	   $cp = $csp - 3;
765
	   echo "<tr><td class=\"selnum\" colspan=$cp><b>Zwischensumme:</b></td>";
766
	   $adate = $fdate;
767
	   $per = 0;
768
	   $sumi = 0.0;
769
	   $sump = 0.0;	   # Wurde kein Projekt gewaehlt, dann muessen wir die Plannummer
770
	   # ermitteln. In diesem Fall zeigen wir immer den aktuelsten Plan
771
	   # an.
772
 
773
 
774
	   while ($adate <= $ldate) {
775
	      Cell("seldkgray", $sumperi[$per], $sumperp[$per]);
776
	      $adate = IncDate($periode, $adate);
777
	      $sumi += $sumperi[$per];
778
	      $sump += $sumperp[$per];
779
	      $sumperi[$per] = 0.0;
780
	      $sumperp[$per] = 0.0;
781
	      $per++;
782
	   }
783
 
784
	   ZSum($sumi, $sump);
785
 
786
	   # Monatssummen und Gesamtzeitraumsumme am Ende der Tabelle
787
	   # anzeigen.
788
	   #
789
	   echo "<tr><td class=\"selnum\" colspan=$cp><b>Monatssummen:</b></td>";
790
	   $adate = $fdate;
791
	   $per = 0;
792
	   $sumi = 0.0;
793
	   $sump = 0.0;
794
 
795
	   while ($adate <= $ldate) {
796
	      Cell("seldkgray", $totalis[$per], $totalpl[$per]);
797
	      $adate = IncDate($periode, $adate);
798
	      $sumi += $totalis[$per];
799
	      $sump += $totalpl[$per];
800
	      $per++;
801
	   }
802
 
803
	   Cell("two", $sumi, $sump);
804
	   echo "</tr>\n</table><br>\n";
805
	   $pospr++;
806
	}
807
}
808
 
809
# Folgende Funktion erzeugt die Liste fuer genau einen Mitarbeiter. Die Liste
810
# sortiert nach Mitarbeitern und Projekten.
811
#
812
function MitarbeiterPj($db, $mi_num, $prp_num=0) {
813
	global $periode;
814
	global $phase;
815
//	$pl_num = $_REQUEST['pl_num'];
816
	$dfrom = $_REQUEST['dfrom'];
817
	$dto = $_REQUEST['dto'];
818
	$fields_0 = $_REQUEST['fields_0'];
819
	$fields_1 = $_REQUEST['fields_1'];
820
	$fields_2 = $_REQUEST['fields_2'];
821
	$fields_3 = $_REQUEST['fields_3'];
822
	$fields_4 = $_REQUEST['fields_4'];
823
	$fields_5 = $_REQUEST['fields_5'];
824
	$fields_6 = $_REQUEST['fields_6'];
825
	$sort = $_REQUEST['sort'];
826
	$level = $_REQUEST['level'];
827
 
828
	# Beim bis-Datum den Monatsletzten ermitteln
829
	$mon = date("n", $dto);
830
	$year = date("Y", $dto);
831
	$day = daysinmonth($mon, $year);
832
	$dto = mktime(23, 59, 59, $mon, $day, $year);
833
	# Auslesen der Mitarbeiter. In einer Schleife werden die Daten
834
	# fuer jeden Mitarbeiter erstellt und pro Projekt angezeigt.
835
	#
836
	$query = "select mi_num, mi_nname, mi_vname, kl_land, ka_abt ";
837
	$query .= "from mitarbeiter, key_land, key_abt where ";
838
	$query .= "kl_num = mi_land and ka_num = mi_abt ";
839
 
840
	if ($mi_num > 0)
841
	   $query .= "and mi_num = $mi_num ";
842
 
843
	$query .= "order by mi_nname, mi_vname";
844
	$resmi = QueryDB($db, $query);
845
 
846
	if (!$resmi)
847
	   return;
848
 
849
	$nummi = numrowsDB($resmi);
850
	$posmi = 0;
851
 
852
	$pdiff = $fields_3;
853
	$pist = $fields_4;
854
	$pplan = $fields_5;
855
	$mult = 0;
856
 
857
	if ($pist > 0)
858
	   $mult++;
859
 
860
	if ($pplan > 0)
861
	   $mult++;
862
 
863
	if ($pplan > 0 && $pdiff > 0)
864
	   $mult++;
865
 
866
	$csp = 4;
867
 
868
	if ($fields_6 > 0)
869
	   $csp++;
870
 
871
	if ($fields_0 > 0)
872
	   $csp++;
873
 
874
	if ($fields_1 > 0)
875
	   $csp++;
876
 
877
	# Die Anzahl der Perioden ergibt sich aus der Auswahl. Die
878
	# Mitarbeitersicht besteht aus einer einzigen Tabelle in der
879
	# alle Daten angezeigt werden und mit Zwischensummen versehen
880
	# werden.
881
	# In der folgenden Schleife wird die Anzahl der Perioden
882
	# ermittelt.
883
	#
884
	$adate = $dfrom;
885
	$numper = 0;
886
 
887
	while ($adate <= $dto) {
888
	   $adate = IncDate($periode, $adate);
889
	   $numper++;
890
	}
891
 
892
	$np = $numper * $mult;
893
	$TempTable = false;
894
	echo "<table class=\"sel\">";
895
 
896
	while ($posmi < $nummi) {
897
	   $data = fetchDB($resmi, $posmi);
898
	   $mi_num = $data[0];
899
	   $mi_nname = $data[1];
900
	   $mi_vname = $data[2];
901
	   $kl_land = $data[3];
902
	   $ka_abt = $data[4];
903
 
904
	   # Pruefen ob der Mitarbeiter in irgend einem Projekt im gewaehlten
905
	   # Zeitraum geplant ist.
906
	   $query = "select al_num from allocation where ";
907
	   $query .= "al_ressource = $mi_num and al_pstart between $dfrom and $dto";
908
	   $result = QueryDB($db, $query);
909
 
910
	   if (!$result)
911
	      return;
912
 
913
	   $anz = numrowsDB($result);
914
 
915
	   if ($anz < 1) {
916
	      $posmi++;
917
	      continue;
918
	   }
919
 
920
	   # Zeichnen des Tabellenkopfs
921
	   # Bei jedem Mitarbeiterwechsel wird ein neuer Tabellenkopf
922
	   # gezeichnet.
923
	   #
924
	   $c = $csp + $np;
925
	   echo "<tr><td class=\"sel\" colspan=$c>";
926
	   echo "<table border=0 cellpadding=0><tr><td>Name:</td><td>$mi_nname $mi_vname</td></tr>\n";
927
	   echo "<tr><td>Gruppe:</td><td>$kl_land</td></tr>\n";
928
 
929
	   if (!$pmlight)
930
	      echo "<tr><td>Abteilung:</td><td>$ka_abt</td></tr>\n";
931
 
932
	   echo "</table></td></tr>\n";
933
	   $c = $csp - 3;
934
	   echo "<tr><td class=\"sel\" colspan=$c>&nbsp;</td>\n";
935
	   $r = 0;
936
	   $adate = $dfrom;
937
 
938
	   while ($r < $numper) {
939
	      $p = date("n/Y", $adate);
940
	      echo "<th colspan=$mult class=\"sel\">$p</th>\n";
941
	      $adate = IncDate($periode, $adate);
942
/*	      $sumperp[$x] = 0.0;
943
	      $sumperi[$x] = 0.0;
944
	      $totalis[$x] = 0.0;
945
	      $totalpl[$x] = 0.0;
946
	      $mitotp[$x] = 0.0;
947
	      $mitoti[$x] = 0.0; */
948
	      $r++;
949
	   }
950
 
951
	   echo "<th colspan=$mult class=\"sel\">Summen</th></tr>\n";
952
	   echo "<tr><th class=\"sel\">Projekt</th>";
953
 
954
	   if ($phase && $fields_6 > 0)
955
	      echo "<th class=\"sel\">Phase</th>";
956
 
957
	   if ($fields_0 > 0)
958
	      echo "<th class=\"sel\">Tasks</th>";
959
 
960
	   if ($fields_1 > 0)
961
	      echo "<th class=\"sel\">Anmerkungen</th>";
962
 
963
	   $r = 0;
964
 
965
	   while ($r <= $numper) {
966
	      if ($pist > 0)
967
	         echo "<td class=\"selinfo_l\" align=\"center\"><b>IST</b></td>\n";
968
 
969
	      if ($pplan > 0 && $pdiff > 0)
970
	         echo "<td class=\"selinfo\" align=\"center\"><b>Diff.</b></td>\n";
971
 
972
	      if ($pplan > 0)
973
	         echo "<td class=\"selinfo_r\" align=\"center\"><b>Plan</b></td>\n";
974
 
975
	      $r++;
976
	   }
977
 
978
	   echo "</tr>\n";
979
 
980
	   # Projekte waehlen, in denen der Mitarbeiter geplant ist.
981
	   #
982
	   # Wurde kein bestimmter Mitarbeiter gewählt, werden immer alle
983
	   # Mitarbeiter angezeigt. Es werden grundsätzlich alle Projekte
984
	   # angezeigt in denen der Mitarbeiter geplant ist oder wo er
985
	   # IST-Werte hat (das eine bedingt das andere!).
986
	   #
987
	   $query = "select distinct on (pr_num) pr_num, pr_name, pl_num, pl_status from ";
988
	   $query .= "project, plan where pl_prnum = pr_num ";
989
 
990
	   if ($prp_num > 0)
991
	      $query .= "and pr_num = $prp_num ";
992
 
993
	   $query .= "order by pr_num asc, pl_lfd desc";
994
	   $respr = QueryDB($db, $query);
995
 
996
	   if (!$respr)
997
	      return;
998
 
999
	   $numpr = numrowsDB($respr);
1000
	   $pospr = 0;
1001
	   $old_prnum = 0;
1002
	   $pr_flag = false;	// Zwischensumme schreiben
1003
 
1004
	   while ($pospr < $numpr) {
1005
	      $data = fetchDB($respr, $pospr);
1006
	      $pr_num = $data[0];
1007
	      $pr_name = $data[1];
1008
	      $pl_num = $data[2];
1009
	      $pl_status = $data[3];
1010
 
1011
	      if ($TempTable)
1012
		 TQueryDB($db, "drop table TempPlan");
1013
 
1014
	      $TempTable = true;
1015
 
1016
	      if (!CreateTempPlan($db, $pl_num, $pr_num, $dfrom, $dto, true, $mi_num)) {
1017
		 $pospr++;
1018
		 continue;
1019
	      }
1020
 
1021
	      $c = $csp + $np;
1022
	      $pr_flag = true;
1023
 
1024
	      # Tabelleninhalt schreiben:
1025
	      # Die Inhalte werden der zuvor temporaer erzeugten Tabelle
1026
	      # entnommen.
1027
	      #
1028
	      $query = "select tmp_phase, tmp_periode, tmp_plan, tmp_ist,";
1029
	      $query .= "tmp_taname, tmp_notiz, kp_phase ";
1030
	      $query .= "from TempPlan, key_phase where ";
1031
	      $query .= "kp_num = tmp_phase ";
1032
	      $query .= "order by ";
1033
 
1034
	      if ($phase)
1035
	         $query .= "tmp_phase, ";
1036
 
1037
	      if ($fields_0 > 0 )
1038
	         $query .= "tmp_taname, ";
1039
 
1040
	      $query .= "tmp_periode";
1041
	      $result = QueryDB($db, $query);
1042
 
1043
	      if (!$result)
1044
		 return;
1045
 
1046
	      $numrows = numrowsDB($result);
1047
	      $rows = 0;
1048
	      $oldphase = -1;
1049
	      $oldtask = "";
1050
	      $sumlpl = 0.0;
1051
	      $sumlis = 0.0;
1052
	      $per = 0;
1053
	      $first = true;
1054
	      $adate = $dfrom;
1055
	      $class = "selltgray";
1056
 
1057
	      while ($rows < $numrows) {
1058
		 $data = fetchDB($result, $rows);
1059
		 $tmp_phase = $data[0];
1060
		 $tmp_periode = $data[1];
1061
		 $tmp_plan = $data[2];
1062
		 $tmp_ist = $data[3];
1063
		 $tmp_taname = $data[4];
1064
		 $tmp_notiz = $data[5];
1065
		 $kp_phase = $data[6];
1066
 
1067
		 # Summen und Zeilenanfang schreiben
1068
		 #
1069
		 if ($oldphase != $tmp_phase || $oldtask != $tmp_taname) {
1070
		    # Aktuelle Zeile vervollstaendigen (nur wenn eine Zeile
1071
		    # bereits geschrieben wurde).
1072
		    #
1073
		    if (!$first) {
1074
		       while ($adate <= $dto) {
1075
			  Cell($class, 0, 0, true);
1076
 
1077
			  if ($class == "selltgray")
1078
			     $class = "selgray";
1079
			  else
1080
			     $class = "selltgray";
1081
 
1082
			  $adate = IncDate($periode, $adate);
1083
		       }
1084
 
1085
		       ZSum($sumlis, $sumlpl);
1086
		       echo "</tr>\n";
1087
		    }
1088
 
1089
		    $cp = $csp - 3;
1090
		    # Beginn der Zeile: Schreiben der ersten fixen Zellen.
1091
		    #
1092
		    echo "<tr><td class=\"sel\">$pr_num $pr_name</td>\n";
1093
 
1094
		    if ($phase && $fields_6 > 0)
1095
		       echo "<td class=\"sel\">$tmp_phase: $kp_phase</td>\n";
1096
 
1097
		    if ($fields_0 > 0)
1098
		       echo "<td class=\"sel\">$tmp_taname</td>\n";
1099
 
1100
		    if ($fields_1 > 0)
1101
		       echo "<td class=\"sel\">$tmp_notiz</td>\n";
1102
 
1103
		    # Variablen initialisieren...
1104
		    #
1105
		    $sumlis = 0.0;
1106
		    $sumlpl = 0.0;
1107
		    $per = 0;
1108
		    $adate = $dfrom;
1109
		    $oldphase = $tmp_phase;
1110
		    $oldtask = $tmp_taname;
1111
		    $first = false;
1112
		    $class = "selltgray";
1113
		 }
1114
 
1115
		 # Stimmt die aktuelle Position nicht mit der Periode ueberein,
1116
		 # uebergehen wir die Zellen.
1117
		 #
1118
		 while ($adate < $tmp_periode) {
1119
		    Cell($class, 0, 0, true);
1120
 
1121
		    if ($class == "selltgray")
1122
		       $class = "selgray";
1123
		    else
1124
		       $class = "selltgray";
1125
 
1126
		    $adate = IncDate($periode, $adate);
1127
		    $per++;
1128
	         }
1129
 
1130
	         # Schreiben einer Zelle mit den aktuellen Werten.
1131
	         Cell($class, $tmp_ist, $tmp_plan, false);
1132
 
1133
	         if ($class == "selltgray")
1134
	            $class = "selgray";
1135
	         else
1136
	            $class = "selltgray";
1137
 
1138
	         $sumperp[$per] += $tmp_plan;
1139
	         $sumperi[$per] += $tmp_ist;
1140
	         $totalis[$per] += $tmp_ist;
1141
	         $totalpl[$per] += $tmp_plan;
1142
	         $mitoti[$per] += $tmp_ist;
1143
	         $mitotp[$per] += $tmp_plan;
1144
	         $sumlpl += $tmp_plan;
1145
	         $sumlis += $tmp_ist;
1146
	         $adate = IncDate($periode, $adate);
1147
	         $per++;
1148
	         $rows++;
1149
	      }
1150
 
1151
	      # Beenden der der letzten Datenzeile der aktuellen Tabelle.
1152
	      #
1153
	      while ($adate <= $dto) {
1154
	         Cell($class, 0, 0, true);
1155
 
1156
	         if ($class == "selltgray")
1157
	            $class = "selgray";
1158
	         else
1159
	            $class = "selltgray";
1160
 
1161
	         $adate = IncDate($periode, $adate);
1162
	      }
1163
 
1164
	      ZSum($sumlis, $sumlpl);
1165
	      echo "</tr>\n";
1166
	      $cp = $csp - 3;
1167
 
1168
	      if ($prp_num == 0) {
1169
	         echo "<tr><td class=\"selnum\" colspan=$cp><b>Projektsumme:</b></td>";
1170
	         $adate = $dfrom;
1171
	         $per = 0;
1172
	         $sumi = 0.0;
1173
	         $sump = 0.0;
1174
 
1175
	         while ($adate <= $dto) {
1176
		    Cell("lsum", $sumperi[$per], $sumperp[$per]);
1177
		    $adate = IncDate($periode, $adate);
1178
		    $sumi += $sumperi[$per];
1179
		    $sump += $sumperp[$per];
1180
		    $sumperi[$per] = 0.0;
1181
		    $sumperp[$per] = 0.0;
1182
		    $per++;
1183
	         }
1184
 
1185
	         Zsum($sumi, $sump);
1186
	         echo "</tr>\n";
1187
	      }
1188
 
1189
	      $pospr++;
1190
	   }
1191
 
1192
	   $cp = $csp - 3;
1193
	   echo "<tr><td class=\"selnum\" colspan=$cp><b>Gesamtsumme Mitarbeiter:</b></td>";
1194
	   $adate = $dfrom;
1195
	   $per = 0;
1196
	   $sumi = 0.0;
1197
	   $sump = 0.0;
1198
 
1199
	   while ($adate <= $dto) {
1200
	      Cell("seldkgray", $mitoti[$per], $mitotp[$per]);
1201
	      $adate = IncDate($periode, $adate);
1202
	      $sumi += $mitoti[$per];
1203
	      $sump += $mitotp[$per];
1204
	      $mitoti[$per] = 0.0;
1205
	      $mitotp[$per] = 0.0;
1206
	      $per++;
1207
	   }
1208
 
1209
	   Zsum($sumi, $sump);
1210
	   echo "</tr>\n";
1211
	   $posmi++;
1212
	}
1213
 
1214
	# Monatssummen und Gesamtzeitraumsumme am Ende der Tabelle
1215
	# anzeigen.
1216
	#
1217
	if ($mi_num == 0) {
1218
	   echo "<tr><td class=\"selnum\" colspan=$cp><b>Monatssummen:</b></td>";
1219
	   $adate = $dfrom;
1220
	   $per = 0;
1221
	   $sumi = 0.0;
1222
	   $sump = 0.0;
1223
 
1224
	   while ($adate <= $dto) {
1225
	      Cell("sum", $totalis[$per], $totalpl[$per]);
1226
	      $adate = IncDate($periode, $adate);
1227
	      $sumi += $totalis[$per];
1228
	      $sump += $totalpl[$per];
1229
	      $per++;
1230
	   }
1231
 
1232
	   Cell("two", $sumi, $sump);
1233
	   echo "</tr>\n";
1234
	}
1235
 
1236
	echo "</table><br>\n";
1237
}
1238
 
1239
# Folgende Funktion wertet die vom Anwender getroffenen Einstellungen aus
1240
# und ruft die entsprechenden Funktionen auf um die Listen darzustellen.
1241
#
1242
function PrintList() {
1243
	global $phase;
1244
	global $pmlight;
1245
	$pl_num = $_REQUEST['pl_num'];
1246
	$mi_num = $_REQUEST['mi_num'];
1247
	$dfrom = $_REQUEST['dfrom'];
1248
	$dto = $_REQUEST['dto'];
1249
	$fields_0 = $_REQUEST['fields_0'];
1250
	$fields_1 = $_REQUEST['fields_1'];
1251
	$fields_2 = $_REQUEST['fields_2'];
1252
	$fields_3 = $_REQUEST['fields_3'];
1253
	$fields_4 = $_REQUEST['fields_4'];
1254
	$fields_5 = $_REQUEST['fields_5'];
1255
	$fields_6 = $_REQUEST['fields_6'];
1256
	$sort = $_REQUEST['sort'];
1257
	$level = $_REQUEST['level'];
1258
 
1259
	# Als erstes pruefen wir, ob die wichtigen Parameter auch korrekt
1260
	# gesetzt wurden.
1261
	if ($dfrom > $dto) {
1262
	   Error("Das Beginndatum darf nicht h&ouml;her sein als das Endedatum!");
1263
	   return;
1264
	}
1265
 
1266
	$db = OpenDB();
1267
	# In einem ersten Schritt zeichnen wir eine Box in der die gewaehlten
1268
	# Parameter angezeigt werden:
1269
	#
1270
	echo "<table class=\"input\">\n";
1271
	echo "<tr><td><table border=0 cellpadding=0 cellspacing=0>\n";
1272
	echo "<tr><td>Projekt:</td><td>";
1273
 
1274
	if ($pl_num == 0) {
1275
	   echo "Alle";
1276
	} else {
1277
	   $query = "select pl_prnum, pr_name from plan, project ";
1278
	   $query .= "where pr_num = pl_prnum and pl_num = $pl_num";
1279
	   $result = QueryDB($db, $query);
1280
 
1281
	   if (!$result) {
1282
	      closeDB($db);
1283
	      return;
1284
	   }
1285
 
1286
	   $data = fetchDB($result, 0);
1287
	   $pr_num = $data[0];
1288
	   $pr_name = $data[1];
1289
	   echo "$pr_num $pr_name";
1290
	}
1291
 
1292
	echo "</td></tr>\n";
1293
	echo "<tr><td>Mitarbeiter:</td><td>";
1294
 
1295
	if ($mi_num == 0) {
1296
	   echo "Alle";
1297
	} else {
1298
	   $query = "select mi_nname, mi_vname from mitarbeiter where mi_num = $mi_num";
1299
	   $result = QueryDB($db, $query);
1300
 
1301
	   if (!$result) {
1302
	      closeDB($db);
1303
	      return;
1304
	   }
1305
 
1306
	   $data = fetchDB($result, 0);
1307
	   $mi_nname = $data[0];
1308
	   $mi_vname = $data[1];
1309
	   echo "$mi_nname $mi_vname";
1310
	}
1311
 
1312
	echo "</td></tr>\n";
1313
	echo "<tr><td>Zeitraum:</td><td class=\"selnf\">";
1314
	echo "Von: " . date("n.Y", $dfrom) . " ";
1315
	echo "Bis: " . date("n.Y", $dto);
1316
	echo "</td></tr>\n";
1317
 
1318
	echo "<tr><td valign=\"top\">Spaltenauswahl:</td>\n";
1319
	echo "<td class=\"selnf\">";
1320
 
1321
	if ($fields_2 > 0)
1322
	   echo "Gruppe<br>\n";
1323
 
1324
	if ($fields_6 > 0)
1325
	   echo "Phasen<br>\n";
1326
 
1327
	if ($fields_0 > 0)
1328
	   echo "Tasks anzeigen<br>\n";
1329
 
1330
	if ($fields_1 > 0)
1331
	   echo "Anmerkungen<br>\n";
1332
 
1333
	if ($fields_4 > 0)
1334
	   echo "IST-Werte<br>\n";
1335
 
1336
	if ($fields_3 > 0)
1337
	   echo "IST- / Plandifferenz<br>\n";
1338
 
1339
	if ($fields_5 > 0)
1340
	   echo "Planwerte<br>\n";
1341
 
1342
	echo "</td></tr>\n";
1343
 
1344
	echo "<tr><td>Sortierreihenfolge:</td><td>\n";
1345
 
1346
	if ($sort == 1)
1347
	   echo "Projekte / Mitarbeiter";
1348
	else
1349
	   echo "Mitarbeiter / Projekte";
1350
 
1351
	echo "</td></tr>\n";
1352
 
1353
/*	echo "<tr><td>Plantiefe:</td><td>\n";
1354
 
1355
	if ($level == -1)
1356
	   echo "Alle";
1357
	else
1358
	   echo "Bis zu Level $level";
1359
 
1360
	echo "</td></tr>\n"; */
1361
	echo "</table></td></tr></table><br>\n";
1362
 
1363
	if ($sort == 1)
1364
	   ProjektMa($db, $pr_num, $mi_num);
1365
	else
1366
	   MitarbeiterPj($db, $mi_num, $pr_num);
1367
 
1368
	closeDB($db);
1369
}
1370
 
1371
# Auswertung des Menues:
1372
#
1373
if ($knopf == 27)		// Ressourcenauslastung
1374
   Preselect();
1375
 
1376
if ($func == "repeatpj")
1377
   Preselect(1);
1378
 
1379
# Auswertung der Funktionen
1380
if ($func == "prlist") {
1381
   $pl_num = $_REQUEST['pl_num'];
1382
   $mi_num = $_REQUEST['mi_num'];
1383
   $dfrom = $_REQUEST['dfrom'];
1384
   $dto = $_REQUEST['dto'];
1385
   $fields_0 = $_REQUEST['fields_0'];
1386
   $fields_1 = $_REQUEST['fields_1'];
1387
   $fields_2 = $_REQUEST['fields_2'];
1388
   $fields_3 = $_REQUEST['fields_3'];
1389
   $fields_4 = $_REQUEST['fields_4'];
1390
   $fields_5 = $_REQUEST['fields_5'];
1391
   $fields_6 = $_REQUEST['fields_6'];
1392
   $sort = $_REQUEST['sort'];
1393
   $level = $_REQUEST['level'];
1394
 
1395
   echo "<table class=\"indent\"><tr><td>";
1396
   ButtonPrint("Drucken", "auswertung.php",
1397
//   echo "<a href=\"#\" onClick=\"javascript:open_mwindow('auswertung.php?";
1398
   "pl_num=$pl_num&dfrom=$dfrom&dto=$dto&fields_0=$fields_0" .
1399
   "&fields_1=$fields_1&fields_2=$fields_2&fields_3=$fields_3" .
1400
   "&fields_4=$fields_4&fields_5=$fields_5&fields_6=$fields_6" .
1401
   "&mi_num=$mi_num&sort=$sort&level=$level&header=2&" .
1402
   "func=pauswertung"); //', 'Auswertung', 1000, 650)");
1403
//   echo "<img src=\"image/print.png\" border=0 alt=\"Drucken\"></a>\n";
1404
   echo "</td><td>";
1405
   ButtonPrint("PDF Ausgabe", "auswertpdf.php",
1406
   "pl_num=$pl_num&dfrom=$dfrom&dto=$dto&fields_0=$fields_0" .
1407
   "&fields_1=$fields_1&fields_2=$fields_2&fields_3=$fields_3" .
1408
   "&fields_4=$fields_4&fields_5=$fields_5&fields_6=$fields_6" .
1409
   "&mi_num=$mi_num&sort=$sort&level=$level&header=2&" .
1410
   "func=pauswertung", true);
1411
//   echo "</td></tr><tr><td colspan=2>";
1412
//   phpinfo();
1413
   echo "</td></tr></table>";
1414
   PrintList();
1415
}
1416
 
1417
if ($func == "pauswertung") {
1418
   PrintList();
1419
}
1420
 
1421
require('footer.inc');
1422
?>