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('crypt.inc');
7
require_once('settings.inc');
8
require_once('menu.inc');
9
 
10
function NewPj($unum, $headline, $menu, $rstufe) {
11
	global $pmlight;
12
	$db = OpenDB();
13
 
14
	$num = $_REQUEST['num'];
15
	$name = $_REQUEST['name'];
16
	$pl = $_REQUEST['pl'];
17
	$plav = $_REQUEST['plav'];
18
	$sgf = $_REQUEST['sgf'];
19
	$tmgroup = $_REQUEST['tmgroup'];
20
	$status = $_REQUEST['status'];
21
?>
22
<p class="cry">Neues Projekt anlegen</p>
23
<form name="edit" action="edit_pj.php" method="post">
24
<input type="hidden" name="unum" value="<? echo "$unum"; ?>">
25
<input type="hidden" name="headline" value="12">
26
<input type="hidden" name="menu" value="<? echo "$menu"; ?>">
27
<input type="hidden" name="rstufe" value="<? echo "$rstufe"; ?>">
28
<input type="hidden" name="func" value="CheckNewPj">
29
<br>
30
<table class="indent"><tr><td>
31
<?php
32
	ButtonLink("Zur&uuml;ck", "forms.php", "unum=$unum&headline=$headline&menu=$menu&rstufe=$rstufe");
33
//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";
34
?>
35
</td></tr></table>
36
<table border=0 cellspacing=0 cellpadding=0><tr><td valign="top">
37
<table class="input">
38
   <tr>
39
      <td>Projektnummer:</td>
40
      <td><input type="text" class="inputmust" name="num" value="<? echo "$num"; ?>" size=8 maxlength=8></td>
41
   </tr>
42
   <tr>
43
      <td>Bezeichnung:</td>
44
      <td><input type="text" class="inputmust" name="name" value="<? echo "$name"; ?>" size=60 maxlength=100></td>
45
   </tr>
46
   <tr>
47
      <td>Projektleiter:</td>
48
      <td><select name="pl"><?php
49
	$query = "select mi_num, mi_vname, mi_nname from mitarbeiter where ";
50
	$query .= "mi_rstufe in (1,2) and mi_plan = true ";
51
	$query .= "order by mi_nname, mi_vname";
52
	$result = QueryDB($db, $query);
53
	$numrows = numrowsDB($result);
54
	$row = 0;
55
 
56
	while ($row < $numrows) {
57
	   $data = fetchDB($result, $row);
58
	   $mi_num = $data[0];
59
	   $mi_vname = $data[1];
60
	   $mi_nname = $data[2];
61
	   echo "<option value=\"$mi_num\"";
62
 
63
	   if ($pl == $mi_num)
64
	      echo " selected";
65
 
66
	   echo ">$mi_nname $mi_vname</option>\n";
67
	   $row++;
68
	}
69
?>
70
         </select>
71
      </td>
72
   </tr>
73
<?
74
	if (!$pmlight) {
75
?>
76
   <tr>
77
      <td>PLA-V:</td>
78
      <td><select name="plav"><?php
79
	$query = "select mi_num, mi_vname, mi_nname from mitarbeiter where ";
80
	$query .= "mi_rstufe in (1,2) and mi_plan = true ";
81
	$query .= "order by mi_nname, mi_vname";
82
	$result = QueryDB($db, $query);
83
	$numrows = numrowsDB($result);
84
	$row = 0;
85
 
86
	while ($row < $numrows) {
87
	   $data = fetchDB($result, $row);
88
	   $mi_num = $data[0];
89
	   $mi_vname = $data[1];
90
	   $mi_nname = $data[2];
91
 
92
	   echo "<option value=\"";
93
 
94
	   if ($plav == $mi_num)
95
	      echo " selected";
96
 
97
	   echo ">$mi_nname $mi_vname</option>\n";
98
	   $row++;
99
	}
100
?>
101
         </select>
102
      </td>
103
   </tr>
104
   <tr>
105
      <td>Auftraggeber:</td>
106
      <td><select name="sgf"><?php
107
	$query = "select ks_num, ks_sgf from key_sgf order by ks_sgf";
108
	$result = QueryDB($db, $query);
109
	$numrows = numrowsDB($result);
110
	$row = 0;
111
 
112
	while ($row < $numrows) {
113
	   $data = fetchDB($result, $row);
114
	   $ks_num = $data[0];
115
	   $ks_sgf = $data[1];
116
	   echo "<option value=\"$ks_num\"";
117
 
118
	   if ($sgf == $ks_num)
119
	      echo " selected";
120
 
121
	   echo ">$ks_sgf</option>\n";
122
	   $row++;
123
	}
124
?>
125
         </select>
126
      </td>
127
   </tr>
128
   <tr>
129
      <td>Themenmanagergruppe:</td>
130
      <td><select name="tmgroup"><?php
131
	$query = "select kt_num, kt_tm from key_tmgroup order by kt_tm";
132
	$result = QueryDB($db, $query);
133
	$numrows = numrowsDB($result);
134
	$row = 0;
135
 
136
	while ($row < $numrows) {
137
	   $data = fetchDB($result, $row);
138
	   $kt_num = $data[0];
139
	   $kt_tm = $data[1];
140
	   echo "<option value=\"$kt_num\"";
141
 
142
	   if ($tmgroup == $kt_num)
143
	      echo " selected";
144
 
145
	   echo ">$kt_tm</option>\n";
146
	   $row++;
147
	}
148
?>
149
         </select>
150
      </td>
151
   </tr>
152
<?
153
	}
154
?>
155
   <tr>
156
      <td>Projektart:</td>
157
      <td><select name="status">
158
             <option value="0">Projekt</option>
159
             <option value="1"<? if ($status == 1) echo " selected"; ?>>Konto</option>
160
          </select>
161
      </td>
162
   </tr>
163
<?
164
	if ($pmlight) {
165
	   echo "<input type=\"hidden\" name=\"plav\" value=\"$unum\">\n";
166
	   echo "<input type=\"hidden\" name=\"sgf\" value=\"1\">\n";
167
	   echo "<input type=\"hidden\" name=\"tmgroup\" value=\"1\">\n";
168
	}
169
?>
170
</table>
171
</td><td>
172
<table class="input">
173
  <tr>
174
    <td colspan=3 align="center">Benutzer und Rolle dem Projekt zuordnen:</td>
175
  </tr>
176
  <tr>
177
    <td><select name="mitarbeiter">
178
<?
179
	$query = "select mi_num, mi_nname, mi_vname from mitarbeiter ";
180
	$query .= "order by mi_nname, mi_vname";
181
 
182
	if (!($result = QueryDB($db, $query))) {
183
	   Error("Interner Fehler: Es konnten keine Mitarbeiter gefunden werden!");
184
	   closeDB($db);
185
	   return;
186
	}
187
 
188
	$anz = numrowsDB($result);
189
	$i = 0;
190
 
191
	while ($i < $anz) {
192
	   $data = fetchDB($result, $i);
193
	   $mi_num = $data[0];
194
	   $mi_nname = $data[1];
195
	   $mi_vname = $data[2];
196
 
197
	   echo "<option value=\"$mi_num\">$mi_nname $mi_vname</option>\n";
198
	   $i++;
199
	}
200
?>
201
      </select>
202
    </td>
203
    <td>
204
      <select name="role">
205
<?
206
	$query = "select kr_num, kr_role from key_role order by kr_role";
207
 
208
	if (!($result = QueryDB($db, $query))) {
209
	   Error("Interner Fehler: Es konnten keine Mitarbeiterrollen gefunden werden!");
210
	   closeDB($db);
211
	   return;
212
	}
213
 
214
	$anz = numrowsDB($result);
215
	$i = 0;
216
 
217
	while ($i < $anz) {
218
	   $data = fetchDB($result, $i);
219
	   $kr_num = $data[0];
220
	   $kr_role = $data[1];
221
 
222
	   echo "<option \"$kr_num\">$kr_role</option>\n";
223
	   $i++;
224
	}
225
?>
226
      </select>
227
    </td>
228
    <td>
229
<?
230
	$lines = "num='+document.edit.num+'&name='+document.edit.name+'&pl=";
231
	$lines .= "'+document.edit.pl+'&plav='+document.edit.plav+'&sgf=";
232
	$lines .= "'+document.edit.sgf+'&tmgroup='+document.edit.tmgroup+";
233
	$lines .= "'&status='+document.edit.status+'&mitarbeiter='";
234
	$lines .= "+document.edit.mitarbeiter+'&role='+document.edit.role+'";
235
	ButtonLink("Hinzuf&uuml;gen", "edit_pj.php", "unum=$unum&headline=$headline&menu=$menu&rstufe=$rstufe&func=matoprn&$lines");
236
?>
237
    </td>
238
  </tr>
239
  <tr>
240
     <td colspan=3>
241
       <select size=6 name="matopr">
242
<?
243
	$query = "select ma_num, mi_nname, mi_vname, kr_role from matopr ";
244
	$query .= "left join mitarbeiter on mi_num = ma_num ";
245
	$query .= "left join key_role on kr_num = ma_role ";
246
	$query .= "order by kr_role, mi_nname, mi_vname";
247
 
248
	if (!($result = QueryDB($db, $query))) {
249
	   Error("Interner Fehler: Keine Mitarbeiterzuordnungen gefunden!");
250
	   closeDB($db);
251
	   return;
252
	}
253
 
254
	$anz = numrowsDB($result);
255
	$i = 0;
256
 
257
	while ($i < $anz) {
258
	   $data = fetchDB($result, $i);
259
	   $ma_num = $data[0];
260
	   $mi_nname = $data[1];
261
	   $mi_vname = $data[2];
262
	   $kr_role = $data[3];
263
	   echo "<option value=\"ma_num\">$mi_nname $mi_vname, <$kr_role></option>\n";
264
	   $i++;
265
	}
266
?>
267
      </select>
268
    </td>
269
  </tr>
270
</table>
271
</td></tr></table>
272
<table class="indent"><tr><td>
273
<?
274
	ButtonSubmit("Speichern", "edit");
275
//<input type="submit" name="submit" value="Daten senden"> <input type="reset">
276
?>
277
</td></tr></table>
278
</form>
279
<?
280
	closeDB($db);
281
}
282
 
283
function EditPj($pjnum, $unum, $headline, $menu, $rstufe) {
284
	global $pmlight;
285
	$db = OpenDB();
286
 
287
	if ($pjnum > 0) {
288
	   $query = "select pr_name, pr_pl, pr_plav, pr_sgf, pr_tmgroup, pr_status ";
289
	   $query = $query . "from project where pr_num = $pjnum";
290
	   $result = QueryDB($db, $query);
291
	   $numrows = numrowsDB($result);
292
 
293
	   if ($numrows != 1) {
294
	      Error("Error: Projekt \"$pjnum\" wurde nicht gefunden!\n");
295
	      return;
296
	   }
297
 
298
	   $data = fetchDB($result, 0);
299
	   $pr_num = $pjnum;
300
	   $pr_name = $data[0];
301
	   $pr_pl = $data[1];
302
	   $pr_plav = $data[2];
303
	   $pr_sgf = $data[3];
304
	   $pr_tmgroup = $data[4];
305
	   $pr_status = $data[5];
306
	   echo "<p class=\"cry\">Projekt Editieren</p>\n";
307
	} else {
308
	   $pr_num = $_REQUEST['num'];
309
	   $pr_name = $_REQUEST['name'];
310
	   $pr_pl = $_REQUEST['pl'];
311
	   $pr_plav = $_REQUEST['plav'];
312
	   $pr_sgf = $_REQUEST['sgf'];
313
	   $pr_tmgroup = $_REQUEST['tmgroup'];
314
	   $pr_status = $_REQUEST['status'];
315
	   echo "<p class=\"cry\">Eingabefehler!</p>\n";
316
	}
317
?>
318
<form name="edit" action="edit_pj.php" method="post">
319
<input type="hidden" name="unum" value="<? echo "$unum"; ?>">
320
<?php
321
	if ($pjnum <= 0) {
322
	   echo "<input type=\"hidden\" name=\"headline\" value=\"12\">\n";
323
	} else {
324
	   echo "<input type=\"hidden\" name=\"headline\" value=\"13\">\n";
325
	}
326
?>
327
<input type="hidden" name="menu" value="<? echo "$menu"; ?>">
328
<input type="hidden" name="rstufe" value="<? echo "$rstufe"; ?>">
329
<input type="hidden" name="minum" value="<? echo "$pjnum"; ?>">
330
<input type="hidden" name="status" value="<? echo "$pr_status"; ?>">
331
<input type="hidden" name="func" value="CheckEditPj">
332
<br>
333
<table class="indent"><tr><td>
334
<?php
335
	ButtonLink("Zur&uuml;ck", "forms.php", "unum=$unum&headline=$headline&menu=$menu&rstufe=$rstufe");
336
?>
337
</td></tr></table>
338
<table class="input">
339
   <tr>
340
      <td>Projektnummer:</td>
341
      <td><input type="text" class="inputmust" name="num" value="<? echo "$pr_num"; ?>" size=8 maxlength=8></td>
342
   </tr>
343
   <tr>
344
      <td>Bezeichnung:</td>
345
      <td><input type="text" class="inputmust" name="name" value="<? echo "$pr_name"; ?>" size=60 maxlength=100></td>
346
   </tr>
347
   <tr>
348
      <td>Projektleiter:</td>
349
      <td><select name="pl"><?php
350
	$query = "select mi_num, mi_vname, mi_nname from mitarbeiter where ";
351
	$query .= "mi_rstufe in (1,2) and mi_plan = true ";
352
	$query .= "order by mi_nname, mi_vname";
353
	$result = QueryDB($db, $query);
354
	$numrows = numrowsDB($result);
355
	$row = 0;
356
 
357
	while ($row < $numrows) {
358
	   $data = fetchDB($result, $row);
359
	   $mi_num = $data[0];
360
	   $mi_vname = $data[1];
361
	   $mi_nname = $data[2];
362
 
363
	   if ($pr_pl == $mi_num) {
364
	      echo "<option selected value=\"$mi_num\">$mi_nname $mi_vname</option>\n";
365
	   } else {
366
	      echo "<option value=\"$mi_num\">$mi_nname $mi_vname</option>\n";
367
	   }
368
 
369
	   $row++;
370
	}
371
?>
372
         </select>
373
      </td>
374
   </tr>
375
<?
376
	if (!$pmlight) {
377
?>
378
   <tr>
379
      <td>PLA-V:</td>
380
      <td><select name="plav"><?php
381
	$query = "select mi_num, mi_vname, mi_nname from mitarbeiter where ";
382
	$query .= "mi_rstufe in (1,2) and mi_plan = true ";
383
	$query .= "order by mi_nname, mi_vname";
384
	$result = QueryDB($db, $query);
385
	$numrows = numrowsDB($result);
386
	$row = 0;
387
 
388
	while ($row < $numrows) {
389
	   $data = fetchDB($result, $row);
390
	   $mi_num = $data[0];
391
	   $mi_vname = $data[1];
392
	   $mi_nname = $data[2];
393
 
394
	   if ($pr_plav == $mi_num) {
395
	      echo "<option selected value=\"$mi_num\">$mi_nname $mi_vname</option>\n";
396
	   } else {
397
	      echo "<option value=\"$mi_num\">$mi_nname $mi_vname</option>\n";
398
	   }
399
 
400
	   $row++;
401
	}
402
?>
403
         </select>
404
      </td>
405
   </tr>
406
   <tr>
407
      <td>Auftraggeber:</td>
408
      <td><select name="sgf"><?php
409
	$query = "select ks_num, ks_sgf from key_sgf order by ks_sgf";
410
	$result = QueryDB($db, $query);
411
	$numrows = numrowsDB($result);
412
	$row = 0;
413
 
414
	while ($row < $numrows) {
415
	   $data = fetchDB($result, $row);
416
	   $ks_num = $data[0];
417
	   $ks_sgf = $data[1];
418
 
419
	   if ($ks_num == $pr_sgf) {
420
	      echo "<option selected value=\"$ks_num\">$ks_sgf</option>\n";
421
	   } else {
422
	      echo "<option value=\"$ks_num\">$ks_sgf</option>\n";
423
	   }
424
 
425
	   $row++;
426
	}
427
?>
428
         </select>
429
      </td>
430
   </tr>
431
   <tr>
432
      <td>Themenmanagergruppe:</td>
433
      <td><select name="tmgroup"><?php
434
	$query = "select kt_num, kt_tm from key_tmgroup order by kt_tm";
435
	$result = QueryDB($db, $query);
436
	$numrows = numrowsDB($result);
437
	$row = 0;
438
 
439
	while ($row < $numrows) {
440
	   $data = fetchDB($result, $row);
441
	   $kt_num = $data[0];
442
	   $kt_tm = $data[1];
443
 
444
	   if ($kt_num == $pr_tmgroup) {
445
	      echo "<option selected value=\"$kt_num\">$kt_tm</option>\n";
446
	   } else {
447
	      echo "<option value=\"$kt_num\">$kt_tm</option>\n";
448
	   }
449
 
450
	   $row++;
451
	}
452
?>
453
         </select>
454
      </td>
455
   </tr>
456
<?
457
	}
458
?>
459
   <tr>
460
      <td>Projektart:</td>
461
      <td><select name="status" disabled>
462
             <option value="0">Projekt</option>
463
             <option value="1" <? if (isset($pr_status) && $pr_status) echo "selected"; ?>>Konto</option>
464
          </select>
465
      </td>
466
   </tr>
467
<?
468
	if ($pmlight) {
469
	   echo "<input type=\"hidden\" name=\"plav\" value=\"$unum\">\n";
470
	   echo "<input type=\"hidden\" name=\"sgf\" value=\"1\">\n";
471
	   echo "<input type=\"hidden\" name=\"tmgroup\" value=\"1\">\n";
472
	}
473
?>
474
</table>
475
<table class="indent"><tr><td>
476
<?
477
	ButtonSubmit("Speichern", "edit");
478
?>
479
</td></tr></table>
480
</form>
481
<?
482
	closeDB($db);
483
}
484
 
485
function CheckNewPj($unum, $headline, $menu, $rstufe) {
486
	$pr_num = $_REQUEST['num'];
487
	$pr_name = $_REQUEST['name'];
488
	$pr_pl = $_REQUEST['pl'];
489
	$pr_plav = $_REQUEST['plav'];
490
	$pr_sgf = $_REQUEST['sgf'];
491
	$pr_tmgroup = $_REQUEST['tmgroup'];
492
	$pr_status = $_REQUEST['status'];
493
	$err = 0;
494
 
495
	if ($pr_num < 1) {
496
	   Error("Sie m&uuml;ssen eine Projektnummer eingeben!\n");
497
	   $err = 1;
498
	}
499
 
500
	if (!strlen($pr_name)) {
501
	   Error("Sie m&uuml;ssen eine Projektbezeichnung eingeben!\n");
502
	   $err = 1;
503
	}
504
 
505
	$db = OpenDB();
506
	$query = "select pr_name from project where pr_num = $pr_num";
507
	$result = QueryDB($db, $query);
508
	$numrows = numrowsDB($result);
509
 
510
	if ($numrows != 0) {
511
	   Error("Ein Projekt mit der Nummer \"$pr_num\" existiert bereits!\n");
512
	   $err = 1;
513
	}
514
 
515
	$query = "select pr_num from project where pr_name = '$pr_name'";
516
	$result = QueryDB($db, $query);
517
	$numrows = numrowsDB($result);
518
 
519
	if ($numrows != 0) {
520
	   Error("Ein Projekt mit dem Namen \"<i>$pr_name</i>\" existiert bereits!\n");
521
	   $err = 1;
522
	}
523
 
524
	if ($err == 1) {
525
	   EditPj(0, $unum, $headline, $menu, $rstufe);
526
	   return false;
527
	}
528
 
529
	# An dieser Stelle haben wir eine gepruefte Datenbasis, welche wir
530
	# als neuen Datensatz speichern koennen.
531
	if (!QueryDB($db, "begin")) {
532
	   closeDB($db);
533
	   return false;
534
	}
535
 
536
	$query = "insert into project (pr_num, pr_name, pr_pl, pr_plav, pr_sgf, pr_tmgroup, pr_status) ";
537
	$query = $query . "values ($pr_num, '$pr_name', $pr_pl, $pr_plav, $pr_sgf, $pr_tmgroup, $pr_status)";
538
 
539
	if (!QueryDB($db, $query)) {
540
	   QueryDB($db, "rollback");
541
	   closeDB($db);
542
	   return false;
543
	}
544
 
545
	# Handelt es sich um ein "Konto" dann muessen wir einen versteckten
546
	# Plan anlegen. Um Den Plan deutlich als Pseudoplan zu kennzeichnen
547
	# bekommt er den Status 0.
548
	if ($pr_status == 1) {
549
	   $query = "select co_plan, co_task from counter";
550
 
551
	   if (!($result = QueryDB($db, $query))) {
552
	      QueryDB($db, "rollback");
553
	      closeDB($db);
554
	      return false;
555
	   }
556
 
557
	   $data = fetchDB($result, 0);
558
	   $co_plan = $data[0] + 1;
559
	   $co_task = $data[1] + 1;
560
	   $query = "insert into plan (pl_num, pl_lfd, pl_prnum, pl_status) ";
561
	   $query .= "values ($co_plan, 0, $pr_num, 0)";
562
 
563
	   if (!QueryDB($db, $query)) {
564
	      QueryDB($db, "rollback");
565
	      closeDB($db);
566
	      return false;
567
	   }
568
 
569
	   $ta_hash = md5($co_task);
570
	   $query = "insert into task (ta_num, ta_plnum, ta_id, ta_name, ";
571
	   $query .= "ta_meeting, ta_start, ta_duration, ta_level, ta_phase, ta_hash) ";
572
	   $query .= "values ($co_task, $co_plan, 0, '$pr_name', 0, 0, ";
573
	   $query .= "-32767, 0, 0, '$ta_hash')";
574
 
575
	   if (!QueryDB($db, $query)) {
576
	      QueryDB($db, "rollback");
577
	      closeDB($db);
578
	      return false;
579
	   }
580
 
581
	   $query = "update counter set co_plan = $co_plan, co_task = $co_task";
582
 
583
	   if (!QueryDB($db, $query)) {
584
	      QueryDB($db, "rollback");
585
	      closeDB($db);
586
	      return false;
587
	   }
588
	}
589
 
590
	QueryDB($db, "commit");
591
	Journal(203, "Projekt: $pr_num $pr_name", $db);
592
 
593
	if ($pr_status == 1)
594
	   Journal(204, "Plan: $co_plan; Projekt: $pr_num", $db);
595
 
596
	closeDB($db);
597
	return true;
598
}
599
 
600
function CheckEditPj($unum, $headline, $menu, $rstufe) {
601
	$pr_num = $_REQUEST['num'];
602
	$pr_name = $_REQUEST['name'];
603
	$pr_pl = $_REQUEST['pl'];
604
	$pr_plav = $_REQUEST['plav'];
605
	$pr_sgf = $_REQUEST['sgf'];
606
	$pr_tmgroup = $_REQUEST['tmgroup'];
607
	$pr_status = $_REQUEST['status'];
608
	$err = 0;
609
 
610
	if ($pr_num < 1) {
611
	   Error("Sie m&uuml;ssen eine Projektnummer eingeben!\n");
612
	   $err = 1;
613
	}
614
 
615
	if (!strlen($pr_name)) {
616
	   Error("Sie m&uuml;ssen eine Projektbezeichnung eingeben!\n");
617
	   $err = 1;
618
	}
619
 
620
	$db = OpenDB();
621
	$query = "select pr_name from project where pr_num = $pr_num";
622
	$result = QueryDB($db, $query);
623
	$numrows = numrowsDB($result);
624
 
625
	if ($numrows != 1) {
626
	   Error("Ein Projekt mit der Nummer \"$pr_num\" existiert nicht!\n");
627
	   $err = 1;
628
	}
629
 
630
	if ($err == 1) {
631
	   EditPj(0, $unum, $headline, $menu, $rstufe);
632
	   return false;
633
	}
634
 
635
	# An dieser Stelle haben wir eine gepruefte Datenbasis, welche wir
636
	# speichern koennen.
637
	if (!QueryDB($db, "begin")) {
638
	   closeDB($db);
639
	   return false;
640
	}
641
 
642
	$query = "update project set pr_name = '$pr_name', pr_pl = $pr_pl, pr_plav = $pr_plav, ";
643
	$query .= "pr_sgf = $pr_sgf, pr_tmgroup = $pr_tmgroup, pr_status = $pr_status ";
644
	$query .= "where pr_num = $pr_num";
645
 
646
	if (!QueryDB($db, $query)) {
647
	   QueryDB($db, "rollback");
648
	   closeDB($db);
649
	   return false;
650
	}
651
 
652
	Journal(301, "Projekt: $pr_num $pr_name", $db);
653
	closeDB($db);
654
	return true;
655
}
656
 
657
function AskDelete ($pr_num) {
658
	$headline = $_REQUEST['headline'];
659
	$menu = $_REQUEST['menu'];
660
 
661
	$nav = "pr_num=$pr_num&menu=$menu&";
662
	$nav .= "headline=$headline&func=DeletePj";
663
 
664
	# Projektnamen auslesen
665
	$db = OpenDB();
666
	$query = "select pr_name from project where pr_num = $pr_num";
667
 
668
	if (!($result = QueryDB($db, $query))) {
669
	   closeDB($db);
670
	   return;
671
	}
672
 
673
	$data = fetchDB($result, 0);
674
	$pr_name = $data[0];
675
	closeDB($db);
676
?>
677
<br>
678
<form name="Alarm" method="post">
679
<table border=2 class="alarm">
680
   <tr><td colspan=2 style="text-align: center"><big>Warnung!</big><br><br>
681
           Wollen Sie wirklich das Projekt<br>
682
	   <b><? echo "$pr_num $pr_name"; ?></b><br>
683
	   unwiederbringlich l&ouml;schen?<br>
684
	   Es werden alle Pl&auml;ne dieses Projekts und alle
685
	   eventuell angefallenen Aufw&auml;nde der Mitarbeiter
686
	   automatisch gel&ouml;scht!!<br><br>
687
	   Projekt unwiederbringlich l&ouml;schen?
688
      </td>
689
   </tr>
690
   <tr>
691
      <td><center><input type="button" name="yes" value="L&ouml;schen" onClick="javascript:MoveTo('edit_pj.php','yes=yes&<? echo "$nav"; ?>')"></center></td>
692
      <td><center><input type="button" name="no" value="Abbruch" onClick="javascript:MoveTo('edit_pj.php','no=no&<? echo "$nav"; ?>')"></center></td>
693
   </tr>
694
</table>
695
</form>
696
<?php
697
}
698
 
699
function DeleteProject($pr_num) {
700
	global $rstufe;
701
 
702
	if ($rstufe != 1) {
703
	   Error("Sie sind nicht berechtigt ein Projekt zu l&ouml;schen!");
704
	   return false;
705
	}
706
 
707
	if (!isset($pr_num) || $pr_num <= 0) {
708
	   Error("Interner Fehler: Projektnummer fehlt!");
709
	   return false;
710
	}
711
 
712
	$db = OpenDB();
713
 
714
	if (!QueryDB($db, "begin")) {
715
	   closeDB($db);
716
	   return false;
717
	}
718
 
719
	# Als erstes loeschen wir eventuell vorhandene Kalendereintraege
720
	$query = "delete from calendar where ca_prnum = $pr_num";
721
 
722
	if (!QueryDB($db, $query)) {
723
	   QueryDB($db, "rollback");
724
	   closeDB($db);
725
	   return false;
726
	}
727
 
728
	# Hier loeschen wir die IST-Erfassungen
729
	$query = "delete from wdone where wd_prnum = $pr_num";
730
 
731
	if (!QueryDB($db, $query)) {
732
	   QueryDB($db, "rollback");
733
	   closeDB($db);
734
	   return false;
735
	}
736
 
737
	$query = "select pl_num from plan where pl_prnum = $pr_num";
738
 
739
	if (!($respl = QueryDB($db, $query))) {
740
	   QueryDB($db, "rollback");
741
	   closeDB($db);
742
	   return false;
743
	}
744
 
745
	$numpl = numrowsDB($respl);
746
	$cnumpl = 0;
747
 
748
	while ($cnumpl < $numpl) {
749
	   $data = fetchDB($respl, $cnumpl);
750
	   $pl_num = $data[0];
751
	   $query = "select ta_num from task where ta_plnum = $pl_num";
752
 
753
	   if (!($resta = QueryDB($db, $query))) {
754
	      QueryDB($db, "rollback");
755
	      closeDB($db);
756
	      return false;
757
	   }
758
 
759
	   $numta = numrowsDB($resta);
760
	   $cnumta = 0;
761
 
762
	   while ($cnumta < $numta) {
763
	      $data = fetchDB($resta, $cnumta);
764
	      $ta_num = $data[0];
765
	      # Hier loeschen wir die Ressourcen zum Projekt
766
	      $query = "delete from allocation where al_task = $ta_num";
767
 
768
	      if (!QueryDB($db, $query)) {
769
	         QueryDB($db, "rollback");
770
	         closeDB($db);
771
	         return false;
772
	      }
773
 
774
	      $cnumta++;
775
	   }
776
 
777
	   # Hier loeschen wir die Tasks des Projekts
778
	   $query = "delete from task where ta_plnum = $pl_num";
779
 
780
	   if (!QueryDB($db, $query)) {
781
	      QueryDB($db, "rollback");
782
	      closeDB($db);
783
	      return false;
784
	   }
785
 
786
	   $cnumpl++;
787
	}
788
 
789
	# Hier loeschen wir die Plaene des Projekts
790
	$query = "delete from plan where pl_prnum = $pr_num";
791
 
792
	if (!QueryDB($db, $query)) {
793
	   QueryDB($db, "rollback");
794
	   closeDB($db);
795
	   return false;
796
	}
797
 
798
	# Hier loeschen wir die Mitarbeiter des Projekts
799
	$query = "delete from matopr where ma_prnum = $pr_num";
800
 
801
	if (!QueryDB($db, $query)) {
802
	   QueryDB($db, "rollback");
803
	   closeDB($db);
804
	   return false;
805
	}
806
 
807
	# Schliesslich koennen wir das Projekt selbst loeschen
808
	$query = "delete from project where pr_num = $pr_num";
809
 
810
	if (!QueryDB($db, $query)) {
811
	   QueryDB($db, "rollback");
812
	   closeDB($db);
813
	   return false;
814
	}
815
 
816
	# Jetzt da alles geloescht ist, wird es fix gemacht
817
	QueryDB($db, "commit");
818
	closeDB($db);
819
	return true;
820
}
821
 
822
function SaveMaToPr() {
823
	$mitarbeiter = $_REQUEST['mitarbeiter'];
824
	$matopr = $_REQUEST['matopr'];
825
	$pr_num = $_REQUEST['num'];
826
 
827
	if (!isset($mitarbeiter) || !isset($matopr) || $mitarbeiter < 1 || $matopr < 1)
828
	   return;
829
 
830
	if (!isset($pr_num) || $pr_num < 1) {
831
	   Error("Sie m&uuml;ssen eine Projektnummer eintragen!");
832
	   return;
833
	}
834
 
835
	$db = OpenDB();
836
	$query = "select count(*) from matopr where ma_minum = $mitarbeiter and ";
837
	$query .= "ma_prnum = $pr_num";
838
 
839
	if (!($result = QueryDB($db, $query))) {
840
	   Error("Interner Fehler: Datens&auml;tze konnten nicht gez&auml;hlt werden!");
841
	   closeDB($db);
842
	   return;
843
	}
844
 
845
	$data = fetchDB($result, 0);
846
 
847
	if ($data[0] > 0) {
848
	   Error("Mitarbeiter kann nicht 2x eingef&uuml;gt werden!");
849
	   closeDB($db);
850
	   return;
851
	}
852
 
853
	$query = "select co_matopr from counter";
854
 
855
	if (!($result = QueryDB($db, $query))) {
856
	   Error("Interner Fehler: Z&auml;hler nicht gefunden!");
857
	   closeDB($db);
858
	   return;
859
	}
860
 
861
	$data = fetchDB($result, 0);
862
	$co_matopr = $data[0] + 1;
863
 
864
	$query = "insert into matopr (ma_num, ma_minum, ma_prnum, ma_role) ";
865
	$query .= "values ($co_matopr, $mitarbeiter, $pr_num, $matopr)";
866
 
867
	if (!QueryDB($db, "begin")) {
868
	   Error("Interner Fehler: Transaktion fehlgeschlagen!");
869
	   closeDB($db);
870
	   return;
871
	}
872
 
873
	if (!QueryDB($db, $query)) {
874
	   Error("Interner Fehler: Konnte Datensatz nicht einf&uuml;gen!");
875
	   QueryDB($db, "rollback");
876
	   closeDB($db);
877
	   return;
878
	}
879
 
880
	$query = "update counter set co_matopr = $co_matopr";
881
 
882
	if (!QueryDB($db, $query)) {
883
	   Error("Interner Fehler: Z&auml;hlerstand konnte nicht erh&ouml;ht werden!");
884
	   QueryDB($db, "rollback");
885
	   closeDB($db);
886
	   return;
887
	}
888
 
889
	QueryDB($db, "commit");
890
	closeDB($db);
891
}
892
 
893
$pjnew = $_REQUEST['pjnew'];
894
$pjedit = $_REQUEST['pjedit'];
895
$pjdel = $_REQUEST['pjdel'];
896
$func = $_REQUEST['func'];
897
$yes = $_REQUEST['yes'];
898
 
899
if (isset($func)) {
900
   if ($func == "CheckNewPj") {
901
      if (CheckNewPj($unum, $headline, $menu, $rstufe)) {
902
         echo "<p>Daten wurden erfolgreich gespeichert!</p>\n";
903
	 echo "<form name=\"forms\" action=\"forms.php\" method=\"post\">";
904
	 echo "<input type=\"hidden\" name=\"unum\" value=\"$unum\">";
905
	 echo "<input type=\"hidden\" name=\"headline\" value=\"4\">";
906
	 echo "<input type=\"hidden\" name=\"menu\" value=\"$menu\">";
907
	 echo "<input type=\"hidden\" name=\"rstufe\" value=\"$rstufe\">";
908
	 echo "<input type=\"hidden\" name=\"knopf\" value=\"31\">";
909
	 Button("Weiter -->", "forms");
910
//	 echo "<input type=\"submit\" name=\"submit\" value=\"Weiter -->\">";
911
	 echo "</form>\n";
912
      }
913
   }
914
 
915
   if ($func == "CheckEditPj") {
916
      if (CheckEditPj($unum, $headline, $menu, $rstufe)) {
917
         echo "<p>Daten wurden erfolgreich gespeichert!</p>\n";
918
	 echo "<form name=\"forms\" action=\"forms.php\" method=\"post\">";
919
	 echo "<input type=\"hidden\" name=\"unum\" value=\"$unum\">";
920
	 echo "<input type=\"hidden\" name=\"headline\" value=\"4\">";
921
	 echo "<input type=\"hidden\" name=\"menu\" value=\"$menu\">";
922
	 echo "<input type=\"hidden\" name=\"rstufe\" value=\"$rstufe\">";
923
	 echo "<input type=\"hidden\" name=\"knopf\" value=\"31\">";
924
	 Button("Weiter -->", "forms");
925
//	 echo "<input type=\"submit\" name=\"submit\" value=\"Weiter -->\">";
926
	 echo "</form>\n";
927
      }
928
   }
929
 
930
   if ($func == "DeletePj" && isset($yes) && $yes == "yes") {
931
      $pr_num = $_REQUEST['pr_num'];
932
      if (DeleteProject($pr_num)) {
933
         echo "<p>Projekt $pr_num wurde unwiederbringlich gel&ouml;scht!</p>\n";
934
         Journal(102, "Projekt: $pr_num");
935
      }
936
 
937
      echo "<form name=\"forms\" action=\"forms.php\" method=\"post\">";
938
      echo "<input type=\"hidden\" name=\"unum\" value=\"$unum\">";
939
      echo "<input type=\"hidden\" name=\"headline\" value=\"4\">";
940
      echo "<input type=\"hidden\" name=\"menu\" value=\"$menu\">";
941
      echo "<input type=\"hidden\" name=\"rstufe\" value=\"$rstufe\">";
942
      echo "<input type=\"hidden\" name=\"knopf\" value=\"31\">";
943
      Button("Weiter -->", "forms");
944
//      echo "<input type=\"submit\" name=\"submit\" value=\"Weiter -->\">";
945
      echo "</form>\n";
946
   }
947
 
948
   if ($func == "matoprn") {
949
      SaveMaToPr();
950
      NewPj($unum, $headline, $menu, $rstufe);
951
   }
952
}
953
 
954
if (isset($pjnew)) {
955
   NewPj($unum, $headline, $menu, $rstufe);
956
}
957
 
958
if (isset($pjedit)) {
959
   EditPj($pjedit, $unum, $headline, $menu, $rstufe);
960
}
961
 
962
if (isset($pjdel)) {
963
   AskDelete($pjdel);
964
}
965
 
966
require('footer.inc');
967
?>