большая фотография : я работаю над созданием файлов .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 порядка (идентификаторы 1 и 2) с 3 типаминалог (4, 8 и 18).
Я хочу получить следующий результат:
18 = 28.21 ( => 25.01+3.2)
8 = 1.11
4 = 0.65
И, наконец, мой вопрос: могу ли я получить этот результат с помощью операторов join и groups?Или я должен пройтись по коллекции, чтобы подвести итог?