Blame | Last modification | View Log | RSS feed
<?php
class TaskNum {
var $arr_snum; // Laufende Nummerierung der Tasks in Punktnotation
var $arr_tanum; // Tasknummer
var $arr_talevel; // Level
var $arr_taid; // Interne laufende Nummer im Plan
var $arr_type; // Art des Tasks (Folder, ...)
var $akt_plan; // Aktuell gespeicherte Plannummer
var $db; // Datenbankhandle
var $max; // Maximale Anzahl im Array
function kNumber_($snum, $level, $dir) {
$anz = str_wordcount($snum);
$kpnum = $snum;
# Haben wir weniger Einzelnummern im String, haengen wir ".1" so
# lange an, bis wir #level erreicht haben.
if ($anz < $level) {
while ($anz < $level) {
$kpnum .= ".0";
$anz++;
}
if ($dir == -3) {
return $kpnum;
}
}
$anz = $level;
$anum = explode(".", $kpnum);
switch ($dir) {
case 0:
case -1: $anum[$level-1]++; break;
case -2: $anum[$level-1]--; break;
case -3: break;
default: $anum[$level-1]--;
}
$num = "";
for ($i = 0; $i < $anz; $i++) {
if ($i > 0) {
$num .= "." . (string)$anum[$i];
} else {
$num = (string)$anum[$i];
}
}
return $num;
}
function TaskNum($pl_num, $db = -1) {
global $phase;
global $numphase;
if (!isset($pl_num) || $pl_num <= 0) {
Error("class TaskNum: Ungültige Plannummer wurde übergeben!");
$this->db = -1;
return;
}
$this->akt_plan = $pl_num;
if ($db == -1)
$this->db = OpenDB();
else
$this->db = $db;
$query = "select ta_num, ta_level, ta_id, ta_meeting, ta_phase from task where ";
$query .= "ta_plnum = $pl_num order by ta_id";
if (!($result = QueryDB($this->db, $query))) {
$this->db = -1;
return;
}
$anz = numrowsDB($result);
$this->max = $anz;
$j = 0;
$pos = 0;
$snum = "1";
while ($j < $anz) {
$data = fetchDB($result, $j);
$ta_num = $data[0];
$ta_level = $data[1];
$ta_id = $data[2];
$ta_meeting = $data[3];
$ta_phase = $data[4];
$this->arr_tanum[$j] = $ta_num;
$this->arr_talevel[$j] = $ta_level;
$this->arr_taid[$j] = $ta_id;
if ($ta_level == 1) {
if (CheckTrue($phase) && CheckTrue($numphase)) {
$snum = (string)$ta_phase;
$pos = $ta_phase;
} else {
$pos++;
$snum = (string)$pos;
}
$this->arr_snum[$j] = $snum;
$this->arr_type[$j] = "f";
} else {
$snum = $this->kNumber_($snum, $ta_level, 0);
$this->arr_snum[$j] = $snum;
if (!$ta_meeting)
$this->arr_type[$j] = "t";
else
$this->arr_type[$j] = "m";
if ($j > 0 && $this->arr_type[$j-1] != "m" && $this->arr_talevel[$j-1] < $ta_level)
$this->arr_type[$j-1] = "f";
}
$j++;
}
}
function GetStatus() {
if ($this->db == -1)
return false;
else
return true;
}
function Get_tanum($x) {
if ($this->db == -1 || $this->max < $x)
return 0;
return $this->arr_tanum[$x];
}
function Get_talevel($x) {
if ($this->db == -1 || $this->max < $x)
return 0;
return $this->arr_tanum[$x];
}
function Get_snum($x) {
if ($this->db == -1 || $this->max < $x)
return "";
return $this->arr_snum[$x];
}
function Get_taid($x) {
if ($this->db == -1 || $this->max < $x)
return 0;
return $this->arr_taid[$x];
}
function Get_type($x) {
if ($this->db == -1 || $this->max < $x)
return "";
return $this->arr_type[$x];
}
}