2012-01-30 84 views
0

我被他們的稅,增值稅ID試圖組的所有客戶,並顯示了多少稅發票給他們,所以我的結果應該是這樣的集團通過發票客戶

TAXVAT | Tax Sum 
ATU321 | 365.50 
ATU123 | 120.00 

但我敢套牢的Magento的GROUPBY功能,我想這:

$objInvoiceCollection = Mage::getModel('sales/order/invoice')->getCollection(); 

$objInvoiceCollection 
->addAttributeToSelect('customer_taxvat'); 
->addExpressionAttributeToSelect('tax_invoiced','SUM({{tax_invoiced}})','tax') 
->addFieldToFilter('customer_taxvat', array('notnull'=>true)) 
->addFieldToFilter('tax_invoiced', array('notnull'=>true)) 
->groupByAttribute('customer_taxvat'); 

,但我得到這個錯誤:

Call to undefined method Mage_Sales_Model_Resource_Order_Collection::addExpressionAttributeToSelect() ... 

我想前夕基於eav的模型提供了方法addAttributeToSelect和groupByAttribute - 但顯然這不是真的在我的情況下:(

+0

的Magento的某些版本已刪除addExpressionAttributeToSelect。你使用什麼版本? – 2012-01-31 00:44:58

+0

感謝您提供此信息,我正在使用社區版的1.6.2.0版。 – Nebel54 2012-01-31 09:52:33

回答

2

Magento停止使用EAV存儲銷售幾個版本前。此外,customer_taxvat不作爲發票的一部分存儲,但是作爲訂單的一部分。 你可以得到相同的結果是這樣的:

<?php 
// Set Up Collection 
$objOrderCollection = Mage::getResourceModel('sales/order_collection') 
    ->addFieldToSelect('customer_taxvat') 
    ->addExpressionFieldToSelect('tax_invoiced','SUM(tax_invoiced)','tax') 
    ->addFieldToFilter('customer_taxvat', array('notnull'=>true)) 
    ->addFieldToFilter('tax_invoiced', array('notnull'=>true)); 
// Add Group By 
$objOrderCollection->getSelect()->group('customer_taxvat'); 

// Do your stuff! 
foreach ($objOrderCollection as $order) { ... } 
?>