*/ class Mage_Adminhtml_Model_Search_Order extends Varien_Object { /** * Load search results * * @return Mage_Adminhtml_Model_Search_Order */ public function load() { $arr = array(); if (!$this->hasStart() || !$this->hasLimit() || !$this->hasQuery()) { $this->setResults($arr); return $this; } $query = $this->getQuery(); //TODO: add full name logic $collection = Mage::getResourceModel('sales/order_collection') ->addAttributeToSelect('*') ->addAttributeToSearchFilter(array( array('attribute' => 'increment_id', 'like'=>$query.'%'), array('attribute' => 'billing_firstname', 'like'=>$query.'%'), array('attribute' => 'billing_lastname', 'like'=>$query.'%'), array('attribute' => 'billing_telephone', 'like'=>$query.'%'), array('attribute' => 'billing_postcode', 'like'=>$query.'%'), array('attribute' => 'shipping_firstname', 'like'=>$query.'%'), array('attribute' => 'shipping_lastname', 'like'=>$query.'%'), array('attribute' => 'shipping_telephone', 'like'=>$query.'%'), array('attribute' => 'shipping_postcode', 'like'=>$query.'%'), )) ->setCurPage($this->getStart()) ->setPageSize($this->getLimit()) ->load(); foreach ($collection as $order) { $arr[] = array( 'id' => 'order/1/'.$order->getId(), 'type' => Mage::helper('adminhtml')->__('Order'), 'name' => Mage::helper('adminhtml')->__('Order #%s', $order->getIncrementId()), 'description' => $order->getBillingFirstname().' '.$order->getBillingLastname(), 'form_panel_title' => Mage::helper('adminhtml')->__('Order #%s (%s)', $order->getIncrementId(), $order->getBillingFirstname().' '.$order->getBillingLastname()), 'url' => Mage::helper('adminhtml')->getUrl('*/sales_order/view', array('order_id'=>$order->getId())), ); } $this->setResults($arr); return $this; } }