ChangeOutputArray.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\Sales\Model\Order\Webapi;
  8. use Magento\Sales\Api\Data\OrderItemInterface;
  9. use Magento\Sales\Block\Adminhtml\Items\Column\DefaultColumn;
  10. use Magento\Sales\Block\Order\Item\Renderer\DefaultRenderer;
  11. /**
  12. * Class for changing row total in response.
  13. */
  14. class ChangeOutputArray
  15. {
  16. /**
  17. * @var DefaultColumn
  18. */
  19. private $priceRenderer;
  20. /**
  21. * @var DefaultRenderer
  22. */
  23. private $defaultRenderer;
  24. /**
  25. * @param DefaultColumn $priceRenderer
  26. * @param DefaultRenderer $defaultRenderer
  27. */
  28. public function __construct(
  29. DefaultColumn $priceRenderer,
  30. DefaultRenderer $defaultRenderer
  31. ) {
  32. $this->priceRenderer = $priceRenderer;
  33. $this->defaultRenderer = $defaultRenderer;
  34. }
  35. /**
  36. * Changing row total for webapi order item response.
  37. *
  38. * @param OrderItemInterface $dataObject
  39. * @param array $result
  40. * @return array
  41. */
  42. public function execute(
  43. OrderItemInterface $dataObject,
  44. array $result
  45. ): array {
  46. $result[OrderItemInterface::ROW_TOTAL] = $this->priceRenderer->getTotalAmount($dataObject);
  47. $result[OrderItemInterface::BASE_ROW_TOTAL] = $this->priceRenderer->getBaseTotalAmount($dataObject);
  48. $result[OrderItemInterface::ROW_TOTAL_INCL_TAX] = $this->defaultRenderer->getTotalAmount($dataObject);
  49. $result[OrderItemInterface::BASE_ROW_TOTAL_INCL_TAX] = $dataObject->getBaseRowTotal()
  50. + $dataObject->getBaseTaxAmount()
  51. + $dataObject->getBaseDiscountTaxCompensationAmount()
  52. + $dataObject->getBaseWeeeTaxAppliedAmount()
  53. - $dataObject->getBaseDiscountAmount();
  54. return $result;
  55. }
  56. }