6 declare(strict_types=1);
17 use Magento\Inventory\Model\ResourceModel\SourceCarrierLink\CollectionFactory;
29 private $resourceConnection;
34 private $sourceCarrierLinkResource;
39 private $collectionProcessor;
44 private $carrierLinkCollectionFactory;
49 private $searchCriteriaBuilder;
62 CollectionFactory $carrierLinkCollectionFactory,
66 $this->sourceCarrierLinkResource = $sourceCarrierLinkResource;
67 $this->collectionProcessor = $collectionProcessor;
68 $this->carrierLinkCollectionFactory = $carrierLinkCollectionFactory;
77 $this->deleteCurrentCarrierLinks(
$source);
79 $carrierLinks =
$source->getCarrierLinks();
80 if (
null !== $carrierLinks && count($carrierLinks)) {
81 $this->saveNewCarrierLinks(
$source);
91 $connection = $this->resourceConnection->getConnection();
102 private function saveNewCarrierLinks(SourceInterface
$source)
104 $carrierLinkData = [];
105 foreach (
$source->getCarrierLinks() as $carrierLink) {
106 $carrierLinkData[] = [
107 'source_code' =>
$source->getSourceCode(),
113 $this->resourceConnection->getConnection()->insertMultiple(
129 $collection = $this->carrierLinkCollectionFactory->create();
saveCarrierLinksBySource(SourceInterface $source)
__construct(ResourceConnection $resourceConnection, SourceCarrierLinkResourceModel $sourceCarrierLinkResource, CollectionProcessorInterface $collectionProcessor, CollectionFactory $carrierLinkCollectionFactory, SearchCriteriaBuilder $searchCriteriaBuilder)
loadCarrierLinksBySource(SourceInterface $source)
const TABLE_NAME_SOURCE_CARRIER_LINK