Files
Kundenverwaltung/sites/rechnungadd.php
T
adminandClaude Opus 5 e2124220e5 Initialer Commit: Kundenverwaltung (PHP/Smarty)
Bestehende Codebasis als Ausgangsstand aufgenommen.

- .gitignore: Kundendaten (uploads_*), Smarty-Compile-Cache
  (templates_c), Laufzeit-Temp und Datenbank-Dumps ausgeschlossen;
  Verzeichnisstruktur ueber .gitkeep erhalten
- .gitattributes: Zeilenenden normalisiert (LF im Repo),
  Binaerformate markiert
- db-backup.php: MySQL-Zugangsdaten kommen jetzt wie im Rest der
  Anwendung aus der externen Konfiguration statt hartkodiert aus der
  Datei; Passwort wird ueber eine temporaere Optionsdatei statt per
  Kommandozeile uebergeben, Fehler von mysqldump/gzip werden gemeldet,
  Aufraeumen aelterer Backups berechnet Jahr und Monat konsistent

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-28 16:41:18 +02:00

327 lines
9.8 KiB
PHP

<?php
require_once("incs/rechnung.php");
require_once("incs/makepdf.php");
if($_GET["formsent"] == 1)
{
if($_GET["id"] > 0)
$err=saveRechnung($dbconn,$_GET["id"]);
else
$err=saveRechnung($dbconn,0);
if(!$err)
doneNreturn("Erfolgreich gespeichert");
}
elseif($_GET["changeadr"] == 1 && $_GET["id"])
{
if(!$_GET["adrid"])
{
$smarty->assign("felder",array("all"=>"Name, Adresse, Kd.Nr.","kdnr"=>"Kundennummer","name"=>"Name und Firma","str"=>"Straße","plz"=>"PLZ","ort"=>"Ort","tel"=>"Tel","kont"=>"Kontakt"));
$smarty->assign("rechid",$_GET["id"]);
$smarty->display("changeadr.tpl");
}
else
{
$err=changeRechAdr($dbconn,$_GET["id"],$_GET["adrid"]);
if(!$err)
doneNreturn("Erfolgreich geändert");
}
}
elseif($_GET["copy"] == 1 && $_GET["id"])
{
if(!$_GET["adrid"])
{
$smarty->assign("felder",array("all"=>"Name, Adresse, Kd.Nr.","kdnr"=>"Kundennummer","name"=>"Name und Firma","str"=>"Straße","plz"=>"PLZ","ort"=>"Ort","tel"=>"Tel","kont"=>"Kontakt"));
$smarty->assign("rechid",$_GET["id"]);
$smarty->display("copyrech.tpl");
}
else
{
$err=copyRech($dbconn,$_GET["id"],$_GET["adrid"]);
if(!$err)
doneNreturn("Erfolgreich geändert");
}
}
elseif($_GET["storno"] == "YES" && $_GET["id"]){
$querystr = "UPDATE rechnung SET
storno = 1, stornodate = NOW() WHERE id = '".$_GET["id"]."'";
mysqli_query($dbconn,$querystr) or $err=error("Fehler beim aktualisieren der Rechnung<br />".mysqli_error($dbconn));
doneNreturn("Erfolgreich geändert");
}
elseif($_GET["storno"] == "NO" && $_GET["id"]){
$querystr = "UPDATE rechnung SET
storno = 0 WHERE id = '".$_GET["id"]."'";
mysqli_query($dbconn,$querystr) or $err=error("Fehler beim aktualisieren der Rechnung<br />".mysqli_error($dbconn));
doneNreturn("Erfolgreich geändert");
}
elseif($_GET["mail"] == 1 && $_GET["id"])
{
$kdnres=makeadressarray($dbconn, $_GET["adressid"]);
$typnames=array();
$qry=mysqli_query($dbconn, "SELECT id,anrede FROM anrede");
while($res=mysqli_fetch_assoc($qry))
{
$typnames[$res["id"]] = $res["anrede"];
}
$smarty->assign("anrs",$typnames);
$typnames=array();
$qry=mysqli_query($dbconn, "SELECT id,titel FROM titel");
while($res=mysqli_fetch_assoc($qry))
{
$typnames[$res["id"]] = $res["titel"];
}
$smarty->assign("titels",$typnames);
$mails=array();
$mailids=array();
$qry = mysqli_query($dbconn,"SELECT kontakt.id, kontakt, partner_id, typ FROM kontakt LEFT JOIN kontakttyp ON kontakttyp.id = kontakt.typ_id WHERE partner_id='".mysql_escape_string($kdnres["partner_id"])."' AND typ_id = 1");
while($res=mysqli_fetch_assoc($qry))
{
$mails[] = $res["kontakt"];
$mailids[] = $res["id"];
}
$smarty->assign("mails",$mails);
$smarty->assign("mailids",$mailids);
$typids=array();
$typnames=array();
$qry=mysqli_query($dbconn, "SELECT id,bezeichn FROM artikeltyp");
while($res=mysqli_fetch_assoc($qry))
{
$typids[] = $res["id"];
$typnames[] = $res["bezeichn"];
}
$smarty->assign("typids",$typids);
$smarty->assign("typs",$typnames);
$rechnung=makerechnungsarray($dbconn, $_GET["id"], 0);
$smarty->assign("rechnung",$rechnung);
$smarty->assign("adresse",$kdnres);
$adresse = makeadressblock($dbconn,$_GET["id"],0);
if($rechnung["sks"])
{
$artikel = makesksartikelarray($dbconn,$rechnung["rechnr"]);
}
else
$artikel = makeartikelarray($dbconn,$_GET["id"],0);
$pdf = makerawPDF(0);
makefirstpage($pdf,$adresse["adresse"],$rechnung,0);
if(count($artikel))
{
$gesamtpreis = maketable($pdf,$artikel,$rechnung,0);
}
makeEndPage($pdf,$rechnung,$gesamtpreis,0);
$tmppdfname = str_replace(array(" ","."),array("_","_"),microtime());
savePDF($pdf,"./temp/pdftemp/$tmppdfname.pdf");
if($_GET["mailformsent"])
{
$tomail = $_POST["tomail"];
if(!filter_var($tomail, FILTER_VALIDATE_EMAIL))
$err=error("Die angegebene E-Mail adresse kann nicht existieren, bitte korrigieren Sie diese zuerst in den Kontaktdaten des Kunden.");
else
{
$sub=$_POST["sub"];
if($_POST["anr1"])
$msg .= $_POST["anr1"]."\n";
if($_POST["anr2"])
$msg .= $_POST["anr1"]."\n";
$msg .= "\n".$_POST["intro"];
if($_SESSION["firma"] == "Wagner Markisen")
{
$frommail = "info@wagner-markisen.de";
$fromname = "Firma Wagner Markisen GmbH";
}
else if($_SESSION["firma"] == "Ingenieurbüro Wagner")
{
$frommail = "info@el-wa.org";
$fromname = "Ingenieurbüro Wagner";
}
else
{
$frommail = "finanzen.lsg@agathazell.info";
$fromname = "Philipp Wagner, Kassier LSG";
}
$err=mail_attachment("$tmppdfname.pdf", "./temp/pdftemp/",$tomail, $frommail, $fromname, $frommail, $sub, $msg);
mail_attachment("$tmppdfname.pdf", "./temp/pdftemp/","info@wagner-markisen.de", $frommail, $fromname, $frommail, $sub."(Kopie, Original gesendet an: ".$tomail.")", $msg);
}
if(!$err)
doneNreturn("Erfolgreich gesendet");
else
$err=error("Mail konnte nicht versendet werden...");
}
$smarty->assign("pdffile","./temp/pdftemp/$tmppdfname.pdf");
$smarty->display("mailrechnung.tpl");
}
else
{
if($_GET["id"])
{
if($_GET["del"] == 1)
{
$err = delRechnung($dbconn,$_GET["id"]);
if(!$err)
doneNreturn("Erfolgreich gelöscht");
}
else
{
$smarty->assign("loadrech",$_GET["id"]);
$rechnung=makerechnungsarray($dbconn, $_GET["id"], 0);
$kommission=makeadressarray($dbconn, $rechnung["kommission"]);
$smarty->assign("rechnung",$rechnung);
$smarty->assign("kommission",$kommission);
$smarty->assign("artikel",makeartikelarray($dbconn, $_GET["id"], 0));
}
}
else if($_GET["draft"])
{
$smarty->assign("loaddraft",$_GET["draft"]);
$smarty->assign("rechnung",makerechnungsarray($dbconn, $_GET["draft"], 1));
$smarty->assign("artikel",makeartikelarray($dbconn, $_GET["draft"], 1));
}
$smarty->assign("type",$_GET["type"]);
$smarty->assign("newtype",$_GET["newtype"]);
$kdnres=makeadressarray($dbconn, $_GET["adressid"]);
if($kdnres["adresstyp"] == "Kommission")
{
$smarty->assign("kommission",$kdnres);
$qry = mysqli_query($dbconn,"SELECT plz, ortsteil, ort, str, adresstyp.typ AS adresstyp, hnr, vname, partner_id, nname, vname2, nname2, firma, adresse.id, land, anrede_id, titel_id, anrede2_id, titel2_id
FROM adresse
LEFT JOIN strasse ON str_id = strasse.id
LEFT JOIN ort ON ort_id = ort.id
LEFT JOIN land ON land_id = land.id
JOIN adresstyp ON adresse.typ_id = adresstyp.id
WHERE adresse.typ_id='1' AND adresse.partner_id = '".$kdnres["partner_id"]."'
ORDER BY typ_id ASC") or $err = error("Fehler beim abrufen der Daten ".mysqli_error($dbconn));
//$kdnres=mysqli_fetch_assoc($qry);
}
if($kdnres["partner_id"])
{
$typnames=array();
$qry=mysqli_query($dbconn, "SELECT id,anrede FROM anrede");
while($res=mysqli_fetch_assoc($qry))
{
$typnames[$res["id"]] = $res["anrede"];
}
$smarty->assign("anrs",$typnames);
$typnames=array();
$qry=mysqli_query($dbconn, "SELECT id,titel FROM titel");
while($res=mysqli_fetch_assoc($qry))
{
$typnames[$res["id"]] = $res["titel"];
}
$smarty->assign("titels",$typnames);
$typids=array();
$typnames=array();
$qry=mysqli_query($dbconn, "SELECT id,bezeichn FROM artikeltyp");
while($res=mysqli_fetch_assoc($qry))
{
$typids[] = $res["id"];
$typnames[] = $res["bezeichn"];
}
$smarty->assign("typids",$typids);
$smarty->assign("typs",$typnames);
$typids=array();
$typnames=array();
$qry=mysqli_query($dbconn, "SELECT id,einheit FROM einheit");
while($res=mysqli_fetch_assoc($qry))
{
$typids[] = $res["id"];
$typnames[] = $res["einheit"];
}
$smarty->assign("einhids",$typids);
$smarty->assign("einhs",$typnames);
$typids=array();
$typnames=array();
$qry=mysqli_query($dbconn, "SELECT id,wahrung FROM wahrung");
while($res=mysqli_fetch_assoc($qry))
{
$typids[] = $res["id"];
$typnames[] = $res["wahrung"];
}
$smarty->assign("wahrids",$typids);
$smarty->assign("wahrs",$typnames);
$typids=array();
$typnames=array();
$qry=mysqli_query($dbconn, "SELECT id,mwst FROM mwst");
while($res=mysqli_fetch_assoc($qry))
{
if($res["mwst"] != "999")
{
$typids[] = $res["id"];
$typnames[] = $res["mwst"]." %";
$typids2[] = $res["id"];
$typnames2[] = $res["mwst"]." %";
}
else
{
$typids2[] = $res["id"];
$typnames2[] = "Normal";
}
}
$smarty->assign("mwstids",$typids);
$smarty->assign("mwsts",$typnames);
$smarty->assign("artmwstids",$typids2);
$smarty->assign("artmwsts",$typnames2);
$typids=array();
$typnames=array();
$qry=mysqli_query($dbconn, "SELECT id,ziel FROM zahlziel");
while($res=mysqli_fetch_assoc($qry))
{
$typids[] = $res["id"];
$typnames[] = $res["ziel"];
}
$smarty->assign("zzielids",$typids);
$smarty->assign("zziels",$typnames);
$typids=array();
$typnames=array();
$qry=mysqli_query($dbconn, "SELECT id,kto,name FROM buchungsKontos");
while($res=mysqli_fetch_assoc($qry))
{
$typids[] = $res["id"];
$typnames[] = $res["kto"]." (".$res["name"].")";
}
$smarty->assign("buchKtoids",$typids);
$smarty->assign("buchKtos",$typnames);
$qry=mysqli_query($dbconn,"SELECT tmp_rechnung.id,adresse_id, vname, nname, str, hnr FROM tmp_rechnung JOIN adresse ON adresse_id = adresse.id JOIN strasse ON str_id = strasse.id WHERE tmp_rechnung.typ_id='".mysql_escape_string($_GET["type"])."' AND user_id = '".mysql_escape_string($_SESSION["user"])."' ORDER BY datetime DESC LIMIT 1") or $err=error("Fehler beim Suchen nach nicht gespeicherten Daten<br />".mysqli_error($dbconn));
if($res = mysqli_fetch_assoc($qry))
{
$smarty->assign("draft",$res["id"]);
$smarty->assign("draftname",$res["vname"]." ".$res["nname"]);
$smarty->assign("draftstr",$res["str"]." ".$res["hnr"]);
$smarty->assign("draftadressid",$res["adresse_id"]);
}
$smarty->assign("adresse",$kdnres);
$smarty->display("addrechnung.tpl");
}
else
{
error("Dieser Kunde existiert nicht!");
}
}
?>