diff --git a/src/Cart.php b/src/Cart.php index 25f925a..ed4368d 100644 --- a/src/Cart.php +++ b/src/Cart.php @@ -110,7 +110,8 @@ class Cart */ public function add($id, $name = null, $qty = null, $price = null, array $options = []) { - if ($this->isMulti($id)) { + if ($this->isMulti($id)) + { return array_map(function ($item) { return $this->add($item); }, $id); @@ -139,9 +140,8 @@ class Cart $content = $this->getContent(); - if ($content->has($item->rowId)) { + if ($content->has($item->rowId)) $item->qty += $content->get($item->rowId)->qty; - } $content->put($item->rowId, $item); @@ -163,31 +163,33 @@ class Cart { $cartItem = $this->get($rowId); - if ($qty instanceof Buyable) { + if ($qty instanceof Buyable) $cartItem->updateFromBuyable($qty); - } elseif (is_array($qty)) { + elseif (is_array($qty)) $cartItem->updateFromArray($qty); - } else { + else $cartItem->qty = $qty; - } $content = $this->getContent(); - if ($rowId !== $cartItem->rowId) { + if ($rowId !== $cartItem->rowId) + { $content->pull($rowId); - if ($content->has($cartItem->rowId)) { + if ($content->has($cartItem->rowId)) + { $existingCartItem = $this->get($cartItem->rowId); $cartItem->setQuantity($existingCartItem->qty + $cartItem->qty); } } - if ($cartItem->qty <= 0) { + if ($cartItem->qty <= 0) + { $this->remove($cartItem->rowId); return; - } else { - $content->put($cartItem->rowId, $cartItem); } + else + $content->put($cartItem->rowId, $cartItem); $this->events->fire('cart.updated', $cartItem); @@ -248,10 +250,8 @@ class Cart */ public function content() { - if (is_null($this->session->get($this->instance))) { + if (is_null($this->session->get($this->instance))) return new Collection([]); - } - return $this->session->get($this->instance); } @@ -445,9 +445,8 @@ class Cart */ public function associate($rowId, $model) { - if(is_string($model) && ! class_exists($model)) { + if(is_string($model) && ! class_exists($model)) throw new UnknownModelException("The supplied model {$model} does not exist."); - } $cartItem = $this->get($rowId); @@ -491,7 +490,8 @@ class Cart $this->taxRate = $taxRate; $content = $this->getContent(); - if ($content && $content->count()) { + if ($content && $content->count()) + { $content->each(function ($item, $key) { $item->setTaxRate($this->taxRate); }); @@ -529,7 +529,8 @@ class Cart $this->discount = $discount; $content = $this->getContent(); - if ($content && $content->count()) { + if ($content && $content->count()) + { $content->each(function ($item, $key) { $item->setDiscountRate($this->discount); }); @@ -546,9 +547,8 @@ class Cart { $content = $this->getContent(); - if ($this->storedCartWithIdentifierExists($identifier)) { + if ($this->storedCartWithIdentifierExists($identifier)) throw new CartAlreadyStoredException("A cart with identifier {$identifier} was already stored."); - } $this->getConnection()->table($this->getTableName())->insert([ 'identifier' => $identifier, @@ -567,9 +567,8 @@ class Cart */ public function restore($identifier) { - if( ! $this->storedCartWithIdentifierExists($identifier)) { + if( ! $this->storedCartWithIdentifierExists($identifier)) return; - } $stored = $this->getConnection()->table($this->getTableName()) ->where('identifier', $identifier)->first(); @@ -606,18 +605,16 @@ class Cart */ public function merge( $identifier, $keepDiscount = false, $keepTax = false ) { - if( ! $this->storedCartWithIdentifierExists($identifier)) { + if( ! $this->storedCartWithIdentifierExists($identifier)) return false; - } $stored = $this->getConnection()->table($this->getTableName()) ->where('identifier', $identifier)->first(); $storedContent = unserialize($stored->content); - foreach ($storedContent as $cartItem) { + foreach ($storedContent as $cartItem) $this->addCartItem($cartItem, $keepDiscount, $keepTax); - } return true; } @@ -630,19 +627,17 @@ class Cart */ public function __get($attribute) { - if($attribute === 'total') { - return $this->total(); + switch($attribute) + { + case 'total': + return $this->total(); + case 'tax': + return $this->tax(); + case 'subtotal': + return $this->subtotal(); + default: + return null; } - - if($attribute === 'tax') { - return $this->tax(); - } - - if($attribute === 'subtotal') { - return $this->subtotal(); - } - - return null; } /** @@ -652,11 +647,9 @@ class Cart */ protected function getContent() { - $content = $this->session->has($this->instance) - ? $this->session->get($this->instance) - : new Collection; - - return $content; + if ($this->session->has($this->instance)) + return $this->session->get($this->instance); + return new Collection; } /** @@ -694,8 +687,8 @@ class Cart */ private function isMulti($item) { - if ( ! is_array($item)) return false; - + if ( ! is_array($item)) + return false; return is_array(head($item)) || head($item) instanceof Buyable; } @@ -715,9 +708,7 @@ class Cart */ private function getConnection() { - $connectionName = $this->getConnectionName(); - - return app(DatabaseManager::class)->connection($connectionName); + return app(DatabaseManager::class)->connection( $this->getConnectionName() ); } /** @@ -738,7 +729,6 @@ class Cart private function getConnectionName() { $connection = config('cart.database.connection'); - return is_null($connection) ? config('database.default') : $connection; } @@ -753,15 +743,14 @@ class Cart */ private function numberFormat($value, $decimals, $decimalPoint, $thousandSeperator) { - if(is_null($decimals)){ - $decimals = is_null(config('cart.format.decimals')) ? 2 : config('cart.format.decimals'); - } - if(is_null($decimalPoint)){ - $decimalPoint = is_null(config('cart.format.decimal_point')) ? '.' : config('cart.format.decimal_point'); - } - if(is_null($thousandSeperator)){ - $thousandSeperator = is_null(config('cart.format.thousand_separator')) ? ',' : config('cart.format.thousand_separator'); - } + if(is_null($decimals)) + $decimals = config('cart.format.decimals', 2); + + if(is_null($decimalPoint)) + $decimalPoint = config('cart.format.decimal_point', '.'); + + if(is_null($thousandSeperator)) + $thousandSeperator = config('cart.format.thousand_separator', ','); return number_format($value, $decimals, $decimalPoint, $thousandSeperator); } diff --git a/src/CartItem.php b/src/CartItem.php index 188a8d6..1a3fc79 100644 --- a/src/CartItem.php +++ b/src/CartItem.php @@ -335,47 +335,43 @@ class CartItem implements Arrayable, Jsonable return $this->{$attribute}; } - if($attribute === 'discount') { - return $this->price * ($this->discountRate / 100); - } + switch($attribute) + { + case 'discount': + return $this->price * ($this->discountRate / 100); - if($attribute === 'priceTarget') { - return $this->price - $this->discount; - } + case 'priceTarget': + return $this->price - $this->discount; - if($attribute === 'subtotal') { - return $this->qty * $this->priceTarget; - } + case 'subtotal': + return $this->priceTarget * $this->qty; - if($attribute === 'tax') { - return $this->priceTarget * ($this->taxRate / 100); - } + case 'tax': + return $this->priceTarget * ($this->taxRate / 100); - if($attribute === 'priceTax') { - return $this->priceTarget + $this->tax; - } - - if($attribute === 'total') { - return $this->qty * $this->priceTax; - } - - if($attribute === 'taxTotal') { - return $this->tax * $this->qty; - } + case 'priceTax': + return $this->priceTarget + $this->tax; - if($attribute === 'discountTotal') { - return $this->discount * $this->qty; - } + case 'total': + return $this->priceTax * $this->qty; - if($attribute === 'weightTotal') { - return $this->qty * $this->weight; - } + case 'taxTotal': + return $this->tax * $this->qty; - if($attribute === 'model' && isset($this->associatedModel)) { - return with(new $this->associatedModel)->find($this->id); - } + case 'discountTotal': + return $this->discount * $this->qty; - return null; + case 'weightTotal': + return $this->weight * $this->qty; + + case 'model': + if (isset($this->associatedModel)) + return with(new $this->associatedModel)->find($this->id); + return null; + + default: + return null; + } } /** @@ -474,17 +470,14 @@ class CartItem implements Arrayable, Jsonable */ private function numberFormat($value, $decimals, $decimalPoint, $thousandSeperator) { - if (is_null($decimals)){ - $decimals = is_null(config('cart.format.decimals')) ? 2 : config('cart.format.decimals'); - } + if (is_null($decimals)) + $decimals = config('cart.format.decimals', 2); - if (is_null($decimalPoint)){ - $decimalPoint = is_null(config('cart.format.decimal_point')) ? '.' : config('cart.format.decimal_point'); - } + if (is_null($decimalPoint)) + $decimalPoint = config('cart.format.decimal_point', '.'); - if (is_null($thousandSeperator)){ - $thousandSeperator = is_null(config('cart.format.thousand_separator')) ? ',' : config('cart.format.thousand_separator'); - } + if (is_null($thousandSeperator)) + $thousandSeperator = config('cart.format.thousand_separator', ','); return number_format($value, $decimals, $decimalPoint, $thousandSeperator); }