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>
This commit is contained in:
@@ -0,0 +1,327 @@
|
||||
<?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!");
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user