2016-04-01 18 views
-1

Özel şebekemde, ülke kodu, toplam sipariş ve sipariş verim var. Izgara olarakÜlkeye göre ülkeye göre özel satış siparişi yönetimi

protected function _addAddressFields() 
{ 
    $shippingAliasName = 'shipping_o_a'; 
    $joinTable = $this->getTable('sales/order_address'); 

    $this->addFilterToMap('shipping_country_id', $shippingAliasName . '.country_id'); 

    $this 
     ->getSelect() 
     ->join(
      array($shippingAliasName => $joinTable), 
      "(main_table.entity_id = {$shippingAliasName}.parent_id)", 
      array(
       $shippingAliasName . '.country_id' 
      ) 
     ) 
     ->columns(array('totals' => 'count(main_table.entity_id)')) 
     ->group($shippingAliasName.'.country_id'); 
    Mage::getResourceHelper('core')->prepareColumnsList($this->getSelect()); 
    echo $this->getSelect();exit; 
    return $this; 
} 

:

protected function _prepareColumns() 
{ 
    $this->addColumn('country', array(
     'header' =>Mage::helper('reports')->__('Country Code'), 
     'index'  =>'country_id' 
    )); 

    $this->addColumn('total_orders', array(
     'header' =>Mage::helper('reports')->__('Orders'), 
     'index'  =>'totals' 
    )); 

    $this->addColumn('ordered_qty', array(
     'header' =>Mage::helper('reports')->__('Quantity Ordered'), 
     'width'  =>'120px', 
     'align'  =>'right', 
     'index'  =>'entity_id', 
     'total'  =>'count', 
     'type'  =>'number' 
    )); 

    //$this->addExportType('*/*/exportSoldCsv', Mage::helper('reports')->__('CSV')); 
    //$this->addExportType('*/*/exportSoldExcel', Mage::helper('reports')->__('Excel XML')); 

    return parent::_prepareColumns(); 
} 
koleksiyonda : Ben ızgara sonucu mysql sorgusunda bunu alıyorum ama değilim ben total_order almıyorum , Izgara için kodu ve koleksiyon altında kontrol edin

cevap

0

bunu çözüldü ve aşağıda bir cevap bulduk:

public function addOrderedQty($from = '', $to = '') 
{ 
    $adapter    = $this->getConnection(); 
    $orderTableAliasName = $adapter->quoteIdentifier('main_table'); 
    $adapter    = $this->getConnection(); 

    $shippingAliasName = 'shipping_o_a'; 
    $joinTable = $this->getTable('sales/order_address'); 

    $this->getSelect()->reset() 
     ->from(array('main_table' => $this->getTable('sales/order')), 
      array(
       'total_orders' => 'count(main_table.entity_id)' 
      )) 
     ->join(
      array($shippingAliasName => $joinTable), 
      /*"(main_table.entity_id = {$shippingAliasName}.parent_id" 
       . " AND {$shippingAliasName}.address_type = 'shipping')",*/ 
       "(main_table.entity_id = {$shippingAliasName}.parent_id)", 
      array(
       $shippingAliasName . '.country_id' 
      ) 
     ) 
     ->group($shippingAliasName.'.country_id'); 
    if ($from != '' && $to != '') { 
     $fieldName   = $orderTableAliasName . '.created_at'; 
     $this->getSelect()->where($this->_prepareBetweenSql($fieldName, $from, $to)); 

    } 
    //echo $this->getSelect();exit; 
    return $this; 

} 
İlgili konular