Subversion-Projekte lars-tiefland.content-management

Revision

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

<?php
    /**
     * @author Patirck Lautsch <lautsch@weban.de>
     * @copyright 2009 Webagentur Niewerth
     * @package Content-management
     * @version $Rev: 2614 $
     * @license propietary
     * @filesource
     * 
     */

    /**
     * PARAMETER (GET):
     *      - shops_id (Pflicht)
     *      - bestellart_id (Pflicht)
     *      - sqlDebug (wenn gleich 1, dann werden alle Query ausgegeben)
     *      - debug (wenn gleich 1, dann wird die XML ausgegeben)
     *      - nachricht (wenn gleich 1, dann beim Neueintrag eine Mail verschickt)
     *      - SKU: Bei Ebay die 'Lagerhaltungsnummer'. Hier das Feld im Artikel angeben, das mit dem Parameter übereinstimmt (z. B. SKU=ID : SKU entpricht der Artikel.ID) Aktuell funktioniert dies nur mit der Artikel.ID
     */

    // Wenn $_GET['shops_id'] nicht gesetzt ist oder leer ist -> Fehlermeldung und die
    if ( empty( $_GET['shops_id'] ) )
    {
        die( "Es wurde vergessen die Shop ID anzugeben!<br />
                  Bitte geben Sie diese über die Get-Variable \"shops_id\" an." );
    }

    // Wenn $_GET['bestellart_id'] nicht gesetzt ist oder leer ist -> Fehlermeldung und die
    if ( empty( $_GET['bestellart_id'] ) )
    {
        die( "Es wurde vergessen die Bestellart ID anzugeben!<br />
                  Bitte geben Sie diese über die Get-Variable \"bestellart_id\" an." );
    }

    // connect-Datei einbinden
    require_once "../../Online-Shop/connect2.php";

    // Binde Funktionen ein
    require_once "includes/funktionen.inc.php";

    // hole den Ort der Config-Datei aus 'eBay_settings'
    $sql = "
        SELECT
            Inhalt
        FROM
            eBay_settings
        WHERE
            Typ = 'confDatei'
            AND shops_id = '" . $_GET['shops_id'] . "'
    ";
    $result = mysql_query( $sql ) or die( mail( "admin@weban.de",
        "eBay-Cronjob Fehler", mysql_errno() . ': ' . mysql_error() .
        '<hr />' . $sql ) );

    // Debug
    if ( $_GET['sqlDebug'] == 1 )
    {
        echo 'eBay_settings: <br>' . $sql;
    }

    $row = mysql_fetch_assoc( $result );

    $confDatei = $row[Inhalt];

    $_GET["confDatei"] = $confDatei;

    // hole die XML-Datei in der die Transactions sind
    ob_start();
    require_once "/web/apache/content-management/cronjobs/ebay/holeXML.php";
    $file = ob_get_contents();
    ob_end_clean();

    if ( $_GET['debug'] == 1 )
    {
        echo 'Start = ' . gmdate( 'Y-m-d H:i:s', $start ) . '<br>';
        echo 'End = ' . gmdate( 'Y-m-d H:i:s', $end ) . '<br>';
        echo 'Jetzt = ' . gmdate( 'Y-m-d H:i:s', $now ) . '<br>';
        echo 'Diff. Stunden = ' . ( $end - $start ) / 3600 . '<br>';
    }

    // Definition welcher Teil der XML-Datei gelesen werden soll
    $start = "&lt;TransactionArray&gt;";
    $ende = "&lt;/TransactionArray&gt;";

    // speichere den XML-Ausschnitt in Treffer
    $treffer = get_string_between( $file, $start, $ende );

    // Sonderzeichen wie spitze Klammern werden in Entities geschrieben,
    // deshalb müssen diese mit html_entity_decode() zurückverwandelt werden
    $treffer = html_entity_decode( $treffer );

    // packe ein Root-Tag um den ausgeschnitten XML-Teil
    $treffer = "<ebay>" . $treffer . "</ebay>";

    // erzeuge ein Objekt aus dem ausgeschnitten XML-Teil
    $xml = simplexml_load_string( $treffer );

    if ( $_GET['debug'] == 1 )
    {
        print_r( $xml );
    }

    // Gehe alle Transactions durch
    foreach ( $xml->Transaction as $ta )
    {

        /**
         * Notiz:
         * When an item is listed as a Chinese auction type ( the default value of the AddItem.Item.ListingType property), the TransactionID
         * always returns a value of '0' as described in the online document :
         * http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/GetItemTransactions.html
         **/
        // Wenn das ListingType = "chinese" ist, nehme die ItemID als TransactionID
        if ( "Chinese" == $ta->Item->ListingType )
        {
            $ta->TransactionID = $ta->Item->ItemID;
        }

        // Überprüfe ob die Transaction schon in der Datenbank ist
        $sql = "
            SELECT
                TransactionId
            FROM
                eBay_Bestellung
            WHERE
                TransactionId = '" . $ta->TransactionID . "'            
        ";
        $result = mysql_query( $sql ) or die( mail( "admin@weban.de",
            "eBay-Cronjob Fehler", mysql_errno() . ': ' . mysql_error() .
            '<hr />' . $sql ) );
        $row = mysql_fetch_assoc( $result );

        // Debug
        if ( $_GET['sqlDebug'] == 1 )
        {
            echo 'eBay_Bestellung: <br>' . $sql;
        }

        // Transaction vorhanden?
        if ( null == $row[TransactionId] )
        {
            // Transaction nicht vorhanden:
            // Trage Transaction und dazugehörige Daten in die Datenbank

            // Attribut-Inhalt löschen wenn Inhalt gleich "Invalid Request"
            if ( $ta->Buyer->Email == "Invalid Request" )
            {
                $ta->Buyer->Email = "";
            }
            if ( $ta->Buyer->RegistrationAddress->Phone == "Invalid Request" )
            {
                $ta->Buyer->RegistrationAddress->Phone = "";
            }
            if ( $ta->Buyer->BuyerInfo->ShippingAddress->Phone ==
                "Invalid Request" )
            {
                $ta->Buyer->BuyerInfo->ShippingAddress->Phone = "";
            }

            // ME: bei Usern aus dem Ausland wird die Rechnungsadresse nicht korrekt gefüllt
            // das muss hier behoben werden:
            // wenn keine Rechnungsadresse eingetragen ist, wird die Rechnungsadresse mit den Daten der
            // Lieferadresse gefüllt
            unset( $RegistrationAddress_Name );
            if ( strlen( $ta->Buyer->RegistrationAddress->Name ) == 0 )
            {
                $RegistrationAddress_Name = $ta->Buyer->BuyerInfo->
                    ShippingAddress->Name;
            }

            unset( $RegistrationAddress_Street );
            if ( strlen( $ta->Buyer->RegistrationAddress->Street ) == 0 )
            {
                $RegistrationAddress_Street = $ta->Buyer->BuyerInfo->
                    ShippingAddress->Street1;
            }

            unset( $RegistrationAddress_PostalCode );
            if ( strlen( $ta->Buyer->RegistrationAddress->PostalCode ) == 0 )
            {
                $RegistrationAddress_PostalCode = $ta->Buyer->BuyerInfo->
                    ShippingAddress->PostalCode;
            }

            unset( $RegistrationAddress_CityName );
            if ( strlen( $ta->Buyer->RegistrationAddress->CityName ) == 0 )
            {
                $RegistrationAddress_CityName = $ta->Buyer->BuyerInfo->
                    ShippingAddress->CityName;
            }

            unset( $RegistrationAddress_CountryName );
            if ( strlen( $ta->Buyer->RegistrationAddress->CountryName ) == 0 )
            {
                $RegistrationAddress_CountryName = $ta->Buyer->BuyerInfo->
                    ShippingAddress->CountryName;
            }

            // Ist der eBay-Benutzer schon vorhanden in der Datenbank?
            $sql = "
                SELECT
                    ID,
                    ebay_UserID
                FROM
                    Logins
                WHERE
                    ebay_UserID = '" . mysql_real_escape_string( deutsche_umlaute
                ( $ta->Buyer->UserID ) ) . "'
            ";
            $result = mysql_query( $sql ) or die( mysql_errno() . ': ' .
                mysql_error() . '<hr />' . $sql );
            $row = mysql_fetch_assoc( $result );

            // Debug
            if ( $_GET['sqlDebug'] == 1 )
            {
                echo 'Logins: <br>' . $sql;
            }

            if ( $row['ebay_UserID'] == mysql_real_escape_string( deutsche_umlaute
                ( $ta->Buyer->UserID ) ) )
            {
                // eBay-Benutzer ist schon vorhanden
                $user_id = $row['ID'];

                // UPDATE der Logins-Tabelle
                $sql = "
                    UPDATE
                        Logins
                    SET
                        Name1 = '" . mysql_real_escape_string( deutsche_umlaute
                    ( ( $RegistrationAddress_Name ) ? $RegistrationAddress_Name :
                    $ta->Buyer->RegistrationAddress->Name ) ) . "',
                        Strasse = '" . mysql_real_escape_string( deutsche_umlaute
                    ( ( $RegistrationAddress_Street ) ? $RegistrationAddress_Street :
                    $ta->Buyer->RegistrationAddress->Street ) ) . "',
                        PLZ = '" . mysql_real_escape_string( deutsche_umlaute
                    ( ( $RegistrationAddress_PostalCode ) ? $RegistrationAddress_PostalCode :
                    $ta->Buyer->RegistrationAddress->PostalCode ) ) . "',
                        ORT = '" . mysql_real_escape_string( deutsche_umlaute
                    ( ( $RegistrationAddress_CityName ) ? $RegistrationAddress_CityName :
                    $ta->Buyer->RegistrationAddress->CityName ) ) . "',
                        Land = '" . mysql_real_escape_string( deutsche_umlaute
                    ( ( $RegistrationAddress_CountryName ) ? $RegistrationAddress_CountryName :
                    $ta->Buyer->RegistrationAddress->CountryName ) ) . "',
                        E_Mail = '" . mysql_real_escape_string( deutsche_umlaute
                    ( $ta->Buyer->Email ) ) . "',
                        Telefon = '" . mysql_real_escape_string( deutsche_umlaute
                    ( $ta->Buyer->BuyerInfo->ShippingAddress->Phone ) ) .
                    "',
                        liefer_Name = '" . mysql_real_escape_string( deutsche_umlaute
                    ( $ta->Buyer->BuyerInfo->ShippingAddress->Name ) ) . "',
                        liefer_Strasse = '" . mysql_real_escape_string( deutsche_umlaute
                    ( $ta->Buyer->BuyerInfo->ShippingAddress->Street1 ) ) .
                    "',
                        liefer_PLZ = '" . mysql_real_escape_string( deutsche_umlaute
                    ( $ta->Buyer->BuyerInfo->ShippingAddress->PostalCode ) ) .
                    "',
                        liefer_Ort = '" . mysql_real_escape_string( deutsche_umlaute
                    ( $ta->Buyer->BuyerInfo->ShippingAddress->CityName ) ) .
                    "',
                        letzte_Aenderung_am = NOW(),
                        ebay_FeedbackScore = '" . $ta->Buyer->FeedbackScore .
                    "',
                        ebay_PositiveFeedbackPercent = '" . $ta->Buyer->
                    PositiveFeedbackPercent . "'
                    WHERE
                        ID = $user_id;                        
                ";
                mysql_query( $sql ) or die( mysql_errno() . ': ' .
                    mysql_error() . '<hr />' . $sql );

                // Debug
                if ( $_GET['sqlDebug'] == 1 )
                {
                    echo 'Logins(UPDATE): <br>' . $sql;
                }
            }
            else
            {
                // eBay-Benutzer ist noch nicht vorhanden
                // SQL: Benutzer anlegen
                $sql = "
                    INSERT INTO Logins
                    (
                        Name1,
                        Strasse,
                        PLZ,
                        ORT,
                        Land,
                        E_Mail,
                        Telefon,
                        liefer_Name,
                        liefer_Strasse,
                        liefer_PLZ,
                        liefer_Ort,
                        erstellt_am,
                        erstellt_von,
                        letzte_Aenderung_am,
                        letzte_Aenderung_von,
                        ebay_UserID,
                        ebay_FeedbackScore,
                        ebay_PositiveFeedbackPercent
                    )
                    VALUES
                    (
                        '" . mysql_real_escape_string( deutsche_umlaute( ( $RegistrationAddress_Name ) ?
                    $RegistrationAddress_Name : $ta->Buyer->
                    RegistrationAddress->Name ) ) . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( ( $RegistrationAddress_Street ) ?
                    $RegistrationAddress_Street : $ta->Buyer->
                    RegistrationAddress->Street ) ) . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( ( $RegistrationAddress_PostalCode ) ?
                    $RegistrationAddress_PostalCode : $ta->Buyer->
                    RegistrationAddress->PostalCode ) ) . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( ( $RegistrationAddress_CityName ) ?
                    $RegistrationAddress_CityName : $ta->Buyer->
                    RegistrationAddress->CityName ) ) . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( ( $RegistrationAddress_CountryName ) ?
                    $RegistrationAddress_CountryName : $ta->Buyer->
                    RegistrationAddress->CountryName ) ) . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( $ta->
                    Buyer->Email ) ) . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( $ta->
                    Buyer->BuyerInfo->ShippingAddress->Phone ) ) . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( $ta->
                    Buyer->BuyerInfo->ShippingAddress->Name ) ) . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( $ta->
                    Buyer->BuyerInfo->ShippingAddress->Street1 ) . " " .
                    deutsche_umlaute( $ta->Buyer->BuyerInfo->
                    ShippingAddress->Street2 ) ) . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( $ta->
                    Buyer->BuyerInfo->ShippingAddress->PostalCode ) ) . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( $ta->
                    Buyer->BuyerInfo->ShippingAddress->CityName ) ) . "',
                        NOW(),
                        'ebay-cronjob',
                        NOW(),
                        'ebay-cronjob',
                        '" . mysql_real_escape_string( deutsche_umlaute( $ta->
                    Buyer->UserID ) ) . "',
                        '" . $ta->Buyer->FeedbackScore . "',
                        '" . $ta->Buyer->PositiveFeedbackPercent . "'
                    )
                ";

                mysql_query( $sql ) or die( mail( "admin@weban.de",
                    "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                    mysql_error() . '<hr />' . $sql ) );

                // Speichere die gerade eingefügte UserID
                $user_id = mysql_insert_id();

                // Debug
                if ( $_GET['sqlDebug'] == 1 )
                {
                    echo 'Logins(INSERT): <br>' . $sql;
                }
            }

            // eBay-Shops sind unter "shops.ebay = 1" markiert
            $shops_id = $_GET['shops_id'];

            // SQL: Bestellung
            $jetztBezahlen = ( $ta->Status->CheckoutStatus ==
                "CheckoutComplete" ) ?
                "Der Käufer hat die Kaufabwicklung nach dem Kauf abgeschlossen\nZahlungsart: " .
                $ta->Status->PaymentMethodUsed :
                "Der Käufer hat die Kaufabwicklung nach dem Kauf noch nicht abgeschlossen";

            $erstellt_am = $ta->CreatedDate;

            // Wenn $erstellt_am nicht gesetzt, dann nehme das aktuelle Datum
            $ts = ( $erstellt_am ) ? strtotime( $erstellt_am ) : time();
            $ts = date( "Y-m-d H:i:s", $ts );

            // Gibt es bereits eine offene Bestellung des eBay-Nutzers
            $sql = '
                SELECT
                    MAX(b.ID) AS id
                FROM
                    Bestellung AS b 
                JOIN
                    artikel_to_Bestellung AS a2b
                ON
                    b.ID = a2b.Bestellung
                JOIN
                    eBay_Bestellung AS eb
                ON
                    a2b.ID = eb.a2b_ID 
                LEFT JOIN
                    Logins AS l
                ON
                    l.ID = b.Login
                WHERE
                    b.Status = \'offen\'
                AND
                    b.Login = ' . $user_id . '
                AND
                    b.erstellt_am  > "' . $ts . '" - INTERVAL 6 HOUR
            ';

            $result = mysql_query( $sql ) or die( mysql_errno() . ': ' .
                mysql_error() . '<hr />' . $sql );
            $row = mysql_fetch_assoc( $result );

            // Debug
            if ( $_GET['sqlDebug'] == 1 )
            {
                echo 'Bestellung: <br>' . $sql;
            }

            // Offene BestellId-Variable löschen
            unset( $offeneBestellId );

            // Offene BestellId-Variable
            $offeneBestellId = $row['id'];

            if ( $offeneBestellId > 0 )
            {
                // Es gibt eine offene Bestellung, die nicht älter als 6 Stunden ist
                // Füge die Artikel dieser Auktion, in die mit der BestellId = $offeneBestellId ein

                // Wenn SKU als Parameter gesetzt ist und SKU vorhanden ist
                if ( ( $_GET['SKU'] ) and ( $ta->Item->SKU ) )
                {
                    $artikelID = $ta->Item->SKU;
                }
                else
                {
                    $artikelID = 999999;
                }

                if ( $ta->Item->VariationTitle )
                {
                    $titel = $ta->Item->VariationTitle;
                }
                else
                {
                    $titel = $ta->Item->Title;
                }

                $sql = "
                    INSERT INTO 
                        artikel_to_Bestellung
                    (
                        artikel,
                        Bestellung,
                        Menge,
                        Preis_pro_Stueck,
                        status,
                        Bezeichnung
                    )
                    VALUES
                    (
                        '" . $artikelID . "',
                        " . $offeneBestellId . ",
                        " . $ta->QuantityPurchased . ",
                        " . $ta->TransactionPrice . ",
                        'offen',
                        '" . deutsche_umlaute( $titel ) . "'
                    )
                ";
                mysql_query( $sql ) or die( mail( "admin@weban.de",
                    "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                    mysql_error() . '<hr />' . $sql ) );

                $a2bId = mysql_insert_id();

                // Debug
                if ( $_GET['sqlDebug'] == 1 )
                {
                    echo 'artikel_to_Bestellung(INSERT): <br>' . $sql;
                }

                // SQL: ebay_Bestellung
                $sql = "
                    INSERT INTO
                        eBay_Bestellung
                    (
                        a2b_ID,
                        PaymentMethodUsed,
                        TransactionId,
                        eBay_Auktionen_ID,
                        CheckoutAfterSales
                    )
                    VALUES
                    (
                        '" . $a2bId . "',
                        '" . $ta->Status->PaymentMethodUsed . "',
                        '" . $ta->TransactionID . "',
                        '" . $ta->Item->ItemID . "',
                        '" . $checkoutStatus . "'
                    )
                ";
                mysql_query( $sql ) or die( mail( "admin@weban.de",
                    "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                    mysql_error() . '<hr />' . $sql ) );

                // Debug
                if ( $_GET['sqlDebug'] == 1 )
                {
                    echo 'eBay_Bestellung(INSERT): <br>' . $sql;
                }
            }
            else
            {

                if ( $ta->BuyerCheckoutMessage )
                {
                    $buyercheckoutmessage = '\nAnmerkung des Käufers: ' .
                        mysql_real_escape_string( deutsche_umlaute( $ta->
                        BuyerCheckoutMessage ) );
                    //echo $ta->Buyer->RegistrationAddress->Name     . ' $buyercheckoutmessage ' . $buyercheckoutmessage .'<BR>';
                }

                if ( $ta->Buyer->BuyerInfo->ShippingAddress->Street2 )
                {
                    if ( preg_match_all( "/[0-9]/", $ta->Buyer->BuyerInfo->
                        ShippingAddress->Street1, $matches ) && !
                        preg_match_all( "/[0-9]/", $ta->Buyer->BuyerInfo->
                        ShippingAddress->Street2, $matches2 ) )
                    {
                        $liefer_Strasse = mysql_real_escape_string( deutsche_umlaute
                            ( $ta->Buyer->BuyerInfo->ShippingAddress->
                            Street1 ) );
                        $liefer_Name = mysql_real_escape_string( deutsche_umlaute
                            ( $ta->Buyer->BuyerInfo->ShippingAddress->
                            Street2 ) );
                        $liefer_Firma = mysql_real_escape_string( deutsche_umlaute
                            ( $ta->Buyer->BuyerInfo->ShippingAddress->Name ) );
                    }
                    else
                    {
                        $liefer_Strasse = mysql_real_escape_string( deutsche_umlaute
                            ( $ta->Buyer->BuyerInfo->ShippingAddress->
                            Street2 ) );
                        $liefer_Name = mysql_real_escape_string( deutsche_umlaute
                            ( $ta->Buyer->BuyerInfo->ShippingAddress->
                            Street1 ) );
                        $liefer_Firma = mysql_real_escape_string( deutsche_umlaute
                            ( $ta->Buyer->BuyerInfo->ShippingAddress->Name ) );
                    }

                    if ( $_GET['nachricht'] == 1 )
                    {
                        mail( "admin@weban.de", 'Bestellung mit STREET2 ' .
                            $ta->PayPalEmailAddress, "\nName: " .
                            mysql_real_escape_string( deutsche_umlaute( $ta->
                            Buyer->BuyerInfo->ShippingAddress->Name ) ) . "\nStreet1: " .
                            mysql_real_escape_string( deutsche_umlaute( $ta->
                            Buyer->BuyerInfo->ShippingAddress->Street1 ) ) .
                            "\nStreet2: " . mysql_real_escape_string( deutsche_umlaute
                            ( $ta->Buyer->BuyerInfo->ShippingAddress->
                            Street2 ) ) . "\nAddressOwner: " .
                            mysql_real_escape_string( deutsche_umlaute( $ta->
                            Buyer->BuyerInfo->ShippingAddress->AddressOwner ) ) .
                            "\nName: " . $liefer_Name . "  Strasse: " . $liefer_Strasse .
                            "  Firma: " . $liefer_Firma );
                    }
                }
                else
                {
                    $liefer_Strasse = mysql_real_escape_string( deutsche_umlaute
                        ( $ta->Buyer->BuyerInfo->ShippingAddress->Street1 ) );
                    $liefer_Name = mysql_real_escape_string( deutsche_umlaute
                        ( $ta->Buyer->BuyerInfo->ShippingAddress->Name ) );
                    $liefer_Firma = '';
                }

                $sql = "
                    INSERT INTO Bestellung
                    (
                        Bemerkung,
                        Login,
                        shops_ID,
                        bestellart_id,
                        erstellt_am,
                        erstellt_von,
                        liefer_Firma,
                        liefer_Name,
                        liefer_Strasse,
                        liefer_PLZ,
                        liefer_Ort,
                        liefer_Land
                    )
                    VALUES
                    (
                        '" . $jetztBezahlen . "\n" . $buyercheckoutmessage .
                    "',
                        '" . $user_id . "',
                        '" . $shops_id . "',
                        '" . $_GET['bestellart_id'] . "',
                        '$ts',
                        '" . mysql_real_escape_string( deutsche_umlaute( $ta->
                    Buyer->UserID ) ) . " (" . $ta->Buyer->FeedbackScore .
                    " - " . $ta->Buyer->PositiveFeedbackPercent . "%)',
                        '" . $liefer_Firma . "',
                        '" . $liefer_Name . "',
                        '" . $liefer_Strasse . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( $ta->
                    Buyer->BuyerInfo->ShippingAddress->PostalCode ) ) . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( $ta->
                    Buyer->BuyerInfo->ShippingAddress->CityName ) ) . "',
                        '" . mysql_real_escape_string( deutsche_umlaute( $ta->
                    Buyer->BuyerInfo->ShippingAddress->CountryName ) ) . "'
                    );
                ";

                if ( $_GET['nachricht'] == 1 )
                {
                    mail( "admin@weban.de", 'Neue Bestellung ' . $ta->
                        PayPalEmailAddress, 'User: ' . $ta->Buyer->UserID .
                        'SQL: ' . $sql );
                }
                mysql_query( $sql ) or die( mail( "admin@weban.de",
                    "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                    mysql_error() . '<hr />' . $sql ) );

                // Debug
                if ( $_GET['sqlDebug'] == 1 )
                {
                    echo 'Bestellung(INSERT): <br>' . $sql;
                }

                // Speichere die gerade eingefügte BestellID
                $bestell_id = mysql_insert_id();

                // Wenn der CheckoutStatus auf "CheckoutComplete" steht, setzte $checkoutStatus = 1
                $checkoutStatus = $ta->Status->CheckoutStatus ==
                    "CheckoutComplete" ? 1 : 0;

                if ( ( $_GET['SKU'] ) and ( $ta->Item->SKU ) )
                {
                    $artikelID = $ta->Item->SKU;
                }
                else
                {
                    $artikelID = 999999;
                }

                if ( $ta->Item->VariationTitle )
                {
                    $titel = $ta->Item->VariationTitle;
                }
                else
                {
                    $titel = $ta->Item->Title;
                }

                // SQL: artikel_to_Bestellung
                $sql = "
                    INSERT INTO
                        artikel_to_Bestellung
                    (
                        artikel,
                        Bestellung,
                        Menge,
                        Preis_pro_Stueck,
                        status,
                        Bezeichnung
                    )
                    VALUES
                    (
                        '" . $artikelID . "',
                        " . $bestell_id . ",
                        " . $ta->QuantityPurchased . ",
                        " . $ta->TransactionPrice . ",
                        'offen',
                        '" . deutsche_umlaute( $titel ) . "'
                    )
                ";
                mysql_query( $sql ) or die( mail( "admin@weban.de",
                    "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                    mysql_error() . '<hr />' . $sql ) );

                $a2bId = mysql_insert_id();

                // Debug
                if ( $_GET['sqlDebug'] == 1 )
                {
                    echo 'artikel_to_Bestellung(INSERT): <br>' . $sql;
                }

                // SQL: ebay_Bestellung
                $sql = "
                    INSERT INTO
                        eBay_Bestellung
                    (
                        a2b_ID,
                        PaymentMethodUsed,
                        TransactionId,
                        eBay_Auktionen_ID,
                        CheckoutAfterSales
                    )
                    VALUES
                    (
                        '" . $a2bId . "',
                        '" . $ta->Status->PaymentMethodUsed . "',
                        '" . $ta->TransactionID . "',
                        '" . $ta->Item->ItemID . "',
                        '" . $checkoutStatus . "'
                    )
                ";

                mysql_query( $sql ) or die( mail( "admin@weban.de",
                    "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                    mysql_error() . '<hr />' . $sql ) );

                // Debug
                if ( $_GET['sqlDebug'] == 1 )
                {
                    echo 'eBay_Bestellung(INSERT): <br>' . $sql;
                }



                // Versand angegeben?
                if ( isset( $ta->ShippingServiceSelected->ShippingService ) )
                {
                    // SQL: Hole die ID des eBay-Versandartikels
                    $sql = "
                        SELECT
                            Inhalt
                        FROM
                            eBay_settings
                        WHERE
                            Typ = 'static'
                        AND
                            shops_ID = $shops_id
                    ";
                    $result = mysql_query( $sql ) or die( mail( "admin@weban.de",
                        "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                        mysql_error() . '<hr />' . $sql ) );
                    $row = mysql_fetch_assoc( $result );

                    // Debug
                    if ( $_GET['sqlDebug'] == 1 )
                    {
                        echo 'Inhalt(INSERT): <br>' . $sql;
                    }

                    // eBay Versandartikel
                    $ebay_versandartikel_id = $row['Inhalt'];

                    // Falls der Bezeichnung "DE_Paket" für den Versandartikel in der XML ist,
                    // dann nenne ihn "Vorkasse / Versandkosten"
                    $va_bez = ( deutsche_umlaute( $ta->
                        ShippingServiceSelected->ShippingService ) ==
                        "DE_Paket" ) ? "Vorkasse / Versandkosten" :
                        deutsche_umlaute( $ta->ShippingServiceSelected->
                        ShippingService );

                    // SQL: Versandartikel in die Bestellung übernehmen
                    $sql = "
                        INSERT INTO
                            artikel_to_Bestellung
                        (
                            artikel,
                            Bestellung,
                            Menge,
                            Preis_pro_Stueck,
                            Bezeichnung,
                            status
                        )
                        VALUES
                        (
                            '" . $ebay_versandartikel_id . "',
                            " . $bestell_id . ",
                            " . 1 . ",
                            " . $ta->ShippingServiceSelected->
                        ShippingServiceCost . ",
                            '" . $va_bez . "',
                            ''
                        )
                    ";

                    mysql_query( $sql ) or die( mail( "admin@weban.de",
                        "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                        mysql_error() . '<hr />' . $sql ) );

                    // Debug
                    if ( $_GET['sqlDebug'] == 1 )
                    {
                        echo 'artikel_to_Bestellung(INSERT): <br>' . $sql;
                    }
                }
            }
            if ( $_GET["from"] == "ebay" )
            {
                $sql_sum = "SELECT
                        sum(Preis_pro_Stueck*Menge) AS total
                    FROM
                        artikel_to_Bestellung
                    WHERE
                        Bestellung=$bestell_id
                ";
                if ( $_GET['sqlDebug'] == 1 )
                {
                    echo 'Bestellsumme: <br>' . $sql_sum;
                }
                $res_sum = mysql_query( $sql_sum );
                $row_sum = mysql_fetch_assoc( $res_sum );
                $sum = $row_sum["total"];
                $sql_log = "
                    INSERT INTO
                        shop_log
                    (
                        verwendung,
                        eintrag1,
                        eintrag2,
                        eintrag3,
                        eintrag4
                    )
                    VALUES
                    (
                        'Bestellung',
                        '" . $_GET["from"] . "',
                        $sum,
                        $bestell_id,
                        '" . $_SERVER["REMOTE_ADDR"] . "'
                    )
                ";
                if ( $_GET['sqlDebug'] == 1 )
                {
                    echo 'shop_log: <br>' . $sql_log;
                }
                mysql_query( $sql_log );
            }
        }
        else
        {
            // Transaction ist vorhanden:

            // CheckoutAfterSales in der Tabelle 'eBay_Bestellung' = 0 und $ta->Status->CheckoutStatus = "CheckoutComplete", dann update die Tabelle 'eBay_Bestellung' und 'Bestellung'
            $sql = "
                SELECT
                    CheckoutAfterSales,
                    a2b_ID,
                    a2b.Bestellung AS bestellId
                FROM
                    eBay_Bestellung AS eb 
                JOIN
                    artikel_to_Bestellung AS a2b
                ON
                    eb.a2b_ID = a2b.ID
                WHERE
                    TransactionId = '" . $ta->TransactionID . "'
            ";
            $result = mysql_query( $sql ) or die( mail( "admin@weban.de",
                "eBay-Cronjob Fehler", mysql_errno() . ': ' . mysql_error() .
                '<hr />' . $sql ) );
            $row = mysql_fetch_assoc( $result );

            // Debug
            if ( $_GET['sqlDebug'] == 1 )
            {
                echo 'eBay_Bestellung: <br>' . $sql;
            }

            $CheckoutAfterSales = $row["CheckoutAfterSales"];
            $Bestellung_ID = $row['bestellId'];

            // Wenn '$Bestellung_ID' nicht vorhanden ist, heißt das der Transaktion nicht vorhanden ist,
            // in diesem Fall soll auch kein Update gefahren werden.
            if ( $Bestellung_ID )
            {
                // Wenn der CheckoutStatus verändert wurde

                if ( 0 == $CheckoutAfterSales && "CheckoutComplete" == $ta->
                    Status->CheckoutStatus )
                {
                    $sql = "
                        UPDATE
                            eBay_Bestellung
                        SET
                            CheckoutAfterSales = 1,
                            PaymentMethodUsed = '" . $ta->Status->
                        PaymentMethodUsed . "' 
                        WHERE
                            TransactionId = '" . $ta->TransactionID . "'
                    ";
                    mysql_query( $sql ) or die( mail( "admin@weban.de",
                        "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                        mysql_error() . '<hr />' . $sql ) );

                    // Debug
                    if ( $_GET['sqlDebug'] == 1 )
                    {
                        echo 'eBay_Bestellung(UPDATE): <br>' . $sql;
                    }

                    if ( $ta->BuyerCheckoutMessage )
                    {
                        $buyercheckoutmessage = '\nAnmerkung des Käufers: ' .
                            mysql_real_escape_string( deutsche_umlaute( $ta->
                            BuyerCheckoutMessage ) );
                    }

                    if ( $ta->Buyer->BuyerInfo->ShippingAddress->Street2 )
                    {
                        if ( preg_match_all( "/[0-9]/", $ta->Buyer->
                            BuyerInfo->ShippingAddress->Street1, $matches ) &&
                            !preg_match_all( "/[0-9]/", $ta->Buyer->
                            BuyerInfo->ShippingAddress->Street2, $matches2 ) )
                        {
                            $liefer_Strasse = mysql_real_escape_string( deutsche_umlaute
                                ( $ta->Buyer->BuyerInfo->ShippingAddress->
                                Street1 ) );
                            $liefer_Name = mysql_real_escape_string( deutsche_umlaute
                                ( $ta->Buyer->BuyerInfo->ShippingAddress->
                                Street2 ) );
                            $liefer_Firma = mysql_real_escape_string( deutsche_umlaute
                                ( $ta->Buyer->BuyerInfo->ShippingAddress->
                                Name ) );
                        }
                        else
                        {
                            $liefer_Strasse = mysql_real_escape_string( deutsche_umlaute
                                ( $ta->Buyer->BuyerInfo->ShippingAddress->
                                Street2 ) );
                            $liefer_Name = mysql_real_escape_string( deutsche_umlaute
                                ( $ta->Buyer->BuyerInfo->ShippingAddress->
                                Street1 ) );
                            $liefer_Firma = mysql_real_escape_string( deutsche_umlaute
                                ( $ta->Buyer->BuyerInfo->ShippingAddress->
                                Name ) );
                        }

                        if ( $_GET['nachricht'] == 1 )
                        {
                            mail( "admin@weban.de",
                                'Update Bestellung mit STREET2 ' . $ta->
                                PayPalEmailAddress, "\nName: " .
                                mysql_real_escape_string( deutsche_umlaute( $ta->
                                Buyer->BuyerInfo->ShippingAddress->Name ) ) .
                                "\nStreet1: " . mysql_real_escape_string( deutsche_umlaute
                                ( $ta->Buyer->BuyerInfo->ShippingAddress->
                                Street1 ) ) . "\nStreet2: " .
                                mysql_real_escape_string( deutsche_umlaute( $ta->
                                Buyer->BuyerInfo->ShippingAddress->Street2 ) ) .
                                "\nAddressOwner: " .
                                mysql_real_escape_string( deutsche_umlaute( $ta->
                                Buyer->BuyerInfo->ShippingAddress->
                                AddressOwner ) ) . "\nName: " . $liefer_Name .
                                "  Strasse: " . $liefer_Strasse .
                                "  Firma: " . $liefer_Firma );
                        }

                    }
                    else
                    {
                        $liefer_Strasse = mysql_real_escape_string( deutsche_umlaute
                            ( $ta->Buyer->BuyerInfo->ShippingAddress->
                            Street1 ) );
                        $liefer_Name = mysql_real_escape_string( deutsche_umlaute
                            ( $ta->Buyer->BuyerInfo->ShippingAddress->Name ) );
                        $liefer_Firma = '';
                    }

                    $jetztBezahlen = ( $ta->Status->CheckoutStatus ==
                        "CheckoutComplete" ) ?
                        "Der Käufer hat die Kaufabwicklung nach dem Kauf abgeschlossen\nZahlungsart: " .
                        $ta->Status->PaymentMethodUsed : "";


                    $sql = "
                        UPDATE
                            Bestellung
                        SET
                            Bemerkung = CONCAT(Bemerkung,'\n" . $jetztBezahlen .
                        "\n" . $buyercheckoutmessage . "'),
                            liefer_Firma = '" . mysql_real_escape_string( $liefer_Firma ) .
                        "',
                            liefer_Name = '" . mysql_real_escape_string( $liefer_Name ) .
                        "',
                            liefer_Strasse = '" . mysql_real_escape_string( $liefer_Strasse ) .
                        "',
                            liefer_PLZ = '" . deutsche_umlaute( $ta->Buyer->
                        BuyerInfo->ShippingAddress->PostalCode ) . "',
                            liefer_Ort = '" . mysql_real_escape_string( deutsche_umlaute
                        ( $ta->Buyer->BuyerInfo->ShippingAddress->CityName ) ) .
                        "',
                            liefer_Land = '" . deutsche_umlaute( $ta->Buyer->
                        BuyerInfo->ShippingAddress->CountryName ) . "'
                        WHERE
                            ID = '" . $Bestellung_ID . "'
                    ";

                    mysql_query( $sql ) or die( mail( "admin@weban.de",
                        "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                        mysql_error() . '<hr />' . $sql ) );

                    // Debug
                    if ( $_GET['sqlDebug'] == 1 )
                    {
                        echo 'Bestellung(UPDATE): <br>' . $sql;
                    }

                    // Versand angegeben?
                    if ( isset( $ta->ShippingServiceSelected->
                        ShippingService ) )
                    {
                        // SQL: Hole die ID des eBay-Versandartikels
                        $sql = "
                            SELECT
                                ID
                            FROM
                                artikel
                            WHERE
                                kurzbezeichnung = 'eBay-Versand'
                                AND
                                Father = -3
                        ";
                        $result = mysql_query( $sql ) or die( mail( "admin@weban.de",
                            "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                            mysql_error() . '<hr />' . $sql ) );
                        $row = mysql_fetch_assoc( $result );

                        // Debug
                        if ( $_GET['sqlDebug'] == 1 )
                        {
                            echo 'artikel: <br>' . $sql;
                        }

                        // eBay Versandartikel
                        $ebay_versandartikel_id = $row["ID"];

                        // Falls der Bezeichnung "DE_Paket" für den Versandartikel in der XML ist,
                        // dann nenne ihn "Vorkasse / Versandkosten"
                        $va_bez = ( deutsche_umlaute( $ta->
                            ShippingServiceSelected->ShippingService ) ==
                            "DE_Paket" ) ? "Vorkasse / Versandkosten" :
                            deutsche_umlaute( $ta->ShippingServiceSelected->
                            ShippingService );
                        // SQL: Versandartikel in die Bestellung übernehmen
                        $sql = "
                            INSERT INTO artikel_to_Bestellung
                            (
                                artikel,
                                Bestellung,
                                Menge,
                                Preis_pro_Stueck,
                                Bezeichnung,
                                status
                            )
                            VALUES
                            (
                                '" . $ebay_versandartikel_id . "',
                                " . $Bestellung_ID . ",
                                " . 1 . ",
                                " . $ta->ShippingServiceSelected->
                            ShippingServiceCost . ",
                                '" . $va_bez . "',
                                ''
                            )
                        ";

                        mysql_query( $sql ) or die( mail( "admin@weban.de",
                            "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                            mysql_error() . '<hr />' . $sql ) );

                        // Debug
                        if ( $_GET['sqlDebug'] == 1 )
                        {
                            echo 'artikel_to_Bestellung(INSERT): <br>' . $sql;
                        }
                    }
                }
                else
                {
                    $sql = "SELECT
                            liefer_Strasse,
                            liefer_Firma
                        FROM
                            Bestellung
                        WHERE
                            ID = $Bestellung_ID
                    ";
                    echo $sql;
                    $res = mysql_query( $sql ) or die( mail( "admin@weban.de",
                        "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                        mysql_error() . '<hr />' . $sql ) );

                    // Debug
                    if ( $_GET['sqlDebug'] == 1 )
                    {
                        echo 'Bestellung(UPDATE): <br>' . $sql;
                    }

                    $row = mysql_fetch_assoc( $res );
                    echo '
                    liefer_Strasse: ' . $row["liefer_Strasse"];
                    echo '
                    liefer_Firma: ' . $row["liefer_Firma"];
                    echo ' ShippingAddress->Street1: ' .
                        mysql_real_escape_string( deutsche_umlaute( $ta->
                        Buyer->BuyerInfo->ShippingAddress->Street1 ) );
                    if ( $row["liefer_Strasse"] != mysql_real_escape_string
                        ( deutsche_umlaute( $ta->Buyer->BuyerInfo->
                        ShippingAddress->Street1 ) ) || $row["liefer_Firma"] !=
                        mysql_real_escape_string( deutsche_umlaute( $ta->
                        Buyer->BuyerInfo->ShippingAddress->Street1 ) ) )
                    {
                        if ( $ta->Buyer->BuyerInfo->ShippingAddress->
                            Street2 )
                        {
                            if ( preg_match_all( "/[0-9]/", $ta->Buyer->
                                BuyerInfo->ShippingAddress->Street1, $matches ) &&
                                !preg_match_all( "/[0-9]/", $ta->Buyer->
                                BuyerInfo->ShippingAddress->Street2, $matches2 ) )
                            {
                                $str = $ta->Buyer->BuyerInfo->
                                    ShippingAddress->Street1;
                                preg_match_all( "/[0-9]+.*$/", $str, $matches_hnr );
                                $hnr = $matches_hnr[0][0];
                                $str = substr( $str, 0, strlen( $str ) -
                                    strlen( $hnr ) - 1 );
                                $liefer_StrasseNr = $hnr;
                                $liefer_Strasse = mysql_real_escape_string( deutsche_umlaute
                                    ( $str ) );
                                $liefer_StrasseNr = mysql_real_escape_string( ( deutsche_umlaute
                                    ( $hnr ) ) );
                                $liefer_Name = mysql_real_escape_string( deutsche_umlaute
                                    ( $ta->Buyer->BuyerInfo->
                                    ShippingAddress->Street2 ) );
                                $liefer_Firma = mysql_real_escape_string( deutsche_umlaute
                                    ( $ta->Buyer->BuyerInfo->
                                    ShippingAddress->Name ) );
                            }
                            else
                            {
                                $str = $ta->Buyer->BuyerInfo->
                                    ShippingAddress->Street2;
                                preg_match_all( "/[0-9]+.*$/", $str, $matches_hnr );
                                $hnr = $matches_hnr[0][0];
                                $str = substr( $str, 0, strlen( $str ) -
                                    strlen( $hnr ) - 1 );
                                $liefer_Strasse = mysql_real_escape_string( deutsche_umlaute
                                    ( $str ) );
                                $liefer_StrasseNr = mysql_real_escape_string( ( deutsche_umlaute
                                    ( $hnr ) ) );
                                $liefer_Name = mysql_real_escape_string( deutsche_umlaute
                                    ( $ta->Buyer->BuyerInfo->
                                    ShippingAddress->Street1 ) );
                                $liefer_Firma = mysql_real_escape_string( deutsche_umlaute
                                    ( $ta->Buyer->BuyerInfo->
                                    ShippingAddress->Name ) );
                            }

                            if ( $_GET['nachricht'] == 1 )
                            {
                                mail( "admin@weban.de",
                                    'Update Bestellung mit STREET2 ' . $ta->
                                    PayPalEmailAddress, "\nName: " .
                                    mysql_real_escape_string( deutsche_umlaute
                                    ( $ta->Buyer->BuyerInfo->
                                    ShippingAddress->Name ) ) . "\nStreet1: " .
                                    mysql_real_escape_string( deutsche_umlaute
                                    ( $ta->Buyer->BuyerInfo->
                                    ShippingAddress->Street1 ) ) . "\nStreet2: " .
                                    mysql_real_escape_string( deutsche_umlaute
                                    ( $ta->Buyer->BuyerInfo->
                                    ShippingAddress->Street2 ) ) . "\nAddressOwner: " .
                                    mysql_real_escape_string( deutsche_umlaute
                                    ( $ta->Buyer->BuyerInfo->
                                    ShippingAddress->AddressOwner ) ) . "\nName: " .
                                    $liefer_Name . "  Strasse: " . $liefer_Strasse .
                                    " StrasseNr: " . $liefer_StrasseNr .
                                    "  Firma: " . $liefer_Firma );
                            }

                        }
                        else
                        {
                            $str = $ta->Buyer->BuyerInfo->ShippingAddress->
                                Street1;
                            preg_match_all( "/[0-9]+.*$/", $str, $matches_hnr );
                            $hnr = $matches_hnr[0][0];
                            $str = substr( $str, 0, strlen( $str ) - strlen
                                ( $hnr ) - 1 );
                            $liefer_Strasse = mysql_real_escape_string( deutsche_umlaute
                                ( $str ) );
                            $liefer_StrasseNr = mysql_real_escape_string( ( deutsche_umlaute
                                ( $hnr ) ) );
                            $liefer_Name = mysql_real_escape_string( deutsche_umlaute
                                ( $ta->Buyer->BuyerInfo->ShippingAddress->
                                Name ) );
                            $liefer_Firma = '';
                        }
                        echo $Bestellung_ID;
                        $sql = "
                            UPDATE
                                Bestellung
                            SET
                                liefer_Firma = '" . mysql_real_escape_string( $liefer_Firma ) .
                            "',
                                liefer_Name = '" . mysql_real_escape_string( $liefer_Name ) .
                            "',
                                liefer_Strasse = '" .
                            mysql_real_escape_string( $liefer_Strasse ) .
                            "',
                                liefer_Str_Nr = '" .
                            mysql_real_escape_string( $liefer_StrasseNr ) .
                            "',
                                liefer_PLZ = '" . deutsche_umlaute( $ta->
                            Buyer->BuyerInfo->ShippingAddress->PostalCode ) .
                            "',
                                liefer_Ort = '" . mysql_real_escape_string( deutsche_umlaute
                            ( $ta->Buyer->BuyerInfo->ShippingAddress->
                            CityName ) ) . "',
                                liefer_Land = '" . deutsche_umlaute( $ta->
                            Buyer->BuyerInfo->ShippingAddress->CountryName ) .
                            "'
                                WHERE
                                    ID = '" . $Bestellung_ID . "'
                        ";

                        if ( $_GET['nachricht'] == 1 )
                        {
                            //   mail( "admin@weban.de", 'Update Bestellung ' . $ta->
                            //       PayPalEmailAddress, 'User: ' . $ta->Buyer->
                            //       UserID . 'SQL: ' . $sql );
                        }
                        mysql_query( $sql ) or die( mail( "admin@weban.de",
                            "eBay-Cronjob Fehler", mysql_errno() . ': ' .
                            mysql_error() . '<hr />' . $sql . ' Street1: ' .
                            $ta->Buyer->BuyerInfo->ShippingAddress->Street1 ) );

                        // Debug
                        if ( $_GET['sqlDebug'] == 1 )
                        {
                            echo 'Bestellung(UPDATE): <br>' . $sql;
                        }
                    }
                }
            }
            if ( $_GET["from"] == "ebay" )
            {
                $sql_sum = "SELECT
                        sum(Preis_pro_Stueck*Menge) AS total
                    FROM
                        artikel_to_Bestellung
                    WHERE
                        Bestellung=$Bestellung_ID
                ";
                if ( $_GET['sqlDebug'] == 1 )
                {
                    echo 'Bestellsumme: <br>' . $sql_sum;
                }
                $res_sum = mysql_query( $sql_sum );
                $row_sum = mysql_fetch_assoc( $res_sum );
                $sum = $row_sum["total"];
                $sql_log = "
                    UPDATE
                        shop_log
                    SET
                        eintrag2=$sum
                    WHERE
                        verwendung='Bestellung'
                    AND
                        eintrag1='" . $_GET["from"] . "'
                    AND
                        eintrag3=$Bestellung_ID
                ";
                if ( $_GET['sqlDebug'] == 1 )
                {
                    echo 'shop_log (UPDATE): <br>' . $sql_log;
                }
                mysql_query( $sql_log );
            }
            unset( $Bestellung_ID );
        }
    }
?>