/** * Modify Currency Format * * @param PriceCurrency $subject Price Currency Object * @param \Closure $proceed Closure * @param float $amount Price Amount * @param bool $includeContainer Include Container Flag * @param int $precision Precision digits * @param null $scope Data scope * @param null $currency Currency Code * * @return mixed */ public function aroundFormat(PriceCurrency $subject, \Closure $proceed, $amount, $includeContainer = true, $precision = \Magento\Directory\Model\PriceCurrency::DEFAULT_PRECISION, $scope = null, $currency = null) { if ($subject->getCurrency()->getCode() == 'JPY') { $precision = '0'; return $subject->getCurrency($scope, $currency)->formatPrecision($amount, $precision, [], $includeContainer); } return $proceed($amount, $includeContainer, $precision, $scope, $currency); }
/** * Modify rounding method * * @param PriceCurrency $subject Price Currency * @param \Closure $proceed Closure * @param float $amount Price * @param int $precision Currency precision * * @return mixed */ public function aroundRound(PriceCurrency $subject, \Closure $proceed, $amount, $precision = 2) { if ($subject->getCurrency()->getCode() == 'JPY') { /** * Rounding method * * @var string $method rounding method */ $method = $this->helper->getRoundMethod(); if ($method != 'round') { return $method($amount); } } return $proceed($amount, $precision); }