lineItemFactory = $lineItemFactory; $this->config = $config; $this->classNameRepository = $classNameRepository; } /** * @inheritdoc */ public function process(RequestInterface $request, CreditmemoInterface $creditmemo) { $lineItems = $request->getLineItems(); $adjustmentPositive = $creditmemo->getBaseAdjustmentPositive(); // additional refund $adjustmentNegative = $creditmemo->getBaseAdjustmentNegative(); // fee if ($adjustmentPositive > 0) { $lineItem = $this->lineItemFactory->create(); $lineItem->setUnitPrice(-1 * $adjustmentPositive); $lineItem->setExtendedPrice(-1 * $adjustmentPositive); $lineItem->setQuantity(1); $lineItem->setProductCode($this->config->getCreditmemoAdjustmentPositiveCode($creditmemo->getStoreId())); $lineItem->setProductClass( $this->classNameRepository->getById( $this->config->getCreditmemoAdjustmentPositiveClass($creditmemo->getStoreId()) ) ); $lineItems[] = $lineItem; } if ($adjustmentNegative > 0) { $lineItem = $this->lineItemFactory->create(); $lineItem->setUnitPrice($adjustmentNegative); $lineItem->setExtendedPrice($adjustmentNegative); $lineItem->setQuantity(1); $lineItem->setProductCode($this->config->getCreditmemoAdjustmentFeeCode($creditmemo->getStoreId())); $lineItem->setProductClass( $this->classNameRepository->getById( $this->config->getCreditmemoAdjustmentFeeClass($creditmemo->getStoreId()) ) ); $lineItems[] = $lineItem; } $request->setLineItems($lineItems); return $request; } }