protected function setLocks()
 {
     parent::setLocks();
     $params = $this->getParams();
     $alreadyLockedListings = array();
     $alreadyLockedParents = array();
     foreach ($this->getListingsProducts() as $listingProduct) {
         /** @var $listingProduct \Ess\M2ePro\Model\Listing\Product */
         $listingProduct->addProcessingLock(NULL, $this->getProcessingObject()->getId());
         $listingProduct->addProcessingLock('in_action', $this->getProcessingObject()->getId());
         $listingProduct->addProcessingLock($params['lock_identifier'] . '_action', $this->getProcessingObject()->getId());
         /** @var \Ess\M2ePro\Model\Amazon\Listing\Product $amazonListingProduct */
         $amazonListingProduct = $listingProduct->getChildObject();
         $variationManager = $amazonListingProduct->getVariationManager();
         if ($variationManager->isRelationChildType()) {
             $parentListingProduct = $variationManager->getTypeModel()->getParentListingProduct();
             if (isset($alreadyLockedParents[$parentListingProduct->getId()])) {
                 continue;
             }
             $parentListingProduct->addProcessingLock(NULL, $this->getProcessingObject()->getId());
             $parentListingProduct->addProcessingLock('child_products_in_action', $this->getProcessingObject()->getId());
             $alreadyLockedParents[$parentListingProduct->getId()] = true;
         }
         if (isset($alreadyLockedListings[$listingProduct->getListingId()])) {
             continue;
         }
         $listingProduct->getListing()->addProcessingLock(NULL, $this->getProcessingObject()->getId());
         $alreadyLockedListings[$listingProduct->getListingId()] = true;
     }
 }
 protected function setLocks()
 {
     parent::setLocks();
     $this->getListingProduct()->addProcessingLock(NULL, $this->getId());
     $this->getListingProduct()->addProcessingLock('in_action', $this->getId());
     $this->getListingProduct()->addProcessingLock('search_action', $this->getId());
     $this->getListingProduct()->getListing()->addProcessingLock(NULL, $this->getId());
 }
 protected function setLocks()
 {
     parent::setLocks();
     $params = $this->getParams();
     $this->getListingProduct()->addProcessingLock(NULL, $this->getProcessingObject()->getId());
     $this->getListingProduct()->addProcessingLock('in_action', $this->getProcessingObject()->getId());
     $this->getListingProduct()->addProcessingLock($params['lock_identifier'] . '_action', $this->getProcessingObject()->getId());
     $this->getListingProduct()->getListing()->addProcessingLock(NULL, $this->getProcessingObject()->getId());
 }
 protected function setLocks()
 {
     parent::setLocks();
     $params = $this->getParams();
     /** @var \Ess\M2ePro\Model\Account $account */
     $account = $this->parentFactory->getCachedObjectLoaded(\Ess\M2ePro\Helper\Component\Amazon::NICK, 'Account', $params['account_id']);
     $account->addProcessingLock(NULL, $this->getProcessingObject()->getId());
     $account->addProcessingLock('server_synchronize', $this->getProcessingObject()->getId());
     $account->addProcessingLock('deleting_from_server', $this->getProcessingObject()->getId());
 }
 protected function setLocks()
 {
     parent::setLocks();
     $params = $this->getParams();
     /** @var \Ess\M2ePro\Model\Order[] $orders */
     $orders = $this->activeRecordFactory->getObject('Order')->getCollection()->addFieldToFilter('id', array('in' => $params['orders_ids']))->getItems();
     foreach ($orders as $order) {
         $order->addProcessingLock('refund_order', $this->getProcessingObject()->getId());
     }
 }
 protected function setLocks()
 {
     parent::setLocks();
     $params = $this->getParams();
     /** @var $lockItem \Ess\M2ePro\Model\LockItem */
     $lockItem = $this->activeRecordFactory->getObject('LockItem');
     $lockItem->setNick(self::LOCK_ITEM_PREFIX . '_' . $params['account_id']);
     $lockItem->setMaxInactiveTime(self::MAX_LIFETIME);
     $lockItem->create();
     /** @var \Ess\M2ePro\Model\Account $account */
     $account = $this->parentFactory->getCachedObjectLoaded(\Ess\M2ePro\Helper\Component\Amazon::NICK, 'Account', $params['account_id']);
     $account->addProcessingLock(NULL, $this->getProcessingObject()->getId());
     $account->addProcessingLock('synchronization', $this->getProcessingObject()->getId());
     $account->addProcessingLock('synchronization_amazon', $this->getProcessingObject()->getId());
     $account->addProcessingLock(self::LOCK_ITEM_PREFIX, $this->getProcessingObject()->getId());
 }
 protected function setLocks()
 {
     parent::setLocks();
     $alreadyLockedListings = array();
     foreach ($this->getListingsProducts() as $listingProduct) {
         /** @var $listingProduct \Ess\M2ePro\Model\Listing\Product */
         $listingProduct->addProcessingLock(NULL, $this->getProcessingObject()->getId());
         $listingProduct->addProcessingLock('in_action', $this->getProcessingObject()->getId());
         $listingProduct->addProcessingLock('translation_action', $this->getProcessingObject()->getId());
         if (isset($alreadyLockedListings[$listingProduct->getListingId()])) {
             continue;
         }
         $listingProduct->getListing()->addProcessingLock(NULL, $this->getProcessingObject()->getId());
         $alreadyLockedListings[$listingProduct->getListingId()] = true;
     }
 }
 protected function setLocks()
 {
     parent::setLocks();
     $params = $this->getParams();
     if (!isset($params['items']) || !is_array($params['items'])) {
         return;
     }
     $ordersIds = array();
     foreach ($params['items'] as $update) {
         if (!isset($update['order_id'])) {
             throw new \Ess\M2ePro\Model\Exception\Logic('Order ID is not defined.');
         }
         $ordersIds[] = (int) $update['order_id'];
     }
     /** @var \Ess\M2ePro\Model\Order[] $orders */
     $orders = $this->activeRecordFactory->getObject('Order')->getCollection()->addFieldToFilter('id', array('in' => $ordersIds))->getItems();
     foreach ($orders as $order) {
         $order->addProcessingLock('update_shipping_status', $this->getProcessingObject()->getId());
     }
 }