Further fixes

This commit is contained in:
Patrick Henninger
2022-02-06 00:27:03 +01:00
parent c3d33a37f6
commit 66d23444b2
6 changed files with 29 additions and 39 deletions

1
.gitignore vendored
View File

@@ -4,3 +4,4 @@ composer.lock
.DS_Store .DS_Store
coverage.xml coverage.xml
.phpunit.result.cache .phpunit.result.cache
/.vscode

View File

@@ -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':

View File

@@ -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;
} }
/** /**

View File

@@ -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));
} }
/** /**

View File

@@ -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'));
} }
} }

View File

@@ -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 */