0,0 → 1,1361 |
<? |
require_once('version.inc'); |
require_once('dbaccess.inc'); |
require_once('language.inc'); |
require_once('header.inc'); |
require_once('settings.inc'); |
require_once('crypt.inc'); |
require_once('helper.inc'); |
|
if (isset($_REQUEST['kunde'])) { $knopf = 43; $headline = 34; } |
if (isset($_REQUEST['kgroup'])) { $knopf = 48; $headline = 39; } |
/* |
0: Verwalter |
1: Administrator |
2: Projektleiter |
3: Mitarbeiter |
4: Kontroller |
5: Kein Zugang! |
6: Ressourcenmanager |
7: Revisor |
*/ |
$drm = array(true, false, true, true, false, true, true, true); |
|
require_once('menu.inc'); |
|
# Erzeugt eine Liste aller Kunden in der Datenbank. Der Anwender kann mittels |
# einiger Buttons neue Eintraege hinzufuegen, bestehende aendern, oder |
# loeschen. |
function ListKunde() { |
global $headline; |
global $menu; |
global $rstufe; |
global $fixkunde; |
|
# Zunaechst pruefen wir, ob der Anwender ueberhaupt dazu berechtigt |
# ist. |
if ($rstufe != 1 && $rstufe != 4) { |
Error("Berechtigungsfehler!\n"); |
return; |
} |
|
$nav = "menu=$menu&headline=$headline"; |
echo "<form name=\"ekunde\" action=\"kunden.php\" method=\"post\">\n"; |
echo "<input type=\"hidden\" name=\"headline\" value=\"$headline\">\n"; |
echo "<input type=\"hidden\" name=\"menu\" value=\"$menu\">\n"; |
echo "<input type=\"hidden\" name=\"func\" value=\"new\">\n"; |
echo "<table class=\"indent\"><tr><td>\n"; |
Button("Neuer Kunde", "ekunde"); |
echo "</td></tr></table>\n"; |
|
$db = OpenDB(); |
$query = "select count(*) from kunde"; |
$result = QueryDB($db, $query); |
$data = fetchDB($result, 0); |
|
if ($data[0] > 0) { |
echo "<table class=\"sel\">\n"; |
echo "<tr><th class=\"sel\">Aktion</th><th class=\"sel\">Firma</th>"; |
echo "<th class=\"sel\">Name</th><th class=\"sel\">Kostenstelle</th>"; |
|
if ($fixkunde) |
echo "<th class=\"sel\">Anteil</th><th class=\"sel\">Gültig ab</th>"; |
|
echo "</tr>\n"; |
|
$query = "select ku_num, ku_firma, ku_nname, ku_vname, ku_costloc,"; |
$query .= "kc_costloc from kunde left join key_costloc on kc_num = ku_costloc "; |
$query .= "order by ku_firma, ku_nname, ku_vname"; |
$result = QueryDB($db, $query); |
$numrows = numrowsDB($result); |
$row = 0; |
$anz = 0; |
|
while ($row < $numrows) { |
$data = fetchDB($result, $row); |
$ku_num = $data[0]; |
$ku_firma = $data[1]; |
$ku_nname = $data[2]; |
$ku_vname = $data[3]; |
$ku_costloc = $data[4]; |
$kc_costloc = $data[5]; |
|
# Pruefen, ob der Kunde bereits einer Gruppe zugeordnet |
# wurde. |
$query = "select count(*) from kgsammel where ks_kunum = $ku_num"; |
|
if (!($reskg = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
$data = fetchDB($reskg, 0); |
$anz = $data[0]; |
|
if ($fixkunde) { |
$dtdb = GetDBDateFormat(); |
$query = "select fx_proz, to_char(fx_valid_from, '$dtdb') "; |
$query .= "from fixanteil where fx_valid_to is NULL "; |
$query .= "and fx_kunum = $ku_num"; |
|
if (!($resfx = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
if (numrowsDB($resfx) > 0) { |
$data = fetchDB($resfx, 0); |
$fx_proz = $data[0]; |
$fx_valid_from = $data[1]; |
} else { |
$fx_proz = 0.0; |
$fx_valid_from = " "; |
} |
} |
|
echo "<tr><td class=\"selakt\"><a href=\"#\" onClick=\"javascript:MoveTo('kunden.php','func=edit&ku_num=$ku_num&$nav')\"><img src=\"image/edit.png\" border=0 alt=\"Edit\"></a>"; |
|
if ($anz <= 0) |
echo "<a href=\"#\" onClick=\"javascript:MoveTo('kunden.php','func=del&ku_num=$ku_num&$nav')\"><img src=\"image/editdelete.png\" border=0 alt=\"Loeschen\"></a>"; |
|
echo "</td>\n"; |
echo "<td class=\"sel\">$ku_firma</td>\n"; |
echo "<td class=\"sel\">$ku_nname $ku_vname</td>\n"; |
|
if (isset($ku_costloc) || isset($kc_costloc)) |
echo "<td class=\"sel\">$ku_costloc: $kc_costloc</td>\n"; |
else |
echo "<td class=\"sel\"> </td>\n"; |
|
if ($fixkunde) { |
echo "<td class=\"selnum\">" . FormatNum($fx_proz, 3) . "</td>\n"; |
echo "<td class=\"sel\">$fx_valid_from</td>\n"; |
} |
|
echo "</tr>\n"; |
$row++; |
} |
|
echo "</table>\n"; |
echo "<table class=\"indent\"><tr><td>\n"; |
Button("Neuer Kunde", "ekunde"); |
echo "</td></tr></table>\n"; |
} |
|
echo "</form>\n"; |
closeDB($db); |
} |
|
# Die folgende Funktion stellt eine Maske zum Editieren eines einzelnen |
# Kunden bereit. Die Funktion kann mit neuen Eintraegen als auch mit |
# bestehenden Eintraegen umgehen. |
# |
function EditKunde() { |
global $headline; |
global $menu; |
global $fixkunde; |
global $VisualDate; |
global $dtformatshort; |
|
$ku_num = $_REQUEST['ku_num']; |
$db = OpenDB(); |
$art = 0; // 0 = neu, 1 = edit, 2 = ausbessern |
|
if (isset($ku_num) && $ku_num > 0) { |
$art = 1; |
$query = "select ku_firma, ku_anrede, ka_anrede, ku_nname, ku_vname, "; |
$query .= "ku_strasse, ku_hnum, ku_ort, ku_plz, ku_costloc, "; |
$query .= "kc_costloc from kunde "; |
$query .= "left join key_anrede on ka_num = ku_anrede "; |
$query .= "left join key_costloc on kc_num = ku_costloc "; |
$query .= "where ku_num = $ku_num"; |
|
if (!($result = QueryDB($db, $query))) { |
closeDB($db); |
return false; |
} |
|
$data = fetchDB($result, 0); |
$ku_firma = $data[0]; |
$ku_anrede = $data[1]; |
$ka_anrede = $data[2]; |
$ku_nname = $data[3]; |
$ku_vname = $data[4]; |
$ku_strasse = $data[5]; |
$ku_hnum = $data[6]; |
$ku_ort = $data[7]; |
$ku_plz = $data[8]; |
$ku_costloc = $data[9]; |
$kc_costloc = $data[10]; |
|
# Aktuellen Prozentsatz der Beteiligung ermitteln. |
if ($fixkunde) { |
$dtdb = GetDBDateFormat(); |
$query = "select fx_num, fx_proz, to_char(fx_valid_from, '$dtdb') from fixanteil where "; |
$query .= "fx_valid_to is NULL and fx_kunum = $ku_num order by fx_valid_from desc"; |
|
if (!($result = QueryDB($db, $query))) { |
closeDB($db); |
return false; |
} |
|
if (numrowsDB($result) > 0) { |
$data = fetchDB($result, 0); |
$fx_num = $data[0]; |
$fx_proz = $data[1]; |
$fx_valid_from = $data[2]; |
} else { |
$fx_num = 0; |
$fx_proz = 0.0; |
$fx_valid_from = date($dtformatshort); |
} |
} |
} else { |
$ku_num = $_REQUEST['ku_num']; |
|
if (isset($ku_num) && $ku_num > 0) |
$art = 2; |
else |
$art = 0; |
|
$ku_firma = $_REQUEST['ku_firma']; |
$ku_anrede = $_REQUEST['ku_anrede']; |
$ku_nname = $_REQUEST['ku_nname']; |
$ku_vname = $_REQUEST['ku_vname']; |
$ku_strasse = $_REQUEST['ku_strasse']; |
$ku_hnum = $_REQUEST['ku_hnum']; |
$ku_ort = $_REQUEST['ku_ort']; |
$ku_plz = $_REQUEST['ku_plz']; |
$ku_costloc = $_REQUEST['ku_costloc']; |
|
if ($fixkunde) { |
$fx_num = $_REQUEST['fx_num']; |
$fx_proz = $_REQUEST['fx_proz']; |
$fx_valid_from = $_REQUEST['fx_valid_from']; |
} |
} |
|
$nav = "menu=$menu&headline=$headline"; |
?> |
<form name="kedit" action="kunden.php" method="post"> |
<input type="hidden" name="menu" value="<? echo "$menu"; ?>"> |
<input type="hidden" name="headline" value="<? echo "$headline"; ?>"> |
<input type="hidden" name="ku_num" value="<? echo "$ku_num"; ?>"> |
<input type="hidden" name="fx_num" value="<? echo "$fx_num"; ?>"> |
<input type="hidden" name="func" value="SaveKunde"> |
<table class="input"> |
<tr> |
<th class="sel" colspan=2> |
<? |
switch($art) { |
case 0: echo "Neuerfassung eines Kunden"; break; |
case 1: echo "Editieren eines Kunden"; break; |
case 2: echo "Korrektur eines Kunden"; break; |
} |
?> |
</th> |
</tr> |
<tr> |
<td>Firmenname:</td> |
<td><input type="text" name="ku_firma" value="<? echo "$ku_firma"; ?>" size=40 maxlength=80></td> |
</tr> |
<tr> |
<td>Anrede:</td> |
<td><select name="ku_anrede"> |
<option value=""></option> |
<? |
$query = "select ka_num, ka_anrede from key_anrede order by ka_anrede"; |
|
if (!($reska = QueryDB($db, $query))) { |
closeDB($db); |
return false; |
} |
|
$rows = numrowsDB($reska); |
$j = 0; |
|
while ($j < $rows) { |
$data = fetchDB($reska, $j); |
$ka_num = $data[0]; |
$ka_anrede = $data[1]; |
|
if (isset($ku_anrede) && $ku_anrede == $ka_num) |
echo "<option value=\"$ka_num\" selected>$ka_anrede</option>\n"; |
else |
echo "<option value=\"$ka_num\">$ka_anrede</option>\n"; |
|
$j++; |
} |
?> |
</select> |
</td> |
</tr> |
<tr> |
<td>Nachname:</td> |
<td><input type="text" name="ku_nname" value="<? echo "$ku_nname"; ?>" size=40 maxlength=60></td> |
</tr> |
<tr> |
<td>Vorname:</td> |
<td><input type="text" name="ku_vname" value="<? echo "$ku_vname"; ?>" size=40 maxlength=60></td> |
</tr> |
<tr> |
<td>Straße</td> |
<td><input type="text" name="ku_strasse" value="<? echo "$ku_strasse"; ?>" size=40 maxlength=60></td> |
</tr> |
<tr> |
<td>Hausnummer:</td> |
<td><input type="text" name="ku_hnum" value="<? echo "$ku_hnum"; ?>" size=10 maxlength=10></td> |
</tr> |
<tr> |
<td>Postleitzahl / Ort:</td> |
<td><table border=0 cellspacing=0 cellpadding=0> |
<tr> |
<td><input type="text" name="ku_plz" value="<? echo "$ku_plz"; ?>" size=16 maxlength=16></td> |
<td><input type="text" name="ku_ort" value="<? echo "$ku_ort"; ?>" size=40 maxlength=60></td> |
</tr> |
</table> |
</td> |
</tr> |
<tr> |
<td>Kostenstelle:</td> |
<td><select name="ku_costloc"> |
<option value=""></option> |
<? |
$query = "select kc_num, kc_costloc from key_costloc order by kc_costloc"; |
|
if (!($reskc = QueryDB($db, $query))) { |
closeDB($db); |
return false; |
} |
|
$rows = numrowsDB($reskc); |
$j = 0; |
|
while ($j < $rows) { |
$data = fetchDB($reskc, $j); |
$kc_num = $data[0]; |
$kc_costloc = $data[1]; |
|
if (isset($ku_costloc) && $kc_num == $ku_costloc) |
echo "<option value=\"$kc_num\" selected>$kc_num: $kc_costloc</option>\n"; |
else |
echo "<option value=\"$kc_num\">$kc_num: $kc_costloc</option>\n"; |
|
$j++; |
} |
?> |
</select> |
</td> |
</tr> |
<? |
if ($fixkunde) { |
?> |
<tr> |
<td>Anteil in Prozent:</td> |
<td><input type="text" class="inputmust" name="fx_proz" value="<? echo FormatNum($fx_proz, 2); ?>" size=6 maxlength=6 onChange="javascript:NumRange(this, 0.0, 100.0)">%</td> |
</tr> |
<tr> |
<td>Anteil gültig ab (<? echo "$VisualDate"; ?>):</td> |
<td><input type="text" class="inputmust" name="fx_valid_from" value="<? echo "$fx_valid_from"; ?>" size=10 maxlength=10 onChange="javascript:CheckDate(this, false)"></td> |
</tr> |
<? |
} |
?> |
</table> |
<table class="indent"> |
<tr><td> |
<? |
ButtonSubmit("Speichern", "kedit"); |
echo "</td></tr></table>\n"; |
return true; |
} |
|
# Folgende Funktion speichert einen zuvor neu erfassten, oder editierten |
# Kunden in die Datenbank. |
# |
function SaveKunde() { |
global $fixkunde; |
|
$ku_num = $_REQUEST['ku_num']; |
$ku_firma = $_REQUEST['ku_firma']; |
$ku_anrede = $_REQUEST['ku_anrede']; |
$ku_nname = $_REQUEST['ku_nname']; |
$ku_vname = $_REQUEST['ku_vname']; |
$ku_strasse = $_REQUEST['ku_strasse']; |
$ku_hnum = $_REQUEST['ku_hnum']; |
$ku_ort = $_REQUEST['ku_ort']; |
$ku_plz = $_REQUEST['ku_plz']; |
$ku_costloc = $_REQUEST['ku_costloc']; |
|
if ($fixkunde) { |
$fx_num = $_REQUEST['fx_num']; |
$fx_proz = $_REQUEST['fx_proz']; |
$fx_valid_from = $_REQUEST['fx_valid_from']; |
|
if (strlen($fx_proz) > 0) |
$fx_proz = str_replace(",", ".", $fx_proz); |
} |
|
$err = 0; |
|
if (isset($ku_num) && $ku_num > 0) |
$update = true; |
else |
$update = false; |
|
if ((!isset($ku_nname) || !isset($ku_vname)) && !isset($ku_firma)) { |
Error("Es muss ein Nachname und ein Vorname, oder ein Firmenname eingegeben werden!"); |
$err = 1; |
} |
|
if ((!strlen($ku_nname) || !strlen($ku_vname)) && !strlen($ku_firma)) { |
Error("Es muss ein Nachname und ein Vorname, oder ein Firmenname eingegeben werden!"); |
$err = 1; |
} |
|
if ($err) |
return false; |
|
if (!isset($ku_anrede) || strlen($ku_anrede) == 0) |
$ku_anrede = "NULL"; |
|
if (!isset($ku_costloc) || strlen($ku_costloc) == 0) |
$ku_costloc = "NULL"; |
|
$db = OpenDB(); |
|
if ($update) { |
if (!QueryDB($db, "begin")) { |
closeDB($db); |
return false; |
} |
|
$query = "update kunde set ku_firma = '$ku_firma', "; |
$query .= "ku_anrede = $ku_anrede"; |
$query .= ", ku_vname = '$ku_vname', "; |
$query .= "ku_nname = '$ku_nname', ku_strasse = '$ku_strasse', "; |
$query .= "ku_hnum = '$ku_hnum', ku_ort = '$ku_ort', "; |
$query .= "ku_plz = '$ku_plz' "; |
$query .= ", ku_costloc = $ku_costloc "; |
$query .= "where ku_num = $ku_num"; |
|
if (!QueryDB($db, $query)) { |
closeDB($db); |
return false; |
} |
|
if ($fixkunde && isset($fx_num) && $fx_num > 0) { |
$query = "select fx_proz, to_char(fx_valid_from, 'YYYY-MM-DD') "; |
$query .= "from fixanteil where fx_num = $fx_num"; |
|
if (!($result = QueryDB($db, $query))) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
|
$data = fetchDB($result, 0); |
$fx_proz_old = $data[0]; |
$fx_valid_from_old = $data[1]; |
} else if ($fixkunde) { |
$fx_proz_old = -1; |
$fx_valid_from_old = ""; |
} |
|
if ($fixkunde && ($fx_proz_old != $fx_proz || $fx_valid_from_old != DateToDBDate($fx_valid_from))) { |
if ($fx_valid_from_old != DateToDBDate($fx_valid_from)) { |
$query = "select co_fixanteil from counter"; |
|
if (!($result = QueryDB($db, $query))) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
|
$data = fetchDB($result, 0); |
$co_fixanteil = $data[0] + 1; |
|
$query = "insert into fixanteil (fx_num, fx_valid_from, fx_kunum,"; |
$query .= "fx_proz) values ($co_fixanteil, '". DateToDBDate($fx_valid_from) . "',"; |
$query .= "$ku_num, $fx_proz)"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
|
if (isset($fx_num) && $fx_num > 0) { |
$query = "update fixanteil set fx_valid_to = '" . DateToDBDate($fx_valid_from) . "' "; |
$query .= "where fx_num = $fx_num"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
} |
|
$query = "update counter set co_fixanteil = $co_fixanteil"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
} else { |
$query = "update fixanteil set fx_proz = $fx_proz where "; |
$query .= "fx_num = $fx_num"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
} |
} |
|
QueryDB($db, "commit"); |
} else { |
$query = "select co_kunde from counter"; |
|
if (!($result = QueryDB($db, $query))) { |
closeDB($db); |
return false; |
} |
|
$data = fetchDB($result, 0); |
$co_kunde = $data[0] + 1; |
|
if (!QueryDB($db, "begin")) { |
closeDB($db); |
return false; |
} |
|
$query = "insert into kunde (ku_num, ku_firma"; |
|
if (isset($ku_anrede) && $ku_anrede > 0) |
$query .= ", ku_anrede"; |
|
$query .= ", ku_vname, ku_nname, ku_strasse, ku_hnum, ku_ort, ku_plz "; |
|
if (isset($ku_costloc) && $ku_costloc > 0) |
$query .= ", ku_costloc"; |
|
$query .= ") values ($co_kunde, '$ku_firma'"; |
|
if (isset($ku_anrede) && $ku_anrede > 0) |
$query .= ", $ku_anrede "; |
|
$query .= ", '$ku_vname', '$ku_nname', '$ku_strasse', '$ku_hnum', "; |
$query .= "'$ku_ort', '$ku_plz'"; |
|
if (isset($ku_costloc) && $ku_costloc > 0) |
$query .= ", $ku_costloc"; |
|
$query .= ")"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
|
$query = "update counter set co_kunde = $co_kunde"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
|
if ($fixkunde) { |
$query = "select co_fixanteil from counter"; |
|
if (!($result = QueryDB($db, $query))) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
|
$data = fetchDB($result, 0); |
$co_fixanteil = $data[0] + 1; |
|
$query = "insert into fixanteil (fx_num, fx_valid_from, fx_kunum,"; |
$query .= "fx_proz) values ($co_fixanteil, '". DateToDBDate($fx_valid_from) . "',"; |
$query .= "$co_kunde, $fx_proz)"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
|
$query = "update counter set co_fixanteil = $co_fixanteil"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
} |
|
QueryDB($db, "commit"); |
} |
|
closeDB($db); |
return true; |
} |
|
# Wenn der Anwender auf den Loeschknopf gedrueckt hat, wird die folgende |
# Funktion aufgerufen, welche den Anwender um die Verifizierung der Loeschung |
# fragt. Bereits die Funktion ListKunde() stellt sicher, dass nur jene Kunden |
# geloescht werden koennen, welche noch in keiner Kundengruppe sind. |
# |
function AskDelKunde() { |
global $menu; |
global $headline; |
|
$ku_num = $_REQUEST['ku_num']; |
|
if (!isset($ku_num) || $ku_num <= 0) { |
Error("AskDelKunde: Interner Fehler: Kundennummer wurde nicht übergeben!"); |
return; |
} |
|
$nav = "func=SaveKundeReal&ku_num=$ku_num&menu=$menu&headline=$headline"; |
$db = OpenDB(); |
$query = "select ku_firma, ku_nname, ku_vname from kunde where ku_num = $ku_num"; |
|
if (!($result = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
$data = fetchDB($result, 0); |
$ku_firma = $data[0]; |
$ku_nname = $data[1]; |
$ku_vname = $data[2]; |
?> |
<br> |
<form action="kunden.php" method="post"> |
<table border=2 class="alarm"> |
<tr><td colspan=2><big>Warnung!</big><br><br> |
Wollen Sie den Kunden |
<font color="white"><? echo "$ku_firma / $ku_nname $ku_vname"; ?></font> |
wirklich unwiederbringlich löschen? |
</td> |
</tr> |
<tr> |
<td><center><input type="button" name="yes" value="Kunden Löschen" onClick="javascript:MoveTo('kunden.php','yes=yes&<? echo "$nav"; ?>')"></center></td> |
<td><center><input type="button" name="no" value="Abbruch" onClick="javascript:MoveTo('kunden.php','no=no&<? echo "$nav"; ?>')"></center></td> |
</tr> |
</table> |
</form> |
<?php |
} |
|
# Folgende Funktion loescht einen Kunden aus der Datenbank. Eine Loeschung |
# ist nur dann moeglich, wenn selbige zuvor durch den Anwender ausdruecklich |
# gewuenscht wurde. |
# |
function DelKunde() { |
global $fixkunde; |
|
$ku_num = $_REQUEST['ku_num']; |
|
if (!isset($ku_num) || $ku_num <= 0) { |
Error("DelKunde: Interner Fehler: Kundennummer wurde nicht übergeben!"); |
return; |
} |
|
$db = OpenDB(); |
|
if (!QueryDB($db, "begin")) { |
closeDB($db); |
return; |
} |
|
if ($fixkunde) { |
$query = "delete from fixanteil where fx_kunum = $ku_num"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return; |
} |
} |
|
$query = "delete from kunde where ku_num = $ku_num"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return; |
} |
|
QueryDB($db, "commit"); |
closeDB($db); |
} |
|
/*----------------------------------------------------------------------------*/ |
# Folgende Funktion erzeugt eine Liste aller Kundengruppen, und stellt die |
# Moeglichkeit zur Anlage neuer Kundengruppen, sowie deren Editierung zur |
# Verfuegung. |
# |
function ListKGroups() { |
global $rstufe; |
global $menu; |
global $headline; |
|
if ($rstufe != 1 && $rstufe != 4) { |
Error("Berechtigungsfehler!"); |
return; |
} |
|
$nav = "menu=$menu&headline=$headline"; |
$db = OpenDB(); |
$query = "select kg_num, kg_name, kg_prnum from kgroup "; |
$query .= "order by kg_name"; |
|
if (!($result = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
$rows = numrowsDB($result); |
$j = 0; |
echo "<table class=\"indent\"><tr><td>\n"; |
ButtonLink("Neue Kundengruppe", "kunden.php", "func=NewKGroup&$nav"); |
echo "</td></tr></table>\n"; |
?> |
<table class="sel"> |
<tr> |
<th class="sel">Aktion</th> |
<th class="sel">Kundengruppe</th> |
<th class="sel">Projekt</th> |
</tr> |
<? |
while ($j < $rows) { |
$data = fetchDB($result, $j); |
$kg_num = $data[0]; |
$kg_name = $data[1]; |
$kg_prnum = $data[2]; |
|
$query = "select count(*) from kgsammel where "; |
$query .= "ks_kgnum = $kg_num"; |
|
if (!($resks = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
$data = fetchDB($resks, 0); |
$anz = $data[0]; |
|
echo "<tr><td class=\"selakt\">"; |
ButtonImageMove("edit.png", "Editieren", "kunden.php", |
"func=EditKGroup&kg_num=$kg_num&kg_name=$kg_name&kg_prnum=$kg_prnum&$nav"); |
|
if ($anz <= 0) |
ButtonImageMove("editdelete.png", "Loeschen", "kunden.php", "func=DelKGroup&kg_num=$kg_num&$nav"); |
|
echo "</td>\n"; |
echo "<td class=\"sel\">$kg_name</td>\n"; |
|
if (isset($kg_prnum) && $kg_prnum > 0) { |
$query = "select pr_name from project where pr_num = $kg_prnum"; |
|
if (!($respr = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
$data = fetchDB($respr, 0); |
$pr_name = $data[0]; |
echo "<td class=\"sel\">$kg_prnum $pr_name</td></tr>\n"; |
} else |
echo "<td class=\"sel\"> </td></tr>\n"; |
|
$j++; |
} |
|
echo "</table>\n"; |
echo "<table class=\"indent\"><tr><td>\n"; |
ButtonLink("Neue Kundengruppe", "kunden.php", "func=NewKGroup&$nav"); |
echo "</td></tr></table>\n"; |
closeDB($db); |
} |
|
# Folgende Funktion fuegt einer Kundengruppe einen neuen Kunden hinzu. Die |
# Funktion listet alle kunden auf, welche noch nicht der Gruppe zugeordnet |
# wurden und erlaubt eine Auswahl aus der Liste. |
# |
# Der Aufruf der Funktion erfolgt aus EditKGroup() |
# |
function AddKunde($db=-1) { |
global $fixkunde; |
global $menu; |
global $headline; |
|
$kg_num = $_REQUEST['kg_num']; |
$kg_name = $_REQUEST['kg_name']; |
$kg_prnum = $_REQUEST['kg_prnum']; |
|
if (!isset($kg_num) || $kg_num <= 0) { |
Error("AddKunde: Interner Fehler: Gruppennummer wurde nicht übergeben!"); |
return; |
} |
|
if ($db == -1) |
$db = OpenDB(); |
|
$query = "select ku_num, ku_firma, ku_vname, ku_nname from kunde "; |
$query .= "where ku_num not in (select ks_kunum from kgsammel where "; |
$query .= "ks_kgnum = $kg_num) order by ku_firma, ku_nname, ku_vname"; |
|
if (!($result = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
$rows = numrowsDB($result); |
$j = 0; |
|
if ($rows > 0) { |
?> |
<tr> |
<td class="input_ltb">Neuer Kunde:</td> |
<td class="input_rtb"> |
<table border=0 cellspacing=0 cellpadding=0><tr><td> |
<select name="ku_num"> |
<? |
while ($j < $rows) { |
$data = fetchDB($result, $j); |
$ku_num = $data[0]; |
$ku_firma = $data[1]; |
$ku_vname = $data[2]; |
$ku_nname = $data[3]; |
echo "<option value=\"$ku_num\">$ku_firma"; |
|
if (isset($ku_nname) && strlen($ku_nname) > 0) |
echo " / $ku_nname $ku_vname"; |
|
echo "</option>\n"; |
$j++; |
} |
?> |
</select></td> |
<td> |
<? |
Button("Kunde hinzufügen", "kgroup", "func", "AddGroupKunde"); |
?> |
</td></tr></table> |
</td> |
</tr> |
<tr> |
<th class="sel" colspan=2>Kundenliste</td> |
</tr> |
<tr> |
<td colspan = 2> |
<table class="sel"> |
<tr> |
<th class="sel">Akt.</th> |
<th class="sel">Firma</th> |
<th class="sel">Name</th> |
<? |
if ($fixkunde) { |
?> |
<th class="sel">Anteil Schl.</th> |
<th class="sel">Anteil Proj.</th> |
<? |
} |
?> |
</tr> |
<? |
$query = "select ks_num, ks_kunum, ku_firma, ku_vname, ku_nname from "; |
$query .= "kgsammel, kunde where ku_num = ks_kunum and "; |
$query .= "ks_kgnum = $kg_num order by ku_firma, ku_nname, ku_vname"; |
|
if (!($result = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
$rows = numrowsDB($result); |
$j = 0; |
|
if ($fixkunde) { |
$query = "select sum(fx_proz) from fixanteil where "; |
$query .= "fx_valid_to is NULL and fx_kunum in "; |
$query .= "(select ks_kunum from kgsammel where ks_kgnum = $kg_num)"; |
|
if (!($resks = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
$data = fetchDB($resks, 0); |
$sum_proz = $data[0]; |
$sum_ant1 = 0.0; |
$sum_ant2 = 0.0; |
} |
|
while ($j < $rows) { |
$data = fetchDB($result, $j); |
$ks_num = $data[0]; |
$ks_kunum = $data[1]; |
$ku_firma = $data[2]; |
$ku_vname = $data[3]; |
$ku_nname = $data[4]; |
|
echo "<tr><td class=\"selakt\">"; |
ButtonImageMove("editdelete.png", "Loeschen", "kunden.php", |
"ks_num=$ks_num&kg_num=$kg_num&kg_name=" . urlencode($kg_name) . |
"&kg_prnum=$kg_prnum&menu=$menu&headline=$headline&func=DelSammel"); |
echo "</td>\n"; |
echo "<td class=\"sel\">$ku_firma</td>\n"; |
echo "<td class=\"sel\">$ku_nname $ku_vname</td>\n"; |
|
if ($fixkunde) { |
$query = "select fx_proz from fixanteil where fx_valid_to is NULL "; |
$query .= "and fx_kunum = $ks_kunum order by fx_valid_from desc"; |
|
if (!($resfx = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
if (numrowsDB($resfx) > 0) { |
$data = fetchDB($resfx, 0); |
$fx_proz = $data[0]; |
|
if (!isset($fx_proz)) |
$fx_proz = 0.0; |
} else |
$fx_proz = 0.0; |
|
if ($sum_proz > 0.0) |
$real_proz = $fx_proz / $sum_proz * 100.0; |
else |
$real_proz = 0.0; |
|
echo "<td class=\"selnum\">" . FormatNum($fx_proz, 3) . "</td>\n"; |
echo "<td class=\"selnum\">" . FormatNum($real_proz, 3) . "</td>\n"; |
$sum_ant1 += $fx_proz; |
$sum_ant2 += $real_proz; |
} |
|
echo "</tr>\n"; |
$j++; |
} |
|
if ($fixkunde) { |
echo "<tr><td class=\"selnum\" colspan=3><b>Summen:</b></td>\n"; |
echo "<td class=\"selnum\"><b>" . FormatNum($sum_ant1, 3) . "</b></td>\n"; |
echo "<td class=\"selnum\"><b>" . FormatNum($sum_ant2, 3) . "</b></td></tr>\n"; |
} |
|
echo "</table>\n</td></tr>\n"; |
} else { |
echo "<tr><td class=\"selakt\" colspan=2>Derzeit existieren noch keine Kunden!<br>"; |
echo "Bitte tragen Sie zuerst unter dem Menüpunkt \""; |
echo "Verwaltung−>Kunden\" einen oder mehrere Kunden ein.</td></tr>\n"; |
return; |
} |
} |
|
# Folgende Funktion gibt eine Maske aus, um den Namen einer Kundengruppe zu |
# erfassen, oder zu editieren. |
# |
function EditKGroup() { |
global $menu; |
global $headline; |
|
$nav = "menu=$menu&headline=$headline"; |
$kg_num = $_REQUEST['kg_num']; |
$kg_name = $_REQUEST['kg_name']; |
$kg_prnum = $_REQUEST['kg_prnum']; |
|
if (isset($kg_num) && $kg_num > 0) |
$update = true; |
else |
$update = false; |
?> |
<form name="kgroup" action="kunden.php" method="post"> |
<input type="hidden" name="menu" value="<? echo "$menu"; ?>"> |
<input type="hidden" name="headline" value="<? echo "$headline"; ?>"> |
<input type="hidden" name="func" value="SaveKGroup"> |
<input type="hidden" name="update" value="<? echo "$update"; ?>"> |
<? |
if ($update) |
echo " <input type=\"hidden\" name=\"kg_num\" value=\"$kg_num\">\n"; |
?> |
<table class="input"> |
<tr> |
<th class="sel" colspan=2> |
<? |
if ($update) |
echo "Editieren der Kundengruppe"; |
else |
echo "Neue Kundengruppe"; |
?> |
</th> |
</tr> |
<tr> |
<td>Gruppenname:</td> |
<td><input type="text" class="inputmust" name="kg_name" value="<? echo "$kg_name"; ?>" size=40 maxlength=60></td> |
</tr> |
<tr> |
<td>Projekt:</td> |
<td><select name="kg_prnum"> |
<option value=""></option> |
<? |
$db = OpenDB(); |
$query = "select distinct pr_num, pr_name from project, plan where "; |
$query .= "pl_prnum = pr_num and pr_status = 0 and pl_status in (2,3,4)"; |
|
if (!($result = QueryDB($db, $query))) { |
closeDB($db); |
return; |
} |
|
$rows = numrowsDB($result); |
$j = 0; |
|
while ($j < $rows) { |
$data = fetchDB($result, $j); |
$pr_num = $data[0]; |
$pr_name = $data[1]; |
|
if ($update && $kg_prnum == $pr_num) |
echo "<option value=\"$pr_num\" selected>$pr_num $pr_name</option>\n"; |
else |
echo "<option value=\"$pr_num\">$pr_num $pr_name</option>\n"; |
|
$j++; |
} |
?> |
</select> |
</td> |
</tr> |
<? |
if ($update) |
AddKunde($db); |
?> |
</table> |
<table class="indent"><tr><td> |
<? |
ButtonSubmit("Speichern", "kgroup"); |
echo "</td></tr></table>\n</form>\n"; |
closeDB($db); |
} |
|
# Folgende Funktion speichert den Namen einer neuen Kundengruppe. Anschliessend |
# koennen der Gruppe Kunden hinzugefuegt werden. |
# |
function SaveKGroup() { |
$kg_num = $_REQUEST['kg_num']; |
$kg_name = $_REQUEST['kg_name']; |
$kg_prnum = $_REQUEST['kg_prnum']; |
$update = $_REQUEST['update']; |
|
if (!isset($kg_name) || strlen($kg_name) <= 0) { |
Error("Sie müssen unbegingt einen Kundengruppennamen eigeben!"); |
return false; |
} |
|
if ($update && (!isset($kg_num) || strlen($kg_num) <= 0)) { |
Error("SaveKGroup: Interner Fehler: Kundengruppennummer fehlt!"); |
return false; |
} |
|
if (!isset($kg_prnum) || strlen($kg_prnum) <= 0) |
$kg_prnum = "NULL"; |
|
$db = OpenDB(); |
|
if ($update) { |
$query = "update kgroup set kg_name = '$kg_name', "; |
$query .= "kg_prnum = $kg_prnum where kg_num = $kg_num"; |
|
if (!QueryDB($db, $query)) { |
closeDB($db); |
return false; |
} |
} else { |
$query = "select co_kgroup from counter"; |
|
if (!($result = QueryDB($db, $query))) { |
closeDB($db); |
return false; |
} |
|
$data = fetchDB($result, 0); |
$co_kgroup = $data[0] + 1; |
|
if (!QueryDB($db, "begin")) { |
closeDB($db); |
return false; |
} |
|
$query = "insert into kgroup (kg_num, kg_name, kg_prnum) values "; |
$query .= "($co_kgroup, '$kg_name', $kg_prnum)"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
|
$query = "update counter set co_kgroup = $co_kgroup"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
|
QueryDB($db, "commit"); |
} |
|
closeDB($db); |
return true; |
} |
|
function AddGroupKunde() { |
global $fixkunde; |
|
$kg_num = $_REQUEST['kg_num']; |
$ku_num = $_REQUEST['ku_num']; |
|
if (!isset($kg_num) || $kg_num <= 0) { |
Error("AddGroupKunde: Interner Fehler: Gruppennummer fehlt!"); |
return false; |
} |
|
if (!isset($ku_num) || $ku_num <= 0) { |
Error("AddGroupKunde: Interner Fehler: Kundennummer fehlt!"); |
return false; |
} |
|
$db = OpenDB(); |
# Sicherstellen, dass der gewuenschte Kunde nicht bereits in der |
# aktuellen Gruppe vorhanden ist. |
$query = "select count(*) from kgsammel where ks_kgnum = $kg_num and ks_kunum = $ku_num"; |
|
if (!($result = QueryDB($db, $query))) { |
closeDB($db); |
return false; |
} |
|
$data = fetchDB($result, 0); |
|
if ($data[0] > 0) { |
Error("Error: Der Kunde ist bereits in der Gruppe enthalten!"); |
closeDB($db); |
return false; |
} |
|
# Da der Kunde noch nicht in der Gruppe enthalten ist, fuegen wir |
# ihn nun tatsaechlich in den Kontainer ein. |
$query = "select co_kgsammel from counter"; |
|
if (!($result = QueryDB($db, $query))) { |
closeDB($db); |
return false; |
} |
|
$data = fetchDB($result, 0); |
$co_kgsammel = $data[0] + 1; |
|
if (!QueryDB($db, "begin")) { |
closeDB($db); |
return false; |
} |
|
$query = "insert into kgsammel (ks_num, ks_kgnum, ks_kunum) values "; |
$query .= "($co_kgsammel, $kg_num, $ku_num)"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
|
$query = "update counter set co_kgsammel = $co_kgsammel"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return false; |
} |
|
QueryDB($db, "commit"); |
closeDB($db); |
return true; |
} |
|
function DelSammel() { |
$kg_num = $_REQUEST['kg_num']; |
$ks_num = $_REQUEST['ks_num']; |
|
if (!isset($kg_num) || $kg_num <= 0) { |
Error("DelSammel: Interner Fehler: Kundengruppennummer wurde nicht übergeben!"); |
return; |
} |
|
if (!isset($ks_num) || $ks_num <= 0) { |
Error("DelSammel: Interner Fehler: Kontainernummer wurde nicht übergeben!"); |
return; |
} |
|
$db = OpenDB(); |
$query = "delete from kgsammel where ks_num = $ks_num"; |
|
QueryDB($db, $query); |
} |
|
function AskDelKGroup() { |
global $menu; |
global $headline; |
|
$kg_num = $_REQUEST['kg_num']; |
|
if (!isset($kg_num) || $kg_num <= 0) { |
Error("AskDelKunde: Interner Fehler: Kundengruppennummer wurde nicht übergeben!"); |
return; |
} |
|
$nav = "func=DelKGroupReal&kg_num=$kg_num&menu=$menu&headline=$headline"; |
?> |
<br> |
<form action="kunden.php" method="post"> |
<table border=2 class="alarm"> |
<tr><td colspan=2><big>Warnung!</big><br><br> |
Wollen Sie diese Kundengruppe wirklich unwiederbringlich |
löschen? |
</td> |
</tr> |
<tr> |
<td><center><input type="button" name="yes" value="Kundengruppe Löschen" onClick="javascript:MoveTo('kunden.php','yes=yes&<? echo "$nav"; ?>')"></center></td> |
<td><center><input type="button" name="no" value="Abbruch" onClick="javascript:MoveTo('kunden.php','no=no&<? echo "$nav"; ?>')"></center></td> |
</tr> |
</table> |
</form> |
<?php |
} |
|
function DelKGroup() { |
$kg_num = $_REQUEST['kg_num']; |
|
if (!isset($kg_num) || $kg_num <= 0) { |
Error("DelKGroup: Interner Fehler: Kundengruppennummer wurde nicht übergeben!"); |
return; |
} |
|
$db = OpenDB(); |
|
if (!QueryDB($db, "begin")) { |
closeDB($db); |
return; |
} |
|
# Loeschen der Sammler |
$query = "delete from kgsammel where ks_kgnum = $kg_num"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return; |
} |
|
# Loeschen der Kundengruppe selbst |
$query = "delete from kgroup where kg_num = $kg_num"; |
|
if (!QueryDB($db, $query)) { |
QueryDB($db, "rollback"); |
closeDB($db); |
return; |
} |
|
QueryDB($db, "commit"); |
closeDB($db); |
} |
|
/*----------------------------------------------------------------------------*/ |
# Ab hier steht die Steuerung fuer die einzelnen Funktionen. |
# |
if (isset($knopf) && $knopf == 43) // Einfache Kundenliste |
ListKunde(); |
|
if (isset($knopf) && $knopf == 48) |
ListKGroups(); |
|
$func = $_REQUEST['func']; |
|
if (isset($func) && strlen($func) > 0) { |
# Steuerung fuer Einzelkunden |
if ($func == "new") |
EditKunde(); |
|
if ($func == "SaveKunde") { |
if (!SaveKunde()) |
EditKunde(); |
else |
ListKunde(); |
} |
|
if ($func == "edit") |
EditKunde(); |
|
if ($func == "del") |
AskDelKunde(); |
|
if ($func == "SaveKundeReal") { |
$yes = $_REQUEST['yes']; |
|
if ($yes == "yes") |
DelKunde(); |
|
ListKunde(); |
} |
|
# Steuerung fuer Kundengruppen |
if ($func == "NewKGroup" || $func == "EditKGroup") |
EditKGroup(); |
|
if ($func == "SaveKGroup") { |
if (!SaveKGroup()) |
ListKGroups(); |
|
ListKGroups(); |
} |
|
if ($func == "AddGroupKunde") { |
AddGroupKunde(); |
EditKGroup(); |
} |
|
if ($func == "DelSammel") { |
DelSammel(); |
EditKGroup(); |
} |
|
if ($func == "DelKGroup") |
AskDelKGroup(); |
|
if ($func == "DelKGroupReal") { |
$yes = $_REQUEST['yes']; |
|
if ($yes == "yes") |
DelKGroup(); |
|
ListKGroups(); |
} |
} |
|
|
require_once('footer.inc'); |
?> |
|