-
Публікації
170 -
З нами
-
Відвідування
Тип публікації
Профілі
Форум
Маркетплейс
Статті
FAQ
Наші новини
Магазин
Блоги
module__dplus_manager
Повідомлення, опубліковані користувачем fofa
-
-
Необходимо рассчитать НДС в инвойсе в админке. В заказе учитывается система скидок 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'] ); }
Подскажите, куда смотреть, чтобы при расчете учесть скидки, купоны и доставку?
-
-
Здравствуйте
Недавно подключил SSL сертификат и настроил редирект через htaccess. при заходе на страницу сайта домен https склеивается с http
https://mydomain.ru/http://mydomain.ru/uslugi/ohrana-obektov
Вот правки в htaccess:
RewriteEngine On RewriteCond %{REQUEST_URI} ^/ohrana-obektov$ [OR,NC] RewriteCond %{REQUEST_URI} ^/ohrana-obektov/$ [OR,NC] RewriteCond %{REQUEST_URI} ^/uslugi/ohrana-obektov$ [NC] RewriteRule (.*) https://mydomain.ru/uslugi/ohrana-obektov/ [R=301,L] RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP RewriteRule ^index\.php$ http://mydomain.ru/ [R=301,L] RewriteCond %{HTTP_HOST} ^www.mydomain.ru$ [NC] RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Подскажите в чем дело?
-
OC 2.0.3.1
Покидайте ссылок на инструкции как в принципе налаживать связь через API с другими сервисами.
Если у кого есть опыт настройки связи с TopDelivery, буду благодарен за знания.
-
В 07.12.2017 в 12:22, deeman сказал:
Можно в настройках поля и указать обязательность в наборе полей.
Вы даже не попробовали ни первое, ни второе, но спрашиваете.
Создал новое поле Отчество.
http://joxi.ru/L21zM5Gu89kz0A
http://joxi.ru/Dr8ybaPF4aqJ6mА где данные из этого поля увидеть в заказе?
-
22 минуты назад, deeman сказал:
Можно в настройках поля и указать обязательность в наборе полей.
Вы даже не попробовали ни первое, ни второе, но спрашиваете.
Извините(
Разобрался) Огромное спасибо!
-
12 часов назад, deeman сказал:
Создайте новое поле и добавьте. Либо переименуйте поле в Имя Отчество. Этому "нововведению" года четыре и столько же лет назад опровергнуто
Работники почты не хотят принимать отправления без отчества. И при заказе на Алиэкспресс тоже требуют от покупателя отчество
12 часов назад, deeman сказал:Создайте новое поле и добавьте
Поле "Компания" можно переименовать в "отчество"? Необходимо, чтобы указание отчества было обязательным
-
Здравствуйте
В связи с нововведением почты России требуется указывать в почтовых отправлениях полное ФИО. Отсюда вопрос: когда в модуле появится поле для заполнения Отчества?
-
1 час назад, Gann сказал:
Спасибо!
-
Ребята, подскажите статью, где описывается принцип работы оператора ссылки "->"
-
В 27.11.2017 в 08:40, Gann сказал:
Система - Локализация - Валюты - *Рубль* - ..знаков после запятой
может здесь
в админке всё-равно будет с .0000
не получается. Число знаков стоит 2, а выводит 4. Я вывожу напрямую из БД. Может как-то кодом выправить?
-
ОС 2.0.3.1
При указании скидки в товаре в БД вводится и выводится в витрине магазина цифра с 4 знаками после запятой. Как сделать, чтобы выводилась цифра с 2 знаками после запятой? http://joxi.ru/D2PY1gdSpg50dA
-
7 минут назад, fanatic сказал:
WHERE customer_group_id = '" . (int)$customer_group_id . "'
Если я правильно понял, то оно там не задается, а используется для выборки строк. Например: условие - "243" и запрос возвращает все строки, у которых customer_group_id = 243
-
11 минут назад, AlexDW сказал:
условие функции (обработка аргумента и возврат результата) в теле самой функции
аргумент - задается при вызове функции извне
Спасибо!
-
9 минут назад, fanatic сказал:
какое условие?
Господин @shalan сказал, что $customer_group_id в функции
public function getCustomerGroupDescriptions($customer_group_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_group_description WHERE customer_group_id = '" . (int)$customer_group_id . "'"); return $query; }
выступает в качестве условия для получения данных из базы. Мне не понятно, как и где это условие задается
-
21 минуту назад, shalan сказал:
запрос вернет строку соответствующую условию
добавьте вывод
echo "<pre>" . $customer_group_id . "</pre>";
ничего не возвращает.
2 часа назад, shalan сказал:Аргумент это то, что передается в функцию извне.
А условие задается извне или изнутри?
-
34 минуты назад, shalan сказал:
Аргумент это то, что передается в функцию извне. В данной функции аргумент используется в качестве условия для получение данных из базы.
Если в БД в значения customer_group_id равны 1; 2; 3, то запрос вернет все строки, связанные с этими значениями? Например:
[rows] => Array ( [0] => Array ( [customer_group_id] => 1 [name] => name1 [description] => description1 ) [1] => Array ( [customer_group_id] => 2 [name] => name2 [description] => description2 ) [2] => Array ( [customer_group_id] => 3 [name] => name3 [description] => description3 ) )
34 минуты назад, shalan сказал:Аргумент не меняется внутри этой функции.
не понятно. Приведите пример пожалуйста
При выводе из модели
public function getCustomerGroupDescriptions($customer_group_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_group_description WHERE customer_group_id = '" . (int)$customer_group_id . "'"); echo "<pre>"; print_r($query); echo "</pre>"; return $query; }
возвращается пустой массив. Почему?
-
16 минут назад, Otvet сказал:
в контроллере при вызове передается значение
$this->...->getCustomerGroupDescriptions($id);
я правильно понял, что в модели значение аргумента берется из БД, которое передается в контроллере в место вызова?
-
21 минуту назад, shalan сказал:
в место вызова.
т.е. значение из БД подставляется в getCustomerGroupDescriptions($customer_group_id) ?
Как задается условие параметра?
-
Помогите разобраться
public function getCustomerGroupDescriptions($customer_group_id) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "customer_group_description WHERE customer_group_id = '" . (int)$customer_group_id . "'"); return $query; }
Я правильно понял, что значение аргумента getCustomerGroupDescriptions($customer_group_id) берется из запроса к БД, а именно из куска
...WHERE customer_group_id = '" . (int)$customer_group_id . "'
???
или аргумент $customer_group_id надо как-то по-другому определять заранее?
-
14 минут назад, thentru сказал:
Вывод нужно делать до return
Почему нужно делать до return?
-
7 минут назад, thentru сказал:
И тут стоит учитывать где вы добавляете вывод, т.к. могут быть модифицированные файлы и вывод вы не увидите, если добавите в оригинальный файл
Т.е. нудно добавить именно в модифицированный файл, который лежит в папке system/modificationМодифицированные - вы имеете ввиду с помощью .xml, который при загрузке модифицирует исходники?
-
3 часа назад, legioner26 сказал:
Да к примеру если выводить в контроллере product/category то при заходе на любую категорию у вас отобразится массив с данными.
а как выводить массив из модели? К примеру
class ModelCatalogCategory extends Model { public function getCategory($category_id) { $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'"); return $query->row; echo "<pre>"; print_r($query); echo "</pre>"; ... } }
при заходе в категорию не выводит ничего
-
10 минут назад, legioner26 сказал:
В любом контроллере, где хотите просмотреть результат, что хранится в массиве.
а обращаться к любому контроллеру из браузера как?
Расчет НДС в инвойсе в админке
в Opencart 2.x: Налаштування та оптимізація
Опубліковано: · Змінено користувачем fofa
В заказе купоны учитываются из оригинальных файлов, скидка рассчитывается с помощью стороннего модуля "Скидка от суммы заказа", доставка рассчитывается модулем "Почта России". Не могу найти файл, который включает результаты вычислений модулей в общую цену и выводит в шаблон корзины витрины, либо в админке в заказах.
Прошу подсказать путь