Rechnungsmodul auf Prepared Statements umgebaut
- incs/rechnung.php: alle Abfragen mit Platzhaltern. saveRechnung() setzte $_POST ungeprueft in SQL (Injection; ein Apostroph im Text brach das Speichern ab). Speichern, Kopieren und Loeschen laufen in Transaktionen, bei Fehlern bleibt nichts Halbes zurueck. Formularwerte ueber formularText/-Zahl/-Ganzzahl (strikter Modus). - copyRech() trug die Rechnungsnummer ohne typ_id ein (Fehler im strikten Modus) und zaehlte typuebergreifend; jetzt wie beim Anlegen pro Typ (neueRechnungsnummer()). Artikel und Eigenschaften per INSERT ... SELECT. - Adressblock-Formatierung aus makeadressblock() und makeadressblockUmschlag() in formatiereAdressblock() zusammengefuehrt. - ajax/autosave.php und ajax/preview.php teilen sich saveTmpRechnung(); ueberzaehlige Entwuerfe werden samt Artikeln entfernt (vorher FK-Fehler). - sites/rechnungadd.php: Storno ohne SQL-Injection ueber $_GET["id"], Auswahllisten ueber db_zuordnung(), tote Kommissions-Abfrage entfernt. - Rechnungssuche (createRechQry/createKdnRechQry) liefert SQL und Parameter getrennt; Suchbegriffe waren ungeprueft im SQL. - saveLog() mit Platzhaltern, Protokolltext ueber db_sql_text(). - db.php: db_zuordnung(), db_sql_text(); Helfer liefern Strings wie mysqli_query(), damit alter Code sich gleich verhaelt. Getestet: alter und neuer Code lesen dieselbe migrierte Datenbank, 150 von 155 Pruefungen (10.936 Werte) identisch, die uebrigen 5 sind der Injection-Suchbegriff (alt: SQL-Fehler). Schreibtests fuer Entwurf, Anlegen, Nummernkreise, Aendern, Rollback, Kopieren, Adresse, Storno und Loeschen im strikten Modus. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+11
-183
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php
|
||||
require_once("../incs/connectmysql.php");
|
||||
require_once("../incs/funcs.php");
|
||||
require_once("../incs/listfuncs.php");
|
||||
@@ -9,202 +9,30 @@ require('../smarty/libs/Smarty.class.php');
|
||||
$smarty = new Smarty;
|
||||
|
||||
|
||||
|
||||
if(!isset($err))
|
||||
{
|
||||
$show = "";
|
||||
if(isset($_POST["show_firmaanr"]))
|
||||
$show .= str_pad($_POST["show_firmaanr"],1,"0");
|
||||
// Entwurf speichern, alle Artikel (auch deaktivierte)
|
||||
list($progressid, $fehler) = saveTmpRechnung($dbconn, false);
|
||||
if($fehler)
|
||||
$err = $fehler;
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_firma"]))
|
||||
$show .= str_pad($_POST["show_firma"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_anr"]))
|
||||
$show .= str_pad($_POST["show_anr"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if( isset($_POST["show_titel"]))
|
||||
$show .= str_pad($_POST["show_titel"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_name"]))
|
||||
$show .= str_pad($_POST["show_name"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_anr2"]))
|
||||
$show .= str_pad($_POST["show_anr2"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_titel2"]))
|
||||
$show .= str_pad($_POST["show_titel2"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_name2"]))
|
||||
$show .= str_pad($_POST["show_name2"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_str"]))
|
||||
$show .= str_pad($_POST["show_str"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_ort"]))
|
||||
$show .= str_pad($_POST["show_ort"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_land"]))
|
||||
$show .= str_pad($_POST["show_land"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_zusatz"]))
|
||||
$show .= str_pad($_POST["show_zusatz"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
|
||||
if(isset($_POST["anr1"]))
|
||||
$anr1 = trim($_POST["anr1"]);
|
||||
else
|
||||
$anr1 = "";
|
||||
if(isset($_POST["anr2"]))
|
||||
$anr2 = trim($_POST["anr2"]);
|
||||
else
|
||||
$anr2 = "";
|
||||
if(isset($_POST["intro"]))
|
||||
$intro = trim($_POST["intro"]);
|
||||
else
|
||||
$intro = "";
|
||||
|
||||
$adrerw = trim($_POST["adresserweiterung"]);
|
||||
$outro = trim($_POST["outro"]);
|
||||
$type = $_POST["type"];
|
||||
$adressid = $_POST["adressid"];
|
||||
$partnerid = $_POST["partnerid"];
|
||||
$mwst = $_POST["mwst"];
|
||||
$zahlziel = $_POST["zahlziel"];
|
||||
$wahrung = $_POST["wahrung"];
|
||||
if(isset($_POST["sub_mwst"]))
|
||||
$sub_mwst = $_POST["sub_mwst"];
|
||||
else
|
||||
$sub_mwst = "";
|
||||
$rabatt = $_POST["rabatt"];
|
||||
$rabattdesc = $_POST["rabattdesc"];
|
||||
$lieferdatum = $_POST["lieferdatum"];
|
||||
$buchKto = $_POST["buchKto"];
|
||||
|
||||
$qry = mysqli_query($dbconn, "SELECT id FROM tmp_rechnung WHERE user_id = '".$_SESSION["user"]."' AND typ_id = '$type'") or $err=error("Fehler beim ermitteln der Rechnung <br />".mysqli_error($dbconn));
|
||||
$progressid = mysqli_fetch_array($qry);
|
||||
$progressid = $progressid[0];
|
||||
if(!$progressid)
|
||||
{
|
||||
|
||||
$qry = mysqli_query($dbconn, "INSERT INTO tmp_rechnung SET
|
||||
user_id = '".$_SESSION["user"]."',
|
||||
adressfields='$show',
|
||||
anrede1='$anr1',
|
||||
anrede2='$anr2',
|
||||
intro='$intro',
|
||||
outro='$outro',
|
||||
typ_id = '$type',
|
||||
adresse_id='$adressid',
|
||||
partner_id='$partnerid',
|
||||
mwst_id = '$mwst',
|
||||
zahlziel_id = '$zahlziel',
|
||||
wahrung_id='$wahrung',
|
||||
sub_mwst='$sub_mwst',
|
||||
rabatt='$rabatt',
|
||||
rabattdesc='$rabattdesc',
|
||||
adresserweiterung='$adrerw',
|
||||
lieferdatum='$lieferdatum',
|
||||
buchungsKto_id = '$buchKto',
|
||||
datetime=NOW()") or $err=error("[autosave.js] Fehler beim erstellen der Rechnung <br />".mysqli_error($dbconn));
|
||||
$progressid = mysqli_insert_id($dbconn);
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = mysqli_query($dbconn, "UPDATE tmp_rechnung SET
|
||||
user_id = '".$_SESSION["user"]."',
|
||||
adressfields='$show',
|
||||
anrede1='$anr1',
|
||||
anrede2='$anr2',
|
||||
intro='$intro',
|
||||
outro='$outro',
|
||||
typ_id = '$type',
|
||||
adresse_id='$adressid',
|
||||
partner_id='$partnerid',
|
||||
mwst_id = '$mwst',
|
||||
zahlziel_id = '$zahlziel',
|
||||
wahrung_id='$wahrung',
|
||||
sub_mwst='$sub_mwst',
|
||||
rabatt='$rabatt',
|
||||
rabattdesc='$rabattdesc',
|
||||
lieferdatum='$lieferdatum',
|
||||
adresserweiterung='$adrerw',
|
||||
buchungsKto_id = '$buchKto',
|
||||
datetime=NOW() WHERE id='$progressid'") or $err=error("Fehler beim aktualisieren der Rechnung <br />".mysqli_error($dbconn));
|
||||
$qry = mysqli_query($dbconn, "DELETE FROM tmp_rechnung WHERE user_id = '".$_SESSION["user"]."' AND typ_id = '$type' AND id != '$progressid' LIMIT 1") or $err=error("Fehler beim löschen alter tmp Rechnungen <br />".mysqli_error($dbconn));
|
||||
}
|
||||
|
||||
$qry= mysqli_query($dbconn, "SELECT id FROM tmp_artikel WHERE rech_id = '".$progressid."'");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
mysqli_query($dbconn, "DELETE FROM tmp_eigensch WHERE art_id = '".$res["id"]."'") or $err=error("Fehler beim löschen der eigenschaften <br />".mysqli_error($dbconn));
|
||||
}
|
||||
|
||||
$qry = mysqli_query($dbconn, "DELETE FROM tmp_artikel WHERE rech_id = '".$progressid."'") or $err=error("Fehler beim löschen der Artikel <br />".mysqli_error($dbconn));
|
||||
if(!isset($err))
|
||||
{
|
||||
$i = 1;
|
||||
while($_POST["arthead".$i] && !isset($err))
|
||||
{
|
||||
$angtyp = trim($_POST["angtyp".$i]);
|
||||
$arttyp = trim($_POST["arttyp".$i]);
|
||||
$arthead = trim($_POST["arthead".$i]);
|
||||
$artpr = str_replace(",",".",trim($_POST["artpr".$i]));
|
||||
$artmen = str_replace(",",".",trim($_POST["artmen".$i]));
|
||||
$artrab = trim($_POST["artrab".$i]);
|
||||
if(!isset($_POST["artrabtyp".$i]))
|
||||
$_POST["artrabtyp".$i] = "";
|
||||
$artrabtyp = trim($_POST["artrabtyp".$i]);
|
||||
$artmeneinh = trim($_POST["artmeneinh".$i]);
|
||||
$artwa = trim($_POST["artwa".$i]);
|
||||
$artmwst = trim($_POST["artmwst".$i]);
|
||||
$pagebreak = trim($_POST["pagebreak".$i]);
|
||||
|
||||
|
||||
$qry = mysqli_query($dbconn, "INSERT INTO tmp_artikel SET bezeichn='$arthead', preis='$artpr', mwst_id='$artmwst', pagebreak='$pagebreak', einheit_id='$artmeneinh', typ_id='$arttyp', datetime=NOW(), wanr='$artwa', rech_id='$progressid',posnr='$i',rabatt='$artrab',rabatttyp='$artrabtyp',menge='$artmen',angtyp='$angtyp'") or $err=error("Fehler beim anlegen der Artikel <br />".mysqli_error($dbconn));
|
||||
$artid=mysqli_insert_id($dbconn);
|
||||
$ii = 1;
|
||||
while($_POST["arteig".$i."_".$ii] && !isset($err))
|
||||
{
|
||||
$arteig = trim($_POST["arteig".$i."_".$ii]);
|
||||
$artval = trim($_POST["artval".$i."_".$ii]);
|
||||
$arteinh = trim($_POST["arteinh".$i."_".$ii]);
|
||||
$qry = mysqli_query($dbconn, "INSERT INTO tmp_eigensch SET bezeichn='$arteig', wert='$artval', einheit_id='$arteinh', datetime=NOW(), posnr='$ii', art_id='$artid'") or $err=error("Fehler beim anlegen der Eigenschaften <br />".mysqli_error($dbconn));
|
||||
$eigid=mysqli_insert_id($dbconn);
|
||||
$ii++;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
if(!isset($err))
|
||||
{
|
||||
$type = formularGanzzahl("type");
|
||||
$adresse = makeadressblock($dbconn,$progressid,1);
|
||||
$rechnung = makerechnungsarray($dbconn,$progressid,1);
|
||||
$artikel = makeartikelarray($dbconn,$progressid,1);
|
||||
if($adresse["lines"]>6)
|
||||
error("Die Adresse hat zu viele Zeilen!<br />Bitte wählen Sie einige Elemente ab.");
|
||||
if(!$_POST["show_ort"] || !$_POST["show_str"])
|
||||
error("Die Adresse erscheint nicht vollständig auf der Rechnung!<br />Falls die Rechnung über den Postweg zugestellt werden soll muss die Adresse vervollständigt werden!");
|
||||
if(!formularText("show_ort") || !formularText("show_str"))
|
||||
error("Die Adresse erscheint nicht vollständig auf der Rechnung!<br />Falls die Rechnung über den Postweg zugestellt werden soll muss die Adresse vervollständigt werden!");
|
||||
if($rechnung["rabatt"] && !$rechnung["rabattdesc"])
|
||||
warning("Ein Rabatt wird von der Gesamtsumme abgezogen, jedoch ist die Rabattbeschreibung leer!<br />Bitte geben Sie eine Rabattbeschreibung ein (z.B.: Sonderrabatt, Winterrabatt, etc.).");
|
||||
if(!$artikel[0] && $type != 5)
|
||||
if(empty($artikel) && $type != 5)
|
||||
warning("Es sind noch keine Artikel vorhanden. Bitte Fügen Sie Artikel durch eintragen einer Artikelbeschreibung ein.");
|
||||
if(!is_file("../".UPLOADS_PATH."signs/".$_SESSION["user"].".png"))
|
||||
error("Für Ihren Benutzer wurde noch keine Unterschrift hinterlegt. Bitte vergessen Sie nicht zu unterschreiben.<br />("."./".UPLOADS_PATH."signs/".$_SESSION["user"].".png");
|
||||
|
||||
|
||||
ok("<img src='' id='saveimg' class='saveimg' /><br />Dokument wurde um ".date("H:i:s")." Uhr gespeichert!");
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
+11
-193
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php
|
||||
require_once("../incs/connectmysql.php");
|
||||
require_once("../incs/funcs.php");
|
||||
require_once("../incs/listfuncs.php");
|
||||
@@ -10,213 +10,31 @@ require('../smarty/libs/Smarty.class.php');
|
||||
$smarty = new Smarty;
|
||||
|
||||
|
||||
|
||||
if(!isset($err))
|
||||
{
|
||||
$show = "";
|
||||
if(isset($_POST["show_firmaanr"]))
|
||||
$show .= str_pad($_POST["show_firmaanr"],1,"0");
|
||||
// Entwurf speichern, nur aktive Artikel, und daraus die Vorschau erzeugen
|
||||
list($progressid, $fehler) = saveTmpRechnung($dbconn, true);
|
||||
if($fehler)
|
||||
$err = $fehler;
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_firma"]))
|
||||
$show .= str_pad($_POST["show_firma"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_anr"]))
|
||||
$show .= str_pad($_POST["show_anr"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if( isset($_POST["show_titel"]))
|
||||
$show .= str_pad($_POST["show_titel"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_name"]))
|
||||
$show .= str_pad($_POST["show_name"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_anr2"]))
|
||||
$show .= str_pad($_POST["show_anr2"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_titel2"]))
|
||||
$show .= str_pad($_POST["show_titel2"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_name2"]))
|
||||
$show .= str_pad($_POST["show_name2"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_str"]))
|
||||
$show .= str_pad($_POST["show_str"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_ort"]))
|
||||
$show .= str_pad($_POST["show_ort"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_land"]))
|
||||
$show .= str_pad($_POST["show_land"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
if(isset($_POST["show_zusatz"]))
|
||||
$show .= str_pad($_POST["show_zusatz"],1,"0");
|
||||
else
|
||||
$show .= "0";
|
||||
|
||||
if(isset($_POST["anr1"]))
|
||||
$anr1 = trim($_POST["anr1"]);
|
||||
else
|
||||
$anr1 = "";
|
||||
if(isset($_POST["anr2"]))
|
||||
$anr2 = trim($_POST["anr2"]);
|
||||
else
|
||||
$anr2 = "";
|
||||
if(isset($_POST["intro"]))
|
||||
$intro = trim($_POST["intro"]);
|
||||
else
|
||||
$intro = "";
|
||||
$adrerw = trim($_POST["adresserweiterung"]);
|
||||
$outro = trim($_POST["outro"]);
|
||||
$type = $_POST["type"];
|
||||
$adressid = $_POST["adressid"];
|
||||
$partnerid = $_POST["partnerid"];
|
||||
$mwst = $_POST["mwst"];
|
||||
$zahlziel = $_POST["zahlziel"];
|
||||
$wahrung = $_POST["wahrung"];
|
||||
if(!isset($_POST["sub_mwst"]))
|
||||
$_POST["sub_mwst"] = "";
|
||||
$sub_mwst = $_POST["sub_mwst"];
|
||||
$rabatt = $_POST["rabatt"];
|
||||
$rabattdesc = $_POST["rabattdesc"];
|
||||
$buchKto = $_POST["buchKto"];
|
||||
$lieferdatum = $_POST["lieferdatum"];
|
||||
$qry = mysqli_query($dbconn, "SELECT id FROM tmp_rechnung WHERE user_id = '".$_SESSION["user"]."' AND typ_id = '$type' LIMIT 1") or $err=error("Fehler beim ermitteln der Rechnung <br />".mysqli_error($dbconn));
|
||||
$progressid = mysqli_fetch_array($qry);
|
||||
$progressid = $progressid[0];
|
||||
if(!$progressid)
|
||||
{
|
||||
|
||||
$qry = mysqli_query($dbconn, "INSERT INTO tmp_rechnung SET
|
||||
user_id = '".$_SESSION["user"]."',
|
||||
adressfields='$show',
|
||||
anrede1='$anr1',
|
||||
anrede2='$anr2',
|
||||
intro='$intro',
|
||||
outro='$outro',
|
||||
typ_id = '$type',
|
||||
adresse_id='$adressid',
|
||||
partner_id='$partnerid',
|
||||
mwst_id = '$mwst',
|
||||
zahlziel_id = '$zahlziel',
|
||||
wahrung_id='$wahrung',
|
||||
sub_mwst='$sub_mwst',
|
||||
rabatt='$rabatt',
|
||||
adresserweiterung='$adrerw',
|
||||
rabattdesc='$rabattdesc',
|
||||
buchungsKto_id = '$buchKto',
|
||||
lieferdatum='$lieferdatum',
|
||||
datetime=NOW()") or $err=error("Fehler beim erstellen der Rechnung <br />".mysqli_error($dbconn));
|
||||
$progressid = mysqli_insert_id($dbconn);
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = mysqli_query($dbconn, "UPDATE tmp_rechnung SET
|
||||
user_id = '".$_SESSION["user"]."',
|
||||
adressfields='$show',
|
||||
anrede1='$anr1',
|
||||
anrede2='$anr2',
|
||||
intro='$intro',
|
||||
outro='$outro',
|
||||
typ_id = '$type',
|
||||
adresse_id='$adressid',
|
||||
partner_id='$partnerid',
|
||||
mwst_id = '$mwst',
|
||||
zahlziel_id = '$zahlziel',
|
||||
wahrung_id='$wahrung',
|
||||
sub_mwst='$sub_mwst',
|
||||
rabatt='$rabatt',
|
||||
adresserweiterung='$adrerw',
|
||||
rabattdesc='$rabattdesc',
|
||||
buchungsKto_id = '$buchKto',
|
||||
lieferdatum='$lieferdatum',
|
||||
datetime=NOW() WHERE id='$progressid'") or $err=error("Fehler beim aktualisieren der Rechnung <br />".mysqli_error($dbconn));
|
||||
$qry = mysqli_query($dbconn, "DELETE FROM tmp_rechnung WHERE user_id = '".$_SESSION["user"]."' AND typ_id = '$type' AND id != '$progressid' LIMIT 1") or $err=error("Fehler beim löschen alter tmp Rechnungen <br />".mysqli_error($dbconn));
|
||||
}
|
||||
$qry= mysqli_query($dbconn, "SELECT id FROM tmp_artikel WHERE rech_id = '".$progressid."'");
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
mysqli_query($dbconn, "DELETE FROM tmp_eigensch WHERE art_id = '".$res["id"]."'") or $err=error("Fehler beim löschen der eigenschaften <br />".mysqli_error($dbconn));
|
||||
}
|
||||
|
||||
$qry = mysqli_query($dbconn, "DELETE FROM tmp_artikel WHERE rech_id = '".$progressid."'") or $err=error("Fehler beim löschen der Artikel <br />".mysqli_error($dbconn));
|
||||
if(!isset($err))
|
||||
{
|
||||
$i = 1;
|
||||
while($_POST["arthead".$i] && !isset($err))
|
||||
{
|
||||
if($_POST["artact".$i])
|
||||
{
|
||||
$angtyp = trim($_POST["angtyp".$i]);
|
||||
$arttyp = trim($_POST["arttyp".$i]);
|
||||
$arthead = trim($_POST["arthead".$i]);
|
||||
$artpr = str_replace(",",".",trim($_POST["artpr".$i]));
|
||||
$artmen = str_replace(",",".",trim($_POST["artmen".$i]));
|
||||
$artrab = trim($_POST["artrab".$i]);
|
||||
if(!isset($_POST["artrabtyp".$i]))
|
||||
$_POST["artrabtyp".$i] = "";
|
||||
$artrabtyp = trim($_POST["artrabtyp".$i]);
|
||||
$artmeneinh = trim($_POST["artmeneinh".$i]);
|
||||
$artwa = trim($_POST["artwa".$i]);
|
||||
$artmwst = trim($_POST["artmwst".$i]);
|
||||
$pagebreak = trim($_POST["pagebreak".$i]);
|
||||
|
||||
|
||||
$qry = mysqli_query($dbconn, "INSERT INTO tmp_artikel SET bezeichn='$arthead', preis='$artpr', mwst_id='$artmwst', pagebreak='$pagebreak', einheit_id='$artmeneinh', typ_id='$arttyp', datetime=NOW(), wanr='$artwa', rech_id='$progressid',posnr='$i',rabatt='$artrab',rabatttyp='$artrabtyp',menge='$artmen',angtyp='$angtyp'") or $err=error("Fehler beim anlegen der Artikel <br />".mysqli_error($dbconn));
|
||||
$artid=mysqli_insert_id($dbconn);
|
||||
$ii = 1;
|
||||
while($_POST["arteig".$i."_".$ii] && !isset($err))
|
||||
{
|
||||
$arteig = trim($_POST["arteig".$i."_".$ii]);
|
||||
$artval = trim($_POST["artval".$i."_".$ii]);
|
||||
$arteinh = trim($_POST["arteinh".$i."_".$ii]);
|
||||
$qry = mysqli_query($dbconn, "INSERT INTO tmp_eigensch SET bezeichn='$arteig', wert='$artval', einheit_id='$arteinh', datetime=NOW(), posnr='$ii', art_id='$artid'") or $err=error("Fehler beim anlegen der Eigenschaften <br />".mysqli_error($dbconn));
|
||||
$eigid=mysqli_insert_id($dbconn);
|
||||
$ii++;
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
if(!isset($err))
|
||||
{
|
||||
$adresse = makeadressblock($dbconn,$progressid,1);
|
||||
$rechnung = makerechnungsarray($dbconn,$progressid,1);
|
||||
$artikel = makeartikelarray($dbconn,$progressid,1);
|
||||
/*
|
||||
if($adresse["lines"]>6)
|
||||
error("Die Adresse hat zu viele Zeilen!<br />Bitte wählen Sie einige Elemente ab.");
|
||||
if(!$_POST["show_ort"] || !$_POST["show_str"])
|
||||
error("Die Adresse erscheint nicht vollständig auf der Rechnung!<br />Falls die Rechnung über den Postweg zugestellt werden soll muss die Adresse vervollständigt werden!");
|
||||
if($rechnung["rabatt"] && !$rechnung["rabattdesc"])
|
||||
warning("Ein Rabatt wird von der Gesamtsumme abgezogen, jedoch ist die Rabattbeschreibung leer!<br />Bitte geben Sie eine Rabattbeschreibung ein (z.B.: Sonderrabatt, Winterrabatt, etc.).");
|
||||
if(!$artikel[0] && $type != 5)
|
||||
warning("Es sind noch keine Artikel vorhanden. Bitte Fügen Sie Artikel durch eintragen einer Artikelbeschreibung ein.");
|
||||
if(!is_file("../pics/users/".$_SESSION["user"].".png"))
|
||||
error("Für Ihren Benutzer wurde noch keine Unterschrift hinterlegt. Bitte vergessen Sie nicht zu unterschreiben.");
|
||||
*/
|
||||
|
||||
$pdf = makerawPDF(1);
|
||||
|
||||
|
||||
makefirstpage($pdf,$adresse["adresse"],$rechnung,1);
|
||||
$gesamtpreis = 0;
|
||||
if(count($artikel))
|
||||
{
|
||||
$gesamtpreis = maketable($pdf,$artikel,$rechnung,1);
|
||||
$gesamtpreis = maketable($pdf,$artikel,$rechnung,1);
|
||||
}
|
||||
makeEndPage($pdf,$rechnung,$gesamtpreis,1);
|
||||
|
||||
|
||||
$tmppdfname = str_replace(array(" ","."),array("_","_"),microtime());
|
||||
savePDF($pdf,"../temp/pdfpreview/$tmppdfname.pdf");
|
||||
echo makeImageFromPDF("../temp/pdfpreview/$tmppdfname.pdf");
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
+13
-13
@@ -18,24 +18,25 @@ if(!isset($err))
|
||||
}
|
||||
$fulltag = utf8_encode($_GET["search"]);
|
||||
$src = explode(" ",$fulltag);
|
||||
$combiner = mysql_escape_string($_GET["link"]);
|
||||
$combiner = $_GET["link"];
|
||||
if($combiner != "AND" && $combiner != "OR")
|
||||
{
|
||||
$combiner = "AND";
|
||||
}
|
||||
$page = $_GET["page"];
|
||||
$skspage = $_GET["skspage"];
|
||||
$typ = $_GET["typ"];
|
||||
$id = $_GET["kdnid"];
|
||||
$page = (int)$_GET["page"];
|
||||
$skspage = (int)$_GET["skspage"];
|
||||
// landen auch in JavaScript-Aufrufen der Seitennavigation
|
||||
$typ = (int)$_GET["typ"];
|
||||
$id = (int)$_GET["kdnid"];
|
||||
$queries = createKdnRechQry($page,$pagesize,$src,$combiner,$id,$typ,0);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
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"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
@@ -44,7 +45,7 @@ if(!isset($err))
|
||||
if($numres)
|
||||
{
|
||||
$listlines=array();
|
||||
$qry = mysqli_query($dbconn,$queries["limited"])
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
@@ -53,8 +54,7 @@ if(!isset($err))
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."'><span class='edit' title='Dokument ändern'></span></a>";
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."&changeadr=1'><span class='changeadr' title='Adresse ändern'></span></a>";
|
||||
$actions .= "<a href='?action=rechnungadd&id=".$res["id"]."&adressid=".$res["adresse_id"]."©=1'><span class='copy' title='Dokument kopieren'></span></a>";
|
||||
$tmpqry = mysqli_query($dbconn,"SELECT id FROM kontakt WHERE partner_id = '$id' AND typ_id = 1");
|
||||
if(mysqli_fetch_array($tmpqry))
|
||||
if(db_wert($dbconn, "SELECT id FROM kontakt WHERE partner_id = ? AND typ_id = 1 LIMIT 1", array($id)))
|
||||
$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>";
|
||||
|
||||
switch($res["typ_id"])
|
||||
@@ -128,14 +128,14 @@ if(!isset($err))
|
||||
echo "<h3>SKS Dokumente:</h3><div class='line'></div>";
|
||||
$queries="";
|
||||
$queries = createKdnRechQry($skspage,$pagesize,$src,$combiner,$id,$typ,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
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"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
@@ -145,7 +145,7 @@ if(!isset($err))
|
||||
{
|
||||
$speciallines[]=array();
|
||||
$listlines[]=array();
|
||||
$qry = mysqli_query($dbconn,$queries["limited"])
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
|
||||
+9
-9
@@ -24,24 +24,24 @@ if(!isset($err))
|
||||
}
|
||||
$fulltag = utf8_encode($_GET["search"]);
|
||||
$src = explode(" ",$fulltag);
|
||||
$combiner = mysql_escape_string($_GET["link"]);
|
||||
$combiner = $_GET["link"];
|
||||
if($combiner != "AND" && $combiner != "OR")
|
||||
{
|
||||
$combiner = "AND";
|
||||
}
|
||||
$page = $_GET["page"];
|
||||
$skspage = $_GET["skspage"];
|
||||
$page = (int)$_GET["page"];
|
||||
$skspage = (int)$_GET["skspage"];
|
||||
$typ = $_GET["typ"];
|
||||
$id = $_GET["kdnid"];
|
||||
$queries = createRechQry($page,$pagesize,$src,$combiner,0);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
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"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
@@ -49,7 +49,7 @@ if(!isset($err))
|
||||
*/
|
||||
if($numres)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,$queries["limited"])
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
@@ -122,14 +122,14 @@ if(!isset($err))
|
||||
{
|
||||
echo "<h3>SKS Dokumente:</h3><div class='line'></div>";
|
||||
$queries = createRechQry($skspage,$pagesize,$src,$combiner,1);
|
||||
$qry = mysqli_query($dbconn,$queries["all"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
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"])
|
||||
$qry = db_abfrage($dbconn,$queries["all"],$queries["params"])
|
||||
or die("Datenbank fehler: ".mysqli_error($dbconn));
|
||||
$numres = mysqli_num_rows($qry);
|
||||
message("veraltete Datensätze wurden in die Suche einbezogen");
|
||||
@@ -137,7 +137,7 @@ if(!isset($err))
|
||||
*/
|
||||
if($numres)
|
||||
{
|
||||
$qry = mysqli_query($dbconn,$queries["limited"]);
|
||||
$qry = db_abfrage($dbconn,$queries["limited"],$queries["params"]);
|
||||
while($res=mysqli_fetch_assoc($qry))
|
||||
{
|
||||
$speciallines[] = array("<a href='?action=rechshow&id=".$res["id"]."'>".$res["rechnr"]."</a>",
|
||||
|
||||
Reference in New Issue
Block a user