Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 398 | Revision 829 | Zur aktuellen Revision | Ganze Datei anzeigen | Leerzeichen ignorieren | Details | Blame | Letzte Änderung | Log anzeigen | RSS feed

Revision 398 Revision 817
Zeile 1... Zeile 1...
1
<?php
1
<?php
Zeile 2... Zeile 2...
2
 
2
 
Zeile 3... Zeile 3...
3
namespace App\Http\Controllers;
3
namespace App\Http\Controllers;
-
 
4
 
Zeile 4... Zeile 5...
4
 
5
use Illuminate\Http\Request;
5
use Illuminate\Http\Request;
6
    use Illuminate\Support\Facades\DB;
-
 
7
 
-
 
8
class ShippingController extends Controller
-
 
9
{
-
 
10
	public function getShippingOptions()
-
 
11
	{
-
 
12
		$Land = 47;
-
 
13
		$buffer = array();
-
 
14
            $rufnamen = array();
-
 
15
            $sql = "SELECT
-
 
16
                    z.id,
-
 
17
                    z.internal_name
-
 
18
                FROM
-
 
19
                    payment_methods z
-
 
20
                JOIN
-
 
21
                    shipping_payment_methods vz
-
 
22
                ON
-
 
23
                    vz.payment_method_id=z.id  
-
 
24
            ";
6
 
25
            $r = DB::connection('mysql')->select($sql);
-
 
26
            $rufnamen[] = "- Bezahlarten -";
-
 
27
            foreach( $r as $row )
-
 
28
            {
-
 
29
                $ini_name = $row->internal_name;
-
 
30
                if ( $row->internal_name == "sofortueberweisung" )
-
 
31
                {
-
 
32
                    $ini_name = "ueberweisung";
-
 
33
                }
-
 
34
                if ( !isset( $_SESSION["zahlarten"][ $ini_name ] ) )
-
 
35
                {
-
 
36
                    $_SESSION["zahlarten"][ $ini_name ] = true;
-
 
37
                }
-
 
38
                if ( ( $GLOBALS["INI"][ $ini_name ]["aktiv"] == 1 && $_SESSION["zahlarten"][ $ini_name ] !== false ) || !in_array( $row->internal_name, $GLOBALS["zahlsysteme"] ) )
-
 
39
                {
-
 
40
                    $rufnamen[ $row->id ] = $row->internal_name;
-
 
41
                }
-
 
42
            }
-
 
43
            if ( $_SESSION["SHOP"]["BASKET"]->items )
-
 
44
            {
-
 
45
                $vgruppen = array();
-
 
46
                $preis = $_SESSION["SHOP"]["BASKET"]->paymentInfo["Total"];
-
 
47
                $gewicht = $_SESSION["SHOP"]["BASKET"]->getBasketGewicht();
-
 
48
                foreach ( $_SESSION["SHOP"]["BASKET"]->items as $bId => $artikel )
-
 
49
                {
-
 
50
                    if ( $artikel->spedId )
-
 
51
                    {
-
 
52
                        $vgruppen[] = $artikel->spedId;
-
 
53
                    }
-
 
54
                    elseif ( $artikel->versandgruppen_id )
-
 
55
                    {
-
 
56
                        $vgruppen[] = $artikel->versandgruppen_id;
-
 
57
                    }
-
 
58
                }
-
 
59
                $vgruppen = array_unique( $vgruppen );
-
 
60
                $sql = "SELECT
-
 
61
                        MAX(rank) AS rank
-
 
62
                    FROM
-
 
63
                        shipping_groups
-
 
64
                    WHERE
-
 
65
                        id IN(" . implode( ",", $vgruppen ) . ")
-
 
66
                ";
-
 
67
                $r = DB::select( $sql );
-
 
68
                $row = $r[0];
-
 
69
                $rang = $row->rank;
-
 
70
                $sql = "SELECT
-
 
71
                        id,
-
 
72
                        conditions,
-
 
73
                        shipping_text AS versandtextbaustein
-
 
74
                        -- zahlart_index
-
 
75
                    FROM
-
 
76
                        shipping_groups vg
-
 
77
                    WHERE
-
 
78
                        rank=" . $rang . "
-
 
79
                ";
-
 
80
                $r = DB::select( $sql );
-
 
81
                $row = $r[0];
-
 
82
                $vgId = $row->id;
-
 
83
                $bedingungen = explode( ";", $row->conditions );
-
 
84
                $sqlCondArr = array();
-
 
85
                if ( in_array( "preis", $bedingungen ) )
-
 
86
                {
-
 
87
                    $sqlCondArr[] = "((" . $preis . " >= calc_price_from AND " . $preis . " <= calc_price_to) OR (calc_price_from=calc_price_to))";
-
 
88
                }
-
 
89
                if ( in_array( "gewicht", $bedingungen ) )
-
 
90
                {
-
 
91
                    $sqlCondArr[] = "((" . $gewicht . " >= calc_weight_from AND " . $gewicht . " <= calc_weight_to)
-
 
92
                            OR (calc_weight_from = calc_weight_to))";
-
 
93
                }
-
 
94
                $sql = "SELECT
-
 
95
                        v.*
-
 
96
                    FROM
-
 
97
                        shippings v
-
 
98
                    JOIN
-
 
99
                        shipping_countries vl
-
 
100
                    ON
-
 
101
                        vl.shipping_id=v.id
-
 
102
                    WHERE
-
 
103
                        shipping_group_id=" . $vgId . "
-
 
104
                    AND
-
 
105
                        status = 0
-
 
106
                    AND
-
 
107
                        country_id=" . $Land . "
-
 
108
                ";
-
 
109
                if ( isset( $_SESSION["SHOP"]["vIsland"] ) && $_SESSION["SHOP"]["vIsland"] )
-
 
110
                {
-
 
111
                    //Insel ausgewählt ==> Versandoption darf NICHT auf "kein Inselversand (Wert: 1) stehen!
-
 
112
                    $sqlCondArr [] = " island_shipping IN (0,2) ";
-
 
113
                }
-
 
114
                else
-
 
115
                {
-
 
116
                    $sqlCondArr [] = " island_shipping IN (0,1) ";
-
 
117
                }
-
 
118
                if ( $sqlCondArr )
-
 
119
                {
-
 
120
                    $sqlCond = implode( " AND ", $sqlCondArr );
-
 
121
                    $sql .= "
-
 
122
                        AND
-
 
123
                            " . $sqlCond . "
-
 
124
                    ";
-
 
125
                }
-
 
126
                $vR = DB::select( $sql );
-
 
127
                if ( !count($vR) )
-
 
128
                {
-
 
129
                    $_SESSION["versandFehler"] = "Wir versenden NICHT an diese Adresse! Bitte geben Sie eine andere Adresse ein!";
-
 
130
                }
-
 
131
                foreach( $vR as $vRow )
-
 
132
                {
-
 
133
 
-
 
134
                    if ( $param == "single" )
-
 
135
                    {
-
 
136
                        if ( $vRow->name && $_SESSION['SHOP']['BASKET']->paymentInfo["Total"] )
-
 
137
                        {
-
 
138
                            $summeInklVersand = $vRow->price + $_SESSION['SHOP']['BASKET']->paymentInfo["Total"];
-
 
139
                            $vkSummeLaender['price'] = $vRow->price;
-
 
140
                            $vkSummeLaender['name'] = $vRow->name;
-
 
141
                            $fmt = new NumberFormatter( "de_DE.UTF-8", NumberFormatter::CURRENCY );
-
 
142
                            $vkSummeLaender['price_formatted'] = $fmt->formatCurrency( $vRow->price, "EUR" );
-
 
143
                            $vkSummeLaender['summe_formatted'] = $fmt->formatCurrency( $summeInklVersand, "EUR" );
-
 
144
                        }
-
 
145
                        else
-
 
146
                        {
-
 
147
                            echo "<div class=''>Fehler: Keine Versandart gefunden!</div>\n";
-
 
148
                        }
-
 
149
 
-
 
150
 
-
 
151
                        return true;
-
 
152
                    }
-
 
153
 
-
 
154
                    if ( $vRow->zusaetze )
-
 
155
                    {
-
 
156
                        $vRow->zusaetze = unserialize( $vRow->zusaetze );
-
 
157
                    }
-
 
158
 
-
 
159
                    $sql = "SELECT
-
 
160
                            z.id,
-
 
161
                            z.name,
-
 
162
                            z.internal_name,
-
 
163
                            z.abschlag,
-
 
164
                            z.shipping_text AS versandtextbaustein,
-
 
165
                            z.info_im_shop
-
 
166
                        FROM
-
 
167
                            shipping_payments vz
-
 
168
                        JOIN
-
 
169
                            payment_methods z
-
 
170
                        ON
-
 
171
                            z.id=vz.zahlart_id
-
 
172
                        WHERE
-
 
173
                            shipping_id=" . $vRow->id . "
-
 
174
                    ";
-
 
175
                    if ( ( $_GET['vRufname'] ) && is_numeric( $_GET['vRufname'] ) )
-
 
176
                    {
-
 
177
                        $sql .= " AND z.id = " . $_GET['vRufname'];
-
 
178
                    }
-
 
179
                    $zR = DB::select( $sql );
-
 
180
                    foreach( $zR as $zRow )
-
 
181
                    {
-
 
182
                        if ( $zRow->internal_name != "nicht_belegt" )
-
 
183
                        {
-
 
184
                            $ini_name = $zRow->internal_name;
-
 
185
                            if ( $ini_name == "sofortueberweisung" )
-
 
186
                            {
-
 
187
                                $ini_name = "ueberweisung";
-
 
188
                            }
-
 
189
                            if ( $GLOBALS["INI"]["PayPalPlus"]["aktiv"] != 1 )
-
 
190
                            {
-
 
191
                                $row["beschr"] = ( str_replace( "\r\n", "<br>", $row["beschr"] ) );
-
 
192
                            }
-
 
193
                            if ( ( $GLOBALS["INI"][ $ini_name ]["aktiv"] == 1 && $_SESSION["zahlarten"][ $ini_name ] !== false ) || !in_array( $zRow->internal_name, $GLOBALS["zahlsysteme"] ) )
-
 
194
                            {
-
 
195
                                $preis = $vRow->price;
-
 
196
                                $name = $vRow->name . " - " . $zRow->name;
-
 
197
                                if ( $_SESSION["SHOP"]["Lieferadresse"] == "abholung" )
-
 
198
                                {
-
 
199
                                    $name = "Abholung - " . $zRow->name;
-
 
200
                                    $preis = 0;
-
 
201
                                }
-
 
202
                                $beschreibung = $zRow->info_im_shop;
-
 
203
                                if ( $beschreibung && $vRow->info_shop )
-
 
204
                                {
-
 
205
                                    $beschreibung .= "<br/><br/>";
-
 
206
                                }
-
 
207
                                if ( $vRow->info_shop )
-
 
208
                                {
-
 
209
                                    $beschreibung .= $vRow->info_shop;
-
 
210
                                }
-
 
211
                                $beschreibung2 = $zRow->versandtextbaustein;
-
 
212
                                if ( $beschreibung2 && $row->versandtextbaustein )
-
 
213
                                {
-
 
214
                                    $beschreibung2 .= "<br><br/>";
-
 
215
                                }
-
 
216
                                if ( $row->versandtextbaustein )
-
 
217
                                {
-
 
218
                                    $beschreibung2 .= $row->versandtextbaustein;
-
 
219
                                }
-
 
220
                                if ( $beschreibung2 && $vRow->info_mail )
-
 
221
                                {
-
 
222
                                    $beschreibung2 .= "<br/><br/>";
-
 
223
                                }
-
 
224
                                if ( $vRow->info_mail )
-
 
225
                                {
-
 
226
                                    $beschreibung2 .= $vRow->info_mail;
-
 
227
                                }
-
 
228
                                $buffer[ $zRow->internal_name . "_" . $vRow->id ] = array(
-
 
229
                                    "zusaetze"         => $vRow->zusaetze,
-
 
230
                                    "ID"               => $zRow->internal_name . "_" . $vRow->id,
-
 
231
                                    "beschreibung"     => $beschreibung,
-
 
232
                                    "beschreibung2"    => $beschreibung2,
-
 
233
                                    "kurz"             => $name,
-
 
234
                                    "ultrakurz"        => $zRow->name,
-
 
235
                                    "preis"            => $preis,
-
 
236
                                    "gesamt"           => $preis,
-
 
237
                                    "rufname"          => $zRow->internal_name,
-
 
238
                                    "versand_abschlag" => $zRow->abschlag,
-
 
239
                                    "versandgruppe"    => $vgId,
-
 
240
                                    //"zahlart_index"    => $row->zahlart_index,
-
 
241
                                );
-
 
242
 
-
 
243
                            }
-
 
244
                        }
-
 
245
 
-
 
246
                    }
-
 
247
                    if ( is_countable( $vRow->zusaetze ) )
-
 
248
                    {
-
 
249
                        $zusaetze = array();
-
 
250
                        foreach ( $vRow->zusaetze as $zId => $zusatz )
-
 
251
                        {
-
 
252
                            $sql = "SELECT
-
 
253
                                    beschreibung
-
 
254
                                FROM
-
 
255
                                    artikel
-
 
256
                                WHERE
-
 
257
                                    id=" . $zId . "
-
 
258
                            ";
-
 
259
                            $res = DB::select( $sql );
-
 
260
                            $row = $res[0];
-
 
261
                            $zusaetze[ $zId ] = $row->beschreibung;
-
 
262
                        }
-
 
263
                    }
-
 
264
                }
-
 
265
            }
-
 
266
            else
-
 
267
            {
-
 
268
                $sql = "
-
 
269
                    SELECT
-
 
270
                        v.*
-
 
271
                    FROM
-
 
272
                        shippings v
-
 
273
                    JOIN
-
 
274
                        shipping_countries vl
-
 
275
                    ON
-
 
276
                        vl.shipping_id=v.id    
-
 
277
                    WHERE
-
 
278
                        country_id=" . $Land . "
-
 
279
                ";
-
 
280
                $res = DB::select( $sql );
-
 
281
                foreach( $res as $vRow )
-
 
282
                {
-
 
283
                    $vgId = $vRow->versandgruppen_id;
-
 
284
                    $sql = "SELECT
-
 
285
                            z.name,
-
 
286
                            z.internal_name
-
 
287
                        FROM
-
 
288
                            payment_methods z
-
 
289
                        JOIN
-
 
290
                            shipping_payment_methods vz
-
 
291
                        ON
-
 
292
                            vz.payment_method_id=z.id
-
 
293
                        WHERE
-
 
294
                            vz.shipping_id=" . $vRow->id . "
-
 
295
                    ";
-
 
296
                    if ( ( $_GET['vRufname'] ) && is_numeric( $_GET['vRufname'] ) )
-
 
297
                    {
-
 
298
                        $sql .= " AND z.id = " . $_GET['vRufname'];
-
 
299
                    }
-
 
300
                    $resZ = DB::select( $sql );
-
 
301
                    foreach( $resZ as $vzRow )
-
 
302
                    {
-
 
303
                        if ( $vzRow->internal_name != "nicht_belegt" )
-
 
304
                        {
-
 
305
                            $ini_name = $vzRow->internal_name;
-
 
306
                            if ( $ini_name == "sofortueberweisung" )
-
 
307
                            {
-
 
308
                                $ini_name = "ueberweisung";
-
 
309
                            }
-
 
310
                            if ( $GLOBALS["INI"]["PayPalPlus"]["aktiv"] != 1 )
-
 
311
                            {
-
 
312
                                $row["beschr"] = ( str_replace( "\r\n", "<br>", $row["beschr"] ) );
-
 
313
                            }
-
 
314
                            if ( ( $GLOBALS["INI"][ $ini_name ]["aktiv"] == 1 && $_SESSION["zahlarten"][ $ini_name ] !== false ) || !in_array( $vzRow->internal_name, $GLOBALS["zahlsysteme"] ) )
-
 
315
                            {
-
 
316
                                $preis = $vRow->price;
-
 
317
                                $name = $vRow->name . " - " . $vzRow->name;
-
 
318
                                if ( $_SESSION["SHOP"]["Lieferadresse"] == "abholung" )
-
 
319
                                {
-
 
320
                                    $name = "Abholung - " . $vzRow->name;
-
 
321
                                    $preis = 0;
-
 
322
                                }
-
 
323
                                $beschreibung = $vzRow->info_im_shop;
-
 
324
                                if ( $beschreibung && $vRow->info_shop )
-
 
325
                                {
-
 
326
                                    $beschreibung .= "<br/><br/>";
-
 
327
                                }
-
 
328
                                if ( $vRow->info_shop )
-
 
329
                                {
-
 
330
                                    $beschreibung .= $vRow->info_shop;
-
 
331
                                }
-
 
332
                                $beschreibung2 = $vzRow->versandtextbaustein;
-
 
333
                                if ( $beschreibung2 && $vRow->versandtextbaustein )
-
 
334
                                {
-
 
335
                                    $beschreibung2 .= "<br><br/>";
-
 
336
                                }
-
 
337
                                if ( $vRow->versandtextbaustein )
-
 
338
                                {
-
 
339
                                    $beschreibung2 .= $vRow->versandtextbaustein;
-
 
340
                                }
-
 
341
                                if ( $beschreibung2 && $vRow->info_mail )
-
 
342
                                {
-
 
343
                                    $beschreibung2 .= "<br/><br/>";
-
 
344
                                }
-
 
345
                                if ( $vRow->info_mail )
-
 
346
                                {
-
 
347
                                    $beschreibung2 .= $vRow->info_mail;
-
 
348
                                }
-
 
349
                                $buffer[ $vzRow->internal_name . "_" . $vRow->id ] = array(
-
 
350
                                    "zusaetze"             => $vRow->zusaetze,
-
 
351
                                    "ID"                   => $vzRow->internal_name . "_" . $vRow->id,
-
 
352
                                    "beschreibung"         => $beschreibung,
-
 
353
                                    "beschreibung2"        => $beschreibung2,
-
 
354
                                    "kurz"                 => $name,
-
 
355
                                    "ultrakurz"            => $vzRow->name,
-
 
356
                                    "preis"                => $preis,
-
 
357
                                    "gesamt"               => $preis,
-
 
358
                                    "rufname"              => $vzRow->internal_name,
-
 
359
                                    "versand_abschlag"     => $vzRow->abschlag,
-
 
360
                                    "versandgruppe"        => $vgId,
-
 
361
                                    //"zahlart_index"        => $vRow->zahlart_index,
-
 
362
                                    "berechnung_preis_von" => $vRow->berechnung_preis_von,
-
 
363
                                    "berechnung_preis_bis" => $vRow->berechnung_preis_bis,
-
 
364
                                    "berechnung_kg_von"    => $vRow->berechnung_kg_von,
-
 
365
                                    "berechnung_kg_bis"    => $vRow->berechnung_kg_bis,
-
 
366
                                );
-
 
367
                            }
-
 
368
                        }
-
 
369
                    }
-
 
370
                }
-
 
371
                ksort( $buffer );
7
class ShippingController extends Controller
372
            }