".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
".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 .= "
".trim($adresse["firma"]); } if($anr1 && $anr2 && $name1 && !$name2) { if($adrstr) $adrstr .= "
"; $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 .= "
"; if($adresse["vname"]) $adrstr .= trim($adresse["vname"])." ".trim($adresse["nname"]); else $adrstr .= trim($adresse["nname"]); if($zusatz) $adrstr .= "
".trim($adresse["zusatz"]); } elseif($anr1 && $anr2 && $name2 && !$name1) { if($adrstr) $adrstr .= "
"; $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 .= "
"; if($adresse["vname2"]) $adrstr .= trim($adresse["vname2"])." ".trim($adresse["nname2"]); else $adrstr .= trim($adresse["nname2"]); if($zusatz) $adrstr .= "
".trim($adresse["zusatz"]); } else { if($anr1) { if($adrstr) $adrstr .= "
"; $adrstr .= $anrs[$adresse["anrede_id"]]." "; } if($titel1) { if($adrstr) $adrstr .= "
"; if($titels[$adresse["titel_id"]]) $adrstr .= $titels[$adresse["titel_id"]]." "; } if($name1) { if(!$titel1 && !$firma && !$firmaanr && !$name2 && $adrstr) $adrstr .= "
"; if(!$anr1 && !$titel1 && $adrstr) $adrstr .= "
"; if($adresse["vname"]) $adrstr .= trim($adresse["vname"])." ".trim($adresse["nname"]); else $adrstr .= trim($adresse["nname"]); } if($anr2 && $anrs[$adresse["anrede2_id"]]) { if($adrstr) $adrstr .= "
"; $adrstr .= $anrs[$adresse["anrede2_id"]]." "; } if($titel2 && $titels[$adresse["titel2_id"]]) { if($adrstr) $adrstr .= "
"; $adrstr .= $titels[$adresse["titel2_id"]]." "; } if(trim($name2)) { if(!$titel2 && !$firma && !$firmaanr && !$name1 && !$anr1 && $adrstr) $adrstr .= "
"; if(!$anr2 && !$titel2 && $adrstr) $adrstr .= "
"; if($adresse["vname2"]) $adrstr .= trim($adresse["vname2"])." ".trim($adresse["nname2"]); else $adrstr .= trim($adresse["nname2"]); } if($zusatz) $adrstr .= "
".trim($adresse["zusatz"]); } if(trim($adresse["adresserweiterung"])){ $adrstr .= "
".trim($adresse["adresserweiterung"]); } if($str) { if($adrstr) $adrstr .= "
"; $adrstr .= trim($adresse["str"])." ".trim($adresse["hnr"]); } if($ort) { if($adrstr) $adrstr .= "
"; if($land) $adresse["ort"] = strtoupper($adresse["ort"]); $adrstr .= trim($adresse["plz"])." ".trim($adresse["ort"]); } if($land) { if($adrstr) $adrstr .= "
"; $adrstr .= trim(strtoupper($adresse["land"])); } $lines=explode("
",$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
".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 .= "
".trim($adresse["firma"]); } if($anr1 && $anr2 && $name1 && !$name2) { if($adrstr) $adrstr .= "
"; $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 .= "
"; if($adresse["vname"]) $adrstr .= trim($adresse["vname"])." ".trim($adresse["nname"]); else $adrstr .= trim($adresse["nname"]); if($zusatz) $adrstr .= "
".trim($adresse["zusatz"]); } elseif($anr1 && $anr2 && $name2 && !$name1) { if($adrstr) $adrstr .= "
"; $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 .= "
"; if($adresse["vname2"]) $adrstr .= trim($adresse["vname2"])." ".trim($adresse["nname2"]); else $adrstr .= trim($adresse["nname2"]); if($zusatz) $adrstr .= "
".trim($adresse["zusatz"]); } else { if($anr1) { if($adrstr) $adrstr .= "
"; $adrstr .= $anrs[$adresse["anrede_id"]]." "; } if($titel1) { if($adrstr) $adrstr .= "
"; if($titels[$adresse["titel_id"]]) $adrstr .= $titels[$adresse["titel_id"]]." "; } if($name1) { if(!$titel1 && !$firma && !$firmaanr && !$name2 && $adrstr) $adrstr .= "
"; if(!$anr1 && !$titel1 && $adrstr) $adrstr .= "
"; if($adresse["vname"]) $adrstr .= trim($adresse["vname"])." ".trim($adresse["nname"]); else $adrstr .= trim($adresse["nname"]); } if($anr2 && $anrs[$adresse["anrede2_id"]]) { if($adrstr) $adrstr .= "
"; $adrstr .= $anrs[$adresse["anrede2_id"]]." "; } if($titel2 && $titels[$adresse["titel2_id"]]) { if($adrstr) $adrstr .= "
"; $adrstr .= $titels[$adresse["titel2_id"]]." "; } if(trim($name2)) { if(!$titel2 && !$firma && !$firmaanr && !$name1 && !$anr1 && $adrstr) $adrstr .= "
"; if(!$anr2 && !$titel2 && $adrstr) $adrstr .= "
"; if($adresse["vname2"]) $adrstr .= trim($adresse["vname2"])." ".trim($adresse["nname2"]); else $adrstr .= trim($adresse["nname2"]); } if($zusatz) $adrstr .= "
".trim($adresse["zusatz"]); } if(trim($adresse["adresserweiterung"])){ $adrstr .= "
".trim($adresse["adresserweiterung"]); } if($str) { if($adrstr) $adrstr .= "
"; $adrstr .= trim($adresse["str"])." ".trim($adresse["hnr"]); } if($ort) { if($adrstr) $adrstr .= "
"; if($land) $adresse["ort"] = strtoupper($adresse["ort"]); $adrstr .= trim($adresse["plz"])." ".trim($adresse["ort"]); } if($land) { if($adrstr) $adrstr .= "
"; $adrstr .= trim(strtoupper($adresse["land"])); } $lines=explode("
",$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
".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
".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
".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
".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
".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
".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
".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
".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
".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
".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
".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
".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
".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
".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
".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...
".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...
".mysqli_error($dbconn)); } //echo "
".$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
".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
".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)
".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
".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
".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)
".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
".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
".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
".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
".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
".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
".mysqli_error($dbconn)); } else { $err = error("Es ist ein Fehler beim Speichern aufgetreten,
Ihre Rechnung ist aber noch vorhanden,
Bitte gehen Sie zurück zum Rechnungsformular
und wählen Sie in der auftauchenden Meldung die Schaltfläche JA"); } 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
".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
".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
".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
".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
".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
".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
".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
".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
".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
".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
".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
".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
".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
".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"]."
"; // } } 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); } ?>