Subversion-Projekte lars-tiefland.content-management

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?
    // $Id: auftrag.php 3456 2011-03-17 14:55:30Z tiefland $
    require_once "connect2.php";
    require_once "includes/bestellungen/system/mysql_query_logged.php";
    //    require_once  "Weban_Smarty.class.php";
    //    require_once  "includes/best_manu/best_manu_search.php";
    require_once "includes/auftrag/body_$site.inc.php";
    require_once "fpdf/fpdf.php";
    require_once "includes/bestellungen/system/artikelDatabase.php";

    class PDF extends FPDF
    {
        function generate_LN( $bestell_id, $art )
        {
            $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 header
        function Header()
        {
            global $site, $r_nr;
            require_once "includes/auftrag/header_$site.inc.php";
        }

        //Page footer
        function Footer()
        {
            global $site;
            require_once "includes/auftrag/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;
        }
    }
    $pdf = new PDF();
    if ( !isset( $liefer_id ) )
    {
        $liefer_id = "0";
    }
    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!" );
        }
    }
    if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["drucken"] ) )
    {
        $Status = false;
        $Nummernkreis = false;
        $Speichern = false;
        $Lieferadressenauswahl = false;
        $daten = explode( ";", $web_rechte["Warenwirtschaft"]["bestellung"]["drucken"] );
        $id = array_search( "Lieferadressenauswahl", $daten );
        if ( $id !== false )
        {
            $Lieferadressenauswahl = true;
        }
        $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,
                "A", $Nummernkreis ) );
            $r_nr = date( "y" ) . $r_nr;
            $fName = "A" . $r_nr . ".pdf";
        }
        else
        {
            $date = date( "Y-m-d" );
            $ln = $pdf->generate_LN( $b_id, "A", false );
            if ( !isset( $anz_stellen ) )
            {
                $anz_stellen = 5;
            }
            $r_nr = sprintf( "%0" . $anz_stellen . "d", $ln );
            $fName = "A_" . $b_id . "_" . $date . "_" . $r_nr . ".pdf";
        }
        $id = array_search( "Speichern", $daten );
        if ( $id !== false )
        {
            $Speichern = true;
        }
    }
    //Instanciation of inherited class

    $pdf->setSubject( "Auftrag" );
    $pdf->setAuthor( $haendler_name );
    $pdf->setCreator( "fpdf PHP Library" );
    $pdf->AliasNbPages();
    $pdf->AddPage();
    $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, "@" ) );
    $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"] : "";
    $telefon = $row_l["Telefon"];
    $pdf->SetFont( 'Arial', 'B', 14 );
    $pdf->Ln( 4 );
    $pdf->cell( 100, 8, "Kundendaten", 1, 1, "C" );
    $pdf->SetFont( 'Arial', 'B', 9 );
    $pdf->cell( 20, 8, "Firma", 1, 0, "L" );
    $pdf->SetFont( 'Arial', '', 9 );
    $pdf->cell( 80, 8, $firma, 1, 1, "L" );
    $pdf->SetFont( 'Arial', 'B', 9 );
    $pdf->cell( 20, 8, "Name", 1, 0, "L" );
    $pdf->SetFont( 'Arial', '', 9 );
    $pdf->cell( 80, 8, $anrede . " " . $name, 1, 1, "L" );
    $pdf->SetFont( 'Arial', 'B', 9 );
    $pdf->cell( 20, 8, "Straße", 1, 0, "L" );
    $pdf->SetFont( 'Arial', '', 9 );
    $pdf->cell( 80, 8, $str, 1, 1, "L" );
    $pdf->SetFont( 'Arial', 'B', 9 );
    $pdf->cell( 20, 8, "PLZ", 1, 0, "L" );
    $pdf->SetFont( 'Arial', '', 9 );
    $pdf->cell( 80, 8, $plz, 1, 1, "L" );
    $pdf->SetFont( 'Arial', 'B', 9 );
    $pdf->cell( 20, 8, "Ort", 1, 0, "L" );
    $pdf->SetFont( 'Arial', '', 9 );
    $pdf->cell( 80, 8, $ort, 1, 1, "L" );
    $pdf->SetFont( 'Arial', 'B', 9 );
    $pdf->cell( 20, 8, "Telefon", 1, 0, "L" );
    $pdf->SetFont( 'Arial', '', 9 );
    $pdf->cell( 80, 8, $telefon, 1, 1, "L" );
    $pdf->ln( 10 );
    $pdf->SetFont( 'Arial', 'B', 14 );
    $info = unserialize( $row_b["zusatzInfo"] );
    switch ( $info["typ"] )
    {
        case "reklamation":
            $REName .= " (Reklamation)";
            break;
        case "reparatur":
            $REName .= " (Reparatur)";
            break;
        case "kva":
            $REName .= " (Reparatur mit Kostenvoranschlag)";
            break;
        default:
            break;
    }
    $pdf->cell( 0, 4, $REName, 0, 1, "C" );
    $pdf->ln( 5 );
    $pdf->SetFont( 'Arial', 'B', 9 );
    $sql = "SELECT * FROM artikel_to_Bestellung WHERE Bestellung=$b_id AND status!='storniert'";
    $sql .= " ORDER BY Rang";
    $res = mysql_query_logged( $sql );
    $summe_n = 0;
    $summe_b = 0;
    $preis_n = 0;
    $g_preis = 0;
    $g_preis_n = 0;
    $pos = 1;
    //Zusatzkopf
    if ( $Infozeile == 'on' )
    {
        $pdf->setFillColor( 204 );
        $pdf->cell( 30, 4, "Auftrag Nr.", "LTR", 0, "C", 1 );
        $pdf->cell( 30, 4, "Kunden Nr.", "LTR", 0, "C", 1 );
        $pdf->cell( 70, 4, "Bearbeiter", "LTR", 0, "C", 1 );
        $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, "$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 );
        $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"];
        $preis_n = $e_preis - ( $e_preis * 19 / 119 );
        if ( $row["artikel"] != 999999 )
        {
            $sql_a = "SELECT 
                    * 
                FROM 
                    " . artikelDatabase( $row_b["shops_ID"] ) . " 
                WHERE 
                    ID=" . $row["artikel"] . "
            ";
            $res_a = mysql_query( $sql_a );
            $row_a = mysql_fetch_assoc( $res_a );
            $kennung = $row_a["kennung"];
            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
        {
            $g_preis = $e_preis * $menge;
            $g_preis_n = $preis_n * $menge;
            $kennung = "";
        }
        $summe_b += $g_preis;
        $summe_n += $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" );
        $pos++;
    }
    $pdf->cell( 170, 4, "Gesamt Netto", 1, 0, "L" );
    $pdf->cell( 0, 4, number_format( $summe_n, 2, ',', '.' ), 1, 1, "R" );
    $pdf->cell( 50, 4, "zzgl. 19,00 % MwSt. auf ", "LBT", 0, "L" );
    $pdf->cell( 120, 4, number_format( $summe_n, 2, ',', '.' ), "BTR", 0,
        "R" );
    $pdf->cell( 0, 4, number_format( $summe_n * 0.19, 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, 2, ',', '.' ), "LBR", 1, "R" );
    $pdf->cell( 0, 8, "", "T", 1 );
    $pdf->setFont( 'Arial', '', 9.5 );
    switch ( $info["back"] )
    {
        case "return":
            $pdf->cell( 0, 8, "ausgetauschte Teile werden zurückgeschickt",
                "", 1, "L" );
            break;
        case "noreturn":
            $pdf->cell( 0, 8, "ausgetauschte Teile verbleiben bei $haendler_name",
                "", 1, "L" );
            break;
        default:
            break;
    }
    if ( $row_b["Bemerkung_extern"] )
    {
        // externe Bemerkung
        $pdf->multiCell( 35, 4, "externe Bemerkung: ", 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" );
    }
    $pdf->ln( 15 );
    $pdf->cell( 100 );
    $pdf->cell( 80, 8, "Unterschrift Kunde", "T", 1, "L" );
    $date = date( "Y-m-d" );
    $ln = $pdf->generate_LN( $b_id, "A", false );
    if ( !isset( $anz_stellen ) )
    {
        $anz_stellen = 5;
    }
    $r_nr = sprintf( "%0" . $anz_stellen . "d", $ln );
    $fName = "A_" . $b_id . "_" . $date . "_" . $r_nr . ".pdf";

    $pdf->Output( $webs['verzeichnis'] . "/images/dokumente/" . $fName, "F" );
    $sql = "
                INSERT INTO 
                    dokumente 
                (
                    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 );
    $pdf->Output();
?>