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>
1021 lines
37 KiB
PHP
1021 lines
37 KiB
PHP
<?php
|
|
require_once("saveNchange.php");
|
|
|
|
function makeadressblock($dbconn,$rechid,$tmp)
|
|
{
|
|
if($tmp)
|
|
$qry=mysqli_query($dbconn,"SELECT adressfields, adresserweiterung, nname, 0 AS sks, titel_id, titel2_id, zusatz, vname, nname2, vname2, str, ort, plz, hnr, land, firma, anrede_id, anrede2_id FROM tmp_rechnung
|
|
JOIN adresse ON tmp_rechnung.adresse_id = adresse.id
|
|
JOIN strasse ON strasse.id = str_id
|
|
JOIN ort ON ort.id = ort_id JOIN land ON land.id = land_id
|
|
WHERE tmp_rechnung.id = $rechid") or $err= error("Fehler beim ermitteln der Adressdaten<br />".mysqli_error($dbconn));
|
|
else
|
|
$qry=mysqli_query($dbconn,"SELECT adressfields, adresserweiterung, nname, sks, titel_id, titel2_id, zusatz, vname, nname2, vname2, str, ort, plz, hnr, land, firma, anrede_id, anrede2_id FROM rechnung
|
|
JOIN adresse ON rechnung.adresse_id = adresse.id
|
|
JOIN strasse ON strasse.id = str_id
|
|
JOIN ort ON ort.id = ort_id JOIN land ON land.id = land_id
|
|
WHERE rechnung.id = $rechid") or $err= error("Fehler beim ermitteln der Adressdaten<br />".mysqli_error($dbconn));
|
|
|
|
|
|
$adresse = mysqli_fetch_assoc($qry);
|
|
|
|
$qry = mysqli_query($dbconn,"SELECT * FROM anrede");
|
|
while($res=mysqli_fetch_assoc($qry))
|
|
{
|
|
$anrs[$res["id"]] = $res["anrede"];
|
|
}
|
|
|
|
$qry = mysqli_query($dbconn,"SELECT * FROM titel");
|
|
while($res=mysqli_fetch_assoc($qry))
|
|
{
|
|
$titels[$res["id"]] = $res["titel"];
|
|
}
|
|
|
|
$adressfields= $adresse["adressfields"];
|
|
if($adresse["sks"])
|
|
$adressfields = "011111111100";
|
|
$firmaanr = substr($adressfields,ADRFIELD_FIRMAANR,1);
|
|
$firma = substr($adressfields,ADRFIELD_FIRMA,1);
|
|
$anr1 = substr($adressfields,ADRFIELD_ANR1,1);
|
|
$titel1 = substr($adressfields,ADRFIELD_TITEL1,1);
|
|
$name1 = substr($adressfields,ADRFIELD_NAME1,1);
|
|
$anr2 = substr($adressfields,ADRFIELD_ANR2,1);
|
|
$titel2 = substr($adressfields,ADRFIELD_TITEL2,1);
|
|
$name2 = substr($adressfields,ADRFIELD_NAME2,1);
|
|
$str = substr($adressfields,ADRFIELD_STR,1);
|
|
$ort = substr($adressfields,ADRFIELD_ORT,1);
|
|
$land = substr($adressfields,ADRFIELD_LAND,1);
|
|
$zusatz = substr($adressfields,ADRFIELD_ZUSATZ,1);
|
|
$adrstr="";
|
|
if($firmaanr)
|
|
{
|
|
$adrstr .= "Firma";
|
|
}
|
|
if($firma && trim($adresse["firma"]))
|
|
{
|
|
$adrstr .= "<br />".trim($adresse["firma"]);
|
|
}
|
|
|
|
if($anr1 && $anr2 && $name1 && !$name2)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede_id"]];
|
|
if($titel1)
|
|
$adrstr .= " ".$titels[$adresse["titel_id"]];
|
|
$adrstr .= " und ";
|
|
$adrstr .= $anrs[$adresse["anrede2_id"]];
|
|
if($titel2)
|
|
$adrstr .= " ".$titels[$adresse["titel2_id"]];
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname"])
|
|
$adrstr .= trim($adresse["vname"])." ".trim($adresse["nname"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname"]);
|
|
if($zusatz)
|
|
$adrstr .= "<br />".trim($adresse["zusatz"]);
|
|
}
|
|
elseif($anr1 && $anr2 && $name2 && !$name1)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede_id"]];
|
|
if($titel1)
|
|
$adrstr .= " ".$titels[$adresse["titel_id"]];
|
|
$adrstr .= " und ";
|
|
$adrstr .= $anrs[$adresse["anrede2_id"]];
|
|
if($titel2)
|
|
$adrstr .= " ".$titels[$adresse["titel2_id"]];
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname2"])
|
|
$adrstr .= trim($adresse["vname2"])." ".trim($adresse["nname2"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname2"]);
|
|
if($zusatz)
|
|
$adrstr .= "<br />".trim($adresse["zusatz"]);
|
|
}
|
|
else
|
|
{
|
|
if($anr1)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede_id"]]." ";
|
|
}
|
|
|
|
if($titel1)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
if($titels[$adresse["titel_id"]])
|
|
$adrstr .= $titels[$adresse["titel_id"]]." ";
|
|
}
|
|
if($name1)
|
|
{
|
|
if(!$titel1 && !$firma && !$firmaanr && !$name2 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if(!$anr1 && !$titel1 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname"])
|
|
$adrstr .= trim($adresse["vname"])." ".trim($adresse["nname"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname"]);
|
|
}
|
|
if($anr2 && $anrs[$adresse["anrede2_id"]])
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede2_id"]]." ";
|
|
}
|
|
if($titel2 && $titels[$adresse["titel2_id"]])
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $titels[$adresse["titel2_id"]]." ";
|
|
}
|
|
if(trim($name2))
|
|
{
|
|
if(!$titel2 && !$firma && !$firmaanr && !$name1 && !$anr1 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if(!$anr2 && !$titel2 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname2"])
|
|
$adrstr .= trim($adresse["vname2"])." ".trim($adresse["nname2"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname2"]);
|
|
}
|
|
if($zusatz)
|
|
$adrstr .= "<br />".trim($adresse["zusatz"]);
|
|
}
|
|
if(trim($adresse["adresserweiterung"])){
|
|
$adrstr .= "<br />".trim($adresse["adresserweiterung"]);
|
|
}
|
|
if($str)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= trim($adresse["str"])." ".trim($adresse["hnr"]);
|
|
}
|
|
if($ort)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
if($land)
|
|
$adresse["ort"] = strtoupper($adresse["ort"]);
|
|
$adrstr .= trim($adresse["plz"])." ".trim($adresse["ort"]);
|
|
}
|
|
if($land)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= trim(strtoupper($adresse["land"]));
|
|
}
|
|
$lines=explode("<br />",$adrstr);
|
|
$lines = count($lines);
|
|
return array("lines"=>$lines,"adresse"=>$adrstr);
|
|
|
|
}
|
|
|
|
function makeadressblockUmschlag($dbconn,$adressid,$adressfields,$adresserweiterung)
|
|
{
|
|
|
|
$qry=mysqli_query($dbconn,"SELECT * FROM adresse
|
|
JOIN strasse ON strasse.id = str_id
|
|
JOIN ort ON ort.id = ort_id JOIN land ON land.id = land_id
|
|
WHERE adresse.id = $adressid") or $err= error("Fehler beim ermitteln der Adressdaten<br />".mysqli_error($dbconn));
|
|
|
|
|
|
$adresse = mysqli_fetch_assoc($qry);
|
|
$adresse["adresserweiterung"] = $adresserweiterung;
|
|
$qry = mysqli_query($dbconn,"SELECT * FROM anrede");
|
|
while($res=mysqli_fetch_assoc($qry))
|
|
{
|
|
$anrs[$res["id"]] = $res["anrede"];
|
|
}
|
|
|
|
$qry = mysqli_query($dbconn,"SELECT * FROM titel");
|
|
while($res=mysqli_fetch_assoc($qry))
|
|
{
|
|
$titels[$res["id"]] = $res["titel"];
|
|
}
|
|
|
|
$firmaanr = substr($adressfields,ADRFIELD_FIRMAANR,1);
|
|
$firma = substr($adressfields,ADRFIELD_FIRMA,1);
|
|
$anr1 = substr($adressfields,ADRFIELD_ANR1,1);
|
|
$titel1 = substr($adressfields,ADRFIELD_TITEL1,1);
|
|
$name1 = substr($adressfields,ADRFIELD_NAME1,1);
|
|
$anr2 = substr($adressfields,ADRFIELD_ANR2,1);
|
|
$titel2 = substr($adressfields,ADRFIELD_TITEL2,1);
|
|
$name2 = substr($adressfields,ADRFIELD_NAME2,1);
|
|
$str = substr($adressfields,ADRFIELD_STR,1);
|
|
$ort = substr($adressfields,ADRFIELD_ORT,1);
|
|
$land = substr($adressfields,ADRFIELD_LAND,1);
|
|
$zusatz = substr($adressfields,ADRFIELD_ZUSATZ,1);
|
|
if($firmaanr)
|
|
{
|
|
$adrstr .= "Firma";
|
|
}
|
|
if($firma && trim($adresse["firma"]))
|
|
{
|
|
$adrstr .= "<br />".trim($adresse["firma"]);
|
|
}
|
|
|
|
if($anr1 && $anr2 && $name1 && !$name2)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede_id"]];
|
|
if($titel1)
|
|
$adrstr .= " ".$titels[$adresse["titel_id"]];
|
|
$adrstr .= " und ";
|
|
$adrstr .= $anrs[$adresse["anrede2_id"]];
|
|
if($titel2)
|
|
$adrstr .= " ".$titels[$adresse["titel2_id"]];
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname"])
|
|
$adrstr .= trim($adresse["vname"])." ".trim($adresse["nname"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname"]);
|
|
if($zusatz)
|
|
$adrstr .= "<br />".trim($adresse["zusatz"]);
|
|
}
|
|
elseif($anr1 && $anr2 && $name2 && !$name1)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede_id"]];
|
|
if($titel1)
|
|
$adrstr .= " ".$titels[$adresse["titel_id"]];
|
|
$adrstr .= " und ";
|
|
$adrstr .= $anrs[$adresse["anrede2_id"]];
|
|
if($titel2)
|
|
$adrstr .= " ".$titels[$adresse["titel2_id"]];
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname2"])
|
|
$adrstr .= trim($adresse["vname2"])." ".trim($adresse["nname2"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname2"]);
|
|
if($zusatz)
|
|
$adrstr .= "<br />".trim($adresse["zusatz"]);
|
|
}
|
|
else
|
|
{
|
|
if($anr1)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede_id"]]." ";
|
|
}
|
|
|
|
if($titel1)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
if($titels[$adresse["titel_id"]])
|
|
$adrstr .= $titels[$adresse["titel_id"]]." ";
|
|
}
|
|
if($name1)
|
|
{
|
|
if(!$titel1 && !$firma && !$firmaanr && !$name2 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if(!$anr1 && !$titel1 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname"])
|
|
$adrstr .= trim($adresse["vname"])." ".trim($adresse["nname"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname"]);
|
|
}
|
|
if($anr2 && $anrs[$adresse["anrede2_id"]])
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $anrs[$adresse["anrede2_id"]]." ";
|
|
}
|
|
if($titel2 && $titels[$adresse["titel2_id"]])
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= $titels[$adresse["titel2_id"]]." ";
|
|
}
|
|
if(trim($name2))
|
|
{
|
|
if(!$titel2 && !$firma && !$firmaanr && !$name1 && !$anr1 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if(!$anr2 && !$titel2 && $adrstr)
|
|
$adrstr .= "<br />";
|
|
if($adresse["vname2"])
|
|
$adrstr .= trim($adresse["vname2"])." ".trim($adresse["nname2"]);
|
|
else
|
|
$adrstr .= trim($adresse["nname2"]);
|
|
}
|
|
if($zusatz)
|
|
$adrstr .= "<br />".trim($adresse["zusatz"]);
|
|
}
|
|
if(trim($adresse["adresserweiterung"])){
|
|
$adrstr .= "<br />".trim($adresse["adresserweiterung"]);
|
|
}
|
|
if($str)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= trim($adresse["str"])." ".trim($adresse["hnr"]);
|
|
}
|
|
if($ort)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
if($land)
|
|
$adresse["ort"] = strtoupper($adresse["ort"]);
|
|
$adrstr .= trim($adresse["plz"])." ".trim($adresse["ort"]);
|
|
}
|
|
if($land)
|
|
{
|
|
if($adrstr)
|
|
$adrstr .= "<br />";
|
|
$adrstr .= trim(strtoupper($adresse["land"]));
|
|
}
|
|
$lines=explode("<br />",$adrstr);
|
|
$lines = count($lines);
|
|
return array("lines"=>$lines,"adresse"=>$adrstr);
|
|
|
|
}
|
|
|
|
function makerechnungsarray($dbconn,$rechid,$tmp)
|
|
{
|
|
if($tmp){
|
|
$qry=mysqli_query($dbconn,"SELECT adressfields, 0 AS sks, intro, adresserweiterung, outro, anrede1, storno, anrede2, rabatt, rechnr, sub_mwst, rabatt, kommission, rabattdesc, partner_id, mwst, ziel as zahlziel, vname, nname, user_id, user.vname AS uvname, user.nname AS unname, lieferdatum, typ, typ_id, datetime, wahrung, wahrung_id, mwst_id, zahlziel_id, kurs, buchungsKto_id
|
|
FROM tmp_rechnung
|
|
JOIN wahrung ON wahrung_id = wahrung.id
|
|
JOIN rechtyp ON typ_id = rechtyp.id
|
|
JOIN zahlziel ON zahlziel_id = zahlziel.id
|
|
JOIN mwst ON mwst_id = mwst.id
|
|
JOIN user ON user_id = user.id
|
|
WHERE tmp_rechnung.id = $rechid") or $err=error("Fehler beim ermitteln der Rechnungsdaten<br />".mysqli_error($dbconn));
|
|
|
|
}else{
|
|
$qry=mysqli_query($dbconn,"SELECT adressfields, sks, intro, adresserweiterung, lieferdatum, outro, anrede1, storno, anrede2, rabatt, rechnr, sub_mwst, rabatt, kommission, rabattdesc, partner_id, mwst, ziel as zahlziel, vname, nname, user_id, user.vname AS uvname, user.nname AS unname, typ, typ_id, datetime, wahrung, wahrung_id, mwst_id, zahlziel_id, kurs, buchungsKto_id
|
|
FROM rechnung
|
|
JOIN wahrung ON wahrung_id = wahrung.id
|
|
JOIN rechtyp ON typ_id = rechtyp.id
|
|
JOIN zahlziel ON zahlziel_id = zahlziel.id
|
|
JOIN mwst ON mwst_id = mwst.id
|
|
JOIN user ON user_id = user.id
|
|
WHERE rechnung.id = $rechid") or $err=error("Fehler beim ermitteln der Rechnungsdaten<br />".mysqli_error($dbconn));
|
|
}
|
|
$rechnung = mysqli_fetch_assoc($qry);
|
|
|
|
$qry=mysqli_query($dbconn,"SELECT ktonr FROM konto WHERE partner_id = ".$rechnung["partner_id"]);
|
|
if($res=mysqli_fetch_assoc($qry)){
|
|
$rechnung["ktonr"] = $res["ktonr"];
|
|
}
|
|
if($rechnung["sks"])
|
|
$rechnung["mwst"] = "19";
|
|
if($rechnung["rechnr"])
|
|
$rechnung["drechnr"] = substr($rechnung["rechnr"],0,4)."-".substr($rechnung["rechnr"],4,2)."-".substr($rechnung["rechnr"],6,2).".".substr($rechnung["rechnr"],8,2);
|
|
else
|
|
$rechnung["drechnr"] = "(Noch nicht vergeben)";
|
|
|
|
switch($rechnung["typ_id"])
|
|
{
|
|
case 1:
|
|
$rechnung["drechnr"] = "R".$rechnung["drechnr"];
|
|
break;
|
|
case 2:
|
|
$rechnung["drechnr"] = "G".$rechnung["drechnr"];
|
|
break;
|
|
case 3:
|
|
$rechnung["drechnr"] = "A".$rechnung["drechnr"];
|
|
break;
|
|
case 4:
|
|
$rechnung["drechnr"] = "B".$rechnung["drechnr"];
|
|
break;
|
|
case 6:
|
|
$rechnung["drechnr"] = "M".$rechnung["drechnr"];
|
|
break;
|
|
}
|
|
return $rechnung;
|
|
}
|
|
function makeadressarray($dbconn,$adressid)
|
|
{
|
|
$qry = mysqli_query($dbconn,"SELECT plz, ortsteil, ort, str, zusatz, 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.id='".mysql_escape_string($adressid)."'
|
|
ORDER BY typ_id ASC") or $err = error("Fehler beim abrufen der adressdaten ".mysqli_error($dbconn));
|
|
$kdnres=mysqli_fetch_assoc($qry);
|
|
return $kdnres;
|
|
}
|
|
function makeartikelarray($dbconn,$rechid,$tmp)
|
|
{
|
|
if($tmp)
|
|
{
|
|
$qry=mysqli_query($dbconn,"SELECT tmp_artikel.bezeichn as bezeichn, preis, wanr, pagebreak, mwst AS artmwst, rabatt, rabatttyp, artikeltyp.bezeichn as typ, typ_id, einheit, einheit_id, menge, angtyp, tmp_artikel.id as id
|
|
FROM tmp_artikel
|
|
JOIN artikeltyp ON typ_id = artikeltyp.id
|
|
JOIN einheit ON einheit_id = einheit.id
|
|
JOIN mwst ON mwst_id = mwst.id
|
|
WHERE rech_id = $rechid ORDER BY posnr ASC") or $err=error("Fehler beim ermitteln der Artikeldaten<br />".mysqli_error($dbconn));
|
|
$artikel = array();
|
|
while($art=mysqli_fetch_assoc($qry))
|
|
{
|
|
$qry2=mysqli_query($dbconn,"SELECT bezeichn, wert, einheit, einheit_id
|
|
FROM tmp_eigensch
|
|
JOIN einheit ON einheit_id = einheit.id
|
|
WHERE art_id = '".$art["id"]."' ORDER BY posnr ASC") or $err=error("Fehler beim ermitteln der Eigenschaften<br />".mysqli_error($dbconn));
|
|
$eigenschaften = array();
|
|
while($eig=mysqli_fetch_assoc($qry2))
|
|
{
|
|
$eigenschaften[] = $eig;
|
|
}
|
|
$artikel[]=array("art"=>$art,"eig"=>$eigenschaften);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$qry=mysqli_query($dbconn,"SELECT artikel.bezeichn as bezeichn, preis, wanr, posnr, pagebreak, mwst AS artmwst, rabatt, rabatttyp, artikeltyp.bezeichn AS typ, typ_id, einheit, einheit_id, menge, angtyp, artikel.id as id
|
|
FROM artikel
|
|
JOIN artikeltyp ON typ_id = artikeltyp.id
|
|
JOIN einheit ON einheit_id = einheit.id
|
|
JOIN artikel_rechn ON artikel.id = art_id
|
|
JOIN mwst ON artmwst = mwst.id
|
|
WHERE rech_id = $rechid ORDER BY posnr ASC") or $err=error("Fehler beim ermitteln der Artikeldaten<br />".mysqli_error($dbconn));
|
|
$artikel = array();
|
|
while($art=mysqli_fetch_assoc($qry))
|
|
{
|
|
$qry2=mysqli_query($dbconn,"SELECT bezeichn, wert, einheit, einheit_id
|
|
FROM eigensch
|
|
JOIN einheit ON einheit_id = einheit.id
|
|
JOIN artikel_eigensch ON eigensch.id = eig_id
|
|
WHERE art_id = '".$art["id"]."' AND rech_id = '$rechid' AND artposnr = '".$art["posnr"]."' ORDER BY posnr ASC") or $err=error("Fehler beim ermitteln der Eigenschaften<br />".mysqli_error($dbconn));
|
|
$eigenschaften = array();
|
|
while($eig=mysqli_fetch_assoc($qry2))
|
|
{
|
|
$eigenschaften[] = $eig;
|
|
}
|
|
$artikel[]=array("art"=>$art,"eig"=>$eigenschaften);
|
|
}
|
|
}
|
|
return $artikel;
|
|
}
|
|
|
|
function makesksartikelarray($dbconn,$rechid)
|
|
{
|
|
|
|
$qry=mysqli_query($dbconn,"SELECT bezeichn1 as bezeichn, preis, rabatt, menge, id
|
|
FROM artikelsks
|
|
WHERE rechnr = '$rechid' ORDER BY pos ASC") or $err=error("Fehler beim ermitteln der SKS Artikeldaten<br />".mysqli_error($dbconn));
|
|
$artikel = array();
|
|
while($art=mysqli_fetch_assoc($qry))
|
|
{
|
|
$art["artmwst"] = 0;
|
|
$qry2=mysqli_query($dbconn,"SELECT bezeichn2 AS bezeichn
|
|
FROM artikelsks
|
|
WHERE id = '".$art["id"]."'") or $err=error("Fehler beim ermitteln der SKS Eigenschaften<br />".mysqli_error($dbconn));
|
|
$eigenschaften = array();
|
|
while($eig=mysqli_fetch_assoc($qry2))
|
|
{
|
|
$eigenschaften[] = $eig;
|
|
}
|
|
$artikel[]=array("art"=>$art,"eig"=>$eigenschaften);
|
|
}
|
|
return $artikel;
|
|
}
|
|
|
|
function saveRechnung($dbconn,$update)
|
|
{
|
|
$show = str_pad($_POST["show_firmaanr"],1,"0").str_pad($_POST["show_firma"],1,"0");
|
|
$show .= str_pad($_POST["show_anr"],1,"0").str_pad($_POST["show_titel"],1,"0");
|
|
$show .= str_pad($_POST["show_name"],1,"0");
|
|
$show .= str_pad($_POST["show_anr2"],1,"0").str_pad($_POST["show_titel2"],1,"0");
|
|
$show .= str_pad($_POST["show_name2"],1,"0").str_pad($_POST["show_str"],1,"0");
|
|
$show .= str_pad($_POST["show_ort"],1,"0").str_pad($_POST["show_land"],1,"0");
|
|
$show .= str_pad($_POST["show_zusatz"],1,"0");
|
|
$anr1 = trim($_POST["anr1"]);
|
|
$adrerw = trim($_POST["adresserweiterung"]);
|
|
$anr2 = trim($_POST["anr2"]);
|
|
$intro = trim($_POST["intro"]);
|
|
$outro = trim($_POST["outro"]);
|
|
$type = $_POST["type"];
|
|
$adressid = $_POST["adressid"];
|
|
$partnerid = $_POST["partnerid"];
|
|
$mwst = $_POST["mwst"];
|
|
$zahlziel = $_POST["zahlziel"];
|
|
$wahrung = $_POST["wahrung"];
|
|
$sub_mwst = $_POST["sub_mwst"];
|
|
$rabatt = $_POST["rabatt"];
|
|
$rabattdesc = $_POST["rabattdesc"];
|
|
$lieferdatum = trim($_POST["lieferdatum"]);
|
|
$buchKto = $_POST["buchKto"];
|
|
|
|
if($update)
|
|
{
|
|
$rechid=$update;
|
|
$undoqry=mysqli_query($dbconn,"SELECT * FROM rechnung WHERE id ='".mysqli_escape_string($dbconn,$update)."'") or $err=error("Fehler beim einholen der Informationen für die LOG<br />".mysqli_error($dbconn));
|
|
$undores=mysqli_fetch_assoc($undoqry);
|
|
if(!$err)
|
|
{
|
|
$querystr = "UPDATE 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',";
|
|
if($_POST["change_date"] == 1){
|
|
$querystr .= "datetime=NOW(),";
|
|
}
|
|
$querystr .= " changetime=NOW()
|
|
WHERE id = '".mysqli_escape_string($dbconn,$update)."'";
|
|
mysqli_query($dbconn,$querystr) or $err=error("Fehler beim aktualisieren der Rechnung<br />".mysqli_error($dbconn));
|
|
}
|
|
if(!$err)
|
|
{
|
|
$undoquerystr = "UPDATE rechnung SET
|
|
user_id = '".$undores["user_id"]."',
|
|
adressfields='".$undores["adressfields"]."',
|
|
anrede1='".$undores["anrede1"]."',
|
|
anrede2='".$undores["anrede2"]."',
|
|
intro='".$undores["intro"]."',
|
|
outro='".$undores["outro"]."',
|
|
typ_id = '".$undores["typ_id"]."',
|
|
adresse_id='".$undores["adresse_id"]."',
|
|
partner_id='".$undores["partner_id"]."',
|
|
mwst_id = '".$undores["mwst_id"]."',
|
|
zahlziel_id = '".$undores["zahlziel_id"]."',
|
|
wahrung_id='".$undores["wahrung_id"]."',
|
|
sub_mwst='".$undores["sub_mwst"]."',
|
|
rabatt='".$undores["rabatt"]."',
|
|
rabattdesc='".$undores["rabattdesc"]."',
|
|
adresserweiterung='".$undores["adresserweiterung"]."',
|
|
lieferdatum='".$undores["lieferdatum"]."',
|
|
buchungsKto_id='".$undores["buchungsKto_id"].",
|
|
changetime='".$undores["changetime"]."'
|
|
WHERE id = '".mysqli_escape_string($dbconn,$update)."'";
|
|
$err = saveLog($dbconn,$querystr." [rechnung change]",$undoquerystr,"ändern");
|
|
}
|
|
//delete ART-RECHN-LINKS
|
|
if(!$err)
|
|
{
|
|
$undoqry=mysqli_query($dbconn,"SELECT GROUP_CONCAT(art_id SEPARATOR ', ') AS art_id FROM artikel_rechn WHERE rech_id ='".mysqli_escape_string($dbconn,$update)."' GROUP BY rech_id") or $err=error("Fehler beim einholen der Verknüpfungen für die LOG<br />".mysqli_error($dbconn));
|
|
$undores=mysqli_fetch_assoc($undoqry);
|
|
}
|
|
if(!$err)
|
|
{
|
|
$querystr = "DELETE FROM artikel_rechn WHERE rech_id = '".mysqli_escape_string($dbconn,$update)."'";
|
|
mysqli_query($dbconn,$querystr) or $err=error("Fehler beim löschen der Verknüpfungen<br />".mysqli_error($dbconn));
|
|
}
|
|
if(!$err)
|
|
{
|
|
$undoquerystr = "INSERT INTO artikel_rechn SET rech_id = '".mysqli_escape_string($dbconn,$update)."', art_id='".$undores["art_id"]."'";
|
|
$err = saveLog($dbconn,$querystr." [rechnung change]",$undoquerystr,"löschen");
|
|
}
|
|
//delete ART-EIG-LINKS
|
|
if(!$err)
|
|
{
|
|
$undoqry=mysqli_query($dbconn,"SELECT GROUP_CONCAT(artposnr SEPARATOR ', ') AS artposnr, GROUP_CONCAT(art_id SEPARATOR ', ') AS art_id, GROUP_CONCAT(eig_id SEPARATOR ', ') AS eig_id FROM artikel_eigensch WHERE rech_id ='".mysqli_escape_string($dbconn,$update)."' GROUP BY rech_id") or $err=error("Fehler beim einholen der Verknüpfungen für die LOG<br />".mysqli_error($dbconn));
|
|
$undores=mysqli_fetch_assoc($undoqry);
|
|
}
|
|
if(!$err)
|
|
{
|
|
$querystr = "DELETE FROM artikel_eigensch WHERE rech_id = '".mysqli_escape_string($dbconn,$update)."'";
|
|
mysqli_query($dbconn,$querystr) or $err=error("Fehler beim löschen der Verknüpfungen<br />".mysqli_error($dbconn));
|
|
}
|
|
if(!$err)
|
|
{
|
|
$undoquerystr = "INSERT INTO artikel_eigensch SET artposnr = '".$undores["artposnr"]."', rech_id = '".mysqli_escape_string($dbconn,$update)."', art_id='".$undores["art_id"].", 'eig_id='".$undores["eig_id"]."'";
|
|
$err = saveLog($dbconn,$querystr." [rechnung change]",$undoquerystr,"löschen");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$qry=mysqli_query($dbconn,"SELECT rechnr FROM rechnr WHERE SUBSTRING(rechnr,1,8) = '".date("Ymd")."' AND typ_id = '$type' ORDER BY rechnr DESC LIMIT 1") or $err=error("Fehler beim ermitteln der Rechnungsnummer<br />".mysqli_error($dbconn));
|
|
if(mysqli_num_rows($qry) == 1)
|
|
{
|
|
$res=mysqli_fetch_assoc($qry);
|
|
$rechnr = $res["rechnr"];
|
|
if(substr($rechnr,8,2) < 99)
|
|
{
|
|
$rechnr = $rechnr+1;
|
|
$qry=mysqli_query($dbconn,"INSERT INTO rechnr SET rechnr = '$rechnr', typ_id = '$type'") or $err = error("Rechnungsnummer wurde nicht eingetragen...<br />".mysqli_error($dbconn));
|
|
}
|
|
else
|
|
{
|
|
$err=error("Es wurden bereits 99 Rechnungen heute geschrieben. Das rechnungsnummern-Format lässt nicht mehr Rechnungen pro tag zu...");
|
|
$rechnr = '';
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$rechnr = date("Ymd")."01";
|
|
$qry=mysqli_query($dbconn,"INSERT INTO rechnr SET rechnr = '$rechnr', typ_id = '$type'") or $err = error("Rechnungsnummer wurde nicht eingetragen...<br />".mysqli_error($dbconn));
|
|
}
|
|
//echo "<br />".$rechnr;
|
|
//angebote rechnungen gutschriften bestätigungen A/R/G/ B2012.03.22-24
|
|
if(!$err)
|
|
{
|
|
$querystr = "INSERT INTO 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',
|
|
datetime=NOW(),
|
|
lieferdatum='$lieferdatum',
|
|
adresserweiterung='$adrerw',
|
|
buchungsKto_id='$buchKto',
|
|
rechnr= '$rechnr'";
|
|
mysqli_query($dbconn,$querystr) or $err=error("Fehler beim einfügen der Rechnung<br />".mysqli_error($dbconn));
|
|
$rechid=mysqli_insert_id($dbconn);
|
|
}
|
|
if(!$err)
|
|
{
|
|
$undoquerystr = "DELETE FROM rechnung WHERE id = '".$rechid."'";
|
|
$err = saveLog($dbconn,$querystr." [rechnung add]",$undoquerystr,"anlegen");
|
|
}
|
|
}
|
|
|
|
if(!$err)
|
|
{
|
|
//check if artikel already exists
|
|
$i = 1;
|
|
while($_POST["arthead".$i] && !$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]);
|
|
$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, "SELECT id FROM artikel WHERE bezeichn=BINARY '$arthead' AND typ_id='$arttyp' AND einheit_id = '$artmeneinh'") or $err=error("Fehler beim ermitteln vorhandener Artikel <br />".mysqli_error($dbconn));
|
|
if($res=mysqli_fetch_assoc($qry))
|
|
{
|
|
$artid = $res["id"];
|
|
}
|
|
else
|
|
{
|
|
$querystr = "INSERT INTO artikel SET bezeichn='$arthead', typ_id='$arttyp', einheit_id = '$artmeneinh', datetime=NOW(), user_id = '".$_SESSION["user"]."'";
|
|
$qry = mysqli_query($dbconn, $querystr) or $err=error("Fehler beim erstellen neuer Artikel ($arteinh) <br />".mysqli_error($dbconn));
|
|
$artid = mysqli_insert_id($dbconn);
|
|
if(!$err)
|
|
{
|
|
$err = saveLog($dbconn,$querystr." [rechnung change]","DELETE FROM artikel WHERE id ='$artid'","anlegen");
|
|
}
|
|
|
|
}
|
|
if(!$err)
|
|
{
|
|
$querystr = "INSERT INTO artikel_rechn SET
|
|
angtyp = '$angtyp',
|
|
wanr = '$artwa',
|
|
menge = '$artmen',
|
|
rabatt = '$artrab',
|
|
posnr = '$i',
|
|
art_id = '$artid',
|
|
artmwst = '$artmwst',
|
|
rech_id = '$rechid',
|
|
rabatttyp = '$artrabtyp',
|
|
pagebreak = '$pagebreak',
|
|
preis = '$artpr'";
|
|
$qry = mysqli_query($dbconn, $querystr) or $err=error("Fehler beim erstellen der Artikel-Rechnung Beziehung <br />".mysqli_error($dbconn));
|
|
}
|
|
if(!$err)
|
|
{
|
|
//check if eigenschaften already exists
|
|
$ii = 1;
|
|
while($_POST["arteig".$i."_".$ii] && !$err)
|
|
{
|
|
$arteig = trim($_POST["arteig".$i."_".$ii]);
|
|
$artval = trim($_POST["artval".$i."_".$ii]);
|
|
$arteinh = trim($_POST["arteinh".$i."_".$ii]);
|
|
|
|
$qry = mysqli_query($dbconn, "SELECT id FROM eigensch WHERE bezeichn=BINARY '$arteig' AND wert='$artval' AND einheit_id='$arteinh'") or $err=error("Fehler beim ermitteln vorhandener Eigenschaften <br />".mysqli_error($dbconn));
|
|
if($res=mysqli_fetch_assoc($qry))
|
|
{
|
|
$eigid = $res["id"];
|
|
}
|
|
else
|
|
{
|
|
$querystr = "INSERT INTO eigensch SET bezeichn='$arteig', einheit_id='$arteinh', wert='$artval', datetime=NOW(), user_id = '".$_SESSION["user"]."'";
|
|
$qry = mysqli_query($dbconn, $querystr) or $err=error("Fehler beim erstellen neuer Eigenschaften ($arteinh) <br />".mysqli_error($dbconn));
|
|
$eigid = mysqli_insert_id($dbconn);
|
|
if(!$err)
|
|
{
|
|
$err = saveLog($dbconn,$querystr." [rechnung change]","DELETE FROM einh WHERE id ='$eigid'","anlegen");
|
|
}
|
|
|
|
}
|
|
if(!$err)
|
|
{
|
|
$qry = mysqli_query($dbconn, "INSERT INTO artikel_eigensch SET posnr='$ii', artposnr = '$i', rech_id='$rechid', eig_id='$eigid', art_id='$artid'") or $err=error("Fehler beim anlegen der Eigenschaften-Artikel-Beziehung <br />".mysqli_error($dbconn));
|
|
$eigid=mysqli_insert_id($dbconn);
|
|
$ii++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
$i++;
|
|
}
|
|
}
|
|
if(!$err)
|
|
{
|
|
$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 Temp Rechnung <br />".mysqli_error($dbconn));
|
|
while($res=mysqli_fetch_assoc($qry))
|
|
{
|
|
$artqry = mysqli_query($dbconn, "SELECT id FROM tmp_artikel WHERE rech_id = '".$res["id"]."' ") or $err=error("Fehler beim ermitteln der Temp Artikel <br />".mysqli_error($dbconn));
|
|
while($artres=mysqli_fetch_assoc($artqry))
|
|
{
|
|
$delqry = mysqli_query($dbconn, "DELETE FROM tmp_eigensch WHERE art_id = '".$artres["id"]."' ") or $err=error("Fehler beim löschen der Temp Eigenschaften <br />".mysqli_error($dbconn));
|
|
}
|
|
$delqry = mysqli_query($dbconn, "DELETE FROM tmp_artikel WHERE rech_id = '".$res["id"]."' ") or $err=error("Fehler beim löschen der Temp Artikel <br />".mysqli_error($dbconn));
|
|
}
|
|
$qry = mysqli_query($dbconn, "DELETE FROM tmp_rechnung WHERE user_id = '".$_SESSION["user"]."' AND typ_id = '".$type."'") or $err=error("Fehler beim löschen der Temp Rechnung <br />".mysqli_error($dbconn));
|
|
}
|
|
else
|
|
{
|
|
$err = error("Es ist ein Fehler beim Speichern aufgetreten, <br />
|
|
Ihre Rechnung ist aber noch vorhanden, <br />
|
|
Bitte gehen Sie <a href='?action=rechnungadd&type=$type'>zurück zum Rechnungsformular</a> <br />
|
|
und wählen Sie in der auftauchenden Meldung die Schaltfläche <b>JA</b>");
|
|
}
|
|
return $err;
|
|
}
|
|
|
|
function delRechnung($dbconn,$id)
|
|
{
|
|
$qry= mysqli_query($dbconn, "DELETE FROM artikel_rechn WHERE rech_id = '".mysql_escape_string($id)."'") or $err=error("Fehler beim löschen der Artikel-Rechnung Beziehung <br />".mysqli_error($dbconn));
|
|
$qry= mysqli_query($dbconn, "DELETE FROM artikel_eigensch WHERE rech_id = '".mysql_escape_string($id)."'") or $err=error("Fehler beim löschen der Artikel-Eigenschaften Beziehung <br />".mysqli_error($dbconn));
|
|
$qry= mysqli_query($dbconn, "DELETE FROM rechnung WHERE id = '".mysql_escape_string($id)."' LIMIT 1") or $err=error("Fehler beim löschen der Rechnung <br />".mysqli_error($dbconn));
|
|
if(!$err)
|
|
{
|
|
$err = saveLog($dbconn,"DELETE FROM rechnung WHERE id = '".mysql_escape_string($id)."' LIMIT 1 [rechnung DEL]","","löschen");
|
|
}
|
|
return $err;
|
|
}
|
|
function changeRechAdr($dbconn,$id,$adrid)
|
|
{
|
|
$qry= mysqli_query($dbconn, "SELECT adresse_id, partner_id FROM rechnung WHERE id = '".mysqli_escape_string($dbconn,$id)."'") or $err=error("Fehler beim ermitteln der Rechnungsadresse für die LOG <br />".mysqli_error($dbconn));
|
|
$res=mysqli_fetch_assoc($qry);
|
|
if($res["adresse_id"])
|
|
{
|
|
$qry= mysqli_query($dbconn, "SELECT partner_id FROM adresse WHERE id = '".mysqli_escape_string($dbconn,$adrid)."'") or $err=error("Fehler beim ermitteln der Rechnungsadresse für die LOG <br />".mysqli_error($dbconn));
|
|
$res2=mysqli_fetch_assoc($qry);
|
|
$querystr="UPDATE rechnung SET adresse_id = '".mysqli_escape_string($dbconn,$adrid)."', partner_id = '".$res2["partner_id"]."' WHERE id = '".mysqli_escape_string($dbconn,$id)."'";
|
|
$undoquerystr="UPDATE rechnung SET adresse_id = '".$res["adresse_id"]."', partner_id = '".$res["partner_id"]."' WHERE id = '".mysqli_escape_string($dbconn,$id)."'";
|
|
$qry= mysqli_query($dbconn, $querystr) or $err=error("Fehler beim ändern der Rechnungsadresse <br />".mysqli_error($dbconn));
|
|
}
|
|
else
|
|
{
|
|
$err=error("Rechnung nicht gefunden!!");
|
|
}
|
|
if(!$err)
|
|
{
|
|
$err = saveLog($dbconn,$querystr." [rechnungsadr change]",$undoquerystr,"ändern");
|
|
}
|
|
return $err;
|
|
}
|
|
function copyRech($dbconn,$id,$adrid)
|
|
{
|
|
$qry=mysqli_query($dbconn,"SELECT rechnr FROM rechnr WHERE SUBSTRING(rechnr,1,8) = '".date("Ymd")."' ORDER BY rechnr DESC LIMIT 1") or $err=error("Fehler beim ermitteln der Rechnungsnummer<br />".mysqli_error($dbconn));
|
|
if(mysqli_num_rows($qry) == 1)
|
|
{
|
|
$res=mysqli_fetch_assoc($qry);
|
|
$rechnr = $res["rechnr"];
|
|
if(substr($rechnr,8,2) < 99)
|
|
{
|
|
$rechnr = $rechnr+1;
|
|
$qry=mysqli_query($dbconn,"INSERT INTO rechnr SET rechnr = '$rechnr'") or $err = error("Rechnungsnummer wurde nicht eingetragen...");
|
|
}
|
|
else
|
|
{
|
|
$err=error("Es wurden bereits 99 Rechnungen heute geschrieben. Das rechnungsnummern-Format lässt nicht mehr Rechnungen pro tag zu...");
|
|
$rechnr = '';
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$rechnr = date("Ymd")."01";
|
|
$qry=mysqli_query($dbconn,"INSERT INTO rechnr SET rechnr = '$rechnr'") or $err = error("Rechnungsnummer wurde nicht eingetragen...");
|
|
}
|
|
|
|
if(!$err)
|
|
{
|
|
$qry= mysqli_query($dbconn, "SELECT partner_id FROM adresse WHERE id = '".mysqli_escape_string($dbconn,$adrid)."'") or $err=error("Fehler beim ermitteln der Adressdaten <br />".mysqli_error($dbconn));
|
|
$res=mysqli_fetch_assoc($qry);
|
|
$partnerid = $res["partner_id"];
|
|
$qry= mysqli_query($dbconn, "SELECT * FROM rechnung WHERE id = '".mysqli_escape_string($dbconn,$id)."'") or $err=error("Fehler beim ermitteln der Rechnungsdaten <br />".mysqli_error($dbconn));
|
|
$res=mysqli_fetch_assoc($qry);
|
|
$querystr = "INSERT INTO rechnung SET
|
|
adressfields = '".$res["adressfields"]."',
|
|
anrede1 = '".$res["anrede1"]."',
|
|
anrede2 = '".$res["anrede2"]."',
|
|
partner_id = '$partnerid',
|
|
mwst_id = '".$res["mwst_id"]."',
|
|
user_id = '".$_SESSION["user"]."',
|
|
typ_id = ".$res["typ_id"].",
|
|
zahlziel_id = '".$res["zahlziel_id"]."',
|
|
adresse_id = '".mysqli_escape_string($dbconn,$adrid)."',
|
|
wahrung_id = '".$res["wahrung_id"]."',
|
|
adresserweiterung = '".$res["adresserweiterung"]."',
|
|
datetime = NOW(),
|
|
intro = '".$res["intro"]."',
|
|
outro = '".$res["outro"]."',
|
|
rechnr = '".$rechnr."',
|
|
lieferdatum = '".$res["lieferdatum"]."',
|
|
buchungsKto_id = '".$res["buchungsKto_id"]."',
|
|
sub_mwst = '".$res["sub_mwst"]."'";
|
|
$qry= mysqli_query($dbconn, $querystr) or $err=error("Fehler beim Kopieren der Rechnungsdaten <br />".mysqli_error($dbconn));
|
|
$rechid = mysqli_insert_id($dbconn);
|
|
$undoquerystr = "DELETE FROM rechnung WHERE id = $rechid";
|
|
}
|
|
if(!$err)
|
|
{
|
|
$err = saveLog($dbconn,$querystr." [rechnung copy]",$undoquerystr,"anlegen");
|
|
}
|
|
if(!$err)
|
|
{
|
|
$qry= mysqli_query($dbconn, "SELECT * FROM artikel_rechn WHERE rech_id = '".mysqli_escape_string($dbconn,$id)."'") or $err=error("Fehler beim ermitteln der Artikel-Dokumentbeziehung <br />".mysqli_error($dbconn));
|
|
while($res=mysqli_fetch_assoc($qry))
|
|
{
|
|
$querystr = "INSERT INTO artikel_rechn SET
|
|
art_id = '".$res["art_id"]."',
|
|
rech_id = '".$rechid."',
|
|
posnr = '".$res["posnr"]."',
|
|
rabatt = '".$res["rabatt"]."',
|
|
rabatttyp = '".$res["rabatttyp"]."',
|
|
menge = ".$res["menge"].",
|
|
preis = '".$res["preis"]."',
|
|
angtyp = '".$res["angtyp"]."',
|
|
artmwst = '".$res["artmwst"]."',
|
|
wanr = '".$res["wanr"]."',
|
|
pagebreak = '".$res["pagebreak"]."'";
|
|
mysqli_query($dbconn, $querystr) or $err=error("Fehler beim Kopieren der Dokument-Artikelbeziehnung <br />".mysqli_error($dbconn));
|
|
$art_rech_id = mysqli_insert_id($dbconn);
|
|
$undoquerystr = "DELETE FROM artikel_rechn WHERE id = $art_rech_id";
|
|
if(!$err)
|
|
{
|
|
$err = saveLog($dbconn,$querystr." [rechnung copy]",$undoquerystr,"anlegen");
|
|
}
|
|
}
|
|
}
|
|
if(!$err)
|
|
{
|
|
$qry= mysqli_query($dbconn, "SELECT * FROM artikel_eigensch WHERE rech_id = '".mysqli_escape_string($dbconn,$id)."'") or $err=error("Fehler beim ermitteln der Artikel-Eigenschaftenbeziehung <br />".mysqli_error($dbconn));
|
|
while($res=mysqli_fetch_assoc($qry))
|
|
{
|
|
$querystr = "INSERT INTO artikel_eigensch SET
|
|
art_id = '".$res["art_id"]."',
|
|
eig_id = '".$res["eig_id"]."',
|
|
rech_id = '".$rechid."',
|
|
posnr = '".$res["posnr"]."',
|
|
artposnr = '".$res["artposnr"]."'";
|
|
mysqli_query($dbconn, $querystr) or $err=error("Fehler beim Kopieren der Artikel-Eigenschaftenbeziehung <br />".mysqli_error($dbconn));
|
|
$art_eig_id = mysqli_insert_id($dbconn);
|
|
$undoquerystr = "DELETE FROM artikel_eigensch WHERE id = $art_eig_id";
|
|
if(!$err)
|
|
{
|
|
$err = saveLog($dbconn,$querystr." [rechnung copy]",$undoquerystr,"anlegen");
|
|
}
|
|
}
|
|
}
|
|
|
|
return $err;
|
|
}
|
|
|
|
function calculateRechnungsSum($dbconn, $rechid, $inclmwst)
|
|
{
|
|
$qry = mysqli_query($dbconn, "SELECT mwst, rabatt, sub_mwst, sks, rabatt FROM rechnung JOIN mwst ON mwst.id = mwst_id WHERE rechnung.id ='".$rechid."'");
|
|
$res = mysqli_fetch_assoc($qry);
|
|
if($res["sks"] == 1)
|
|
{
|
|
$qry = mysqli_query($dbconn,"SELECT menge, preis, '19' AS artmwst FROM artikelsks WHERE rechnr = '".$rechid."'");
|
|
}
|
|
else {
|
|
$qry = mysqli_query($dbconn,"SELECT rabatt AS artrabatt, menge, preis, mwst AS artmwst, artikel_rechn.id AS id FROM artikel_rechn JOIN mwst ON artikel_rechn.artmwst = mwst.id WHERE rech_id = '".$rechid."'");
|
|
}
|
|
$sum = Array();
|
|
$mixedmwst = 0;
|
|
while($artres = mysqli_fetch_assoc($qry))
|
|
{
|
|
if($artres["artmwst"] > 0 && $artres["artmwst"] != 999 && $artres["artmwst"] != $res["mwst"])
|
|
{
|
|
$mixedmwst = 1;
|
|
break;
|
|
}
|
|
if($artres["artmwst"] == 999 || !$artres["artmwst"])
|
|
$artres["artmwst"] = $res["mwst"];
|
|
$artmwst=$artres["artmwst"];
|
|
if($res["sub_mwst"])
|
|
$artres["preis"] = round(100*$artres["preis"]/(100+$artmwst),2);
|
|
//if($artres["artmwst"] == 999)
|
|
// $artres["artmwst"] = $res["mwst"];
|
|
//if($res["sub_mwst"])
|
|
// $artres["preis"] = round((100*$artres["preis"])/(100+$artres["artmwst"]),2,PHP_ROUND_HALF_UP);
|
|
//if($inclmwst)
|
|
// $artres["preis"] = round((100+$artres["artmwst"])*$artres["preis"]/(100),2,PHP_ROUND_HALF_UP);
|
|
|
|
//$sum += round($artres["menge"] * $artres["preis"] * (1 - ($artres["artrabatt"]/100)),2,PHP_ROUND_HALF_UP);
|
|
if($artres["artrabatt"])
|
|
{
|
|
$sum[$artres["artmwst"]] += round(-1*$artres["preis"]*$artres["menge"]*($artres["artrabatt"]/100),2);
|
|
}
|
|
|
|
$sum[$artres["artmwst"]] += $artres["preis"]*$artres["menge"];
|
|
//if($artres["artmwst"] != 19){
|
|
// echo "Mwst: ".$artres["artmwst"]." ID: ".$artres["id"]."<br />";
|
|
// }
|
|
}
|
|
|
|
|
|
if($mixedmwst == 0 && $res["mwst"] == 0)
|
|
{
|
|
|
|
//RABATT
|
|
if ($res["rabatt"] != "0") {
|
|
|
|
|
|
$multi=$res["rabatt"]/100;
|
|
|
|
foreach($sum AS $mwst => $ubertr_mwst)
|
|
{
|
|
$sum[$mwst]=$sum[$mwst]-$sum[$mwst]*$multi;
|
|
}
|
|
}
|
|
|
|
//Mwst ausweisen
|
|
$sum_all = 0;
|
|
foreach($sum as $mwst => $ubertr_mwst){
|
|
if($inclmwst){
|
|
$sum_all += $ubertr_mwst*((100+$mwst)/100);
|
|
}
|
|
else{
|
|
$sum_all += $ubertr_mwst;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
else
|
|
{
|
|
|
|
$multi=$res["rabatt"]/100;
|
|
foreach($sum AS $mwst => $ubertr_mwst)
|
|
{
|
|
$sum[$mwst]= round($sum[$mwst]-$sum[$mwst]*$multi,2);
|
|
}
|
|
|
|
|
|
//foreach($sum AS $mwst => $ubertr_mwst)
|
|
//{
|
|
// $multi=$mwst/100;
|
|
// $sum[$mwst] = $sum[$mwst]+round($sum[$mwst]*$multi,2);
|
|
//}
|
|
$sum_all = 0;
|
|
foreach($sum as $mwst => $ubertr_mwst){
|
|
if($inclmwst){
|
|
$sum_all += $ubertr_mwst*((100+$mwst)/100);
|
|
}
|
|
else{
|
|
$sum_all += $ubertr_mwst;
|
|
}
|
|
}
|
|
//foreach($sum as $ubertr_mwst)
|
|
// $sum_all += $ubertr_mwst;
|
|
|
|
}
|
|
return round($sum_all,2);
|
|
}
|
|
|
|
?>
|