Необходимо рассчитать НДС в инвойсе в админке. В заказе учитывается система скидок 3000:3, 5000:10, 10000:15, 20000:20, купоны и стоимость доставки (модуль "Почта России"). Итоговый НДС считается по логике: сначала считается НДС товара с учетом скидок и купонов, затем НДС доставки и в конце все суммируется.
Расчет НДС за каждую позицию товара без учета скидок и пр. я сделал. Вот код:
controller/sale/order.php:
$data['total_nds'] = 0;
$products = $this->model_sale_order->getOrderProducts($order_id);
foreach ($products as $product) {
$option_data = array();
$options = $this->model_sale_order->getOrderOptions($order_id, $product['order_product_id']);
foreach ($options as $option) {
if ($option['type'] != 'file') {
$value = $option['value'];
} else {
$upload_info = $this->model_tool_upload->getUploadByCode($option['value']);
if ($upload_info) {
$value = $upload_info['name'];
} else {
$value = '';
}
}
$option_data[] = array(
'name' => $option['name'],
'value' => $value
);
}
$product_nds = $this->model_sale_order->getOrderProducts($order_id, $product['order_product_id']);
foreach ($product_nds as $data['nds']) {
$data['nds'] = round($this->currency->format($product['total'])*20/120, 2, PHP_ROUND_HALF_UP);
}
$data['total_nds'] += $data['nds'];
$product_data[] = array(
'name' => $product['name'],
'model' => $product['model'],
'option' => $option_data,
'quantity' => $product['quantity'],
'price' => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']),
'total' => $this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']),
'nds' => $data['nds'],
'total_nds'=> $data['total_nds']
);
}
Подскажите, куда смотреть, чтобы при расчете учесть скидки, купоны и доставку?