Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Расчет НДС в инвойсе в админке


 Поделиться

Рекомендованные сообщения

Необходимо рассчитать НДС в инвойсе в админке. В заказе учитывается система скидок 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'] 
                    );
				}

Подскажите, куда смотреть, чтобы при расчете учесть скидки, купоны и доставку?

Изменено пользователем fofa
Ссылка на комментарий
Поделиться на других сайтах


1 час назад, fofa сказал:

Подскажите, куда смотреть, чтобы при расчете учесть скидки, купоны и доставку?

Посмотрите, как сделаны оригинальные файлы opencart в заказе, там учитываются купоны и скидки.

Ссылка на комментарий
Поделиться на других сайтах

21 час назад, smartcoder сказал:

Посмотрите, как сделаны оригинальные файлы opencart в заказе, там учитываются купоны и скидки.

 

В заказе купоны учитываются из оригинальных файлов, скидка рассчитывается с помощью стороннего модуля "Скидка от суммы заказа", доставка рассчитывается модулем "Почта России". Не могу найти файл, который включает результаты вычислений модулей в общую цену и выводит в шаблон  корзины витрины, либо в админке в заказах.

Прошу подсказать путь

Изменено пользователем fofa
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.