fix falsy format numbers

This commit is contained in:
jorge
2016-09-07 15:05:06 -04:00
parent 95b46c59dd
commit b313f8af43
3 changed files with 32 additions and 20 deletions

View File

@@ -531,9 +531,15 @@ class Cart
*/ */
private function numberFormat($value, $decimals, $decimalPoint, $thousandSeperator) private function numberFormat($value, $decimals, $decimalPoint, $thousandSeperator)
{ {
$decimals = $decimals ?: config('cart.format.decimals') ?: 2; if(is_null($decimals)){
$decimalPoint = $decimalPoint ?: config('cart.format.decimal_point') ?: '.'; $decimals = is_null(config('cart.format.decimals')) ? 2 : config('cart.format.decimals');
$thousandSeperator = $thousandSeperator ?: config('cart.format.thousand_seperator') ?: ','; }
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_seperator')) ? ',' : config('cart.format.thousand_seperator');
}
return number_format($value, $decimals, $decimalPoint, $thousandSeperator); return number_format($value, $decimals, $decimalPoint, $thousandSeperator);
} }

View File

@@ -360,9 +360,15 @@ class CartItem implements Arrayable
*/ */
private function numberFormat($value, $decimals, $decimalPoint, $thousandSeperator) private function numberFormat($value, $decimals, $decimalPoint, $thousandSeperator)
{ {
$decimals = $decimals ?: config('cart.format.decimals') ?: 2; if(is_null($decimals)){
$decimalPoint = $decimalPoint ?: config('cart.format.decimal_point') ?: '.'; $decimals = is_null(config('cart.format.decimals')) ? 2 : config('cart.format.decimals');
$thousandSeperator = $thousandSeperator ?: config('cart.format.thousand_seperator') ?: ','; }
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_seperator')) ? ',' : config('cart.format.thousand_seperator');
}
return number_format($value, $decimals, $decimalPoint, $thousandSeperator); return number_format($value, $decimals, $decimalPoint, $thousandSeperator);
} }

View File

@@ -789,13 +789,13 @@ class CartTest extends Orchestra\Testbench\TestCase
$cart->add($item, 1); $cart->add($item, 1);
$cart->add($item2, 2); $cart->add($item2, 2);
$this->assertEquals('5.000,00', $cart->subtotal(2, ',', '.')); $this->assertEquals('5000,00', $cart->subtotal(2, ',', ''));
} }
/** @test */ /** @test */
public function it_can_return_cart_formated_numbers_by_config_values() public function it_can_return_cart_formated_numbers_by_config_values()
{ {
$this->setConfigFormat(2, ',', '.'); $this->setConfigFormat(2, ',', '');
$cart = $this->getCart(); $cart = $this->getCart();
@@ -805,19 +805,19 @@ class CartTest extends Orchestra\Testbench\TestCase
$cart->add($item, 1); $cart->add($item, 1);
$cart->add($item2, 2); $cart->add($item2, 2);
$this->assertEquals('5.000,00', $cart->subtotal()); $this->assertEquals('5000,00', $cart->subtotal());
$this->assertEquals('1.050,00', $cart->tax()); $this->assertEquals('1050,00', $cart->tax());
$this->assertEquals('6.050,00', $cart->total()); $this->assertEquals('6050,00', $cart->total());
$this->assertEquals('5.000,00', $cart->subtotal); $this->assertEquals('5000,00', $cart->subtotal);
$this->assertEquals('1.050,00', $cart->tax); $this->assertEquals('1050,00', $cart->tax);
$this->assertEquals('6.050,00', $cart->total); $this->assertEquals('6050,00', $cart->total);
} }
/** @test */ /** @test */
public function it_can_return_cartItem_formated_numbers_by_config_values() public function it_can_return_cartItem_formated_numbers_by_config_values()
{ {
$this->setConfigFormat(2, ',', '.'); $this->setConfigFormat(2, ',', '');
$cart = $this->getCart(); $cart = $this->getCart();
$item = $this->getBuyableMock(1, 'Some title', 2000.00); $item = $this->getBuyableMock(1, 'Some title', 2000.00);
@@ -826,10 +826,10 @@ class CartTest extends Orchestra\Testbench\TestCase
$cartItem = $cart->get('027c91341fd5cf4d2579b49c4b6a90da'); $cartItem = $cart->get('027c91341fd5cf4d2579b49c4b6a90da');
$this->assertEquals('2.000,00', $cartItem->price()); $this->assertEquals('2000,00', $cartItem->price());
$this->assertEquals('2.420,00', $cartItem->priceTax()); $this->assertEquals('2420,00', $cartItem->priceTax());
$this->assertEquals('4.000,00', $cartItem->subtotal()); $this->assertEquals('4000,00', $cartItem->subtotal());
$this->assertEquals('4.840,00', $cartItem->total()); $this->assertEquals('4840,00', $cartItem->total());
$this->assertEquals('420,00', $cartItem->tax()); $this->assertEquals('420,00', $cartItem->tax());
$this->assertEquals('840,00', $cartItem->taxTotal()); $this->assertEquals('840,00', $cartItem->taxTotal());
} }
@@ -857,7 +857,7 @@ class CartTest extends Orchestra\Testbench\TestCase
$this->seeInDatabase('shoppingcart', ['identifier' => $identifier, 'instance' => 'default', 'content' => $serialized]); $this->seeInDatabase('shoppingcart', ['identifier' => $identifier, 'instance' => 'default', 'content' => $serialized]);
} }
/** /**
* @test * @test
* @expectedException \Gloudemans\Shoppingcart\Exceptions\CartAlreadyStoredException * @expectedException \Gloudemans\Shoppingcart\Exceptions\CartAlreadyStoredException
* @expectedExceptionMessage A cart with identifier 123 was already stored. * @expectedExceptionMessage A cart with identifier 123 was already stored.