Relation.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Model\ResourceModel\Order\Creditmemo;
  7. use Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface;
  8. /**
  9. * Class Relation
  10. */
  11. class Relation implements RelationInterface
  12. {
  13. /**
  14. * @var Item
  15. */
  16. protected $creditmemoItemResource;
  17. /**
  18. * @var Comment
  19. */
  20. protected $creditmemoCommentResource;
  21. /**
  22. * @param Item $creditmemoItemResource
  23. * @param Comment $creditmemoCommentResource
  24. */
  25. public function __construct(
  26. \Magento\Sales\Model\ResourceModel\Order\Creditmemo\Item $creditmemoItemResource,
  27. \Magento\Sales\Model\ResourceModel\Order\Creditmemo\Comment $creditmemoCommentResource
  28. ) {
  29. $this->creditmemoItemResource = $creditmemoItemResource;
  30. $this->creditmemoCommentResource = $creditmemoCommentResource;
  31. }
  32. /**
  33. * Process relations for CreditMemo
  34. *
  35. * @param \Magento\Framework\Model\AbstractModel $object
  36. * @throws \Exception
  37. * @return void
  38. */
  39. public function processRelation(\Magento\Framework\Model\AbstractModel $object)
  40. {
  41. /** @var \Magento\Sales\Model\Order\Creditmemo $object */
  42. if (null !== $object->getItems()) {
  43. foreach ($object->getItems() as $item) {
  44. $item->setParentId($object->getId());
  45. $this->creditmemoItemResource->save($item);
  46. }
  47. }
  48. if (null !== $object->getComments()) {
  49. foreach ($object->getComments() as $comment) {
  50. $this->creditmemoCommentResource->save($comment);
  51. }
  52. }
  53. }
  54. }