Blame | Letzte Änderung | Log anzeigen | RSS feed
<?// $Id: angebot.php 3931 2011-09-16 08:17:57Z tiefland $require_once "connect2.php";require_once "includes/bestellungen/system/mysql_query_logged.php";require_once "Weban_Smarty.class.php";require_once "includes/angebot/body_$site.inc.php";// Angebotsbausteine?if ( !defined("LEISTUNGS_DATUM") ){define( "LEISTUNGS_DATUM", false );}$sql_b = "SELECT * FROM Bestellung WHERE ID=$b_id";$res_b = mysql_query_logged( $sql_b );$row_b = mysql_fetch_assoc( $res_b );$b_name = $row_b["letzte_Aenderung_von"];$b_name = substr( $b_name, 0, strpos($b_name, "@") );$dat = datetime2human( $row_b["letzte_Aenderung_am"] );$sql_l = "SELECT * FROM Logins WHERE ID=" . $row_b["Login"];$res_l = mysql_query_logged( $sql_l );$row_l = mysql_fetch_assoc( $res_l );$name = ( $row_l["Vorname"] ) ? $row_l["Vorname"] . " " . $row_l['Name1'] :$row_l["Name1"];$anrede = $row_l["Anrede"];$plz = $row_l["PLZ"];$ort = $row_l["ORT"];$str = $row_l["Strasse"];$str .= ( isset($row_l["Hausnummer"]) ) ? " " . $row_l["Hausnummer"] :"";$firma = ( isset($row_l["Name2"]) ) ? $row_l["Name2"] : "";require_once "fpdf/fpdf.php";class PDF extends FPDF{function generate_LN( $bestell_id, $art, $Nummernkreis ){if ( $Nummernkreis ){$sql ="SELECT l_nr AS ln FROM nummernkreis_angebot WHERE jahr=" .date( "Y" );$res = mysql_query_logged( $sql );if ( $res ){if ( mysql_num_rows($res) ){$row = mysql_fetch_assoc( $res );$ln = $row["ln"];$ln++;}else{$ln = 1;$sql = "INSERT INTOnummernkreis_angebotVALUES($ln," . date( "Y" ) . ")";mysql_query_logged( $sql );}}else{$ln = 1;}$sql = "UPDATEnummernkreis_angebotSETl_nr=" . $ln . "WHEREjahr=" . date( "Y" );mysql_query_logged( $sql );}else{$date = date( "Y-m-d" );$f_name = $art . "_" . $bestell_id . "_" . $date;$sql ="SELECT MAX(document) AS dokument FROM dokumente WHERE document LIKE '$f_name%'";$res = mysql_query( $sql );if ( $res ){if ( mysql_num_rows($res) ){$row = mysql_fetch_assoc( $res );$dokument = substr( $row["dokument"], 0, strlen($row["dokument"]) -4 );$dokument = explode( "_", $dokument );$ln = $dokument[count( $dokument ) - 1];$ln++;}else{$ln = 1;}}else{$ln = 1;die( mysql_error() );}}return $ln;}//Page headerfunction Header(){global $site, $r_nr;require_once "includes/angebot/header_$site.inc.php";}//Page footerfunction Footer(){global $site;require_once "includes/angebot/footer_$site.inc.php";}function NbLines( $w, $txt ){//Computes the number of lines a MultiCell of width w will take$cw = &$this->CurrentFont['cw'];if ( $w == 0 )$w = $this->w - $this->rMargin - $this->x;$wmax = ( $w - 2 * $this->cMargin ) * 1000 / $this->FontSize;$s = str_replace( "\r", '', $txt );$nb = strlen( $s );if ( $nb > 0 and $s[$nb - 1] == "\n" )$nb--;$sep = -1;$i = 0;$j = 0;$l = 0;$nl = 1;while ( $i < $nb ){$c = $s[$i];if ( $c == "\n" ){$i++;$sep = -1;$j = $i;$l = 0;$nl++;continue;}if ( $c == ' ' )$sep = $i;$l += $cw[$c];if ( $l > $wmax ){if ( $sep == -1 ){if ( $i == $j )$i++;}else$i = $sep + 1;$sep = -1;$j = $i;$l = 0;$nl++;}else$i++;}return $nl;}}if ( !$b_id ){if ( $_GET["b_id"] ){$b_id = ( int )$_GET["b_id"];} elseif ( $_POST["b_id"] ){$b_id = ( int )$_POST["b_id"];}else{die( "Keine Bestellung angegeben!" );}}// Angebotsbausteine?if ( ($web_rechte["Warenwirtschaft"]["bestellung"]["angebotsbausteine"]) and(!$_POST['action']) ){$bausteinIDs = explode( ";", $web_rechte["Warenwirtschaft"]["bestellung"]["angebotsbausteine"] );$where_part = implode( " OR ID=", $bausteinIDs );// die Texte zu den Bausteinen ermitteln$sql = "SELECT*FROMweb_settingsWHEREID=" . $where_part . "ORDER BYRang";if ( $q = mysql_query($sql) ){while ( $r = mysql_fetch_assoc($q) ){$bausteine[$r['ID']] = $r['Inhalt'];}}$GLOBALS["ui"] = new Weban_Smarty();$GLOBALS["ui"]->assign( "b_id", $b_id );$GLOBALS["ui"]->assign( "bausteine", $bausteine );$GLOBALS["ui"]->assign( "rechnungsbausteine", true );$GLOBALS["ui"]->display( "rechnungsbausteine.tpl" );}else{//Instanciation of inherited class$showLieferadresse = 0;$pdf = new PDF();if ( isset($web_rechte["Warenwirtschaft"]["bestellung"]["angebot"]) ){$Status = false;$Nummernkreis = false;$Speichern = false;$daten = explode( ";", $web_rechte["Warenwirtschaft"]["bestellung"]["angebot"] );$id = array_search( "Status", $daten );if ( $id !== false ){$Status = true;}$id = array_search( "Nummernkreis", $daten );if ( $id !== false ){$Nummernkreis = true;if ( !isset($anz_stellen) ){$anz_stellen = 5;}$r_nr = sprintf( "%0" . $anz_stellen . "d", $pdf->generate_LN($b_id, "R", true) );$r_nr = date( "y" ) . $r_nr;$fName = "AG" . $r_nr . ".pdf";}else{$date = date( "Y-m-d" );$ln = $pdf->generate_LN( $b_id, "L", false );if ( !isset($anz_stellen) ){$anz_stellen = 5;}$r_nr = sprintf( "%0" . $anz_stellen . "d", $ln );$fName = "AG_" . $b_id . "_" . $date . "_" . $r_nr . ".pdf";}$id = array_search( "Speichern", $daten );if ( $id !== false ){$Speichern = true;}}$pdf->setSubject( "Angebot" );$pdf->setAuthor( $haendler_name );$pdf->setCreator( "fpdf PHP Library" );$pdf->AliasNbPages();$pdf->AddPage();$pdf->setY( 45 );$pdf->setFont( 'Arial', '', 8 );$pdf->cell( 80, 4, $umschlag, "B", 1, "L" );$pdf->setFont( 'Arial', '', 10 );$pdf->ln( 5 );$pdf->setX( 20 );if ( !$firma ){$pdf->setX( 20 );$pdf->cell( 80, 4, $anrede, 0, 1, "L" );$pdf->setX( 20 );$pdf->cell( 80, 4, $name, 0, 1, "L" );}else{$pdf->setX( 20 );$pdf->cell( 80, 4, $firma, 0, 1, "L" );$pdf->setX( 20 );$pdf->cell( 80, 4, $anrede . " " . $name, 0, 1, "L" );}$pdf->setX( 20 );$pdf->cell( 80, 4, $str, 0, 1, "L" );$pdf->setX( 20 );$pdf->cell( 80, 4, "$plz $ort", 0, 1, "L" );if ( $Infozeile != 'on' ){$pdf->setY( 80 );$pdf->cell( 150, 4, "Kunden Nr.:", 0, 0, "R" );$pdf->cell( 0, 4, $row_l["ID"], 0, 1, "R" );$pdf->cell( 150, 4, "Bearbeiter:", 0, 0, "R" );$pdf->cell( 0, 4, $b_name, 0, 1, "R" );$pdf->cell( 150, 4, "USt-IdNr.:", 0, 0, "R" );$pdf->cell( 0, 4, $haendler_ust_id, 0, 1, "R" );if ( LEISTUNGS_DATUM == true ){$pdf->cell( 150, 4, "Leistungsdatum:", 0, 0, "R" );$pdf->cell( 0, 4, $dat["Datum"], 0, 0, "R" );}else{$pdf->cell( 150, 4, "Datum:", 0, 0, "R" );$pdf->cell( 0, 4, date("d.m.Y"), 0, 0, "R" );}}// Lieferadresse auf Angebot ausdrucken?if ( (isset($web_rechte["Warenwirtschaft"]["bestellung"]["angebot"]) and(isset($web_rechte["Warenwirtschaft"]["bestellung"]["lieferadresse_auf_angebot"]) and($row_b['liefer_Strasse']))) ){$pdf->setY( 50 );$pdf->setX( 135 );$pdf->setFont( 'Arial', 'B', 8 );$pdf->cell( 145, 4, "Lieferadresse:", 0, 2, "L" );$pdf->setFont( 'Arial', '', 8 );if ( $row_b['liefer_Firma'] )$pdf->cell( 145, 4, $row_b['liefer_Firma'], 0, 2, "L" );if ( $row_b['liefer_Name'] )$pdf->cell( 145, 4, $row_b['liefer_Name'], 0, 2, "L" );if ( $row_b['liefer_Strasse'] )$pdf->cell( 145, 4, $row_b['liefer_Strasse'] . " " . $row_b['liefer_Str_Nr'],0, 2, "L" );if ( $row_b['liefer_Ort'] )$pdf->cell( 145, 4, $row_b['liefer_PLZ'] . " " . $row_b['liefer_Ort'],0, 2, "L" );if ( $row_b['liefer_Land'] )$pdf->cell( 145, 4, $row_b['liefer_Land'], 0, 2, "L" );}$pdf->ln( 10 );$pdf->SetFont( 'Arial', 'B', 14 );if ( !$Rechungsueberschrift ){$pdf->cell( 0, 4, $REName, 0, 1, "C" );}else{$fill = "cell( 0, 4, \'Angebot\' , 0, 1, \'L\' )";$pdf->$fill;}$pdf->ln( 5 );$pdf->SetFont( 'Arial', 'B', 9 );$sql = "SELECT * FROM artikel_to_Bestellung WHERE Bestellung=$b_id AND status!='storniert'";/*if ( $Status ){$sql .= " AND rechnungStatus = 'schreiben'";}*/$sql .= " ORDER BY Rang";$res = mysql_query_logged( $sql );$summe_n = array();$summe_b = array();$preis_n = 0;$g_preis = 0;$g_preis_n = 0;$pos = 1;$mwst_arr = array( 0 => 19, 1 => 7, null => 19 );//Zusatzkopfif ( $Infozeile == 'on' ){$pdf->Ln( 15 );$pdf->setFillColor( 204 );$pdf->cell( 30, 4, "Angebots Nr.", "LTR", 0, "C", 1 );$pdf->cell( 30, 4, "Kunden Nr.", "LTR", 0, "C", 1 );$pdf->cell( 70, 4, "Bearbeiter", "LTR", 0, "C", 1 );if ( LEISTUNGS_DATUM == true ){$pdf->cell( 34, 4, "Leistungsdatum", "LTR", 0, "C", 1 );}else{$pdf->cell( 34, 4, "Datum", "LTR", 0, "C", 1 );}$pdf->cell( 0, 4, "Seite", "LTR", 1, "C", 1 );$pdf->setFillColor( 255 );$pdf->cell( 30, 4, "AG $r_nr", "LBR", 0, "C", 1 );$pdf->cell( 30, 4, $row_l['ID'], "LBR", 0, "C", 1 );$pdf->cell( 70, 4, "$b_name", "LBR", 0, "C", 1 );if ( LEISTUNGS_DATUM == true ){$pdf->cell( 34, 4, $dat["Datum"], "LBR", 0, "C", 1 );}else{$pdf->cell( 34, 4, date('d.m.Y'), "LBR", 0, "C", 1 );}$pdf->cell( 0, 4, $pdf->PageNo(), "LBR", 1, "C", 1 );}$pdf->setFillColor( 204 );$pdf->cell( 10, 4, "$Pos_text", "LTR", 0, "C", 1 );$pdf->cell( 20, 4, "$Menge_text", "LTR", 0, "C", 1 );$pdf->cell( 20, 4, "$Kennung_text", "LTR", 0, "C", 1 );$pdf->cell( 100, 4, "$Text_text", "LTR", 0, "C", 1 );$pdf->cell( 20, 4, "$Einzelpreis_text", "LTR", 0, "C", 1 );$pdf->cell( 0, 4, "$Gesamtpreis_text", "LTR", 1, "C", 1 );$pdf->cell( 10, 4, "", "LBR", 0, "C", 1 );$pdf->cell( 20, 4, "", "LBR", 0, "C", 1 );$pdf->cell( 20, 4, "", "LBR", 0, "C", 1 );$pdf->cell( 100, 4, "", "LBR", 0, "C", 1 );$pdf->cell( 20, 4, "€", "LBR", 0, "C", 1 );$pdf->cell( 0, 4, "€", "LBR", 1, "C", 1 );$pdf->setFillColor( 255 );$pdf->SetFont( 'Arial', '', 9 );while ( $row = mysql_fetch_assoc($res) ){$menge = $row["Menge"];$e_preis = $row["Preis_pro_Stueck"];if ( $row["artikel"] != 999999 && $row["artikel"] != "0" ){$sql_a = "SELECT * from artikel WHERE ID=" . $row["artikel"];$res_a = mysql_query( $sql_a );$row_a = mysql_fetch_assoc( $res_a );$kennung = $row_a["kennung"];$mwst = ( $row["mwst"] != "0.00" ) ? $row["mwst"] : $mwst_arr[$row_a["tax1"]];$preis_n = $e_preis - ( $e_preis * $mwst / (100 + $mwst) );if ( $row_a["Father"] == -3 ){$versandname = $row["Bezeichnung"];$pos = "";$menge = "";$g_preis = $e_preis;$g_preis_n = $preis_n;}else{$g_preis = $e_preis * $menge;$g_preis_n = $preis_n * $menge;}}else{$mwst = 19;$preis_n = $e_preis - ( $e_preis * $mwst / (100 + $mwst) );$g_preis = $e_preis * $menge;$g_preis_n = $preis_n * $menge;$kennung = "";}$summe_b[$mwst] += $g_preis;$summe_n[$mwst] += $g_preis_n;$a_name = $row["Bezeichnung"];$h = $pdf->NbLines( 100, $a_name );$h = 5 * $h;//var_dump($h);$x = $pdf->GetX();$y = $pdf->GetY();$pdf->Multicell( 10, $h, $pos, 1, "C" );$pdf->SetXY( $x + 10, $y );$x = $pdf->GetX();$y = $pdf->GetY();$pdf->Multicell( 20, $h, (is_numeric($pos)) ? number_format($menge,2, ',', '.') : "", 1, "R" );$pdf->SetXY( $x + 20, $y );$x = $pdf->GetX();$y = $pdf->GetY();$pdf->Multicell( 20, $h, $kennung, 1, "C" );$pdf->SetXY( $x + 20, $y );$x = $pdf->GetX();$y = $pdf->GetY();$pdf->Multicell( 100, 5, $a_name, 1, "L" );$pdf->SetXY( $x + 100, $y );$x = $pdf->GetX();$y = $pdf->GetY();$pdf->Multicell( 20, $h, number_format($preis_n, 3, ',', '.'), 1,"R" );$pdf->SetXY( $x + 20, $y );$pdf->Multicell( 0, $h, number_format($g_preis_n, 2, ',', '.'),1, "R" );//$pdf->ln( 4 );/*if ( $Status ){$sql_s ="UPDATE artikel_to_Bestellung SET rechnungStatus='geschrieben' WHERE ID=" .$row["ID"];mysql_query_logged( $sql_s ) or die( mysql_errno() . ": " .mysql_error() );}*/$pos++;}$sql = "SELECTab.*FROMartikel_to_Bestellung ab,artikel aWHEREBestellung=$b_idANDab.status!='storniert'ANDa.ID=ab.artikelANDa.Father=-3";$res = mysql_query_logged( $sql ) or mail( "niewerth@weban.de","Fehler in createMailOrderText.php", mysql_errno() . ": " .mysql_error() . "<hr>$query<hr>","from: cms_Warenwirtschaft_rechung.php select artikel_to_Bestellung" );if ( mysql_num_rows($res) ){$row = mysql_fetch_assoc( $res );$menge = $row["Menge"];$e_preis = $row["Preis_pro_Stueck"];if ( $row["artikel"] != 999999 ){$sql_a = "SELECT * from artikel WHERE ID=" . $row["artikel"];$res_a = mysql_query( $sql_a ) or die( mysql_errno() . ": " .mysql_error() );if ( !$res_a ){echo mysql_error() . "<br>$sql_a";var_dump( $row );}$row_a = mysql_fetch_assoc( $res_a );$kennung = $row_a["kennung"];$mwst = ( $row["mwst"] != "0.00" ) ? $row["mwst"] : $mwst_arr[$row_a["tax1"]];$preis_n = $e_preis - ( $e_preis * $mwst / (100 + $mwst) );if ( $row_a["Father"] == -3 ){$versandname = $row["Bezeichnung"];$pos = "";$menge = "";$g_preis = $e_preis;$g_preis_n = $preis_n;}else{$g_preis = $e_preis * $menge;$g_preis_n = $preis_n * $menge;}}else{$mwst = 19;$preis_n = $e_preis - ( $e_preis * $mwst / (100 + $mwst) );$g_preis = $e_preis * $menge;$g_preis_n = $preis_n * $menge;$kennung = "";}$summe_b[$mwst] += $g_preis;$summe_n[$mwst] += $g_preis_n;$a_name = $row["Bezeichnung"];$pdf->cell( 10, 4, $pos, 1, 0, "C" );$pdf->cell( 20, 4, (is_numeric($pos)) ? number_format($menge, 2,',', '.') : "", 1, 0, "R" );$pdf->cell( 20, 4, $kennung, 1, 0, "C" );$pdf->cell( 100, 4, $a_name, 1, 0, "L", 0, "", 0, 0 );$pdf->cell( 20, 4, number_format($preis_n, 3, ',', '.'), 1, 0,"R" );$pdf->cell( 0, 4, number_format($g_preis_n, 2, ',', '.'), 1, 0,"R" );$pdf->ln( 4 );$pos++;}foreach ( $summe_n as $mwst => $betrag ){$summe_n["total"] += $betrag;}foreach ( $summe_b as $mwst => $betrag ){$summe_b["total"] += $betrag;}$pdf->cell( 170, 4, "Gesamt Netto", 1, 0, "L" );$pdf->cell( 0, 4, number_format($summe_n["total"], 2, ',', '.'), 1,1, "R" );foreach ( $summe_n as $mwst => $betrag ){if ( $mwst != "total" ){$pdf->cell( 50, 4, "zzgl. $mwst % MwSt. auf ", "LBT", 0, "L" );//$summe_n[$mwst]=$summe_b[$mwst]* $mwst / 100+$mwst;$pdf->cell( 120, 4, number_format($betrag, 2, ',', '.'),"BTR", 0, "R" );$pdf->cell( 0, 4, number_format($betrag * ($mwst / 100), 2,',', '.'), 1, 1, "R" );}}$pdf->setFont( 'Arial', 'B', 12 );$pdf->cell( 170, 8, "Gesamtbetrag", "LBR", 0, "L" );$pdf->cell( 0, 8, number_format($summe_b["total"], 2, ',', '.'),"LBR", 1, "R" );$pdf->cell( 0, 8, "", "T", 1 );$pdf->setFont( 'Arial', '', 9.5 );if ( $row_b["Bemerkung_extern"] ){// externe Bemerkung$pdf->multiCell( 35, 4, "", 0, 0, "L" );$pdf->setFont( 'Arial', 'B', 9.5 );$pdf->multiCell( 0, 4, $row_b["Bemerkung_extern"], 0, 1, "L" );$pdf->setFont( 'Arial', '', 9.5 );}if ( VERSAND_ANZEIGEN ){$pdf->multiCell( 0, 4, "\r\nZahlung: $versandname\n$zahlungs_hinweis",0, 1, "L" );}else{$pdf->multiCell( 0, 4, "\r\n$zahlungs_hinweis", 0, 1, "L" );}// START die Anzeige der ausgewählten Angebotsbausteineif ( ($web_rechte["Warenwirtschaft"]["bestellung"]["angebotsbausteine"]) and($_POST['action'] == "genPDF") ){//$pdf->multiCell( 0, 4, "Bemerkung:", 0, 1, "L" );//$pdf->setFont( 'Arial', '', 9.5 );foreach ( $_POST['baustein'] as $kk => $vv ){$pdf->multiCell( 0, 4, $vv, 0, 1, "L" );$pdf->setFont( 'Arial', '', 9.5 );}}// ENDE die Anzeige der ausgewählten Angebotsbausteineif ( $Speichern ){$pdf->Output( $webs['verzeichnis'] . "/images/dokumente/" . $fName,"F" );$sql = "INSERT INTOdokumente(table_foreign,row_foreign,data_foreign,document,letzte_Aenderung_am,letzte_Aenderung_von)VALUES('Bestellung','ID',$b_id,'$fName',NOW(),'" . $_SERVER["PHP_AUTH_USER"] . "')";mysql_query_logged( $sql ) or mail( "niewerth@weban.de","Fehler in createMailOrderText.php", mysql_errno() . ": " .mysql_error() . "<hr>$query<hr>","from: cms_Warenwirtschaft_rechung.php into documente" );}$pdf->Output();}?>