12 use Magento\Sales\Api\Data\OrderExtensionFactory;
13 use Magento\Sales\Api\Data\OrderExtensionInterface;
15 use Magento\Sales\Api\Data\OrderSearchResultInterfaceFactory as SearchResultFactory;
41 private $orderExtensionFactory;
46 private $shippingAssignmentBuilder;
51 private $collectionProcessor;
70 \
Magento\Sales\Api\Data\OrderExtensionFactory $orderExtensionFactory =
null 77 ->get(\
Magento\Sales\Api\Data\OrderExtensionFactory::class);
88 public function get(
$id)
93 if (!isset($this->registry[
$id])) {
95 $entity = $this->metadata->getNewInstance()->load(
$id);
97 throw new NoSuchEntityException(
98 __(
"The entity that was requested doesn't exist. Verify the entity and try again.")
101 $this->setShippingAssignments(
$entity);
104 return $this->registry[
$id];
116 $searchResult = $this->searchResultFactory->create();
119 foreach ($searchResult->getItems() as
$order) {
120 $this->setShippingAssignments(
$order);
122 return $searchResult;
133 $this->metadata->getMapper()->delete(
$entity);
134 unset($this->registry[
$entity->getEntityId()]);
162 if (!empty($shippingAssignments)) {
163 $shipping = array_shift($shippingAssignments)->getShipping();
164 $entity->setShippingAddress($shipping->getAddress());
165 $entity->setShippingMethod($shipping->getMethod());
168 $this->metadata->getMapper()->save(
$entity);
170 return $this->registry[
$entity->getEntityId()];
177 private function setShippingAssignments(OrderInterface
$order)
188 $shippingAssignments = $this->getShippingAssignmentBuilderDependency();
189 $shippingAssignments->setOrderId(
$order->getEntityId());
200 private function getShippingAssignmentBuilderDependency()
202 if (!$this->shippingAssignmentBuilder instanceof ShippingAssignmentBuilder) {
204 \
Magento\Sales\Model\Order\ShippingAssignmentBuilder::class
207 return $this->shippingAssignmentBuilder;
220 \
Magento\Framework\Api\Search\FilterGroup $filterGroup,
221 \
Magento\Sales\Api\Data\OrderSearchResultInterface $searchResult
225 foreach ($filterGroup->getFilters() as $filter) {
226 $condition = $filter->getConditionType() ? $filter->getConditionType() :
'eq';
227 $conditions[] = [$condition => $filter->getValue()];
228 $fields[] = $filter->getField();
231 $searchResult->addFieldToFilter(
$fields, $conditions);
elseif(isset( $params[ 'redirect_parent']))
addFilterGroupToCollection(\Magento\Framework\Api\Search\FilterGroup $filterGroup, \Magento\Sales\Api\Data\OrderSearchResultInterface $searchResult)
getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
save(\Magento\Sales\Api\Data\OrderInterface $entity)
__construct(Metadata $metadata, SearchResultFactory $searchResultFactory, CollectionProcessorInterface $collectionProcessor=null, \Magento\Sales\Api\Data\OrderExtensionFactory $orderExtensionFactory=null)