Subversion-Projekte lars-tiefland.content-management

Revision

Revision 1 | 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 
                ab.*,
                a.* 
            FROM 
                artikel_to_Bestellung ab, 
                artikel a,
                Bestellung b
            WHERE 
                ab.Bestellung=$ID
            AND 
                a.ID=ab.artikel
            AND
                a.ID=$a_id
            AND
                b.ID=ab.Bestellung
            AND
                a.Language=b.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 
                b.ID AS bestellungId, 
                ab.status,
                b.Login,
                ab.Bestellung,
                b.termin,
                date_format( b.erstellt_am, '%d.%m.%Y' ) AS bestellDatum,
                date_format( b.erstellt_am, '%T' ) AS bestellZeit, 
                sum( ab.Menge * ab.Preis_pro_Stueck ) AS Betrag
            FROM
                artikel_to_Bestellung ab
            LEFT JOIN
                Bestellung b
            ON
                b.ID = ab.Bestellung 
            WHERE
                b.ID=$ID
            GROUP BY
                b.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
                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 getAktionWebSettings( $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
        ";
        $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 = getAktionWebSettings( $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 = getAktionWebSettings( $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 = getAktionWebSettings( $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
                dokumente
            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;
    }
?>