Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 738 | Revision 741 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
381 lars 1
<?php
2
 
383 lars 3
    namespace App\Http\Controllers;
381 lars 4
 
719 lars 5
    use App\Models\Item as ItemAlias;
6
 
728 lars 7
    class BasketController extends Controller
383 lars 8
    {
713 lars 9
        public array $items         = array();
10
        public array $paymentInfo   = array();
11
        public array $shipmentCosts = array();
697 lars 12
 
714 lars 13
        public array $paymentMethods = array();
14
 
383 lars 15
        //
705 lars 16
        private function getPaymentInfo(): void
701 lars 17
        {
18
            $buffer = array(
19
                "itemAmt"      => array(
20
 
21
                    1 => 0.00,
22
                ),
23
                "itemAmtNetto" => array(
24
 
25
                    1 => 0.00,
26
                ),
27
                "itemTax"      => array(
28
 
29
                    1 => 0.00,
30
                ),
31
                "shipAmt"      => 0.00,
32
                "shipTax"      => array(
33
 
34
                    1 => 0.00,
35
                ),
36
                "Amt"          => 0.00,
37
                "Tax"          => 0.00,
38
                "Total"        => 0.00,
39
            );
40
            if ( $_SESSION["SHOP"]["BASKET"]->items )
41
            {
709 lars 42
                $Land = 47;
707 lars 43
                if ( ( isset( $_SESSION['SHOP']['Lieferadresse'] ) && $_SESSION['SHOP']['Lieferadresse'] == "true" ) || ( isset( $_GET["liefer"] ) && $_GET["liefer"] == 1 ) || isset( $_SESSION['SHOP']['buy']['Persdata']['liefer_Land'] ) )
701 lars 44
                {
45
                    $Land = $_SESSION['SHOP']['buy']['Persdata']['liefer_Land'];
46
                }
708 lars 47
                elseif ( isset( $_SESSION['SHOP']['buy']['Persdata']['Land'] ) )
701 lars 48
                {
49
                    $Land = $_SESSION['SHOP']['buy']['Persdata']['Land'];
50
                }
51
                if ( !isset( $GLOBALS["steuern"][$Land] ) )
52
                {
53
                    $Land = 47;
54
                }
55
                $taxArr = $GLOBALS["steuern"][$Land];
56
                foreach ( $_SESSION["SHOP"]["BASKET"]->items as $bItem )
57
                {
717 lars 58
                    if ( !$bItem->code )
701 lars 59
                    {
720 lars 60
                        $item = ItemAlias::find( $bItem->id );
701 lars 61
                        if ( !isset( $bItem->tax ) )
62
                        {
63
                            $bItem->tax = $item->tax1;
64
                        }
65
                        $tax = $taxArr[$bItem->tax];
66
                        $bPreis = $bItem->menge * $bItem->price;
67
                        $buffer["itemAmt"][$bItem->tax] += $bPreis;
68
                    }
69
                    else
70
                    {
71
                        $tax = 0;
72
                        $bPreis = $bItem->price;
73
                        $buffer["discount"] = $bPreis * -1;
74
                    }
725 lars 75
                    if ( isset( $GLOBALS["INI"]["netto_preise"] ) && $GLOBALS["INI"]["netto_preise"] )
701 lars 76
                    {
77
                        $buffer["itemTax"][$bItem->tax] += round( $bPreis * $tax / 100, 2 );
78
                    }
79
                    else
80
                    {
81
                        $buffer["itemTax"][$bItem->tax] += round( $bItem->price * $tax / ( 100 + $tax ), 2 ) * $bItem->menge;
82
                    }
83
                    $buffer["Amt"] += $bPreis;
84
                }
85
                if ( !( isset( $GLOBALS["INI"]["netto_preise"] ) && $GLOBALS["INI"]["netto_preise"] == 1 ) )
86
                {
87
                    foreach ( $buffer["itemTax"] as $tax => $amt )
88
                    {
89
                        $buffer["itemAmtNetto"][$tax] = $buffer["itemAmt"][$tax] - round( $amt, 2 );
90
                    }
91
                }
725 lars 92
                if ( isset( $_SESSION["SHOP"]["VERSAND"] ) && $_SESSION["SHOP"]["VERSAND"] )
701 lars 93
                {
94
                    $t = 1;
95
                    $bItem = $_SESSION["SHOP"]["VERSAND"];
96
                    $buffer["shipAmt"] = $bItem["preis"];
97
                    $buffer["Amt"] += $bItem["preis"];
98
                    if ( $GLOBALS["INI"]["netto_preise"] )
99
                    {
100
                        $netto = array_sum( $buffer["itemAmt"] );
101
                        $t = $buffer["itemAmt"][0] / $netto;
102
                    }
103
                    if ( !isset( $GLOBALS["steuern"][$Land] ) )
104
                    {
105
                        $Land = 47;
106
                    }
107
                    $taxArr = $GLOBALS["steuern"][$Land];
108
                    if ( $t == 1 )
109
                    {
110
                        $tax = $taxArr[0];
111
                        if ( $GLOBALS["INI"]["netto_preise"] )
112
                        {
113
                            $buffer["shipTax"][0] += $bItem->price * $tax / 100;
114
                        }
115
                        else
116
                        {
117
                            $buffer["shipTax"][0] += $bItem->price * $tax / ( 100 + $tax );
118
                        }
119
                    }
120
                    elseif ( $t == 0 )
121
                    {
122
                        $tax = $taxArr[1];
123
                        if ( $GLOBALS["INI"]["netto_preise"] )
124
                        {
125
                            $buffer["shipTax"][1] += $bItem->price * $tax / 100;
126
                        }
127
                        else
128
                        {
129
                            $buffer["shipTax"][1] += $bItem->price * $tax / ( 100 + $tax );
130
                        }
131
                    }
132
                    else
133
                    {
134
                        $tax = $taxArr[0];
725 lars 135
                        if ( isset( $GLOBALS["INI"]["netto_preise"] ) && $GLOBALS["INI"]["netto_preise"] )
701 lars 136
                        {
137
                            $buffer["shipTax"][0] += ( $bItem->price * $tax / 100 ) * $t;
138
                        }
139
                        else
140
                        {
141
                            $buffer["shipTax"][0] += ( $bItem->price * $tax / ( 100 + $tax ) ) * $t;
142
                        }
143
                        $tax = $taxArr[1];
725 lars 144
                        if ( isset( $GLOBALS["INI"]["netto_preise"] ) && $GLOBALS["INI"]["netto_preise"] )
701 lars 145
                        {
146
                            $buffer["shipTax"][1] += ( $bItem->price * $tax / 100 ) * ( 1 - $t );
147
                        }
148
                        else
149
                        {
150
                            $buffer["shipTax"][0] += ( $bItem->price * $tax / ( 100 + $tax ) ) * ( 1 - $t );
151
                        }
152
                    }
153
                }
154
                foreach ( $taxArr as $ind => $tax )
155
                {
156
                    $buffer["TaxRates"][$ind] = $tax;
157
                }
158
                $buffer["Tax"] = round( array_sum( $buffer["itemTax"] ) + array_sum( $buffer["shipTax"] ), 2 );
725 lars 159
                if ( isset( $GLOBALS["INI"]["netto_preise"] ) && $GLOBALS["INI"]["netto_preise"] )
701 lars 160
                {
161
                    $buffer["Total"] = round( $buffer["Amt"] + $buffer["Tax"], 2 );
162
                }
163
                else
164
                {
165
                    $buffer["Total"] = $buffer["Amt"];
166
                }
167
            }
705 lars 168
            $this->paymentInfo = $buffer;
701 lars 169
        }
383 lars 170
 
701 lars 171
        public function addItem()
656 lars 172
        {
668 lars 173
            $preis = 0;
705 lars 174
            if ( request( "preis" ) )
668 lars 175
            {
705 lars 176
                $preis = request( "preis" );
668 lars 177
            }
730 lars 178
            $bItem = new BasketItemController( \request( "Menge" ), $preis, \request( "item" ) );
670 lars 179
            $bItem->addinfo = "";
663 lars 180
            // addons aus konfigurator
705 lars 181
            $addon = \request( "addon" );
182
            if ( is_array( $addon ) )
663 lars 183
            {
705 lars 184
                foreach ( $addon as $itemID )
663 lars 185
                {
186
                    if ( $expl = explode( "#", $itemID ) )
187
                    {
188
                        if ( $expl[0] != 0 )
189
                        {
190
                            $itemID = $expl[0];
191
                        }
192
                    }
193
                    if ( is_numeric( $itemID ) )
194
                    {
740 lars 195
                        $aItem = new BasketItemController( 1, 0, $itemID );
670 lars 196
                        $bItem->addinfo .= "<br>" . $aItem->name;
663 lars 197
                    }
198
                }
199
            }
740 lars 200
            $key = sha1( $bItem->name.$bItem->addinfo );
738 lars 201
            if ( isset( $_SESSION["SHOP"]["BASKET"]->items[$key] ) )
202
            {
203
                $bItem->menge += $_SESSION["SHOP"]["BASKET"]->items[$key]->menge;
740 lars 204
	    }
205
	    dump($key);
731 lars 206
            $_SESSION["SHOP"]["BASKET"]->items[$key] = $bItem;
705 lars 207
            $this->getPaymentInfo();
713 lars 208
            $this->getShipmentCosts();
737 lars 209
	}
713 lars 210
 
737 lars 211
	public function editItem()
212
	{
213
	    $key = request( "id" );
214
	    $menge = request( "menge" );
215
	    $akt = request( "akt" );
216
	    if ( $akt == "add" )
217
	    {
218
                $_SESSION["SHOP"]["BASKET"]->items[$key]->menge += $menge;
219
	    }
220
	    elseif ( $akt == "sub" )
221
	    {
222
		if ( $menge < $_SESSION["SHOP"]["BASKET"]->items[$key]->menge )
223
		{
224
		    $_SESSION["SHOP"]["BASKET"]->items[$key]->menge -= $menge;
225
		}
226
		else
227
		{
228
		    unset( $_SESSION["SHOP"]["BASKET"]->items[$key] );
229
		}
230
	    }
231
	    else
232
	    {
233
                $_SESSION["SHOP"]["BASKET"]->items[$key]->menge = $menge;
234
	    }
235
            $this->getPaymentInfo();
236
            $this->getShipmentCosts();
237
	}
238
 
733 lars 239
        public function delItem()
240
        {
241
            $key = request( "id" );
242
            unset( $_SESSION["SHOP"]["BASKET"]->items[$key] );
736 lars 243
            $this->getPaymentInfo();
244
            $this->getShipmentCosts();
733 lars 245
        }
246
 
713 lars 247
        private function getShipmentCosts()
248
        {
249
            $buffer = array();
250
            $this->shipmentCosts = $buffer;
251
        }
383 lars 252
    }