Collection.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Quote\Model\ResourceModel\Quote\Address\Item;
  7. /**
  8. * Quote addresses collection
  9. *
  10. * @author Magento Core Team <core@magentocommerce.com>
  11. */
  12. class Collection extends \Magento\Framework\Model\ResourceModel\Db\VersionControl\Collection
  13. {
  14. /**
  15. * Resource initialization
  16. *
  17. * @return void
  18. */
  19. protected function _construct()
  20. {
  21. $this->_init(
  22. \Magento\Quote\Model\Quote\Address\Item::class,
  23. \Magento\Quote\Model\ResourceModel\Quote\Address\Item::class
  24. );
  25. }
  26. /**
  27. * Set parent items
  28. *
  29. * @return $this
  30. */
  31. protected function _afterLoad()
  32. {
  33. parent::_afterLoad();
  34. /**
  35. * Assign parent items
  36. */
  37. foreach ($this as $item) {
  38. if ($item->getParentItemId()) {
  39. $item->setParentItem($this->getItemById($item->getParentItemId()));
  40. }
  41. }
  42. return $this;
  43. }
  44. /**
  45. * Set address filter
  46. *
  47. * @param int $addressId
  48. * @return $this
  49. */
  50. public function setAddressFilter($addressId)
  51. {
  52. if ($addressId) {
  53. $this->addFieldToFilter('quote_address_id', $addressId);
  54. } else {
  55. $this->_totalRecords = 0;
  56. $this->_setIsLoaded(true);
  57. }
  58. return $this;
  59. }
  60. }