Kunden und Adressen auf Prepared Statements umgebaut

incs/saveNchange.php neu geschrieben: Adressen, Telefonnummern, Kontakte,
Notizen und Konten laufen ueber db_abfrage() mit Platzhaltern, mehrschrittiges
Speichern in einer Transaktion. Weil sich die Speicherfunktionen gegenseitig
aufrufen, klammern beginneSpeichern()/beendeSpeichern() die Verschachtelung;
incs/rechnung.php nutzt sie ebenfalls.

Kunden- und Lieferantenseiten waren zwei fast gleiche Kopien und teilen sich
jetzt partnerAddSeite(), partnerChangeSeite() und partnerShowDaten().

Dabei behoben:
- SQL-Injektion ueber die Suchbegriffe der Kunden-, Lieferanten-, Adress-,
  Kommissions- und Projektsuche sowie ueber die Artikel-Autovervollstaendigung
- gespeichertes XSS: Notizen (nl2br escapt nicht), Bankname, Dokumenttyp,
  Namen und Adressen in allen Trefferlisten
- sites/liefershow.php war unter PHP 8 ein Fatal ($kdnres.id)
- "Telefonnummer loeschen" im Kundenbereich lief in einen Fatal, die Nummern
  einer geloeschten Adresse blieben stehen (Spalte hiess adress_id statt
  adresse_id, mysql_fetch_assoc gibt es nicht mehr)
- Geburtstag ohne Jahr wurde im Formular verschluckt, die IBAN kam beim
  Bearbeiten aus $_GET statt aus dem Konto
- die Versionskette eines Kunden brach nach einem Schritt ab
- Kommissionsadressen speicherten die Ortsangabe der Adresse statt der des
  Telefonformulars und einen Adresstyp als Telefontyp
- Blaettern in den Trefferlisten: ohne ORDER BY konnte dieselbe Zeile zweimal
  oder gar nicht erscheinen; ajax_searchadress() bekam die Seite nicht
- Hauptadresse laesst sich nicht mehr loeschen, Kundendaten nicht mehr ueber
  die Lieferantenseite (und umgekehrt)
- ajax/auto/* baute JSON von Hand zusammen, ein Anfuehrungszeichen im Ort
  machte die Liste unbrauchbar

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 19:47:01 +02:00
co-authored by Claude Opus 5
parent 3f7d070d7f
commit 3dfbf1c9c7
40 changed files with 1706 additions and 2194 deletions
+40 -44
View File
@@ -1,50 +1,46 @@
<?php
<?php
require_once("./connectmysql.php");
require_once("./autofuncs.php");
if(!$err)
/*
* Artikel-Autovervollständigung für das Rechnungsformular: je Bezeichnung
* der zuletzt angelegte Artikel, dazu Preis und Eigenschaften aus seiner
* letzten Verwendung.
*/
if(!$err && autoBegriff() !== "")
{
if($_GET["term"])
{
$qry = mysqli_query($dbconn,"SELECT MAX(artikel.id) AS id FROM artikel
JOIN artikeltyp ON typ_id = artikeltyp.id
WHERE artikel.bezeichn LIKE '".$_GET["term"]."%' AND dropdown = 1 AND YEAR(artikel.datetime) >= YEAR(NOW())-1 GROUP BY artikel.bezeichn") or die(mysqli_error($dbconn));
if($tmpres=mysqli_fetch_array($qry))
{
$innerqry = mysqli_query($dbconn,"SELECT artikel.bezeichn, artikel.typ_id, artikel.einheit_id, artikel.id, artikel_rechn.preis, artikel_rechn.rech_id, artikel_rechn.posnr FROM artikel
JOIN artikeltyp ON typ_id = artikeltyp.id
JOIN artikel_rechn ON artikel.id = art_id
WHERE artikel.id = ".$tmpres["id"]." ORDER BY artikel_rechn.art_id DESC LIMIT 1") or die(mysqli_error($dbconn));
$res = mysqli_fetch_array($innerqry);
echo "[ ";
echo '{"value": "'.$res[0].'","typ": "'.$res[1].'","einh": "'.$res[2].'","preis": "'.number_format($res[4],2,",","").'","eig":[';
$qry2 = mysqli_query($dbconn,"SELECT bezeichn, wert, einheit_id FROM eigensch
JOIN artikel_eigensch ON eig_id = eigensch.id
WHERE art_id='".$res[3]."' AND rech_id='".$res[5]."' AND artposnr = '".$res[6]."' ORDER BY posnr ASC");
if($res2 = mysqli_fetch_array($qry2))
echo '{"des":"'.$res2[0].'","val":"'.$res2[1].'", "einh":"'.$res2[2].'"}';
while($res2=mysqli_fetch_array($qry2))
echo ',{"des":"'.$res2[0].'","val":"'.$res2[1].'", "einh":"'.$res2[2].'"}';
echo ']}';
while($tmpres=mysqli_fetch_array($qry))
{
$innerqry = mysqli_query($dbconn,"SELECT artikel.bezeichn, artikel.typ_id, artikel.einheit_id, artikel.id, artikel_rechn.preis, artikel_rechn.rech_id, artikel_rechn.posnr FROM artikel
$treffer = db_zeilen($dbconn, "SELECT MAX(artikel.id) AS id FROM artikel
JOIN artikeltyp ON typ_id = artikeltyp.id
JOIN artikel_rechn ON artikel.id = art_id
WHERE artikel.id = ".$tmpres["id"]." ORDER BY artikel_rechn.art_id DESC LIMIT 1") or die(mysqli_error($dbconn));
$res = mysqli_fetch_array($innerqry);
echo ',{"value": "'.$res[0].'","typ": "'.$res[1].'","einh": "'.$res[2].'","preis": "'.number_format($res[4],2,",","").'","eig":[';
$qry2 = mysqli_query($dbconn,"SELECT bezeichn, wert, einheit_id FROM eigensch
JOIN artikel_eigensch ON eig_id = eigensch.id
WHERE art_id='".$res[0]."' AND rech_id='".$res[5]."' AND artposnr = '".$res[6]."' ORDER BY posnr ASC");
if($res2 = mysqli_fetch_array($qry2))
echo '{"des":"'.$res2[0].'","val":"'.$res2[1].'", "einh":"'.$res2[2].'"}';
while($res2=mysqli_fetch_array($qry2))
echo ',{"des":"'.$res2[0].'","val":"'.$res2[1].'", "einh":"'.$res2[2].'"}';
echo ']}';
}
echo "]";
}
WHERE artikel.bezeichn LIKE ? AND dropdown = 1
AND YEAR(artikel.datetime) >= YEAR(NOW())-1
GROUP BY artikel.bezeichn LIMIT 25",
array(db_like_praefix(autoBegriff())));
$liste = array();
foreach((array)$treffer as $t)
{
$art = db_zeile($dbconn, "SELECT artikel.bezeichn, artikel.typ_id, artikel.einheit_id, artikel.id,
artikel_rechn.preis, artikel_rechn.rech_id, artikel_rechn.posnr
FROM artikel
JOIN artikeltyp ON artikel.typ_id = artikeltyp.id
JOIN artikel_rechn ON artikel.id = art_id
WHERE artikel.id = ? ORDER BY artikel_rechn.art_id DESC LIMIT 1",
array($t["id"]));
if(!$art)
continue;
$eigensch = db_zeilen($dbconn, "SELECT bezeichn AS des, wert AS val, einheit_id AS einh
FROM eigensch
JOIN artikel_eigensch ON eig_id = eigensch.id
WHERE art_id = ? AND rech_id = ? AND artposnr = ? ORDER BY posnr ASC",
array($art["id"], $art["rech_id"], $art["posnr"]));
$liste[] = array(
"value" => $art["bezeichn"],
"typ" => $art["typ_id"],
"einh" => $art["einheit_id"],
"preis" => number_format((float)$art["preis"], 2, ",", ""),
"eig" => $eigensch ? $eigensch : array(),
);
}
header("Content-Type: application/json; charset=utf-8");
echo json_encode($liste, JSON_UNESCAPED_UNICODE);
}
?>
+28
View File
@@ -0,0 +1,28 @@
<?php
/*
* Gemeinsames für die Autovervollständigung der Formulare.
*
* Die Endpunkte liefern eine JSON-Liste, die jQuery UI direkt als
* Vorschlagsliste verwendet: "value" ist der Vorschlag selbst, die übrigen
* Schlüssel füllen weitere Felder desselben Formulars (siehe die
* focus-Handler in den Templates).
*/
/* Suchbegriff aus der Anfrage, "" wenn keiner da ist */
function autoBegriff()
{
return isset($_GET["term"]) && is_string($_GET["term"]) ? trim($_GET["term"]) : "";
}
/*
* Führt die Abfrage aus und gibt das Ergebnis als JSON aus. Die Spalten
* heißen bereits so, wie das Formular sie erwartet. json_encode() kümmert
* sich ums Maskieren - früher war die Liste von Hand zusammengesetzt und
* ein Anführungszeichen im Ortsnamen machte sie unbrauchbar.
*/
function autoAusgabe($dbconn, $sql, $params)
{
$zeilen = db_zeilen($dbconn, $sql, $params);
header("Content-Type: application/json; charset=utf-8");
echo json_encode($zeilen ? $zeilen : array(), JSON_UNESCAPED_UNICODE);
}
+6 -20
View File
@@ -1,22 +1,8 @@
<?php
<?php
require_once("./connectmysql.php");
if(!$err)
{
require_once("./autofuncs.php");
if($_GET["term"])
{
$qry = mysqli_query($dbconn,"SELECT bank,blz FROM bank WHERE bank LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY bank ORDER BY bank ASC") or die(mysqli_error($dbconn));
if($res=mysqli_fetch_array($qry))
{
echo "[ ";
echo '{"value": "'.$res[0].'","blz":"'.$res[1].'"}';
while($res=mysqli_fetch_array($qry))
{
echo ',{"value":"'.$res[0].'","blz":"'.$res[1].'"}';
}
echo "]";
}
}
}
?>
if(!$err && autoBegriff() !== "")
autoAusgabe($dbconn, "SELECT bank AS value, blz FROM bank
WHERE bank LIKE ? GROUP BY bank ORDER BY bank ASC LIMIT 25",
array(db_like_praefix(autoBegriff())));
+7 -19
View File
@@ -1,20 +1,8 @@
<?php
<?php
require_once("./connectmysql.php");
if(!$err)
{
if($_GET["term"])
{
$qry = mysqli_query($dbconn,"SELECT blz,bank FROM bank WHERE blz LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY blz ORDER BY blz ASC") or die(mysqli_error($dbconn));
if($res=mysqli_fetch_array($qry))
{
echo "[ ";
echo '{"value": "'.$res[0].'","bank":"'.$res[1].'"}';
while($res=mysqli_fetch_array($qry))
{
echo ',{"value":"'.$res[0].'","bank":"'.$res[1].'"}';
}
echo "]";
}
}
}
?>
require_once("./autofuncs.php");
if(!$err && autoBegriff() !== "")
autoAusgabe($dbconn, "SELECT blz AS value, bank FROM bank
WHERE blz LIKE ? GROUP BY blz ORDER BY blz ASC LIMIT 25",
array(db_like_praefix(autoBegriff())));
+6 -20
View File
@@ -1,22 +1,8 @@
<?php
<?php
require_once("./connectmysql.php");
require_once("./autofuncs.php");
if(!$err)
{
if($_GET["term"])
{
$qry = mysqli_query($dbconn,"SELECT land FROM land WHERE land LIKE '".mysql_escape_string($_GET["term"])."%' ORDER BY land ASC") or die(mysqli_error($dbconn));
if($res=mysqli_fetch_array($qry))
{
echo "[ ";
echo '{"value": "'.$res[0].'"}';
while($res=mysqli_fetch_array($qry))
{
echo ',{"value":"'.$res[0].'"}';
}
echo "]";
}
}
}
?>
if(!$err && autoBegriff() !== "")
autoAusgabe($dbconn, "SELECT land AS value FROM land
WHERE land LIKE ? ORDER BY land ASC LIMIT 25",
array(db_like_praefix(autoBegriff())));
+7 -20
View File
@@ -1,22 +1,9 @@
<?php
<?php
require_once("./connectmysql.php");
require_once("./autofuncs.php");
if(!$err)
{
if($_GET["term"])
{
$qry = mysqli_query($dbconn,"SELECT ort, plz, land, vwahl FROM ort JOIN land ON land.id = ort.land_id WHERE ort LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY ort ORDER BY ort ASC") or die(mysqli_error($dbconn));
if($res=mysqli_fetch_array($qry))
{
echo "[ ";
echo '{"value": "'.$res[0].'","plz":"'.$res[1].'","lnd":"'.$res[2].'","vwl":"'.$res[3].'"}';
while($res=mysqli_fetch_array($qry))
{
echo ',{"value":"'.$res[0].'","plz":"'.$res[1].'","lnd":"'.$res[2].'","vwl":"'.$res[3].'"}';
}
echo "]";
}
}
}
?>
if(!$err && autoBegriff() !== "")
autoAusgabe($dbconn, "SELECT ort AS value, plz, land AS lnd, vwahl AS vwl
FROM ort JOIN land ON land.id = ort.land_id
WHERE ort LIKE ? GROUP BY ort ORDER BY ort ASC LIMIT 25",
array(db_like_praefix(autoBegriff())));
+7 -21
View File
@@ -1,23 +1,9 @@
<?php
<?php
require_once("./connectmysql.php");
require_once("./autofuncs.php");
if(!$err)
{
if($_GET["term"])
{
$qry = mysqli_query($dbconn,"SELECT ortsteil, plz, ort, land, vwahl FROM ort JOIN land ON land.id = ort.land_id WHERE ortsteil LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY ortsteil ORDER BY ort ASC") or die(mysqli_error($dbconn));
if($res=mysqli_fetch_array($qry))
{
echo "[ ";
echo '{"value": "'.$res[0].'","plz":"'.$res[1].'","ort":"'.$res[2].',"lnd":"'.$res[3].'","vwl":"'.$res[3].'"}';
while($res=mysqli_fetch_array($qry))
{
echo ',{"value":"'.$res[0].'","plz":"'.$res[1].'","ort":"'.$res[2].',"lnd":"'.$res[3].'","vwl":"'.$res[3].'"}';
}
echo "]";
}
}
}
?>
if(!$err && autoBegriff() !== "")
autoAusgabe($dbconn, "SELECT ortsteil AS value, plz, ort, land AS lnd, vwahl AS vwl
FROM ort JOIN land ON land.id = ort.land_id
WHERE ortsteil LIKE ? GROUP BY ortsteil ORDER BY ort ASC LIMIT 25",
array(db_like_praefix(autoBegriff())));
+7 -21
View File
@@ -1,23 +1,9 @@
<?php
<?php
require_once("./connectmysql.php");
require_once("./autofuncs.php");
if(!$err)
{
if($_GET["term"])
{
$qry = mysqli_query($dbconn,"SELECT plz, ort, land FROM ort JOIN land ON land.id = ort.land_id WHERE plz LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY plz ORDER BY plz ASC") or die(mysqli_error($dbconn));
if($res=mysqli_fetch_array($qry))
{
echo "[ ";
echo '{"value": "'.$res[0].'","ort":"'.$res[1].'","lnd":"'.$res[2].'","vwl":"'.$res[3].'"}';
while($res=mysqli_fetch_array($qry))
{
echo ',{"value":"'.$res[0].'","ort":"'.$res[1].'","lnd":"'.$res[2].'","vwl":"'.$res[3].'"}';
}
echo "]";
}
}
}
?>
if(!$err && autoBegriff() !== "")
autoAusgabe($dbconn, "SELECT plz AS value, ort, land AS lnd, vwahl AS vwl
FROM ort JOIN land ON land.id = ort.land_id
WHERE plz LIKE ? GROUP BY plz ORDER BY plz ASC LIMIT 25",
array(db_like_praefix(autoBegriff())));
+9 -21
View File
@@ -1,23 +1,11 @@
<?php
<?php
require_once("./connectmysql.php");
require_once("./autofuncs.php");
if(!$err)
{
if($_GET["term"])
{
$qry = mysqli_query($dbconn,"SELECT str, plz, ort, land FROM strasse JOIN ort ON ort.id = strasse.ort_id JOIN land ON land.id = ort.land_id WHERE str LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY str ORDER BY str ASC") or die(mysqli_error($dbconn));
if($res=mysqli_fetch_array($qry))
{
echo "[ ";
echo '{"value": "'.$res[0].'","plz":"'.$res[1].'","ort":"'.$res[2].'","lnd":"'.$res[3].'"}';
while($res=mysqli_fetch_array($qry))
{
echo ',{"value": "'.$res[0].'","plz":"'.$res[1].'","ort":"'.$res[2].'","lnd":"'.$res[3].'"}';
}
echo "]";
}
}
}
?>
if(!$err && autoBegriff() !== "")
autoAusgabe($dbconn, "SELECT str AS value, plz, ort, ortsteil AS otl, land AS lnd
FROM strasse
JOIN ort ON ort.id = strasse.ort_id
JOIN land ON land.id = ort.land_id
WHERE str LIKE ? GROUP BY str ORDER BY str ASC LIMIT 25",
array(db_like_praefix(autoBegriff())));
+7 -20
View File
@@ -1,22 +1,9 @@
<?php
<?php
require_once("./connectmysql.php");
require_once("./autofuncs.php");
if(!$err)
{
if($_GET["term"])
{
$qry = mysqli_query($dbconn,"SELECT vwahl, plz, ort, ortsteil, land FROM ort JOIN land ON land.id = ort.land_id WHERE vwahl LIKE '".mysql_escape_string($_GET["term"])."%' GROUP BY vwahl ORDER BY vwahl ASC") or die(mysqli_error($dbconn));
if($res=mysqli_fetch_array($qry))
{
echo "[ ";
echo '{"value": "'.$res[0].'","plz":"'.$res[1].'","ort":"'.$res[2].'","otl":"'.$res[3].'","lnd":"'.$res[4].'"}';
while($res=mysqli_fetch_array($qry))
{
echo ',{"value": "'.$res[0].'","plz":"'.$res[1].'","ort":"'.$res[2].'","otl":"'.$res[3].'","lnd":"'.$res[4].'"}';
}
echo "]";
}
}
}
?>
if(!$err && autoBegriff() !== "")
autoAusgabe($dbconn, "SELECT vwahl AS value, plz, ort, ortsteil AS otl, land AS lnd
FROM ort JOIN land ON land.id = ort.land_id
WHERE vwahl LIKE ? GROUP BY vwahl ORDER BY vwahl ASC LIMIT 25",
array(db_like_praefix(autoBegriff())));
+34 -38
View File
@@ -1,56 +1,52 @@
<?php
<?php
require_once("../incs/connectmysql.php");
require_once("../incs/funcs.php");
require_once("../incs/listfuncs.php");
require('../smarty/libs/Smarty.class.php');
$smarty = new Smarty;
$pagesize = 50;
if(!isset($err))
$err = "";
if(!$err)
{
$speciallines=array();
$fulltag = utf8_encode($_GET["search"]);
$src = explode(" ",$fulltag);
$combiner = mysql_escape_string($_GET["link"]);
if($combiner != "AND" && $combiner != "OR")
{
$combiner = "AND";
}
$page = $_GET["page"];
$queries = createAdressQry($page,$pagesize,$src,$combiner,$_GET["field"],0,1);
$qry = mysqli_query($dbconn,$queries["all"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$numres = mysqli_num_rows($qry);
// kommt per encodeURIComponent bereits als UTF-8
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
$link = isset($_GET["link"]) && is_string($_GET["link"]) ? $_GET["link"] : "";
$field = isset($_GET["field"]) && is_string($_GET["field"]) ? $_GET["field"] : "";
$page = isset($_GET["page"]) ? (int)$_GET["page"] : 0;
$rechid = isset($_GET["rechid"]) ? (int)$_GET["rechid"] : 0;
// steuert, wofür die gewählte Adresse verwendet wird
$subact = (isset($_GET["subact"]) && $_GET["subact"] == "copy") ? "copy" : "changeadr";
$speciallines = array();
$listlines = array();
$src = explode(" ", $fulltag);
$combiner = $link == "OR" ? "OR" : "AND";
$queries = createAdressQry($page,$pagesize,$src,$combiner,$field,0,1);
$numres = zaehleTreffer($dbconn, $queries);
if(!$numres)
{
$queries = createAdressQry($page,$pagesize,$src,$combiner,$_GET["field"],1,1);
$qry = mysqli_query($dbconn,$queries["all"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$numres = mysqli_num_rows($qry);
$queries = createAdressQry($page,$pagesize,$src,$combiner,$field,1,1);
$numres = zaehleTreffer($dbconn, $queries);
message("veraltete Datensätze wurden in die Suche einbezogen");
}
if($numres)
{
$qry = mysqli_query($dbconn,$queries["limited"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
or die("Datenbank fehler: ".htmlspecialchars(mysqli_error($dbconn)));
while($res=mysqli_fetch_assoc($qry))
{
$name = $res["vname"]." ".$res["nname"];
if($res["firma"])
$name .= " <i><u>".$res["firma"]."</u></i>";
if($res["vwahl"])
$res["tel"] = $res["vwahl"]."/".$res["tel"];
if(!$res["updated_by"])
$listlines[] = array("<a href='?action=rechnungadd&id=".$_GET["rechid"]."&".$_GET["subact"]."=1&adrid=".$res["adrid"]."'><span class='check' title='Diese Adresse verwenden'></span></a> &nbsp;&nbsp;".$res["kdnr"]."",$name,$res["plz"]." ".$res["ort"], $res["str"]." ".$res["hnr"], $res["tel"]);
$adresse = makeadressline($res);
$waehlen = "<a href='?action=rechnungadd&id=".$rechid."&".$subact."=1&adrid=".(int)$res["adrid"]."'><span class='check' title='Diese Adresse verwenden'></span></a>";
$zeile = array($waehlen." &nbsp;&nbsp;".(int)$res["kdnr"], makenameline($res), $adresse["ort"], $adresse["str"], maketelline($res));
if(empty($res["updated_by"]))
$listlines[] = $zeile;
else
$speciallines[] = array("<a href='?action=rechnungadd&id=".$_GET["rechid"]."&".$_GET["subact"]."=1&adrid=".$res["adrid"]."'><span class='check' title='Diese Adresse verwenden'></span></a> &nbsp;&nbsp;".$res["kdnr"]."",$name,$res["plz"]." ".$res["ort"], $res["str"]." ".$res["hnr"], $res["tel"]);
$speciallines[] = $zeile;
}
$headings = array("Kd.Nr.","Name/<i><u>Firma</u></i>","Ort","Straße","Telefon");
$lastdisplay = ($page+1)*$pagesize;
@@ -60,12 +56,12 @@ if(!$err)
ok("Die Suche nach ".htmlspecialchars($fulltag)." ergab ".$numres." Ergebnisse.<br /> Ergebnis ".($page*$pagesize+1)." bis ".$lastdisplay);
else
ok($numres." Adressen sind insgesamt gespeichert.");
displayPages($pagesize,$page,$numres,"ajax_searchadress");
displayPages($pagesize,$page,$numres,"ajax_searchadress",",".$rechid.",'".$subact."'");
displayList($headings,$listlines,$speciallines);
displayPages($pagesize,$page,$numres,"ajax_searchadress");
displayPages($pagesize,$page,$numres,"ajax_searchadress",",".$rechid.",'".$subact."'");
}
else
else
ok("Die Suche nach ".htmlspecialchars($fulltag)." ergab keine Ergebnisse.");
}
?>
?>
+31 -76
View File
@@ -1,89 +1,45 @@
<?php
<?php
require_once("../incs/connectmysql.php");
require_once("../incs/funcs.php");
require_once("../incs/listfuncs.php");
require('../smarty/libs/Smarty.class.php');
$smarty = new Smarty;
$pagesize = 20;
if(!isset($err))
$err = "";
if(!$err)
{
// kommt per encodeURIComponent bereits als UTF-8
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
$link = isset($_GET["link"]) && is_string($_GET["link"]) ? $_GET["link"] : "";
$page = isset($_GET["page"]) ? (int)$_GET["page"] : 0;
$id = isset($_GET["kdnid"]) ? (int)$_GET["kdnid"] : 0;
$src = explode(" ", $fulltag);
$combiner = $link == "OR" ? "OR" : "AND";
$listlines = array();
$fulltag = utf8_encode($_GET["search"]);
$src = explode(" ",$fulltag);
$combiner = mysql_escape_string($_GET["link"]);
if($combiner != "AND" && $combiner != "OR")
{
$combiner = "AND";
}
$page = $_GET["page"];
$skspage = $_GET["skspage"];
$typ = $_GET["typ"];
$id = $_GET["kdnid"];
$queries = createKdnProjectQry($page,$pagesize,$src,$combiner,$id);
$qry = mysqli_query($dbconn,$queries["all"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$numres = mysqli_num_rows($qry);
/*
if(!$numres)
{
$queries = createKdnRechQry($page,$pagesize,$src,$combiner,1);
$qry = mysqli_query($dbconn,$queries["all"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$numres = mysqli_num_rows($qry);
message("veraltete Datensätze wurden in die Suche einbezogen");
}
*/
$numres = zaehleTreffer($dbconn, $queries);
if($numres)
{
$listlines=array();
$qry = mysqli_query($dbconn,$queries["limited"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
or die("Datenbank fehler: ".htmlspecialchars(mysqli_error($dbconn)));
while($res=mysqli_fetch_assoc($qry))
{
$actions = "<span class='del' title='löschen' onClick='askdel(\"Möchten Sie das Projekt ".$res["name"]."<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=projectadd&id=".$res["id"]."&del=1\")'></span>";
$actions .= "<a href='?action=projectadd&id=".$res["id"]."'><span class='edit' title='Projekt ändern'></span></a>";
//$actions .= "<a href='?action=projectadd&id=".$res["id"]."&copy=1'><span class='copy' title='Projekt kopieren'></span></a>";
//$tmpqry = mysqli_query($dbconn,"SELECT id FROM kontakt WHERE partner_id = '$id' AND typ_id = 1");
//if(mysqli_fetch_array($tmpqry))
// $actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&mail=1'><span class='mail' title='Dokument per E-Mail versenden'></span></a>";
/*
$res["drechnr"] = substr($res["rechnr"],0,4)."-".substr($res["rechnr"],4,2)."-".substr($res["rechnr"],6,2).".".substr($res["rechnr"],8,2);
switch($res["typ_id"])
{
case 1:
$res["drechnr"] = "R".$res["drechnr"];
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&newtype=2'><span class='gutschradd' title='Gutschrift aus dieser Rechnung erstellen'></span></a>";
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&newtype=6'><span class='mahnadd' title='Mahnung aus dieser Rechnung erstellen'></span></a>";
break;
case 2:
$res["drechnr"] = "G".$res["drechnr"];
break;
case 3:
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&newtype=1'><span class='rechnadd' title='Rechnung aus diesem Angebot erstellen'></span></a>";
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&newtype=4'><span class='bestadd' title='Auftragsbestätigung aus diesem Angebot erstellen'></span></a>";
$res["drechnr"] = "A".$res["drechnr"];
break;
case 4:
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&newtype=1'><span class='rechnadd' title='Rechnung aus dieser Auftragsbestätigung erstellen'></span></a>";
$res["drechnr"] = "B".$res["drechnr"];
break;
}
if(!$res["drechnr"])
$res["drechnr"] = $res["drechnr"];
*/
$listlines[] = array("<a href='?action=projectshow&id=".$res["id"]."'>".$res["name"]."</a>",
$res["date"],
$res["work"],
$actions
);
$projektid = (int)$res["id"];
$name = htmlspecialchars((string)$res["name"]);
$actions = "<span class='del' title='löschen' onClick='askdel(\"Möchten Sie das Projekt ".$name."<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=projectadd&id=".$projektid."&del=1\")'></span>";
$actions .= "<a href='?action=projectadd&id=".$projektid."'><span class='edit' title='Projekt ändern'></span></a>";
$listlines[] = array("<a href='?action=projectshow&id=".$projektid."'>".$name."</a>",
htmlspecialchars((string)$res["date"]),
htmlspecialchars((string)$res["work"]),
$actions);
}
$headings = array("Name","Datum","Unberechnete<br />Stunden","Aktionen");
$lastdisplay = ($page+1)*$pagesize;
if($numres < $lastdisplay)
@@ -92,18 +48,17 @@ if(!$err)
ok("Die Suche nach ".htmlspecialchars($fulltag)." ergab ".$numres." Ergebnisse.<br /> Ergebnis ".($page*$pagesize+1)." bis ".$lastdisplay);
else
ok($numres." Projekte sind insgesamt gespeichert.");
displaySplitPages($pagesize,$page,$skspage,0,$numres,"ajax_searchkdnprojects",",$typ,$id");
displayList($headings,$listlines,$speciallines);
displaySplitPages($pagesize,$page,$skspage,0,$numres,"ajax_searchkdnprojects",",$typ,$id");
displayPages($pagesize,$page,$numres,"ajax_searchkdnprojects",",".$id);
displayList($headings,$listlines,array());
displayPages($pagesize,$page,$numres,"ajax_searchkdnprojects",",".$id);
}
else
else
{
if($fulltag)
ok("Die Suche nach ".htmlspecialchars($fulltag)." ergab keine Ergebnisse.");
else
else
ok("Keine Einträge.");
}
}
?>
?>
+3 -3
View File
@@ -88,14 +88,14 @@ if(!isset($err))
if($res["storno"] == 1){
$listlines[] = array("<a href='?action=rechshow&id=".$res["id"]."'><font color='#FF0000'>".$res["drechnr"]."</font></a>",
$res["date"],
artikelListeHtml($res["artikel"]),
zeilenHtml($res["artikel"]),
$actions
);
}
else{
$listlines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["drechnr"]."</a>",
$res["date"],
artikelListeHtml($res["artikel"]),
zeilenHtml($res["artikel"]),
$actions
);
}
@@ -152,7 +152,7 @@ if(!isset($err))
{
$speciallines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["rechnr"]."</a>",
$res["date"],
artikelListeHtml($res["artikel"]),
zeilenHtml($res["artikel"]),
"<span class='del' title='löschen' onClick='askdel(\"Möchten Sie das Dokument ".$res["rechnr"]."<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=rechadd&rechid=".$res["id"]."&del=1\")'></span>");
}
$headings = array("Nummer","Datum","Artikel","Aktion");
+36 -55
View File
@@ -1,66 +1,47 @@
<?php
<?php
require_once("../incs/connectmysql.php");
require_once("../incs/funcs.php");
require_once("../incs/listfuncs.php");
require('../smarty/libs/Smarty.class.php');
$smarty = new Smarty;
$pagesize = 50;
if(!isset($err))
$err = "";
if(!$err)
{
$fulltag = utf8_encode($_GET["search"]);
$src = explode(" ",$fulltag);
$combiner = mysql_escape_string($_GET["link"]);
if($combiner != "AND" && $combiner != "OR")
{
$combiner = "AND";
}
$page = $_GET["page"];
$id = $_GET["kdnid"];
$queries = createKommQry($page,$pagesize,$src,$combiner,$id,$typ,0);
$qry = mysqli_query($dbconn,$queries["all"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$numres = mysqli_num_rows($qry);
/*
if(!$numres)
{
$queries = createKdnRechQry($page,$pagesize,$src,$combiner,1);
$qry = mysqli_query($dbconn,$queries["all"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$numres = mysqli_num_rows($qry);
message("veraltete Datensätze wurden in die Suche einbezogen");
}
*/
// kommt per encodeURIComponent bereits als UTF-8
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
$link = isset($_GET["link"]) && is_string($_GET["link"]) ? $_GET["link"] : "";
$page = isset($_GET["page"]) ? (int)$_GET["page"] : 0;
$id = isset($_GET["kdnid"]) ? (int)$_GET["kdnid"] : 0;
$src = explode(" ", $fulltag);
$combiner = $link == "OR" ? "OR" : "AND";
$listlines = array();
$queries = createKommQry($page,$pagesize,$src,$combiner,$id);
$numres = zaehleTreffer($dbconn, $queries);
if($numres)
{
$listlines=array();
$qry = mysqli_query($dbconn,$queries["limited"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
or die("Datenbank fehler: ".htmlspecialchars(mysqli_error($dbconn)));
while($res=mysqli_fetch_assoc($qry))
{
$actions = " <a href='?action=kundenchange&do=adress&adressid=".$res["id"]."&kunde=$id'><span class='edit' title='Adresse ändern'></span></a>";
$actions .= " <span class='del' title='Adresse löschen' onClick='askdel(\"Möchten Sie diese Adresse<br /><b>UND ALLE ZUGEHÖRIGEN RECHNUNGEN</b><br />wirklich unwiederruflich löschen?\",\"?action=kundenchange&do=adress&adressid=".$res["id"]."&del=1\")'></span>";
$actions .= " <a href='http://maps.google.com?q=".$res["plz"]."+".$res["ort"]."+".$res["str"]."+".$res["hnr"]."' class='noloading' target='_blank'><span class='map' title='Auf Karte zeigen'></span></a>";
$actions .= " <a href='?action=terminadd&adressid=".$res["id"]."'><span class='termadd' title='Termin anlegen'></span></a><br />";
$actions .= " <a href='?action=rechnungadd&type=1&adressid=".$res["id"]."'><span class='rechnadd' title='Rechnung anlegen'></span></a>";
$actions .= " <a href='?action=rechnungadd&type=1&adressid=".$res["id"]."'><span class='gutschradd' title='Gutschrift anlegen'></span></a>";
$actions .= " <a href='?action=rechnungadd&type=3&adressid=".$res["id"]."'><span class='angadd' title='Angebot anlegen'></span></a>";
$actions .= " <a href='?action=rechnungadd&type=5&adressid=".$res["id"]."'><span class='letteradd' title='Brief anlegen'></span></a><br />";
$tmpqry = mysqli_query($dbconn,"SELECT id FROM kontakt WHERE partner_id = '$id' AND typ_id = 1");
if(mysqli_fetch_array($tmpqry))
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&mail=1'><span class='mail' title='Dokument per E-Mail versenden'></span></a>";
$name=makenameline($res);
$adresse=makeadressline($res);
$listlines[] = array($name,
$adresse["ort"], $adresse["str"],
maketelline($res),
$actions
);
$adrid = (int)$res["id"];
$karte = rawurlencode($res["plz"]." ".$res["ort"]." ".$res["str"]." ".$res["hnr"]);
$actions = " <a href='?action=kundenchange&do=adress&adressid=".$adrid."&kunde=".$id."'><span class='edit' title='Adresse ändern'></span></a>";
$actions .= " <span class='del' title='Adresse löschen' onClick='askdel(\"Möchten Sie diese Adresse<br /><b>UND ALLE ZUGEHÖRIGEN RECHNUNGEN</b><br />wirklich unwiederruflich löschen?\",\"?action=kundenchange&do=adress&adressid=".$adrid."&del=1\")'></span>";
$actions .= " <a href='https://maps.google.com/?q=".$karte."' class='noloading' target='_blank' rel='noopener'><span class='map' title='Auf Karte zeigen'></span></a>";
$actions .= " <a href='?action=terminadd&adressid=".$adrid."'><span class='termadd' title='Termin anlegen'></span></a><br />";
$actions .= " <a href='?action=rechnungadd&type=1&adressid=".$adrid."'><span class='rechnadd' title='Rechnung anlegen'></span></a>";
$actions .= " <a href='?action=rechnungadd&type=2&adressid=".$adrid."'><span class='gutschradd' title='Gutschrift anlegen'></span></a>";
$actions .= " <a href='?action=rechnungadd&type=3&adressid=".$adrid."'><span class='angadd' title='Angebot anlegen'></span></a>";
$actions .= " <a href='?action=rechnungadd&type=5&adressid=".$adrid."'><span class='letteradd' title='Brief anlegen'></span></a><br />";
$adresse = makeadressline($res);
$listlines[] = array(makenameline($res), $adresse["ort"], $adresse["str"], maketelline($res), $actions);
}
$headings = array("Name","Ort","Straße","Tel","Aktionen");
$lastdisplay = ($page+1)*$pagesize;
@@ -70,17 +51,17 @@ if(!$err)
ok("Die Suche nach ".htmlspecialchars($fulltag)." ergab ".$numres." Ergebnisse.<br /> Ergebnis ".($page*$pagesize+1)." bis ".$lastdisplay);
else
ok($numres." Kommissionen sind insgesamt gespeichert.");
displaySplitPages($pagesize,$page,$skspage,0,$numres,"ajax_searchkomm",",$id");
displayList($headings,$listlines,$speciallines);
displaySplitPages($pagesize,$page,$skspage,0,$numres,"ajax_searchkomm",",$id");
displayPages($pagesize,$page,$numres,"ajax_searchkomm",",".$id);
displayList($headings,$listlines,array());
displayPages($pagesize,$page,$numres,"ajax_searchkomm",",".$id);
}
else
else
{
if($fulltag)
ok("Die Suche nach ".htmlspecialchars($fulltag)." ergab keine Ergebnisse.");
else
else
ok("Keine Einträge.");
}
}
?>
?>
+36 -50
View File
@@ -1,85 +1,71 @@
<?php
<?php
require_once("../incs/connectmysql.php");
require_once("../incs/funcs.php");
require_once("../incs/listfuncs.php");
require('../smarty/libs/Smarty.class.php');
$smarty = new Smarty;
$pagesize = 50;
if(!isset($err)){
$err="";
}
if(!isset($err))
$err = "";
if(!$err)
{
if(!isset($_GET["link"])){
$_GET["link"] = "";
}
if(!isset($_GET["field"])){
$_GET["field"] = "";
}
// kommt per encodeURIComponent bereits als UTF-8
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
$link = isset($_GET["link"]) && is_string($_GET["link"]) ? $_GET["link"] : "";
$field = isset($_GET["field"]) && is_string($_GET["field"]) ? $_GET["field"] : "";
$page = isset($_GET["page"]) ? (int)$_GET["page"] : 0;
$_SESSION["search"] = $_GET["search"];
$_SESSION["link"] = $_GET["link"];
$_SESSION["field"] = $_GET["field"];
$_SESSION["page"] = $_GET["page"];
$speciallines=array();
$fulltag = utf8_encode($_GET["search"]);
$src = explode(" ",$fulltag);
$combiner = mysql_escape_string($_GET["link"]);
if($combiner != "AND" && $combiner != "OR")
{
$combiner = "AND";
}
$page = $_GET["page"];
$queries = createPartQry($page,$pagesize,$src,$combiner,$_GET["field"],0,1);
$qry = mysqli_query($dbconn,$queries["all"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$numres = mysqli_num_rows($qry);
$_SESSION["search"] = $fulltag;
$_SESSION["link"] = $link;
$_SESSION["field"] = $field;
$_SESSION["page"] = $page;
$speciallines = array();
$listlines = array();
$src = explode(" ", $fulltag);
$combiner = $link == "OR" ? "OR" : "AND";
$queries = createPartQry($page,$pagesize,$src,$combiner,$field,0,1);
$numres = zaehleTreffer($dbconn, $queries);
if(!$numres)
{
$queries = createPartQry($page,$pagesize,$src,$combiner,$_GET["field"],1,1);
$qry = mysqli_query($dbconn,$queries["all"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$numres = mysqli_num_rows($qry);
$queries = createPartQry($page,$pagesize,$src,$combiner,$field,1,1);
$numres = zaehleTreffer($dbconn, $queries);
message("veraltete Datensätze wurden in die Suche einbezogen");
}
if($numres)
{
$qry = mysqli_query($dbconn,$queries["limited"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
or die("Datenbank fehler: ".htmlspecialchars(mysqli_error($dbconn)));
while($res=mysqli_fetch_assoc($qry))
{
$name = $res["vname"]." ".$res["nname"];
if(isset($res["firma"]))
$name .= " <i><u>".$res["firma"]."</u></i>";
if(isset($res["vwahl"]))
$res["tel"] = $res["vwahl"]."/".$res["tel"];
$adresse=makeadressline($res);
if(!isset($res["updated_by"]))
$listlines[] = array("<a href='?action=kundenshow&id=".$res["kdnr"]."'>".$res["kdnr"]."</a>",makenameline($res),$adresse["ort"], $adresse["str"], maketelline($res),"<span class='del' title='Kunde löschen' onClick='askdel(\"Möchten Sie den Kunden ".$res["kdnr"]." und<br />ALLE ZUGEHÖRIGEN DATEN<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=kundenadd&kundeid=".$res["kdnr"]."&del=1\")'></span><a href='?action=projectlist&kundeid=".$res["kdnr"]."'><span class='projects' title='Projekte dieses Kunden auflisten'></span></a>");
$adresse = makeadressline($res);
$kdnr = (int)$res["kdnr"];
$aktionen = "<span class='del' title='Kunde löschen' onClick='askdel(\"Möchten Sie den Kunden ".$kdnr." und<br />ALLE ZUGEHÖRIGEN DATEN<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=kundenadd&kundeid=".$kdnr."&del=1\")'></span>"
."<a href='?action=projectlist&kundeid=".$kdnr."'><span class='projects' title='Projekte dieses Kunden auflisten'></span></a>";
$zeile = array("<a href='?action=kundenshow&id=".$kdnr."'>".$kdnr."</a>", makenameline($res), $adresse["ort"], $adresse["str"], maketelline($res), $aktionen);
if(empty($res["updated_by"]))
$listlines[] = $zeile;
else
$speciallines[] = array("<a href='?action=kundenshow&id=".$res["kdnr"]."'>".$res["kdnr"]."</a>",makenameline($res),$adresse["ort"], $adresse["str"], maketelline($res),"<span class='del' title='Kunde löschen' onClick='askdel(\"Möchten Sie den Kunden ".$res["kdnr"]." und<br />ALLE ZUGEHÖRIGEN DATEN<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=kundenadd&kundeid=".$res["kdnr"]."&del=1\")'></span><a href='?action=projectlist&kundeid=".$res["kdnr"]."'><span class='projects' title='Projekte dieses Kunden auflisten'></span></a>");
$speciallines[] = $zeile;
}
$headings = array("Kd.Nr.","Name/<i><u>Firma</u></i>","Ort","Straße","Telefon","Löschen");
$lastdisplay = (intval($page)+1)*$pagesize;
$lastdisplay = ($page+1)*$pagesize;
if($numres < $lastdisplay)
$lastdisplay = $numres;
if($fulltag)
ok("Die Suche nach ".htmlspecialchars($fulltag)." ergab ".$numres." Ergebnisse.<br /> Ergebnis ".($page*$pagesize+1)." bis ".$lastdisplay);
else
ok($numres." Kunden sind insgesamt gespeichert.");
displayPages($pagesize,$page,$numres,"ajax_searchkunden");
displayList($headings,$listlines,$speciallines);
displayPages($pagesize,$page,$numres,"ajax_searchkunden");
}
else
else
ok("Die Suche nach ".htmlspecialchars($fulltag)." ergab keine Ergebnisse.");
}
?>
?>
+29 -44
View File
@@ -1,61 +1,47 @@
<?php
<?php
require_once("../incs/connectmysql.php");
require_once("../incs/funcs.php");
require_once("../incs/listfuncs.php");
require('../smarty/libs/Smarty.class.php');
$smarty = new Smarty;
$pagesize = 50;
if(!isset($err))
$err = "";
if(!$err)
{
// kommt per encodeURIComponent bereits als UTF-8
$fulltag = isset($_GET["search"]) && is_string($_GET["search"]) ? $_GET["search"] : "";
$link = isset($_GET["link"]) && is_string($_GET["link"]) ? $_GET["link"] : "";
$field = isset($_GET["field"]) && is_string($_GET["field"]) ? $_GET["field"] : "";
$page = isset($_GET["page"]) ? (int)$_GET["page"] : 0;
if(!isset($_GET["link"])){
$_GET["link"]="";
}
$listlines = array();
$src = explode(" ", $fulltag);
$combiner = $link == "OR" ? "OR" : "AND";
$fulltag = utf8_encode($_GET["search"]);
$src = explode(" ",$fulltag);
$combiner = mysql_escape_string($_GET["link"]);
if($combiner != "AND" && $combiner != "OR")
{
$combiner = "AND";
}
$page = $_GET["page"];
$queries = createPartQry($page,$pagesize,$src,$combiner,$_GET["field"],0,2);
$qry = mysqli_query($dbconn,$queries["all"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$numres = mysqli_num_rows($qry);
$queries = createPartQry($page,$pagesize,$src,$combiner,$field,0,2);
$numres = zaehleTreffer($dbconn, $queries);
if(!$numres)
{
$queries = createPartQry($page,$pagesize,$src,$combiner,$_GET["field"],1,2);
$qry = mysqli_query($dbconn,$queries["all"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$numres = mysqli_num_rows($qry);
$queries = createPartQry($page,$pagesize,$src,$combiner,$field,1,2);
$numres = zaehleTreffer($dbconn, $queries);
message("veraltete Datensätze wurden in die Suche einbezogen");
}
if($numres)
{
$qry = mysqli_query($dbconn,$queries["limited"])
or die("Datenbank fehler: ".mysqli_error($dbconn));
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
or die("Datenbank fehler: ".htmlspecialchars(mysqli_error($dbconn)));
while($res=mysqli_fetch_assoc($qry))
{
if(!isset($res["nname"]))
$name = $res["firma"];
else
$name = $res["vname"]." ".$res["nname"];
if(isset($res["vwahl"]))
$res["tel"] = $res["vwahl"]."/".$res["tel"];
if(!isset($res["updated_by"]))
$listlines[] = array("<a href='?action=liefershow&id=".$res["kdnr"]."'>".$res["kdnr"]."</a>",$name,$res["plz"]." ".$res["ort"], $res["str"]." ".$res["hnr"], $res["tel"],"<span class='del' title='Kunde löschen' onClick='askdel(\"Möchten Sie den Kunden ".$res["kdnr"]." und<br />ALLE ZUGEHÖRIGEN DATEN<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=kundenadd&kundeid=".$res["kdnr"]."&del=1\")'></span>");
else
$speciallines[] = array("<a href='?action=liefershow&id=".$res["kdnr"]."'>".$res["kdnr"]."</a>",$name,$res["plz"]." ".$res["ort"], $res["str"]." ".$res["hnr"], $res["tel"],"<span class='del' title='Kunde löschen' onClick='askdel(\"Möchten Sie den Kunden ".$res["kdnr"]." und<br />ALLE ZUGEHÖRIGEN DATEN<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=kundenadd&kundeid=".$res["kdnr"]."&del=1\")'></span>");
$adresse = makeadressline($res);
$kdnr = (int)$res["kdnr"];
$aktionen = "<span class='del' title='Lieferant löschen' onClick='askdel(\"Möchten Sie den Lieferanten ".$kdnr." und<br />ALLE ZUGEHÖRIGEN DATEN<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=lieferadd&kundeid=".$kdnr."&del=1\")'></span>";
$listlines[] = array("<a href='?action=liefershow&id=".$kdnr."'>".$kdnr."</a>", makenameline($res), $adresse["ort"], $adresse["str"], maketelline($res), $aktionen);
}
$headings = array("Kd.Nr.","Name/Firma","Ort","Straße","Telefon","Löschen");
$headings = array("Kd.Nr.","Name/<i><u>Firma</u></i>","Ort","Straße","Telefon","Löschen");
$lastdisplay = ($page+1)*$pagesize;
if($numres < $lastdisplay)
$lastdisplay = $numres;
@@ -63,13 +49,12 @@ if(!isset($err))
ok("Die Suche nach ".htmlspecialchars($fulltag)." ergab ".$numres." Ergebnisse.<br /> Ergebnis ".($page*$pagesize+1)." bis ".$lastdisplay);
else
ok($numres." Lieferanten sind insgesamt gespeichert.");
$speciallines = Array();
displayPages($pagesize,$page,$numres,"ajax_searchkunden");
displayList($headings,$listlines,$speciallines);
displayPages($pagesize,$page,$numres,"ajax_searchkunden");
displayPages($pagesize,$page,$numres,"ajax_searchliefer");
displayList($headings,$listlines,array());
displayPages($pagesize,$page,$numres,"ajax_searchliefer");
}
else
else
ok("Die Suche nach ".htmlspecialchars($fulltag)." ergab keine Ergebnisse.");
}
?>
?>
+3 -3
View File
@@ -83,14 +83,14 @@ if(!isset($err))
if($res["storno"] == 1){
$listlines[] = array("<a href='?action=rechshow&id=".$res["id"]."'><font color='#FF0000'>".$res["drechnr"]."</font></a>",
$res["date"],
artikelListeHtml($res["artikel"]),
zeilenHtml($res["artikel"]),
$actions
);
}
else{
$listlines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["drechnr"]."</a>",
$res["date"],
artikelListeHtml($res["artikel"]),
zeilenHtml($res["artikel"]),
$actions
);
}
@@ -143,7 +143,7 @@ if(!isset($err))
{
$speciallines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["rechnr"]."</a>",
$res["date"],
artikelListeHtml($res["artikel"]),
zeilenHtml($res["artikel"]),
"<span class='del' title='löschen' onClick='askdel(\"Möchten Sie das Dokument ".$res["rechnr"]."<br />wirklich <b>unwiederruflich</b> löschen?\",\"?action=rechadd&rechid=".$res["id"]."&del=1\")'></span>");
}
$headings = array("Nummer","Datum","Artikel","Aktion");