daramal Опубликовано 9 октября, 2017 Жалоба Поделиться Опубликовано 9 октября, 2017 (изменено) Друзья, нужна ваша помощь! Хочу на странице продукта вставить типа "Заказывайте прямо сейчас и сэкономьте" и тут математическое действие, как обычно со старой цены вычитаем новую, НО тут нужно с НДС посчитать, который уже закручен в системе. Пишу так: {math equation="(t+(t/100*n))" assign="total_price1" t=$product->variant->compare_price n=$settings->tax} {math equation="(t+(t/100*n))" assign="total_price2" t=$product->variant->price n=$settings->tax} {floor(($total_price1|convert)-{$total_price2|convert})|convert} {$currency->sign|escape} но считает не правильно. Помогите пожалуйста. Спасибо за любую информацию. Изменено 9 октября, 2017 пользователем DarAmal Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 9 октября, 2017 Жалоба Поделиться Опубликовано 9 октября, 2017 (изменено) помни, не 100%, а 118%а где именно, смотреть нужно. со 100 рублей НДС 18, это не 82 + 18, а 100+18 Изменено 9 октября, 2017 пользователем Maksclub Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 9 октября, 2017 Автор Жалоба Поделиться Опубликовано 9 октября, 2017 помни, не 100%, а 118%а где именно, смотреть нужно...118% тоже не помогает ) могу файл скинуть Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 9 октября, 2017 Жалоба Поделиться Опубликовано 9 октября, 2017 118% тоже не помогает ) ну правильно, формула то другаяфайл не нужно, нуждно описание что делаете (не в техническом а логическом плане) $product->variant->compare_price — цена с НДС уже или к ней вы хотитет НДС прибавить? Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 9 октября, 2017 Автор Жалоба Поделиться Опубликовано 9 октября, 2017 на странице товара вывожу надпись о скидке, мол сколько сможете сэкономить. тут идет: (старая цена (с НДС) - новая цена (с НДС)) Вы все правильно поняли. Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 9 октября, 2017 Жалоба Поделиться Опубликовано 9 октября, 2017 не до конца понял какие где у вас данные... какая логика, но могу предположить: вычтите просто цены,а потом к полученной примените вашу формулу(t+(t/100*n)) где t уже разница цен Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 9 октября, 2017 Автор Жалоба Поделиться Опубликовано 9 октября, 2017 вот к примеру как Вы сказали, {floor(($product->variant->compare_price)-{$product->variant->price})|convert} как к нему применить формулу: (t+(t/100*n)) ? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 9 октября, 2017 Жалоба Поделиться Опубликовано 9 октября, 2017 (изменено) {floor(($total_price1|convert)-{$total_price2|convert})|convert} тут convert не в тему. поэтому и не считает. вы сначала превращаете число в форматированную строку а потом делайте математическое действие над двумя строками а потом еще раз для уверенности делаете из этого строку либо передавайте в двух первых convert что форматирование не нужно |convert:null:false Изменено 9 октября, 2017 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 9 октября, 2017 Автор Жалоба Поделиться Опубликовано 9 октября, 2017 {floor(($total_price1|convert)-{$total_price2|convert})|convert} тут convert не в тему. поэтому и не считает. вы сначала превращаете число в форматированную строку а потом делайте математическое действие над двумя строками а потом еще раз для уверенности делаете из этого строку либо передавайте в двух первых convert что форматирование не нужно |convert:null:falseСпасибо. убрал convert и начал считать вернее, но все же не точно. {math equation="(t+(t/100*n))" assign="total_price1" t=$product->variant->compare_price n=$settings->tax} {math equation="(t+(t/100*n))" assign="total_price2" t=$product->variant->price n=$settings->tax} {floor({$total_price1}-{$total_price2})|convert} {$currency->sign|escape} Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 9 октября, 2017 Жалоба Поделиться Опубликовано 9 октября, 2017 (изменено) Спасибо. убрал convert и начал считать вернее, но все же не точно. {math equation="(t+(t/100*n))" assign="total_price1" t=$product->variant->compare_price n=$settings->tax} {math equation="(t+(t/100*n))" assign="total_price2" t=$product->variant->price n=$settings->tax} {floor({$total_price1}-{$total_price2})|convert} {$currency->sign|escape} напишите значения для одного товара$product->variant->price$product->variant->compare_price$settings->tax и что в конце вышлои не забудьте что floor это округление к целому меньшему числу. и формула вроде такая должна быть а не то что у вас.(t+(t*n/100)) Изменено 9 октября, 2017 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 9 октября, 2017 Автор Жалоба Поделиться Опубликовано 9 октября, 2017 Например, есть: 122 909110 601 руб.НДС - 18% Должен выдать 12308 руб., а выдает 12 250 руб58 руб. не достает (( Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 9 октября, 2017 Жалоба Поделиться Опубликовано 9 октября, 2017 Например, есть: 122 909110 601 руб.НДС - 18% Должен выдать 12308 руб., а выдает 12 250 руб58 руб. не достает (( а как у вас выходит эта сумма? или я что-то не понимаю 122 909 + 18% = 145 033 (НДС = 22123.62)110 601 + 18% = 130 509 (НДС = 19908.18) = 14 524 Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 9 октября, 2017 Автор Жалоба Поделиться Опубликовано 9 октября, 2017 122 909 и 110 601 - они идут уже с НДС.Цены высчитываются нормально, только вот эту задачку неправильно считает Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 9 октября, 2017 Жалоба Поделиться Опубликовано 9 октября, 2017 122 909 и 110 601 - они идут уже с НДС.Цены высчитываются нормально, только вот эту задачку неправильно считает если цены идут уже с ндс, зачем вам еще что-то считать? просто покажите их разницу. без этих прощетов. зачем еще раз что-то делать с НДС? Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 9 октября, 2017 Автор Жалоба Поделиться Опубликовано 9 октября, 2017 по сути я так и делаю. под этими расчетами, там где цены выводятся вставляю: {floor({$total_price1}-{$total_price2})|convert} в итоге ничего не меняется. Результат тот же. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 9 октября, 2017 Жалоба Поделиться Опубликовано 9 октября, 2017 по сути я так и делаю. под этими расчетами, там где цены выводятся вставляю: {floor({$total_price1}-{$total_price2})|convert} в итоге ничего не меняется. Результат тот же. я просил написать цены$product->variant->price$product->variant->compare_price БЕЗ НДС а не $total_price1$total_price2 Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 9 октября, 2017 Автор Жалоба Поделиться Опубликовано 9 октября, 2017 (изменено) прошу прощение. вот мой код: {if $product->variant->compare_price > 0} <strike> {math equation="(t+(t*n/100))" assign="total_price1" t=$product->variant->compare_price n=$settings->tax} {$total_price1|convert} </strike> <span class="price-new"> {math equation="(t+(t*n/100))" assign="total_price2" t=$product->variant->price n=$settings->tax} {$total_price2|convert} {$currency->sign|escape} <h5>Цена указана с НДС: {$settings->tax|escape}%</h5> </span> Заказывайте прямо сейчас и сэкономьте - {floor({$total_price1}-{$total_price2})|convert} {else} <span class="price-new"> {math equation="(t+(t*n/100))" assign="total_price" t=$product->variant->price n=$settings->tax} {$total_price|convert} {$currency->sign|escape} <h5>Цена указана с НДС: {$settings->tax|escape}%</h5> </span> {/if} Изменено 9 октября, 2017 пользователем DarAmal Цитата Ссылка на сообщение Поделиться на другие сайты
with54fz Опубликовано 10 октября, 2017 Жалоба Поделиться Опубликовано 10 октября, 2017 А вы сами осн к симпле добавлять начали ? Таксвариант лучше свойством товара. Хранить с НДС . тогда в корзине и заказе можно править только вывод цены клиенту Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 13 октября, 2017 Автор Жалоба Поделиться Опубликовано 13 октября, 2017 mishanya, как всегда. Большое спасибо за совет. и не забудьте что floor это округление к целому меньшему числу. Помогло {math equation="(t+(t/100*n))" assign="total_price1" t=$product->variant->compare_price n=$settings->tax} {math equation="(t+(t/100*n))" assign="total_price" t=$product->variant->price n=$settings->tax} {({$total_price1}-{$total_price})|convert} {$currency->sign|escape} Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 13 октября, 2017 Жалоба Поделиться Опубликовано 13 октября, 2017 (изменено) {math assign="total_price" equation="(cp+(cp/100*n))-(p+(p/100*n))" p=$product->variant->price cp=$product->variant->compare_price n=$settings->tax} {$total_price|convert} {$currency->sign|escape} Изменено 13 октября, 2017 пользователем yr4ik Цитата Ссылка на сообщение Поделиться на другие сайты
miltonmors Опубликовано 14 октября, 2017 Жалоба Поделиться Опубликовано 14 октября, 2017 {math assign="total_price" equation="(cp+(cp/100*n))-(p+(p/100*n))" p=$product->variant->price cp=$product->variant->compare_price n=$settings->tax} {$total_price|convert} {$currency->sign|escape} А почему так заумно? Во-первых, формулу можно написать проще(cp+(cp/100*n))-(p+(p/100*n) = cp*(1+n/100)-p*(1+n/100) = (cp-p)*(1+n/100) Во-вторых, в шаблоне можно писать короче и понятнее {$total_price=($product->variant->compare_price-$product->variant->price)*(1+$settings->tax/100)} {$total_price|convert} {$currency->sign|escape} Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 14 октября, 2017 Автор Жалоба Поделиться Опубликовано 14 октября, 2017 {math assign="total_price" equation="(cp+(cp/100*n))-(p+(p/100*n))" p=$product->variant->price cp=$product->variant->compare_price n=$settings->tax} {$total_price|convert} {$currency->sign|escape} Большое спасибо. Очень лаконично ! А почему так заумно? Во-первых, формулу можно написать проще(cp+(cp/100*n))-(p+(p/100*n) = cp*(1+n/100)-p*(1+n/100) = (cp-p)*(1+n/100) Во-вторых, в шаблоне можно писать короче и понятнее {$total_price=($product->variant->compare_price-$product->variant->price)*(1+$settings->tax/100)} {$total_price|convert} {$currency->sign|escape} Тоже очень оригинально! Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.