diff --git a/src/Extension/ConvertOrderItemsExtension.php b/src/Extension/ConvertOrderItemsExtension.php index f4fe1aa..ffdf52d 100644 --- a/src/Extension/ConvertOrderItemsExtension.php +++ b/src/Extension/ConvertOrderItemsExtension.php @@ -13,6 +13,7 @@ use CoreShop\Component\Pimcore\Templating\Helper\LinkGeneratorHelperInterface; use CoreShop\Component\Product\Model\ProductInterface; use CoreShop\Component\Taxation\Model\TaxItemInterface; +use Doctrine\ORM\Mapping as ORM; use Mollie\Api\Types\OrderLineType; use Pimcore\Model\Asset; use Pimcore\Model\DataObject\Fieldcollection; @@ -20,19 +21,17 @@ class ConvertOrderItemsExtension extends AbstractConvertOrderExtension { - /** - * @var int|float - */ - protected $decimalFactor; - /** - * @var LinkGeneratorHelperInterface - */ - protected $linkGeneratorHelper; + protected int $decimalFactor; - public function __construct(LinkGeneratorHelperInterface $linkGeneratorHelper, $decimalFactor) + protected LinkGeneratorHelperInterface $linkGeneratorHelper; + + private int $decimalPrecision; + + public function __construct(LinkGeneratorHelperInterface $linkGeneratorHelper, int $decimalFactor, int $decimalPrecision) { $this->decimalFactor = $decimalFactor; $this->linkGeneratorHelper = $linkGeneratorHelper; + $this->decimalPrecision = $decimalPrecision; } /** @@ -252,10 +251,12 @@ protected function transformOrderItemToLineItem(OrderItemInterface $orderItem, $ * * @return string[] */ - protected function transformMoneyWithCurrency(int $amount, string $currencyCode) + protected function transformMoneyWithCurrency(int $amount, string $currencyCode): array { + $value = (int)round((round($amount / $this->decimalFactor, $this->decimalPrecision) * 100), 0); + return [ - 'value' => sprintf("%01.2f", ($amount / $this->decimalFactor)), + 'value' => sprintf("%01.2f", ($value / 100)), 'currency' => $currencyCode ]; } diff --git a/src/Resources/config/services/extensions.yml b/src/Resources/config/services/extensions.yml index 7682c53..b7097cd 100644 --- a/src/Resources/config/services/extensions.yml +++ b/src/Resources/config/services/extensions.yml @@ -12,6 +12,7 @@ services: arguments: - '@CoreShop\Component\Pimcore\Templating\Helper\LinkGeneratorHelper' - '%coreshop.currency.decimal_factor%' + - '%coreshop.currency.decimal_precision%' tags: - { name: payum.extension, alias: mollie_order_items_extension, factory: mollie, gateway: mollie, prepend: false }