2016-11-07 12 views
0

こんにちは、自分のカスタムテーブルで注文コレクションに結合を追加する必要があります。このためグリッドコレクションをフィルタリングするときに左の結合スローエラーが発生するMagento

私はコードの下に、これを使用しています

$collection = Mage::getResourceModel($this->_getCollectionClass()); 
    $collection->getSelect() 
       ->joinLeft(array(
        "t1" => 'fp_sellecrcommision_data'),     
        "main_table.increment_id = t1.store_order_id", 
        array("commiisiion_status" => "t1.commiisiion_status") 
       ); 
    $collection->addFieldToFilter("store_id",$storeid) 
       ->addAttributeToFilter("status","complete"); 

正常に動作しています。私は、フィルタを適用していたときにしかし、これは私のカスタム・テーブルの構造である誤差

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'commiisiion_status' in 'where clause', query was: SELECT COUNT(*) FROM `sales_flat_order_grid` AS `main_table` WHERE (`store_id` = '1') AND (`status` = 'complete') AND (`commiisiion_status` = '0') 

下に投げている:グリッド内に以下

enter image description here

をそして、私のカスタム列さ

$this->addColumn('commiisiion_status', array(
    'header' => Mage::helper('sellercommision')->__('Commision Status'), 
    'index' => 'commiisiion_status', 
    'type' => 'options', 
    'options' => XYZ_Sellercommision_Block_Adminhtml_Sellercommision_Storeorders::commisionsStatusesArray(),     
)); 

どうすればこの問題を解決できるかお勧めします。

おかげ

+0

を使用してこれを解決した:; 'と' fp_sellecrcommision_dataを記述する; 'sales_flat_order_gridを説明し' – clinical

答えて

0

こんにちは私はあなたがplzはできますあなたの答えに、データベースの構造を追加_commissionFilterCallBack機能の下

protected function _commissionFilterCallBack($collection, $column) 
    { 
    //Put your logic here..!! 
    $value = $column->getFilter()->getValue(); 
    $comission_paid_orders = array(); 

    $commissionstatus_model = Mage::getModel("commissionstatus/commissionstatus")->getCollection(); 
    foreach($commissionstatus_model as $commissionstatus){ 
      $comission_paid_orders[] = $commissionstatus['order_imcrement_id']; 
     } 
    if ($value=="pending") 
     { 
      if(count($comission_paid_orders)==0){ 
       return $this; 
       } 
      else{ 
       $this->getCollection()->addAttributeToFilter("increment_id",array("nin"=>$comission_paid_orders)); 
       return $this; 
      } 
     } 
    $this->getCollection()->getSelect()->where("t1.commission_status like ?", "%$value%"); 

     return $this; 
    } 
関連する問題