class Rounder in Price 3.x
Same name and namespace in other branches
- 8 src/Rounder.php \Drupal\price\Rounder
- 2.0.x src/Rounder.php \Drupal\price\Rounder
- 2.x src/Rounder.php \Drupal\price\Rounder
- 3.0.x src/Rounder.php \Drupal\price\Rounder
Hierarchy
- class \Drupal\price\Rounder implements RounderInterface
Expanded class hierarchy of Rounder
1 string reference to 'Rounder'
1 service uses Rounder
File
- src/
Rounder.php, line 7
Namespace
Drupal\priceView source
class Rounder implements RounderInterface {
/**
* The currency storage.
*
* @var \Drupal\Core\Entity\EntityStorageInterface
*/
protected $currencyStorage;
/**
* Constructs a new Rounder object.
*
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
* The entity type manager.
*/
public function __construct(EntityTypeManagerInterface $entity_type_manager) {
$this->currencyStorage = $entity_type_manager
->getStorage('price_currency');
}
/**
* {@inheritdoc}
*/
public function round(Price $price, $mode = PHP_ROUND_HALF_UP) {
$currency_code = $price
->getCurrencyCode();
/** @var \Drupal\price\Entity\CurrencyInterface $currency */
$currency = $this->currencyStorage
->load($currency_code);
if (!$currency) {
throw new \InvalidArgumentException(sprintf('Could not load the "%s" currency.', $currency_code));
}
$rounded_number = Calculator::round($price
->getNumber(), $currency
->getFractionDigits(), $mode);
return new Price($rounded_number, $currency_code);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Rounder:: |
protected | property | The currency storage. | |
Rounder:: |
public | function |
Rounds the given price to its currency precision. Overrides RounderInterface:: |
|
Rounder:: |
public | function | Constructs a new Rounder object. |