2011-12-15 85 views
1

大图片:我正在为会计程序生成.txt文件。
我要总结获取发票收集总计:总计含税。 - 不含税 - 按类型征税

  • 包括税收总
  • 总含税
  • 税金总额按类型

详细:我有发票的集合:

private function _getInvoiceCollectionPerStore($storeId) 
    { 
     $invoices = Mage::getResourceModel('sales/order_invoice_collection') 
       ->addFieldToFilter('main_table.store_id', $storeId); 
     //orde increment id 
     $invoices->addExpressionFieldToSelect(
       'order_increment_id', 
       'order.increment_id', 
       'main_table.order_id' 
     ); 
     //customer id 
     $invoices->getSelect()->join(
       array('order' => 'sales_flat_order'), 
       'main_table.order_id = order.entity_id', 
       array('order.customer_id')); 

     return $invoices; 
    } 

与该公司我可以计算总税和总税除外。

 $invoices->addExpressionFieldToSelect(
       'order_total', 
       'SUM({{main_table.grand_total}})', 
       'main_table.grand_total' 
     ); 
     $invoices->addExpressionFieldToSelect(
       'tax_total', 
       'SUM({{main_table.tax_amount}})', 
       'main_table.tax_amount' 
     ); 

现在我想计算发票/订单的不同税额的总和。
对于这一点,我有表sales_order_tax在那里我有不同的税收为每个订单:

| tax_id | order_id | code | percent | amount | 
| 1 |  1 | 18 | 18.0000 | 25.0100| 
| 2 |  1 | 8 | 8.0000 | 1.1100| 
| 3 |  2 | 18 | 18.0000 | 3.2000| 
| 4 |  2 | 4 | 4.0000 | 0.6500| 

(我已经简化表,因为这是唯一的领域与此有关)。
正如你看到我的虚拟数据,我有2个订单(ids 1和2)与3种税种(4,8和18)。
我想要的结果是:

18 = 28.21 (=> 25.01+3.2) 
8 = 1.11 
4 = 0.65 

最后,我的问题是:我能得到这样的结果与加入和组语句?或者我必须通过收集来总结它?

回答

1

如果我理解你正确地质疑,这会给这个SQL statment会给你每税法总量

Select code, SUM(amount) 
    from sales_order_tax 
group by code 
+0

事实上,你正确地理解我,谢谢 – OSdave 2011-12-16 10:54:51