Ejemplo n.º 1
0
 public function getOrdersContainingItemsFromOrder(Ess_M2ePro_Model_Order $order)
 {
     // Prepare item_id-transaction_id pairs for sql
     // -------------
     $readConnection = $this->getReadConnection();
     $whereSql = array();
     foreach ($order->getItemsCollection()->getItems() as $orderItem) {
         $itemIdSql = $readConnection->quoteInto('?', $orderItem->getData('item_id'));
         $transactionIdSql = $readConnection->quoteInto('?', $orderItem->getData('transaction_id'));
         $whereSql[] = "(item_id = {$itemIdSql} AND transaction_id = {$transactionIdSql})";
     }
     $whereSql = implode(' OR ', $whereSql);
     // -------------
     // Find orders which contains at least one order item from current order
     // -------------
     /** @var $collection Mage_Core_Model_Mysql4_Collection_Abstract */
     $collection = Mage::helper('M2ePro/Component_Ebay')->getCollection('Order');
     $collection->getSelect()->distinct(true)->join(array('moi' => Mage::getResourceModel('M2ePro/Order_Item')->getMainTable()), '(`moi`.`order_id` = `main_table`.`id`)', array())->join(array('meoi' => Mage::getResourceModel('M2ePro/Ebay_Order_Item')->getMainTable()), '(`meoi`.`order_item_id` = `moi`.`id`)', array())->where($whereSql)->where('`main_table`.`id` != ?', $order->getId())->where('`main_table`.`account_id` = ?', $order->getAccountId())->order(array('main_table.id ASC'));
     // -------------
     return $collection->getItems();
 }