CartPickupLocationManagement.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. /**
  3. * Refer to LICENSE.txt distributed with the Temando Shipping module for notice of license
  4. */
  5. namespace Temando\Shipping\Model\Delivery;
  6. use Magento\Framework\Exception\CouldNotSaveException;
  7. use Magento\Framework\Exception\NoSuchEntityException;
  8. use Magento\Quote\Model\ShippingAddressManagementInterface;
  9. use Temando\Shipping\Api\Checkout\CartPickupLocationManagementInterface as CheckoutCartPickupLocationManagement;
  10. use Temando\Shipping\Api\Data\Delivery\QuotePickupLocationInterface;
  11. use Temando\Shipping\Api\Delivery\CartPickupLocationManagementInterface;
  12. /**
  13. * Manage Pickup Location Searches
  14. *
  15. * @deprecated since 1.5.1
  16. * @see \Temando\Shipping\Model\Checkout\Delivery\CartPickupLocationManagement
  17. *
  18. * @package Temando\Shipping\Model
  19. * @author Sebastian Ertner <benjamin.heuer@netresearch.de>
  20. * @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
  21. * @link https://www.temando.com/
  22. */
  23. class CartPickupLocationManagement implements CartPickupLocationManagementInterface
  24. {
  25. /**
  26. * @var CheckoutCartPickupLocationManagement
  27. */
  28. private $cartPickupLocationManagement;
  29. /**
  30. * @var ShippingAddressManagementInterface
  31. */
  32. private $addressManagement;
  33. /**
  34. * @var PickupLocationManagement
  35. */
  36. private $pickupLocationManagement;
  37. /**
  38. * CartPickupLocationManagement constructor.
  39. *
  40. * @param CheckoutCartPickupLocationManagement $cartPickupLocationManagement
  41. * @param ShippingAddressManagementInterface $addressManagement
  42. * @param PickupLocationManagement $pickupLocationManagement
  43. */
  44. public function __construct(
  45. CheckoutCartPickupLocationManagement $cartPickupLocationManagement,
  46. ShippingAddressManagementInterface $addressManagement,
  47. PickupLocationManagement $pickupLocationManagement
  48. ) {
  49. $this->cartPickupLocationManagement = $cartPickupLocationManagement;
  50. $this->addressManagement = $addressManagement;
  51. $this->pickupLocationManagement = $pickupLocationManagement;
  52. }
  53. /**
  54. * @param int $cartId
  55. * @return QuotePickupLocationInterface[]
  56. */
  57. public function getPickupLocations($cartId)
  58. {
  59. return $this->cartPickupLocationManagement->getPickupLocations($cartId);
  60. }
  61. /**
  62. * @param int $cartId
  63. * @param int $entityId
  64. * @return bool
  65. * @throws CouldNotSaveException
  66. * @throws NoSuchEntityException
  67. */
  68. public function selectPickupLocation($cartId, $entityId)
  69. {
  70. $shippingAddress = $this->addressManagement->get($cartId);
  71. return $this->pickupLocationManagement->selectPickupLocation($shippingAddress->getId(), $entityId);
  72. }
  73. }