Subversion-Projekte lars-tiefland.php_share

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php
    /**
     * @since  29/03/2007
     * @author <markus@niewerth.com>
     */

    knock( __line__ );

    /* ############################# */
    /* Abbrechen wenn Warenkorb leer */
    /* ############################# */
    // Titeltemplate auslesen

    /*
    $template = file_get_contents("templates/buyContent/1/1.htm");
    if ($_SESSION['SHOP'][BASKET] == array())
    {
    $msg[title]=$_SESSION[INI][basket][emptyMsg];
    echo templateContent($msg, $template);
    return ;
    }
    else
    {
    include($_SESSION[INI][buy][templatePath]."stepView.php");
    }
    */


    /* ##################################### */
    /* zus�tzliche ServiceRoutinen einbinden */
    /* ##################################### */
    ;
    foreach ( call_user_method("listFiles" . substr(PHP_OS, 0, 3), $GLOBALS['Weban_Shop']->
        Functions, $_SESSION['INI']['buyPath'], "php") as $file )
    {
        require_once ( $file );
    }

    /* ################# */
    /* Schrittverwaltung */
    /* ################# */
    $_SESSION['SHOP']['buy']['step'] = 1;
    if ( $_REQUEST['step'] )
    {
        $_SESSION['SHOP']['buy']['step'] = $_REQUEST['step'];
    }

    /* ############## */
    /* NewsletterFlag */
    /* ############## */
    if ( $_POST['newsletter'] )
    {
        $_SESSION['SHOP']['newsletter'] = $_POST['newsletter'];
    }

    /* ################## */
    /* LieferadressenFlag */
    /* ################## */
    if ( $_POST['Lieferadresse'] )
    {
        $_SESSION['SHOP']['Lieferadresse'] = $_POST['Lieferadresse'];
    }

    if ( $_POST['action'] )
    {
        // eventuelle Mindestangaben abfragen
        $req_error = false;
        if ( $_POST['req'] )
        {
            foreach ( array_keys($_POST['req']) as $elem )
            {
                // M�llfilter
                switch ( $_POST['req'][$elem] )
                {
                    case "lieferadresse":
                        if ( $_SESSION['SHOP']['Lieferadresse'] == "true" )
                        {
                            if ( !$_POST[$elem] )
                            {
                                $req_error = true;
                            }
                        }
                        break;
                    case "mail":
                        if ( preg_match("/\@/", $_POST[$elem]) == 0 )
                        {
                            $req_error = true;
                        }
                        break;
                    default:
                        if ( !$_POST[$elem] )
                        {
                            $req_error = true;
                        }
                        break;
                }
            }
        }
    }

    function knock( $text )
    {
        global $time_start;
        //echo "<li>".$text."|&nbsp;&nbsp;&nbsp;".(microtime_float() - $time_start)."</li>";
        $time_start = microtime_float();
    }

    if ( $req_error == true )
    {
        $_SESSION['SHOP']['buy']['step']--;
    }

    $_SESSION['SHOP']['buy']['Persdata']['AGB'] = $_POST['AGB'];

    // Eingaben verarbeiten
    switch ( $_POST['action'] )
    {
        case "Versand":
            postAction_Versand();
            break;
        case "Persdata":
            // Daten übertragen
            $_SESSION['SHOP']['buy']['Persdata'] = $_POST;
            unset( $_SESSION['SHOP']['buy']['Persdata']['req'] );

            shopLog( "BestSeite1", $_SESSION['shopLog']['referrer'],
                numberFormat(getBasketSumme(true)), '0', false, true );

            break;
        case "execute":
            if ( $req_error == false )
            {
                knock( __line__ );

                // User in Login erstellen
                $Userdata = createUser( $_SESSION['SHOP']['buy']['Persdata'],
                    $_SESSION['INI']['createLogin'] );

                $Userdata['Land'] = ( $Userdata['Land'] > 0 && $Userdata['Land'] <
                    1024 ) ? getCountryById( $Userdata['Land'] ) : $Userdata['Land'];

                $Userdata['Anrede'] = $_SESSION['INI']['Anrede'][$Userdata['Anrede']];

                knock( __line__ );

                // Lieferadresse aus der Session erstellen
                $Lieferadresse = getLieferadresse();

                knock( __line__ );

                // User in Newsletter eintragen
                if ( isset($_POST["newsletter"]) && $_SESSION['INI']['newsletter']['aktiv'] ==
                    1 )
                {
                    knock( __line__ );
                    subscribeToNewsletter( $Userdata['ID'], $_SESSION["INI"]['newsletter']['verteiler'] );
                    knock( __line__ );
                }

                // Bestellung erstellen
                //                if ( $Userdata['ID'] )

                {
                    $bestellId = createOrder( $Userdata['ID'] );
                }

                knock( __line__ );

                // Bemerkung bereitstellen
                $Bemerkung = getBemerkung( false );
                knock( __line__ );

                $Bemerkung1 = getBemerkung( true );
                knock( __line__ );

                // Artikel der Bestellung zuordnen
                $GLOBALS["bestellId"] = $bestellId;
                insert_into_artikel_to_Bestellung( $bestellId );

                knock( __line__ );

                // Bestellmailvariablen bereitstellen
                include ( $_SESSION['INI']['buyPath'] .
                    "bestellen_mail_variablen.php" );

                knock( __line__ );


                // Text f�r die Mail erstellen
                //$text=createMailOrderText();
                $text = $GLOBALS['Weban_Shop']->createMailOrderText();

                knock( __line__ );

                $Userdata['E_Mail'] = empty( $Userdata['E_Mail'] ) ? $Userdata['email'] :
                    $Userdata['E_Mail'];


                // Bestellmail verschicken
                mail( $Userdata['E_Mail'], $Bestaetigungsmail['Betreff'], $Bestaetigungsmail['start'] .
                    $text . "\n\n" . $Bestaetigungsmail['Kundendaten'] . "\n\n" .
                    $Bestaetigungsmail['stop'], "FROM: " . $shopaddr );

                knock( __line__ );

                // Bestaetigungsmail verschicken
                mail( $shopaddr, $Bestellmail['Betreff'], $Bestellmail['start'] .
                    $text . "\n\n" . $Bestellmail['Kundendaten'] . "\n\n" .
                    $Bestellmail['stop'], "FROM: $Userdata[E_Mail]" );

                knock( __line__ );

                // Bestellung Loggen
                shopLog( "Bestellung", $_SESSION['shopLog']['start_url'],
                    getBasketSumme(), $bestellId, SID, false );

                knock( __line__ );

                // Warenkorb l�schen
                $query = "
                    SELECT 
                        * 
                    FROM 
                        artikel_to_Bestellung ab, 
                        artikel a 
                    WHERE 
                        Bestellung=" . $GLOBALS["bestellId"] . " 
                    AND 
                        a.ID=ab.artikel 
                    AND 
                        a.Father=-3
                ";
                $res = mysql_query( $query );

                $row = mysql_fetch_assoc( $res );
                $name = $row["short_line_1"];
                if ( $_SESSION['INI']['delBaskAfterSubm'] == 1 && !in_array
                    ($name, array("paypal")) )
                {
                    $_SESSION['SHOP']['BASKET'] = array();
                }
                knock( __line__ );
            }
            else
            {
                if ( $_POST['Newsletter'] )
                {
                    $_SESSION['SHOP']['buy']['Newsletter'] = $_POST['Newsletter'];
                }
                else
                {
                    unset( $_SESSION['SHOP']['buy']['Newsletter'] );
                }
            }
            break;
    }

    knock( __line__ );

    if ( $_GET["Bestellung"] )
    {
        $query = "SELECT Bemerkung FROM Bestellung WHERE id=" . $_GET["Bestellung"];
        $res = mysql_query( $query );
        $row = mysql_fetch_assoc( $res );
        $bemerkung = $row["Bemerkung"];

        switch ( $_GET["action"] )
        {
            case "cancel":
                switch ( $_GET["mode"] )
                {
                    case "creditcard":
                    case "paypal":
                        $bemerkung .= "Die Zahlung wurde vom Kunden am " .
                            date( "d.m.Y" ) . " um " . date( "H:i" ) .
                            " Uhr abgebrochen!\n";
                        $query = "UPDATE Bestellung SET Bemerkung='$bemerkung' WHERE id=$Bestellung";
                        $res = mysql_query( $query );
                        $msg =
                            "Leider haben Sie die Zahlung abgebrochen. Daher werden wir Ihre Bestellung nun stornieren.";
                        break;
                }
                break;
            case "accept":
                switch ( $_GET["mode"] )
                {
                    case "creditcard":
                        $bemerkung .=
                            "Die Zahlung wurde von der Kreditkartenorganisation am " .
                            date( "d.m.Y" ) . " um " . date( "H:i" ) .
                            " Uhr genehmigt!\n";
                        $kk_info["code"] = "";
                        $kk_info["status"] = "offen";
                        $kk_info = serialize( $kk_info );
                        $query = "UPDATE Bestellung SET Bemerkung='$bemerkung', kk_info='$kk_info' WHERE id=$Bestellung";
                        $res = mysql_query( $query );
                        $msg =
                            "Ihre Kreditkartenorganisation hat die erfolgreiche Bezahlung bestätigt!";
                        break;
                    case "paypal":
                        $bemerkung .= "Die Zahlung per Paypal am " . date( "d.m.Y" ) .
                            " um " . date( "H:i" ) .
                            " Uhr erfolgreich durchgeführt!\n";
                        $query = "UPDATE Bestellung SET Bemerkung='$bemerkung' WHERE id=$Bestellung";
                        $res = mysql_query( $query );
                        $msg =
                            "Die Zahlung per Paypal wurde erfolgreich durchgeführt";
                        break;
                }
                break;
            case "decline":
                $bemerkung .=
                    "Die Zahlung wurde von der Kreditkartenorganisation am " .
                    date( "d.m.Y" ) . " um " . date( "H:i" ) .
                    " Uhr abgelehnt!\n";
                $query = "UPDATE Bestellung SET Bemerkung='$bemerkung' WHERE id=$Bestellung";
                $res = mysql_query( $query );
                $msg =
                    "Leider hat Ihre Kreditkartenorganisation die Bezahlung verweigert. Daher werden wir Ihre Bestellung nun stornieren.";
                break;
            case "except":
                $bemerkung .=
                    "Der Status der Zahlung wurde von der Kreditkartenorganisation am " .
                    date( "d.m.Y" ) . " um " . date( "H:i" ) .
                    " Uhr als unklar definiert!\n";
                $query = "UPDATE Bestellung SET Bemerkung='$bemerkung' WHERE id=$Bestellung";
                $res = mysql_query( $query );
                $msg =
                    "Der Status der zahlung wurde von der Kreditkartenorganisation als unklar definiert. Daher werden wir Ihre Bestellung in 7 Tagen stornieren.";
                break;
        }
        $_SESSION['SHOP']['BASKET'] = array();
    }

    // Templateausgabe
    if ( ($_SESSION["SHOP"]["BASKET"] == array()) and ($_POST["step"] != 4) and
        $_GET["step"] != 5 )
    {
        knock( __line__ );
        $msg['title'] = $_SESSION['INI']['basket']['emptyMsg'];

        // Titeltemplate auslesen
        $template = file_get_contents( $_SESSION['INI']['templatePath'] .
            "templates/basket/basketEmpty.htm" );
        echo templateContent( $msg, $template );
    }
    else
    {
        knock( __line__ );
        require_once ( $_SESSION['INI']['buy']['templatePath'] . $_SESSION['SHOP']['buy']['step'] .
            ".php" );
    }
?>