mirror of
https://github.com/kevin-DL/LaravelShoppingcart.git
synced 2026-01-24 07:55:35 +00:00
Further fixes
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -3,4 +3,5 @@ composer.phar
|
|||||||
composer.lock
|
composer.lock
|
||||||
.DS_Store
|
.DS_Store
|
||||||
coverage.xml
|
coverage.xml
|
||||||
.phpunit.result.cache
|
.phpunit.result.cache
|
||||||
|
/.vscode
|
||||||
@@ -611,7 +611,7 @@ class DefaultCalculator implements Calculator
|
|||||||
{
|
{
|
||||||
public static function getAttribute(string $attribute, CartItem $cartItem)
|
public static function getAttribute(string $attribute, CartItem $cartItem)
|
||||||
{
|
{
|
||||||
$decimals = config('cart.format.decimals', 2);
|
$decimals = Config::get('cart.format.decimals', 2);
|
||||||
|
|
||||||
switch ($attribute) {
|
switch ($attribute) {
|
||||||
case 'discount':
|
case 'discount':
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ class Cart
|
|||||||
{
|
{
|
||||||
$this->session = $session;
|
$this->session = $session;
|
||||||
$this->events = $events;
|
$this->events = $events;
|
||||||
$this->taxRate = config('cart.tax');
|
$this->taxRate = Config::get('cart.tax');
|
||||||
|
|
||||||
$this->instance(self::DEFAULT_INSTANCE);
|
$this->instance(self::DEFAULT_INSTANCE);
|
||||||
}
|
}
|
||||||
@@ -747,7 +747,7 @@ class Cart
|
|||||||
*/
|
*/
|
||||||
private static function getTableName(): string
|
private static function getTableName(): string
|
||||||
{
|
{
|
||||||
return config('cart.database.table', 'shoppingcart');
|
return Config::get('cart.database.table', 'shoppingcart');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -755,9 +755,9 @@ class Cart
|
|||||||
*/
|
*/
|
||||||
private function getConnectionName(): ?string
|
private function getConnectionName(): ?string
|
||||||
{
|
{
|
||||||
$connection = config('cart.database.connection');
|
$connection = Config::get('cart.database.connection');
|
||||||
|
|
||||||
return is_null($connection) ? config('database.default') : $connection;
|
return is_null($connection) ? Config::get('database.default') : $connection;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ use Illuminate\Contracts\Support\Arrayable;
|
|||||||
use Illuminate\Contracts\Support\Jsonable;
|
use Illuminate\Contracts\Support\Jsonable;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Support\Arr;
|
use Illuminate\Support\Arr;
|
||||||
|
use Illuminate\Support\Facades\Config;
|
||||||
use Money\Money;
|
use Money\Money;
|
||||||
use Money\Formatter\DecimalMoneyFormatter;
|
use Money\Formatter\DecimalMoneyFormatter;
|
||||||
use Money\Currencies\ISOCurrencies;
|
use Money\Currencies\ISOCurrencies;
|
||||||
@@ -164,8 +165,8 @@ class CartItem implements Arrayable, Jsonable
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This will is the price of the CartItem considering the set quantity. If you need the raw price
|
* This will is the price of the CartItem considering the set quantity. If you need the single
|
||||||
* then simply access the price member.
|
* price just set the parameter to true.
|
||||||
*/
|
*/
|
||||||
public function price(): Money
|
public function price(): Money
|
||||||
{
|
{
|
||||||
@@ -180,9 +181,9 @@ class CartItem implements Arrayable, Jsonable
|
|||||||
public function discount(): Money
|
public function discount(): Money
|
||||||
{
|
{
|
||||||
if ($this->discount instanceof Money) {
|
if ($this->discount instanceof Money) {
|
||||||
return $this->price()->subtract($this->discountRate);
|
return $this->price()->subtract($this->discount);
|
||||||
} else {
|
} else {
|
||||||
return $this->price()->multiply($this->discountRate, config('cart.rounding', Money::ROUND_UP));
|
return $this->price()->multiply($this->discount, Config::get('cart.rounding', Money::ROUND_UP));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,7 +201,7 @@ class CartItem implements Arrayable, Jsonable
|
|||||||
*/
|
*/
|
||||||
public function tax(): Money
|
public function tax(): Money
|
||||||
{
|
{
|
||||||
return $this->subtotal()->multiply($this->taxRate + 1, config('cart.rounding', Money::ROUND_UP));
|
return $this->subtotal()->multiply($this->taxRate + 1, Config::get('cart.rounding', Money::ROUND_UP));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ class CreateShoppingcartTable extends Migration
|
|||||||
*/
|
*/
|
||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
Schema::create(config('cart.database.table'), function (Blueprint $table) {
|
Schema::create(Config::get('cart.database.table'), function (Blueprint $table) {
|
||||||
$table->string('identifier');
|
$table->string('identifier');
|
||||||
$table->string('instance');
|
$table->string('instance');
|
||||||
$table->longText('content');
|
$table->longText('content');
|
||||||
@@ -26,6 +26,6 @@ class CreateShoppingcartTable extends Migration
|
|||||||
*/
|
*/
|
||||||
public function down()
|
public function down()
|
||||||
{
|
{
|
||||||
Schema::drop(config('cart.database.table'));
|
Schema::drop(Config::get('cart.database.table'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -951,14 +951,10 @@ class CartTest extends TestCase
|
|||||||
$cart->setTax('027c91341fd5cf4d2579b49c4b6a90da', 19);
|
$cart->setTax('027c91341fd5cf4d2579b49c4b6a90da', 19);
|
||||||
|
|
||||||
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->price);
|
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->price);
|
||||||
$this->assertEquals(new Money(500, new Currency('USD')), $cartItem->discount);
|
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->discount());
|
||||||
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->discountTotal);
|
$this->assertEquals(new Money(500, new Currency('USD')), $cartItem->subtotal());
|
||||||
$this->assertEquals(new Money(500, new Currency('USD')), $cartItem->priceTarget);
|
$this->assertEquals(new Money(190, new Currency('USD')), $cartItem->tax());
|
||||||
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->subtotal);
|
$this->assertEquals(new Money(1190, new Currency('USD')), $cartItem->total());
|
||||||
$this->assertEquals(new Money(95, new Currency('USD')), $cartItem->tax);
|
|
||||||
$this->assertEquals(new Money(190, new Currency('USD')), $cartItem->taxTotal);
|
|
||||||
$this->assertEquals(new Money(595, new Currency('USD')), $cartItem->priceTax);
|
|
||||||
$this->assertEquals(new Money(1190, new Currency('USD')), $cartItem->total);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
@@ -976,14 +972,10 @@ class CartTest extends TestCase
|
|||||||
$cart->setTax('027c91341fd5cf4d2579b49c4b6a90da', 19);
|
$cart->setTax('027c91341fd5cf4d2579b49c4b6a90da', 19);
|
||||||
|
|
||||||
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->price);
|
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->price);
|
||||||
$this->assertEquals(new Money(500, new Currency('USD')), $cartItem->discount);
|
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->discount());
|
||||||
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->discountTotal);
|
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->subtotal());
|
||||||
$this->assertEquals(new Money(500, new Currency('USD')), $cartItem->priceTarget);
|
$this->assertEquals(new Money(190, new Currency('USD')), $cartItem->tax());
|
||||||
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->subtotal);
|
$this->assertEquals(new Money(1190, new Currency('USD')), $cartItem->total());
|
||||||
$this->assertEquals(new Money(95, new Currency('USD')), $cartItem->tax);
|
|
||||||
$this->assertEquals(new Money(190, new Currency('USD')), $cartItem->taxTotal);
|
|
||||||
$this->assertEquals(new Money(595, new Currency('USD')), $cartItem->priceTax);
|
|
||||||
$this->assertEquals(new Money(1190, new Currency('USD')), $cartItem->total);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
@@ -1004,14 +996,10 @@ class CartTest extends TestCase
|
|||||||
$cart->setTax('027c91341fd5cf4d2579b49c4b6a90da', 19);
|
$cart->setTax('027c91341fd5cf4d2579b49c4b6a90da', 19);
|
||||||
|
|
||||||
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->price);
|
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->price);
|
||||||
$this->assertEquals(new Money(500, new Currency('USD')), $cartItem->discount);
|
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->discount());
|
||||||
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->discountTotal);
|
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->subtotal());
|
||||||
$this->assertEquals(new Money(500, new Currency('USD')), $cartItem->priceTarget);
|
$this->assertEquals(new Money(190, new Currency('USD')), $cartItem->tax());
|
||||||
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->subtotal);
|
$this->assertEquals(new Money(1190, new Currency('USD')), $cartItem->total());
|
||||||
$this->assertEquals(new Money(95, new Currency('USD')), $cartItem->tax);
|
|
||||||
$this->assertEquals(new Money(190, new Currency('USD')), $cartItem->taxTotal);
|
|
||||||
$this->assertEquals(new Money(595, new Currency('USD')), $cartItem->priceTax);
|
|
||||||
$this->assertEquals(new Money(1190, new Currency('USD')), $cartItem->total);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
@@ -1027,7 +1015,7 @@ class CartTest extends TestCase
|
|||||||
|
|
||||||
$cartItem = $cart->get('027c91341fd5cf4d2579b49c4b6a90da');
|
$cartItem = $cart->get('027c91341fd5cf4d2579b49c4b6a90da');
|
||||||
|
|
||||||
$this->assertEquals(new Money(2000, new Currency('USD')), $cartItem->total);
|
$this->assertEquals(new Money(2000, new Currency('USD')), $cartItem->total());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
@@ -1044,7 +1032,7 @@ class CartTest extends TestCase
|
|||||||
|
|
||||||
$cartItem = $cart->get('027c91341fd5cf4d2579b49c4b6a90da');
|
$cartItem = $cart->get('027c91341fd5cf4d2579b49c4b6a90da');
|
||||||
|
|
||||||
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->total);
|
$this->assertEquals(new Money(1000, new Currency('USD')), $cartItem->total());
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
|
|||||||
Reference in New Issue
Block a user