Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
3 lars 1
<?php
2
    /**
3
     * @since  29/03/2007
4
     * @author <markus@niewerth.com>
5
     */
6
 
7
    knock( __line__ );
8
 
9
    /* ############################# */
10
    /* Abbrechen wenn Warenkorb leer */
11
    /* ############################# */
12
    // Titeltemplate auslesen
13
 
14
    /*
15
    $template = file_get_contents("templates/buyContent/1/1.htm");
16
    if ($_SESSION['SHOP'][BASKET] == array())
17
    {
18
    $msg[title]=$_SESSION[INI][basket][emptyMsg];
19
    echo templateContent($msg, $template);
20
    return ;
21
    }
22
    else
23
    {
24
    include($_SESSION[INI][buy][templatePath]."stepView.php");
25
    }
26
    */
27
 
28
 
29
    /* ##################################### */
30
    /* zus�tzliche ServiceRoutinen einbinden */
31
    /* ##################################### */
32
    ;
33
    foreach ( call_user_method("listFiles" . substr(PHP_OS, 0, 3), $GLOBALS['Weban_Shop']->
34
        Functions, $_SESSION['INI']['buyPath'], "php") as $file )
35
    {
36
        require_once ( $file );
37
    }
38
 
39
    /* ################# */
40
    /* Schrittverwaltung */
41
    /* ################# */
42
    $_SESSION['SHOP']['buy']['step'] = 1;
43
    if ( $_REQUEST['step'] )
44
    {
45
        $_SESSION['SHOP']['buy']['step'] = $_REQUEST['step'];
46
    }
47
 
48
    /* ############## */
49
    /* NewsletterFlag */
50
    /* ############## */
51
    if ( $_POST['newsletter'] )
52
    {
53
        $_SESSION['SHOP']['newsletter'] = $_POST['newsletter'];
54
    }
55
 
56
    /* ################## */
57
    /* LieferadressenFlag */
58
    /* ################## */
59
    if ( $_POST['Lieferadresse'] )
60
    {
61
        $_SESSION['SHOP']['Lieferadresse'] = $_POST['Lieferadresse'];
62
    }
63
 
64
    if ( $_POST['action'] )
65
    {
66
        // eventuelle Mindestangaben abfragen
67
        $req_error = false;
68
        if ( $_POST['req'] )
69
        {
70
            foreach ( array_keys($_POST['req']) as $elem )
71
            {
72
                // M�llfilter
73
                switch ( $_POST['req'][$elem] )
74
                {
75
                    case "lieferadresse":
76
                        if ( $_SESSION['SHOP']['Lieferadresse'] == "true" )
77
                        {
78
                            if ( !$_POST[$elem] )
79
                            {
80
                                $req_error = true;
81
                            }
82
                        }
83
                        break;
84
                    case "mail":
85
                        if ( preg_match("/\@/", $_POST[$elem]) == 0 )
86
                        {
87
                            $req_error = true;
88
                        }
89
                        break;
90
                    default:
91
                        if ( !$_POST[$elem] )
92
                        {
93
                            $req_error = true;
94
                        }
95
                        break;
96
                }
97
            }
98
        }
99
    }
100
 
101
    function knock( $text )
102
    {
103
        global $time_start;
104
        //echo "<li>".$text."|&nbsp;&nbsp;&nbsp;".(microtime_float() - $time_start)."</li>";
105
        $time_start = microtime_float();
106
    }
107
 
108
    if ( $req_error == true )
109
    {
110
        $_SESSION['SHOP']['buy']['step']--;
111
    }
112
 
113
    $_SESSION['SHOP']['buy']['Persdata']['AGB'] = $_POST['AGB'];
114
 
115
    // Eingaben verarbeiten
116
    switch ( $_POST['action'] )
117
    {
118
        case "Versand":
119
            postAction_Versand();
120
            break;
121
        case "Persdata":
122
            // Daten übertragen
123
            $_SESSION['SHOP']['buy']['Persdata'] = $_POST;
124
            unset( $_SESSION['SHOP']['buy']['Persdata']['req'] );
125
 
126
            shopLog( "BestSeite1", $_SESSION['shopLog']['referrer'],
127
                numberFormat(getBasketSumme(true)), '0', false, true );
128
 
129
            break;
130
        case "execute":
131
            if ( $req_error == false )
132
            {
133
                knock( __line__ );
134
 
135
                // User in Login erstellen
136
                $Userdata = createUser( $_SESSION['SHOP']['buy']['Persdata'],
137
                    $_SESSION['INI']['createLogin'] );
138
 
139
                $Userdata['Land'] = ( $Userdata['Land'] > 0 && $Userdata['Land'] <
140
                    1024 ) ? getCountryById( $Userdata['Land'] ) : $Userdata['Land'];
141
 
142
                $Userdata['Anrede'] = $_SESSION['INI']['Anrede'][$Userdata['Anrede']];
143
 
144
                knock( __line__ );
145
 
146
                // Lieferadresse aus der Session erstellen
147
                $Lieferadresse = getLieferadresse();
148
 
149
                knock( __line__ );
150
 
151
                // User in Newsletter eintragen
152
                if ( isset($_POST["newsletter"]) && $_SESSION['INI']['newsletter']['aktiv'] ==
153
                    1 )
154
                {
155
                    knock( __line__ );
156
                    subscribeToNewsletter( $Userdata['ID'], $_SESSION["INI"]['newsletter']['verteiler'] );
157
                    knock( __line__ );
158
                }
159
 
160
                // Bestellung erstellen
161
                //                if ( $Userdata['ID'] )
162
 
163
                {
164
                    $bestellId = createOrder( $Userdata['ID'] );
165
                }
166
 
167
                knock( __line__ );
168
 
169
                // Bemerkung bereitstellen
170
                $Bemerkung = getBemerkung( false );
171
                knock( __line__ );
172
 
173
                $Bemerkung1 = getBemerkung( true );
174
                knock( __line__ );
175
 
176
                // Artikel der Bestellung zuordnen
177
                $GLOBALS["bestellId"] = $bestellId;
178
                insert_into_artikel_to_Bestellung( $bestellId );
179
 
180
                knock( __line__ );
181
 
182
                // Bestellmailvariablen bereitstellen
183
                include ( $_SESSION['INI']['buyPath'] .
184
                    "bestellen_mail_variablen.php" );
185
 
186
                knock( __line__ );
187
 
188
 
189
                // Text f�r die Mail erstellen
190
                //$text=createMailOrderText();
191
                $text = $GLOBALS['Weban_Shop']->createMailOrderText();
192
 
193
                knock( __line__ );
194
 
195
                $Userdata['E_Mail'] = empty( $Userdata['E_Mail'] ) ? $Userdata['email'] :
196
                    $Userdata['E_Mail'];
197
 
198
 
199
                // Bestellmail verschicken
200
                mail( $Userdata['E_Mail'], $Bestaetigungsmail['Betreff'], $Bestaetigungsmail['start'] .
201
                    $text . "\n\n" . $Bestaetigungsmail['Kundendaten'] . "\n\n" .
202
                    $Bestaetigungsmail['stop'], "FROM: " . $shopaddr );
203
 
204
                knock( __line__ );
205
 
206
                // Bestaetigungsmail verschicken
207
                mail( $shopaddr, $Bestellmail['Betreff'], $Bestellmail['start'] .
208
                    $text . "\n\n" . $Bestellmail['Kundendaten'] . "\n\n" .
209
                    $Bestellmail['stop'], "FROM: $Userdata[E_Mail]" );
210
 
211
                knock( __line__ );
212
 
213
                // Bestellung Loggen
214
                shopLog( "Bestellung", $_SESSION['shopLog']['start_url'],
215
                    getBasketSumme(), $bestellId, SID, false );
216
 
217
                knock( __line__ );
218
 
219
                // Warenkorb l�schen
220
                $query = "
221
                    SELECT
222
                        *
223
                    FROM
224
                        artikel_to_Bestellung ab,
225
                        artikel a
226
                    WHERE
227
                        Bestellung=" . $GLOBALS["bestellId"] . "
228
                    AND
229
                        a.ID=ab.artikel
230
                    AND
231
                        a.Father=-3
232
                ";
233
                $res = mysql_query( $query );
234
 
235
                $row = mysql_fetch_assoc( $res );
236
                $name = $row["short_line_1"];
237
                if ( $_SESSION['INI']['delBaskAfterSubm'] == 1 && !in_array
238
                    ($name, array("paypal")) )
239
                {
240
                    $_SESSION['SHOP']['BASKET'] = array();
241
                }
242
                knock( __line__ );
243
            }
244
            else
245
            {
246
                if ( $_POST['Newsletter'] )
247
                {
248
                    $_SESSION['SHOP']['buy']['Newsletter'] = $_POST['Newsletter'];
249
                }
250
                else
251
                {
252
                    unset( $_SESSION['SHOP']['buy']['Newsletter'] );
253
                }
254
            }
255
            break;
256
    }
257
 
258
    knock( __line__ );
259
 
260
    if ( $_GET["Bestellung"] )
261
    {
262
        $query = "SELECT Bemerkung FROM Bestellung WHERE id=" . $_GET["Bestellung"];
263
        $res = mysql_query( $query );
264
        $row = mysql_fetch_assoc( $res );
265
        $bemerkung = $row["Bemerkung"];
266
 
267
        switch ( $_GET["action"] )
268
        {
269
            case "cancel":
270
                switch ( $_GET["mode"] )
271
                {
272
                    case "creditcard":
273
                    case "paypal":
274
                        $bemerkung .= "Die Zahlung wurde vom Kunden am " .
275
                            date( "d.m.Y" ) . " um " . date( "H:i" ) .
276
                            " Uhr abgebrochen!\n";
277
                        $query = "UPDATE Bestellung SET Bemerkung='$bemerkung' WHERE id=$Bestellung";
278
                        $res = mysql_query( $query );
279
                        $msg =
280
                            "Leider haben Sie die Zahlung abgebrochen. Daher werden wir Ihre Bestellung nun stornieren.";
281
                        break;
282
                }
283
                break;
284
            case "accept":
285
                switch ( $_GET["mode"] )
286
                {
287
                    case "creditcard":
288
                        $bemerkung .=
289
                            "Die Zahlung wurde von der Kreditkartenorganisation am " .
290
                            date( "d.m.Y" ) . " um " . date( "H:i" ) .
291
                            " Uhr genehmigt!\n";
292
                        $kk_info["code"] = "";
293
                        $kk_info["status"] = "offen";
294
                        $kk_info = serialize( $kk_info );
295
                        $query = "UPDATE Bestellung SET Bemerkung='$bemerkung', kk_info='$kk_info' WHERE id=$Bestellung";
296
                        $res = mysql_query( $query );
297
                        $msg =
298
                            "Ihre Kreditkartenorganisation hat die erfolgreiche Bezahlung bestätigt!";
299
                        break;
300
                    case "paypal":
301
                        $bemerkung .= "Die Zahlung per Paypal am " . date( "d.m.Y" ) .
302
                            " um " . date( "H:i" ) .
303
                            " Uhr erfolgreich durchgeführt!\n";
304
                        $query = "UPDATE Bestellung SET Bemerkung='$bemerkung' WHERE id=$Bestellung";
305
                        $res = mysql_query( $query );
306
                        $msg =
307
                            "Die Zahlung per Paypal wurde erfolgreich durchgeführt";
308
                        break;
309
                }
310
                break;
311
            case "decline":
312
                $bemerkung .=
313
                    "Die Zahlung wurde von der Kreditkartenorganisation am " .
314
                    date( "d.m.Y" ) . " um " . date( "H:i" ) .
315
                    " Uhr abgelehnt!\n";
316
                $query = "UPDATE Bestellung SET Bemerkung='$bemerkung' WHERE id=$Bestellung";
317
                $res = mysql_query( $query );
318
                $msg =
319
                    "Leider hat Ihre Kreditkartenorganisation die Bezahlung verweigert. Daher werden wir Ihre Bestellung nun stornieren.";
320
                break;
321
            case "except":
322
                $bemerkung .=
323
                    "Der Status der Zahlung wurde von der Kreditkartenorganisation am " .
324
                    date( "d.m.Y" ) . " um " . date( "H:i" ) .
325
                    " Uhr als unklar definiert!\n";
326
                $query = "UPDATE Bestellung SET Bemerkung='$bemerkung' WHERE id=$Bestellung";
327
                $res = mysql_query( $query );
328
                $msg =
329
                    "Der Status der zahlung wurde von der Kreditkartenorganisation als unklar definiert. Daher werden wir Ihre Bestellung in 7 Tagen stornieren.";
330
                break;
331
        }
332
        $_SESSION['SHOP']['BASKET'] = array();
333
    }
334
 
335
    // Templateausgabe
336
    if ( ($_SESSION["SHOP"]["BASKET"] == array()) and ($_POST["step"] != 4) and
337
        $_GET["step"] != 5 )
338
    {
339
        knock( __line__ );
340
        $msg['title'] = $_SESSION['INI']['basket']['emptyMsg'];
341
 
342
        // Titeltemplate auslesen
343
        $template = file_get_contents( $_SESSION['INI']['templatePath'] .
344
            "templates/basket/basketEmpty.htm" );
345
        echo templateContent( $msg, $template );
346
    }
347
    else
348
    {
349
        knock( __line__ );
350
        require_once ( $_SESSION['INI']['buy']['templatePath'] . $_SESSION['SHOP']['buy']['step'] .
351
            ".php" );
352
    }
353
?>