Subversion-Projekte lars-tiefland.content-management

Revision

Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

<?php
    require_once  "fpdf/fpdf.php";
    class PDF extends FPDF
    {
        //Page header
        function Header()
        {
        }

        //Page footer
        function Footer()
        {
        }
    }

    error_reporting( E_ALL & ~ ( E_NOTICE ) );

    define( "Range", 100 );
    define( "modul_name", "Warenwirtschaft" );
    define( "tool_name", "bestellung" );
    define( "VAR_EXTR_PREFIX", "schnell" );

    require_once  "../../Online-Shop/connect2.php";

    $time = microtime_float();

    require_once  "../includes/bestellungen/system/getBestellungLieferscheinStatus.php";
    require_once  "../includes/bestellungen/system/getBestellungRechnungStatus.php";
    require_once  "../includes/bestellungen/system/getBestellungStatus.php";
    require_once  "../includes/bestellungen/system/getBestellungSumme.php";
    require_once  "../includes/bestellungen/system/mysql_query_logged.php";
    require_once  "../includes/bestellungen/system/artikelDatabase.php";
    require_once  "../includes/bestellungen/system/bestellung_puffern.php";
    require_once  "../includes/bestellungen/system/getVersandItems.php";
    require_once  "../includes/best_manu/system/getShops.php";
    require_once  "../includes/bestellungen/createOrderText.php"; // Ma
    /*
    require_once "includes/bestellungen/system/bestellart.php";         // Ma
    require_once "includes/bestellungen/system/functions.inc.php"; // Ma
    */
    require_once  "../includes/bestellungen/system/getBestellarten.php"; // Ma
    $ausgabeFelder = array( 0 => "bestellung", "artikel", "schnelleditor" );
    $bestellartFelder = array( 1 => "Online-Shop", "Reservierung" );

    $Heute = date( "d.m.Y" );
    $jetzt = date( "H:i" );


    function getArtikel( $ID, $a_id )
    {
        if ( !$ID )
            return false;

        $buffer = array();

        $sql = "
    SELECT 
        artikel_to_Bestellung.*, artikel.* 
    FROM 
        artikel_to_Bestellung, 
        artikel,
        Bestellung
    WHERE 
        artikel_to_Bestellung.Bestellung=$ID
    AND 
        artikel.ID=artikel_to_Bestellung.artikel
    AND
        artikel.ID=$a_id
    AND
        Bestellung.ID=artikel_to_Bestellung.Bestellung
    AND
        artikel.Language=Bestellung.Language 
    ";

        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() . "<hr>$query<hr>" );
        while ( $zeile = mysql_fetch_assoc( $result ) )
        {
            $zeile['ArtikelID'] = $zeile['ID'];
            unset( $zeile['ID'] );
            $buffer = $zeile;
        }
        return $buffer;
    }

    function getBestellDaten( $ID )
    {
        global $daten;

        if ( !$ID )
        {
            return false;
        }

        $buffer = array();

        $sql = "SELECT 
    Bestellung.ID AS bestellungId, 
    artikel_to_Bestellung.status,
    Bestellung.Login,
    artikel_to_Bestellung.Bestellung,
    Bestellung.termin,
    date_format( Bestellung.erstellt_am, '%d.%m.%Y' ) AS bestellDatum,
    date_format( Bestellung.erstellt_am, '%T' ) AS bestellZeit, 
    sum( artikel_to_Bestellung.Menge * artikel_to_Bestellung.Preis_pro_Stueck ) AS Betrag
    FROM artikel_to_Bestellung
    LEFT JOIN Bestellung ON ( Bestellung.ID = artikel_to_Bestellung.Bestellung ) 
    WHERE Bestellung.ID=$ID GROUP BY Bestellung.ID
    ";

        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() . "<hr>$sql<hr>" );
        while ( $zeile = mysql_fetch_assoc( $result ) )
        {
            $buffer['Kundendaten'] = !( $buffer['Kundendaten'] ) ?
                getKundenDaten( $zeile['Login'] ) : $buffer['Kundendaten'];
            $buffer['Artikel'] = !( $buffer['Artikel'] ) ? getArtikel( $zeile['Bestellung'],
                $daten[2] ) : $buffer['Artikel'];
            $buffer['Bestellung'] = $zeile;
        }

        return $buffer;
    }

    function getKundenDaten( $ID )
    {

        if ( !$ID )
        {
            return false;
        }

        $buffer = array();

        $sql = "SELECT * FROM Logins WHERE Logins.ID=$ID";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() . "<hr>$query<hr>" );
        $zeile = mysql_fetch_assoc( $result );
        $zeile['Login'] = $zeile['ID'];
        unset( $zeile['ID'] );
        return $zeile;
    }

    function getWebSettings( $shop_ID, $best_art )
    {
        global $Bestellung;

        $Userdata = $Bestellung["Kundendaten"];

        //var_dump($Userdata);

        $artikel = $Bestellung["Artikel"];
        $Datum = $Bestellung["Bestellung"]["bestellDatum"];
        $Zeit = date( "H:i", strtotime( $Bestellung["Bestellung"]["bestellZeit"] ) );

        /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
        /* ++  Ma.Nie 10.04.2008                                                 Websettings  lesen  ++ */
        /* ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
        $query = "select * from web_settings where shops_ID=$shop_ID AND bestellart_id=$best_art order by Rang";
        //$query = "select * from web_settings where shops_ID=$shop_ID AND bestellart_id=2 order by Rang";
        $result = mysql_query( $query ) or die( mysql_errno() . ": " .
            mysql_error() . "<hr>$query<hr>" );
        while ( $zeile = mysql_fetch_assoc( $result ) )
        {
            $wsID = $zeile[ID];
            $wsInhalt = $zeile["Inhalt"];
            @eval( "\$web_settings[$wsID]=\"$wsInhalt\";" );
        }
        return $web_settings;

    }

    $Felddaten = explode( ";", $_GET["Felddaten"] );
    if ( $_POST["mode"] )
    {
        foreach ( $_POST["daten"] as $daten )
        {
            $bestelldaten = unserialize( stripslashes( $daten["bestell_daten"] ) );
            $daten["bestell_id"] = $bestelldaten["bestellungId"];
            $res = sendMail( $daten );
            if ( $res["code"] )
            {
                //                echo "E-Mail erfolgreich verschickt!<br>";
                if ( $_POST["mode"] == "send" )
                {
                    $art = "B";
                }
                else
                {
                    $art = "V";
                }
                $ln = sprintf( "%05d", getPDFLN( $daten["bestell_id"], $daten["artikel_id"],
                    $art ) );
                $res = generate_pdf( $daten["bestell_id"], $daten["artikel_id"],
                    $res["body"], $art, $ln );
                if ( $res )
                {
                    $res = setStatus( $daten["bestell_id"], $daten["artikel_id"],
                        $daten["status"] );
                    if ( $res )
                    {
                        //echo "Artikel erfolgreich reserviert!<br>";
                    }
                }
            }
            else
            {
                echo
                    "Leider ist ein Fehler beim Verschicken der E-Mail aufgetreten! Bitte versuchen Sie es später noch einmal!<br>";
            }
        }
    }
    else
    {
        $i = 0;
        $c = count( $_POST["schnellAktion"] );
        $f_daten = explode( ";", $_GET["Felddaten"] );
        $mode_str = $f_daten[count( $f_daten ) - 1];
        if ( in_array( $mode_str, array( "mode=drucken",
            "mode=schnittmarke-drucken" ) ) )
        {
            foreach ( $_POST as $key => $value )
            {
                foreach ( $value as $key2 => $value2 )
                {
                    $daten = explode( ",", $value2 );

                    $Bestellung = getBestellDaten( $daten[3] );

                    $web_settings = getWebSettings( $daten[0], $daten[1] );

                    $daten["kunden_daten"] = serialize( $Bestellung["Kundendaten"] );
                    $daten["bestell_daten"] = serialize( $Bestellung["Bestellung"] );

                    if ( $i == $c - 1 )
                    {
                        $mode_str = "mode=drucken";
                    }
                    drucken( $daten, $mode_str );
                    $i++;
                }
            }
        } elseif ( $f_daten[count( $f_daten ) - 1] == "mode=verzoegerung" )
        {
            foreach ( $_POST as $key => $value )
            {
                foreach ( $value as $key2 => $value2 )
                {
                    $daten = explode( ",", $value2 );

                    $Bestellung = getBestellDaten( $daten[3] );

                    $web_settings = getWebSettings( $daten[0], $daten[1] );

                    if ( $i == 0 )
                    { ?>
        <form action="" method="post">
            <input type="hidden" name="from" value="<?= $web_settings[11]; ?>">
            <table>
<?php
                    }
                    prepareVerzMail( $web_settings, $Bestellung["Kundendaten"] );
                    //sendMail( $web_settings, $Bestellung["Kundendaten"]["E_Mail"] );
                    if ( $i == $c - 1 )
                    { ?>
                <tr>
                    <td colspan="2">
                        <input type="submit" value="senden und drucken">
                        <input type="hidden" name="mode" value="send_v">
                    </td>
                </tr>
            </table>
        </form>
<?php
                    }
                    $i++;
                }
            }
        }
        else
        {
            foreach ( $_POST as $key => $value )
            {
                foreach ( $value as $key2 => $value2 )
                {
                    $daten = explode( ",", $value2 );

                    $Bestellung = getBestellDaten( $daten[3] );

                    $web_settings = getWebSettings( $daten[0], $daten[1] );

                    if ( $i == 0 )
                    { ?>
        <form action="" method="post">
            <input type="hidden" name="from" value="<?= $web_settings[11]; ?>">
            <table>
<?php
                    }
                    prepareMail( $web_settings, $Bestellung["Kundendaten"] );
                    //sendMail( $web_settings, $Bestellung["Kundendaten"]["E_Mail"] );
                    if ( $i == $c - 1 )
                    { ?>
                <tr>
                    <td colspan="2">
                        <input type="submit" value="senden und drucken">
                        <input type="hidden" name="mode" value="send">
                    </td>
                </tr>
            </table>
        </form>
<?php
                    }
                    $i++;
                    //header( "Location: ../bestellungen.php" );
                }
            }
        }
    }

    function sendMail( $daten )
    {
        //var_dump( $daten );
        $mailSubject = $daten["mailSubject"];
        $mailText = str_replace( "<#Abholdatum#>", $daten["datum"], $daten["mailText"] );
        $email = $daten["email"];

        $body = $mailText . "\r\n\r\n";

        $res = mail( "$email", $mailSubject, $body, "From:$_POST[from]", "-f$_POST[from]" );

        $erg["body"] .= $body;
        $erg["code"] = $res;

        return $erg;
    }

    function generate_pdf( $bestell_id, $artikel_id, $body, $art = "B", $ln =
        1 )
    {
        global $webs;

        //Instanciation of inherited class
        $pdf = new PDF();
        global $site;
        require_once  "../includes/reservierungen/body_$site.inc.php";
        $pdf->setSubject( "E-Mail über Reservierung" );
        $pdf->setAuthor( $haendler_name );
        $pdf->setCreator( "fpdf PHP Library" );
        $pdf->AliasNbPages();
        $pdf->AddPage();
        $pdf->setY( 45 );
        $pdf->setFont( 'Arial', '', 10 );
        $pdf->multicell( 190, 4, "$body", "B", "L", 0 );
        $f_name = $bestell_id . "_" . $artikel_id . "_" . $art . $ln .
            ".pdf";
        $pdf->Output( $webs['verzeichnis'] . "/images/dokumente/$f_name" );
        $sql =
            "REPLACE INTO dokumente (table_foreign, row_foreign, data_foreign, document, letzte_Aenderung_am, letzte_Aenderung_von)VALUES('Bestellung', 'ID', $bestell_id, '$f_name', NOW(), '" .
            $_SERVER["PHP_AUTH_USER"] . "')";
        $res = mysql_query( $sql );
        if ( !$res )
        {
            mail( "tiefland@weban.de",
                "Fehler beim hinzufügen der PDF-Datei zur Bestellung!",
                mysql_error() . "\n$sql", "From: redaktion@$site" );
        }
        return true;
    }

    function drucken( $daten, $mode_str )
    {
        global $Bestellung;
        $kundendaten = unserialize( stripslashes( $daten["kunden_daten"] ) );
        $bestelldaten = unserialize( stripslashes( $daten["bestell_daten"] ) ); ?>
        <table>
            <tr>
                <td style="font-weight:bold;font-size:120%;">Bestelldatum:</td>
                <td style="font-weight:bold;font-size:120%;">
                    <?= $bestelldaten["bestellDatum"] . " " . $bestelldaten["bestellZeit"]; ?>
                </td>
            </tr>
            <tr>
                <td>Artikel:</td>
                <td><?= $Bestellung["Artikel"]["kurzbezeichnung"]; ?></td>
            </tr>
            <tr>
                <td>Kundenname:</td>
                <td><?= $Bestellung["Kundendaten"]["Vorname"] . " " . $Bestellung["Kundendaten"]["Name1"]; ?></td>
            </tr>
            <tr>
                <td>Telefon:</td>
                <td><?= $Bestellung["Kundendaten"]["Telefon"]; ?></td>
            </tr>
            <tr>
                <td>E-Mail:</td>
                <td><?= $Bestellung["Kundendaten"]["E_Mail"]; ?></td>
            </tr>
            <tr>
                <td>Preis:</td>
                <td><?= $Bestellung["Artikel"]["Preis_pro_Stueck"]; ?></td>
            </tr>
            <tr>
                <td>Menge:</td>
                <td><?= $Bestellung["Artikel"]["Menge"]; ?></td>
            </tr>
            <tr>
                <td>Bestellnummer:</td>
                <td><?= $bestelldaten["bestellungId"]; ?></td>
            </tr>
            <tr>
                <td>Reserviert f&uuml;r:</td>
                <td><?= $bestelldaten["termin"]; ?> Tage</td>
            </tr>
        </table>
<?php
        if ( $mode_str == "mode=schnittmarke-drucken" )
        { ?>
        <hr style="page-break-after:always">
<?php
        } elseif ( $mode_str == "mode=drucken" )
        { ?>
        <hr>
<?php
        }
        //echo $bestell_id, $artikel_id;
        return true;
    }

    function setStatus( $bestell_id, $artikel_id, $statusText = "erledigt" )
    {
        $sql = "UPDATE artikel_to_Bestellung SET status='$statusText' WHERE Bestellung=$bestell_id AND artikel=$artikel_id";
        $res = mysql_query( $sql );
        if ( !$res )
        {
            mail( "tiefland@weban.de",
                "Status konnte nicht geändert werden!", mysql_error(),
                "FROM: redaktion@$site" );
        }
        return $res;
    }

    function prepareMail( $settings, $kundendaten )
    {
        global $Bestellung;
        $bestelldaten = serialize( $Bestellung["Bestellung"] );
        $email = $kundendaten["E_Mail"];
        $kundendaten["Name"] = $kundendaten["Vorname"] . " " . $kundendaten["Name1"];
        $artikel_name = $Bestellung["Artikel"]["kurzbezeichnung"];
        $bestell_id = $Bestellung["Bestellung"]["bestellungId"];
        $artikel_id = $Bestellung["Artikel"]["artikel"];
        $artikel_preis = $Bestellung["Artikel"]["Preis_pro_Stueck"];
        $artikel_menge = $Bestellung["Artikel"]["Menge"];
        static $ind = 0;
        $mailSubject = $settings[12];
        $mailText = $settings[13];
        $mailUserData = $settings[14];
        $mailEnd = $settings[15];
        $kundendaten = serialize( $kundendaten );
        $mailText .= "\n" . $mailUserData . "\n" . $mailEnd; ?>
                <tr>
                    <td>Kunden-Email:</td>
                    <td>
                        <input type="text" name="daten[<?= $ind; ?>][email]" value="<?= $email; ?>" size="65">
                    </td>
                </tr>
                <tr>
                    <td>Betreff:</td>
                    <td>
                        <input type="text" name="daten[<?= $ind; ?>][mailSubject]" value="<?= $mailSubject; ?>" size="65">
                    </td>
                </tr>
                <tr>
                    <td>Text:</td>
                    <td>
                        <textarea cols="50" rows="20" name="daten[<?= $ind; ?>][mailText]"><?= $mailText; ?></textarea>
                    </td>
                </tr>
                <tr>
                    <td>Status:</td>
                    <td>
                        <?= getStati( $ind ); ?>
                    </td>
                </tr>
                <tr>
                    <td>Abholdatum:</td>
                    <td><input type="text" name="daten[<?= $ind; ?>][datum]" value="<?= date( "d.m.Y",
        strtotime( "5 days" ) ); ?>"></td>
                </tr>
                <tr>
                    <td colspan="2"><hr></td>
                </tr>
                <tr>
                    <td>
                        <input type="hidden" name="daten[<?= $ind; ?>][bestell_daten]" value='<?= $bestelldaten; ?>'>
                        <input type="hidden" name="daten[<?= $ind; ?>][artikel_id]" value="<?= $artikel_id; ?>">
                        <input type="hidden" name="daten[<?= $ind; ?>][artikel_name]" value="<?= $artikel_name; ?>">
                        <input type="hidden" name="daten[<?= $ind; ?>][kunden_daten]" value='<?= $kundendaten; ?>'>
                        <input type="hidden" name="daten[<?= $ind; ?>][artikel_preis]" value="<?= $artikel_preis; ?>">
                        <input type="hidden" name="daten[<?= $ind; ?>][artikel_menge]" value="<?= $artikel_menge; ?>">
                    </td>
                </tr>
<?php
        $ind++;
    }

    function getStati( $ind )
    {
        $cmd_buttons = array( 'offen', 'in Bearbeitung', 'reserviert',
            'erledigt', 'abgeschlossen' ); ?>
        <select name="daten[<?= $ind; ?>][status]">
<?php
        foreach ( $cmd_buttons as $id => $status )
        {
            $selected = '';
            if ( $id == 1 )
            {
                $selected = 'selected="selected"';
            } ?>
            <option value="<?= $status; ?>" <?= $selected; ?>><?= $status; ?></option>
<?php
        } ?>
        </select>
<?php
    }

    function prepareVerzMail( $settings, $kundendaten )
    {
        global $Bestellung;
        $bestelldaten = serialize( $Bestellung["Bestellung"] );
        $email = $kundendaten["E_Mail"];
        $kundendaten["Name"] = $kundendaten["Vorname"] . " " . $kundendaten["Name1"];
        $artikel_name = $Bestellung["Artikel"]["kurzbezeichnung"];
        $bestell_id = $Bestellung["Bestellung"]["bestellungId"];
        $artikel_id = $Bestellung["Artikel"]["artikel"];
        $artikel_preis = $Bestellung["Artikel"]["Preis_pro_Stueck"];
        $artikel_menge = $Bestellung["Artikel"]["Menge"];
        static $ind = 0;
        $mailSubject = $settings[64];
        $mailText = $settings[65];
        $kundendaten = serialize( $kundendaten ); ?>
                <tr>
                    <td>Kunden-Email:</td>
                    <td>
                        <input type="text" name="daten[<?= $ind; ?>][email]" value="<?= $email; ?>" size="65">
                    </td>
                </tr>
                <tr>
                    <td>Betreff:</td>
                    <td>
                        <input type="text" name="daten[<?= $ind; ?>][mailSubject]" value="<?= $mailSubject; ?>" size="65">
                    </td>
                </tr>
                <tr>
                    <td>Text:</td>
                    <td>
                        <textarea cols="50" rows="20" name="daten[<?= $ind; ?>][mailText]"><?= $mailText; ?></textarea>
                    </td>
                </tr>
                <tr>
                    <td>Status:</td>
                    <td>
                        <?= getStati( $ind ); ?>
                    </td>
                </tr>
                <tr>
                    <td colspan="2"><hr></td>
                </tr>
                <tr>
                    <td>
                        <input type="hidden" name="daten[<?= $ind; ?>][bestell_daten]" value='<?= $bestelldaten; ?>'>
                        <input type="hidden" name="daten[<?= $ind; ?>][artikel_id]" value="<?= $artikel_id; ?>">
                        <input type="hidden" name="daten[<?= $ind; ?>][artikel_name]" value="<?= $artikel_name; ?>">
                        <input type="hidden" name="daten[<?= $ind; ?>][kunden_daten]" value='<?= $kundendaten; ?>'>
                        <input type="hidden" name="daten[<?= $ind; ?>][artikel_preis]" value="<?= $artikel_preis; ?>">
                        <input type="hidden" name="daten[<?= $ind; ?>][artikel_menge]" value="<?= $artikel_menge; ?>">
                    </td>
                </tr>
<?php
        $ind++;
    }

    function getPDFLN( $bestell_id, $artikel_id, $art )
    {
        $f_name = $bestell_id . "_" . $artikel_id . "_" . $art;
        $sql = "SELECT MAX(dokument) AS dokument FROM WHERE dokument 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 = substr( $dokument[count( $dokument ) - 1], 1 );
                $ln++;
            }
            else
            {
                $ln = 1;
            }
        }
        else
        {
            $ln = 1;
        }
        return $ln;
    } ?>