Item.php 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Model\Order\Creditmemo;
  7. use Magento\Framework\Api\AttributeValueFactory;
  8. use Magento\Sales\Api\Data\CreditmemoItemInterface;
  9. use Magento\Sales\Model\AbstractModel;
  10. /**
  11. * Creditmemo item model.
  12. *
  13. * @api
  14. * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  15. * @SuppressWarnings(PHPMD.ExcessivePublicCount)
  16. * @since 100.0.2
  17. */
  18. class Item extends AbstractModel implements CreditmemoItemInterface
  19. {
  20. /**
  21. * @var string
  22. */
  23. protected $_eventPrefix = 'sales_creditmemo_item';
  24. /**
  25. * @var string
  26. */
  27. protected $_eventObject = 'creditmemo_item';
  28. /**
  29. * @var \Magento\Sales\Model\Order\Creditmemo|null
  30. */
  31. protected $_creditmemo = null;
  32. /**
  33. * @var \Magento\Sales\Model\Order\Item|null
  34. */
  35. protected $_orderItem = null;
  36. /**
  37. * @var \Magento\Sales\Model\Order\ItemFactory
  38. */
  39. protected $_orderItemFactory;
  40. /**
  41. * @param \Magento\Framework\Model\Context $context
  42. * @param \Magento\Framework\Registry $registry
  43. * @param \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory
  44. * @param AttributeValueFactory $customAttributeFactory
  45. * @param \Magento\Sales\Model\Order\ItemFactory $orderItemFactory
  46. * @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
  47. * @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
  48. * @param array $data
  49. */
  50. public function __construct(
  51. \Magento\Framework\Model\Context $context,
  52. \Magento\Framework\Registry $registry,
  53. \Magento\Framework\Api\ExtensionAttributesFactory $extensionFactory,
  54. AttributeValueFactory $customAttributeFactory,
  55. \Magento\Sales\Model\Order\ItemFactory $orderItemFactory,
  56. \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
  57. \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
  58. array $data = []
  59. ) {
  60. parent::__construct(
  61. $context,
  62. $registry,
  63. $extensionFactory,
  64. $customAttributeFactory,
  65. $resource,
  66. $resourceCollection,
  67. $data
  68. );
  69. $this->_orderItemFactory = $orderItemFactory;
  70. }
  71. /**
  72. * Initialize resource model
  73. *
  74. * @return void
  75. */
  76. protected function _construct()
  77. {
  78. $this->_init(\Magento\Sales\Model\ResourceModel\Order\Creditmemo\Item::class);
  79. }
  80. /**
  81. * Declare creditmemo instance
  82. *
  83. * @param \Magento\Sales\Model\Order\Creditmemo $creditmemo
  84. * @return $this
  85. */
  86. public function setCreditmemo(\Magento\Sales\Model\Order\Creditmemo $creditmemo)
  87. {
  88. $this->_creditmemo = $creditmemo;
  89. return $this;
  90. }
  91. /**
  92. * Retrieve creditmemo instance
  93. *
  94. * @return \Magento\Sales\Model\Order\Creditmemo
  95. */
  96. public function getCreditmemo()
  97. {
  98. return $this->_creditmemo;
  99. }
  100. /**
  101. * Declare order item instance
  102. *
  103. * @param \Magento\Sales\Model\Order\Item $item
  104. * @return $this
  105. */
  106. public function setOrderItem(\Magento\Sales\Model\Order\Item $item)
  107. {
  108. $this->_orderItem = $item;
  109. $this->setOrderItemId($item->getId());
  110. return $this;
  111. }
  112. /**
  113. * Retrieve order item instance
  114. *
  115. * @return \Magento\Sales\Model\Order\Item
  116. */
  117. public function getOrderItem()
  118. {
  119. if ($this->_orderItem === null) {
  120. if ($this->getCreditmemo()) {
  121. $orderItem = $this->getCreditmemo()->getOrder()->getItemById($this->getOrderItemId());
  122. } else {
  123. $orderItem = $this->_orderItemFactory->create()->load($this->getOrderItemId());
  124. }
  125. $this->_orderItem = $orderItem;
  126. }
  127. return $this->_orderItem;
  128. }
  129. /**
  130. * Checks if quantity available for refund
  131. *
  132. * @param int $qty
  133. * @param \Magento\Sales\Model\Order\Item $orderItem
  134. * @return bool
  135. */
  136. private function isQtyAvailable($qty, \Magento\Sales\Model\Order\Item $orderItem)
  137. {
  138. return $qty <= $orderItem->getQtyToRefund() || $orderItem->isDummy();
  139. }
  140. /**
  141. * Declare qty
  142. *
  143. * @param float $qty
  144. * @return $this
  145. */
  146. public function setQty($qty)
  147. {
  148. $this->setData(CreditmemoItemInterface::QTY, $qty);
  149. return $this;
  150. }
  151. /**
  152. * Applying qty to order item
  153. *
  154. * @return \Magento\Sales\Model\Order\Creditmemo\Item
  155. */
  156. public function register()
  157. {
  158. $orderItem = $this->getOrderItem();
  159. $qty = $this->processQty();
  160. $orderItem->setQtyRefunded($orderItem->getQtyRefunded() + $qty);
  161. $orderItem->setTaxRefunded($orderItem->getTaxRefunded() + $this->getTaxAmount());
  162. $orderItem->setBaseTaxRefunded($orderItem->getBaseTaxRefunded() + $this->getBaseTaxAmount());
  163. $orderItem->setDiscountTaxCompensationRefunded(
  164. $orderItem->getDiscountTaxCompensationRefunded() + $this->getDiscountTaxCompensationAmount()
  165. );
  166. $orderItem->setBaseDiscountTaxCompensationRefunded(
  167. $orderItem->getBaseDiscountTaxCompensationRefunded() + $this->getBaseDiscountTaxCompensationAmount()
  168. );
  169. $orderItem->setAmountRefunded($orderItem->getAmountRefunded() + $this->getRowTotal());
  170. $orderItem->setBaseAmountRefunded($orderItem->getBaseAmountRefunded() + $this->getBaseRowTotal());
  171. $orderItem->setDiscountRefunded($orderItem->getDiscountRefunded() + $this->getDiscountAmount());
  172. $orderItem->setBaseDiscountRefunded($orderItem->getBaseDiscountRefunded() + $this->getBaseDiscountAmount());
  173. return $this;
  174. }
  175. /**
  176. * Calculate qty for creditmemo item.
  177. *
  178. * @return int|float
  179. * @throws \Magento\Framework\Exception\LocalizedException
  180. */
  181. private function processQty()
  182. {
  183. $orderItem = $this->getOrderItem();
  184. $qty = $this->getQty();
  185. if ($orderItem->getIsQtyDecimal()) {
  186. $qty = (double)$qty;
  187. } else {
  188. $qty = (int)$qty;
  189. }
  190. $qty = $qty > 0 ? $qty : 0;
  191. if ($this->isQtyAvailable($qty, $orderItem)) {
  192. return $qty;
  193. } else {
  194. throw new \Magento\Framework\Exception\LocalizedException(
  195. __('We found an invalid quantity to refund item "%1".', $this->getName())
  196. );
  197. }
  198. }
  199. /**
  200. * Cancel creaditmemeo item.
  201. *
  202. * @return $this
  203. */
  204. public function cancel()
  205. {
  206. $qty = $this->processQty();
  207. $this->getOrderItem()->setQtyRefunded($this->getOrderItem()->getQtyRefunded() - $qty);
  208. $this->getOrderItem()->setTaxRefunded(
  209. $this->getOrderItem()->getTaxRefunded() -
  210. $this->getOrderItem()->getBaseTaxAmount() *
  211. $qty /
  212. $this->getOrderItem()->getQtyOrdered()
  213. );
  214. $this->getOrderItem()->setDiscountTaxCompensationRefunded(
  215. $this->getOrderItem()->getDiscountTaxCompensationRefunded() -
  216. $this->getOrderItem()->getDiscountTaxCompensationAmount() *
  217. $qty /
  218. $this->getOrderItem()->getQtyOrdered()
  219. );
  220. return $this;
  221. }
  222. /**
  223. * Invoice item row total calculation
  224. *
  225. * @return $this
  226. */
  227. public function calcRowTotal()
  228. {
  229. $creditmemo = $this->getCreditmemo();
  230. $orderItem = $this->getOrderItem();
  231. $orderItemQtyInvoiced = $orderItem->getQtyInvoiced();
  232. $rowTotal = $orderItem->getRowInvoiced() - $orderItem->getAmountRefunded();
  233. $baseRowTotal = $orderItem->getBaseRowInvoiced() - $orderItem->getBaseAmountRefunded();
  234. $rowTotalInclTax = $orderItem->getRowTotalInclTax();
  235. $baseRowTotalInclTax = $orderItem->getBaseRowTotalInclTax();
  236. $qty = $this->processQty();
  237. if (!$this->isLast() && $orderItemQtyInvoiced > 0 && $qty >= 0) {
  238. $availableQty = $orderItemQtyInvoiced - $orderItem->getQtyRefunded();
  239. $rowTotal = $creditmemo->roundPrice($rowTotal / $availableQty * $qty);
  240. $baseRowTotal = $creditmemo->roundPrice($baseRowTotal / $availableQty * $qty, 'base');
  241. }
  242. $this->setRowTotal($rowTotal);
  243. $this->setBaseRowTotal($baseRowTotal);
  244. if ($rowTotalInclTax && $baseRowTotalInclTax) {
  245. $orderItemQty = $orderItem->getQtyOrdered();
  246. $this->setRowTotalInclTax(
  247. $creditmemo->roundPrice($rowTotalInclTax / $orderItemQty * $qty, 'including')
  248. );
  249. $this->setBaseRowTotalInclTax(
  250. $creditmemo->roundPrice($baseRowTotalInclTax / $orderItemQty * $qty, 'including_base')
  251. );
  252. }
  253. return $this;
  254. }
  255. /**
  256. * Checking if the item is last
  257. *
  258. * @return bool
  259. */
  260. public function isLast()
  261. {
  262. $orderItem = $this->getOrderItem();
  263. $qty = $this->processQty();
  264. if ((string)(double)$qty == (string)(double)$orderItem->getQtyToRefund()) {
  265. return true;
  266. }
  267. return false;
  268. }
  269. /**
  270. * Returns additional_data
  271. *
  272. * @return string|null
  273. */
  274. public function getAdditionalData()
  275. {
  276. return $this->getData(CreditmemoItemInterface::ADDITIONAL_DATA);
  277. }
  278. /**
  279. * Returns base_cost
  280. *
  281. * @return float
  282. */
  283. public function getBaseCost()
  284. {
  285. return $this->getData(CreditmemoItemInterface::BASE_COST);
  286. }
  287. /**
  288. * Returns base_discount_amount
  289. *
  290. * @return float|null
  291. */
  292. public function getBaseDiscountAmount()
  293. {
  294. return $this->getData(CreditmemoItemInterface::BASE_DISCOUNT_AMOUNT);
  295. }
  296. /**
  297. * Returns base_discount_tax_compensation_amount
  298. *
  299. * @return float|null
  300. */
  301. public function getBaseDiscountTaxCompensationAmount()
  302. {
  303. return $this->getData(CreditmemoItemInterface::BASE_DISCOUNT_TAX_COMPENSATION_AMOUNT);
  304. }
  305. /**
  306. * Returns base_price
  307. *
  308. * @return float
  309. */
  310. public function getBasePrice()
  311. {
  312. return $this->getData(CreditmemoItemInterface::BASE_PRICE);
  313. }
  314. /**
  315. * Returns base_price_incl_tax
  316. *
  317. * @return float|null
  318. */
  319. public function getBasePriceInclTax()
  320. {
  321. return $this->getData(CreditmemoItemInterface::BASE_PRICE_INCL_TAX);
  322. }
  323. /**
  324. * Returns base_row_total
  325. *
  326. * @return float|null
  327. */
  328. public function getBaseRowTotal()
  329. {
  330. return $this->getData(CreditmemoItemInterface::BASE_ROW_TOTAL);
  331. }
  332. /**
  333. * Returns base_row_total_incl_tax
  334. *
  335. * @return float|null
  336. */
  337. public function getBaseRowTotalInclTax()
  338. {
  339. return $this->getData(CreditmemoItemInterface::BASE_ROW_TOTAL_INCL_TAX);
  340. }
  341. /**
  342. * Returns base_tax_amount
  343. *
  344. * @return float|null
  345. */
  346. public function getBaseTaxAmount()
  347. {
  348. return $this->getData(CreditmemoItemInterface::BASE_TAX_AMOUNT);
  349. }
  350. /**
  351. * Returns base_weee_tax_applied_amount
  352. *
  353. * @return float|null
  354. */
  355. public function getBaseWeeeTaxAppliedAmount()
  356. {
  357. return $this->getData(CreditmemoItemInterface::BASE_WEEE_TAX_APPLIED_AMOUNT);
  358. }
  359. /**
  360. * Returns base_weee_tax_applied_row_amnt
  361. *
  362. * @return float|null
  363. */
  364. public function getBaseWeeeTaxAppliedRowAmnt()
  365. {
  366. return $this->getData(CreditmemoItemInterface::BASE_WEEE_TAX_APPLIED_ROW_AMNT);
  367. }
  368. /**
  369. * Returns base_weee_tax_disposition
  370. *
  371. * @return float|null
  372. */
  373. public function getBaseWeeeTaxDisposition()
  374. {
  375. return $this->getData(CreditmemoItemInterface::BASE_WEEE_TAX_DISPOSITION);
  376. }
  377. /**
  378. * Returns base_weee_tax_row_disposition
  379. *
  380. * @return float|null
  381. */
  382. public function getBaseWeeeTaxRowDisposition()
  383. {
  384. return $this->getData(CreditmemoItemInterface::BASE_WEEE_TAX_ROW_DISPOSITION);
  385. }
  386. /**
  387. * Returns description
  388. *
  389. * @return string|null
  390. */
  391. public function getDescription()
  392. {
  393. return $this->getData(CreditmemoItemInterface::DESCRIPTION);
  394. }
  395. /**
  396. * Returns discount_amount
  397. *
  398. * @return float|null
  399. */
  400. public function getDiscountAmount()
  401. {
  402. return $this->getData(CreditmemoItemInterface::DISCOUNT_AMOUNT);
  403. }
  404. /**
  405. * Returns discount_tax_compensation_amount
  406. *
  407. * @return float|null
  408. */
  409. public function getDiscountTaxCompensationAmount()
  410. {
  411. return $this->getData(CreditmemoItemInterface::DISCOUNT_TAX_COMPENSATION_AMOUNT);
  412. }
  413. /**
  414. * Returns name
  415. *
  416. * @return string|null
  417. */
  418. public function getName()
  419. {
  420. return $this->getData(CreditmemoItemInterface::NAME);
  421. }
  422. /**
  423. * Returns order_item_id
  424. *
  425. * @return int
  426. */
  427. public function getOrderItemId()
  428. {
  429. return $this->getData(CreditmemoItemInterface::ORDER_ITEM_ID);
  430. }
  431. /**
  432. * Returns parent_id
  433. *
  434. * @return int|null
  435. */
  436. public function getParentId()
  437. {
  438. return $this->getData(CreditmemoItemInterface::PARENT_ID);
  439. }
  440. /**
  441. * Returns price
  442. *
  443. * @return float|null
  444. */
  445. public function getPrice()
  446. {
  447. return $this->getData(CreditmemoItemInterface::PRICE);
  448. }
  449. /**
  450. * Returns price_incl_tax
  451. *
  452. * @return float|null
  453. */
  454. public function getPriceInclTax()
  455. {
  456. return $this->getData(CreditmemoItemInterface::PRICE_INCL_TAX);
  457. }
  458. /**
  459. * Returns product_id
  460. *
  461. * @return int|null
  462. */
  463. public function getProductId()
  464. {
  465. return $this->getData(CreditmemoItemInterface::PRODUCT_ID);
  466. }
  467. /**
  468. * Returns qty
  469. *
  470. * @return float
  471. */
  472. public function getQty()
  473. {
  474. return $this->getData(CreditmemoItemInterface::QTY);
  475. }
  476. /**
  477. * Returns row_total
  478. *
  479. * @return float|null
  480. */
  481. public function getRowTotal()
  482. {
  483. return $this->getData(CreditmemoItemInterface::ROW_TOTAL);
  484. }
  485. /**
  486. * Returns row_total_incl_tax
  487. *
  488. * @return float|null
  489. */
  490. public function getRowTotalInclTax()
  491. {
  492. return $this->getData(CreditmemoItemInterface::ROW_TOTAL_INCL_TAX);
  493. }
  494. /**
  495. * Returns sku
  496. *
  497. * @return string|null
  498. */
  499. public function getSku()
  500. {
  501. return $this->getData(CreditmemoItemInterface::SKU);
  502. }
  503. /**
  504. * Returns tax_amount
  505. *
  506. * @return float|null
  507. */
  508. public function getTaxAmount()
  509. {
  510. return $this->getData(CreditmemoItemInterface::TAX_AMOUNT);
  511. }
  512. /**
  513. * Returns weee_tax_applied
  514. *
  515. * @return string|null
  516. */
  517. public function getWeeeTaxApplied()
  518. {
  519. return $this->getData(CreditmemoItemInterface::WEEE_TAX_APPLIED);
  520. }
  521. /**
  522. * Returns weee_tax_applied_amount
  523. *
  524. * @return float|null
  525. */
  526. public function getWeeeTaxAppliedAmount()
  527. {
  528. return $this->getData(CreditmemoItemInterface::WEEE_TAX_APPLIED_AMOUNT);
  529. }
  530. /**
  531. * Returns weee_tax_applied_row_amount
  532. *
  533. * @return float|null
  534. */
  535. public function getWeeeTaxAppliedRowAmount()
  536. {
  537. return $this->getData(CreditmemoItemInterface::WEEE_TAX_APPLIED_ROW_AMOUNT);
  538. }
  539. /**
  540. * Returns weee_tax_disposition
  541. *
  542. * @return float|null
  543. */
  544. public function getWeeeTaxDisposition()
  545. {
  546. return $this->getData(CreditmemoItemInterface::WEEE_TAX_DISPOSITION);
  547. }
  548. /**
  549. * Returns weee_tax_row_disposition
  550. *
  551. * @return float|null
  552. */
  553. public function getWeeeTaxRowDisposition()
  554. {
  555. return $this->getData(CreditmemoItemInterface::WEEE_TAX_ROW_DISPOSITION);
  556. }
  557. //@codeCoverageIgnoreStart
  558. /**
  559. * @inheritdoc
  560. */
  561. public function setParentId($id)
  562. {
  563. return $this->setData(CreditmemoItemInterface::PARENT_ID, $id);
  564. }
  565. /**
  566. * @inheritdoc
  567. */
  568. public function setBasePrice($price)
  569. {
  570. return $this->setData(CreditmemoItemInterface::BASE_PRICE, $price);
  571. }
  572. /**
  573. * @inheritdoc
  574. */
  575. public function setTaxAmount($amount)
  576. {
  577. return $this->setData(CreditmemoItemInterface::TAX_AMOUNT, $amount);
  578. }
  579. /**
  580. * @inheritdoc
  581. */
  582. public function setBaseRowTotal($amount)
  583. {
  584. return $this->setData(CreditmemoItemInterface::BASE_ROW_TOTAL, $amount);
  585. }
  586. /**
  587. * @inheritdoc
  588. */
  589. public function setDiscountAmount($amount)
  590. {
  591. return $this->setData(CreditmemoItemInterface::DISCOUNT_AMOUNT, $amount);
  592. }
  593. /**
  594. * @inheritdoc
  595. */
  596. public function setRowTotal($amount)
  597. {
  598. return $this->setData(CreditmemoItemInterface::ROW_TOTAL, $amount);
  599. }
  600. /**
  601. * @inheritdoc
  602. */
  603. public function setBaseDiscountAmount($amount)
  604. {
  605. return $this->setData(CreditmemoItemInterface::BASE_DISCOUNT_AMOUNT, $amount);
  606. }
  607. /**
  608. * @inheritdoc
  609. */
  610. public function setPriceInclTax($amount)
  611. {
  612. return $this->setData(CreditmemoItemInterface::PRICE_INCL_TAX, $amount);
  613. }
  614. /**
  615. * @inheritdoc
  616. */
  617. public function setBaseTaxAmount($amount)
  618. {
  619. return $this->setData(CreditmemoItemInterface::BASE_TAX_AMOUNT, $amount);
  620. }
  621. /**
  622. * @inheritdoc
  623. */
  624. public function setBasePriceInclTax($amount)
  625. {
  626. return $this->setData(CreditmemoItemInterface::BASE_PRICE_INCL_TAX, $amount);
  627. }
  628. /**
  629. * @inheritdoc
  630. */
  631. public function setBaseCost($baseCost)
  632. {
  633. return $this->setData(CreditmemoItemInterface::BASE_COST, $baseCost);
  634. }
  635. /**
  636. * @inheritdoc
  637. */
  638. public function setPrice($price)
  639. {
  640. return $this->setData(CreditmemoItemInterface::PRICE, $price);
  641. }
  642. /**
  643. * @inheritdoc
  644. */
  645. public function setBaseRowTotalInclTax($amount)
  646. {
  647. return $this->setData(CreditmemoItemInterface::BASE_ROW_TOTAL_INCL_TAX, $amount);
  648. }
  649. /**
  650. * @inheritdoc
  651. */
  652. public function setRowTotalInclTax($amount)
  653. {
  654. return $this->setData(CreditmemoItemInterface::ROW_TOTAL_INCL_TAX, $amount);
  655. }
  656. /**
  657. * @inheritdoc
  658. */
  659. public function setProductId($id)
  660. {
  661. return $this->setData(CreditmemoItemInterface::PRODUCT_ID, $id);
  662. }
  663. /**
  664. * @inheritdoc
  665. */
  666. public function setOrderItemId($id)
  667. {
  668. return $this->setData(CreditmemoItemInterface::ORDER_ITEM_ID, $id);
  669. }
  670. /**
  671. * @inheritdoc
  672. */
  673. public function setAdditionalData($additionalData)
  674. {
  675. return $this->setData(CreditmemoItemInterface::ADDITIONAL_DATA, $additionalData);
  676. }
  677. /**
  678. * @inheritdoc
  679. */
  680. public function setDescription($description)
  681. {
  682. return $this->setData(CreditmemoItemInterface::DESCRIPTION, $description);
  683. }
  684. /**
  685. * @inheritdoc
  686. */
  687. public function setSku($sku)
  688. {
  689. return $this->setData(CreditmemoItemInterface::SKU, $sku);
  690. }
  691. /**
  692. * @inheritdoc
  693. */
  694. public function setName($name)
  695. {
  696. return $this->setData(CreditmemoItemInterface::NAME, $name);
  697. }
  698. /**
  699. * @inheritdoc
  700. */
  701. public function setDiscountTaxCompensationAmount($amount)
  702. {
  703. return $this->setData(CreditmemoItemInterface::DISCOUNT_TAX_COMPENSATION_AMOUNT, $amount);
  704. }
  705. /**
  706. * @inheritdoc
  707. */
  708. public function setBaseDiscountTaxCompensationAmount($amount)
  709. {
  710. return $this->setData(CreditmemoItemInterface::BASE_DISCOUNT_TAX_COMPENSATION_AMOUNT, $amount);
  711. }
  712. /**
  713. * @inheritdoc
  714. */
  715. public function setWeeeTaxDisposition($weeeTaxDisposition)
  716. {
  717. return $this->setData(CreditmemoItemInterface::WEEE_TAX_DISPOSITION, $weeeTaxDisposition);
  718. }
  719. /**
  720. * @inheritdoc
  721. */
  722. public function setWeeeTaxRowDisposition($weeeTaxRowDisposition)
  723. {
  724. return $this->setData(CreditmemoItemInterface::WEEE_TAX_ROW_DISPOSITION, $weeeTaxRowDisposition);
  725. }
  726. /**
  727. * @inheritdoc
  728. */
  729. public function setBaseWeeeTaxDisposition($baseWeeeTaxDisposition)
  730. {
  731. return $this->setData(CreditmemoItemInterface::BASE_WEEE_TAX_DISPOSITION, $baseWeeeTaxDisposition);
  732. }
  733. /**
  734. * @inheritdoc
  735. */
  736. public function setBaseWeeeTaxRowDisposition($baseWeeeTaxRowDisposition)
  737. {
  738. return $this->setData(CreditmemoItemInterface::BASE_WEEE_TAX_ROW_DISPOSITION, $baseWeeeTaxRowDisposition);
  739. }
  740. /**
  741. * @inheritdoc
  742. */
  743. public function setWeeeTaxApplied($weeeTaxApplied)
  744. {
  745. return $this->setData(CreditmemoItemInterface::WEEE_TAX_APPLIED, $weeeTaxApplied);
  746. }
  747. /**
  748. * @inheritdoc
  749. */
  750. public function setBaseWeeeTaxAppliedAmount($amount)
  751. {
  752. return $this->setData(CreditmemoItemInterface::BASE_WEEE_TAX_APPLIED_AMOUNT, $amount);
  753. }
  754. /**
  755. * @inheritdoc
  756. */
  757. public function setBaseWeeeTaxAppliedRowAmnt($amnt)
  758. {
  759. return $this->setData(CreditmemoItemInterface::BASE_WEEE_TAX_APPLIED_ROW_AMNT, $amnt);
  760. }
  761. /**
  762. * @inheritdoc
  763. */
  764. public function setWeeeTaxAppliedAmount($amount)
  765. {
  766. return $this->setData(CreditmemoItemInterface::WEEE_TAX_APPLIED_AMOUNT, $amount);
  767. }
  768. /**
  769. * @inheritdoc
  770. */
  771. public function setWeeeTaxAppliedRowAmount($amount)
  772. {
  773. return $this->setData(CreditmemoItemInterface::WEEE_TAX_APPLIED_ROW_AMOUNT, $amount);
  774. }
  775. /**
  776. * @inheritdoc
  777. *
  778. * @return \Magento\Sales\Api\Data\CreditmemoItemExtensionInterface|null
  779. */
  780. public function getExtensionAttributes()
  781. {
  782. return $this->_getExtensionAttributes();
  783. }
  784. /**
  785. * @inheritdoc
  786. *
  787. * @param \Magento\Sales\Api\Data\CreditmemoItemExtensionInterface $extensionAttributes
  788. * @return $this
  789. */
  790. public function setExtensionAttributes(
  791. \Magento\Sales\Api\Data\CreditmemoItemExtensionInterface $extensionAttributes
  792. ) {
  793. return $this->_setExtensionAttributes($extensionAttributes);
  794. }
  795. //@codeCoverageIgnoreEnd
  796. }