Перейти к содержанию
Официальный форум поддержки Simpla

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

Друзья, нужна ваша помощь!

 

Хочу на странице продукта вставить типа "Заказывайте прямо сейчас и сэкономьте" и тут математическое действие, как обычно со старой цены вычитаем новую, НО тут нужно с НДС посчитать, который уже закручен в системе.

 

Пишу так:

{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}

но считает не правильно.

 

Помогите пожалуйста.

 

Спасибо за любую информацию.

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

помни, не 100%, а 118%

а где именно, смотреть нужно.

 

со 100 рублей НДС 18, это не 82 + 18, а 100+18

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

118% тоже не помогает )

 

ну правильно, формула то другая

файл не нужно, нуждно описание что делаете (не в техническом а логическом плане)

 

$product->variant->compare_price — цена с НДС уже или к ней вы хотитет НДС прибавить?

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

на странице товара вывожу надпись о скидке, мол сколько сможете сэкономить.

 

тут идет: (старая цена (с НДС) - новая цена (с НДС))

 

Вы все правильно поняли.

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

не до конца понял какие где у вас данные... какая логика, но могу предположить:

 

вычтите просто цены,а потом к полученной примените вашу формулу

(t+(t/100*n))

 

где t уже разница цен

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

вот к примеру как Вы сказали,

{floor(($product->variant->compare_price)-{$product->variant->price})|convert}

как к нему применить формулу:

(t+(t/100*n))

?

Ссылка на сообщение
Поделиться на другие сайты
{floor(($total_price1|convert)-{$total_price2|convert})|convert}

тут convert не в тему. поэтому и не считает. вы сначала превращаете число в форматированную строку а потом делайте математическое действие над двумя строками а потом еще раз для уверенности делаете из этого строку

 

либо передавайте в двух первых convert что форматирование не нужно |convert:null:false

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

 

{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}

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

 

Спасибо. убрал 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))

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

Например, есть:

 

122 909

110 601 руб.

НДС - 18%

 

Должен выдать 12308 руб., а выдает 12 250 руб

58 руб. не достает ((

 

 

а как у вас выходит эта сумма? или я что-то не понимаю

 

 

122 909 + 18% = 145 033 (НДС = 22123.62)
110 601 + 18% = 130 509 (НДС = 19908.18)
 
= 14 524
Ссылка на сообщение
Поделиться на другие сайты

122 909 и 110 601 - они идут уже с НДС.

Цены высчитываются нормально, только вот эту задачку неправильно считает

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

122 909 и 110 601 - они идут уже с НДС.

Цены высчитываются нормально, только вот эту задачку неправильно считает

 

если цены идут уже с ндс, зачем вам еще что-то считать? просто покажите их разницу. без этих прощетов. зачем еще раз что-то делать с НДС?

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

по сути я так и делаю. под этими расчетами, там где цены выводятся вставляю:

  {floor({$total_price1}-{$total_price2})|convert}

в итоге ничего не меняется. Результат тот же.

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

по сути я так и делаю. под этими расчетами, там где цены выводятся вставляю:

  {floor({$total_price1}-{$total_price2})|convert}

в итоге ничего не меняется. Результат тот же.

 

я просил написать цены

$product->variant->price

$product->variant->compare_price

 

БЕЗ НДС а не 

$total_price1

$total_price2

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

прошу прощение. вот мой код:

  {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} 
Изменено пользователем DarAmal
Ссылка на сообщение
Поделиться на другие сайты

А вы сами осн к симпле добавлять начали ? Таксвариант лучше свойством товара. Хранить с НДС . тогда в корзине и заказе можно править только вывод цены клиенту

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

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}
Ссылка на сообщение
Поделиться на другие сайты

{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}
Изменено пользователем yr4ik
Ссылка на сообщение
Поделиться на другие сайты

 

{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}
Ссылка на сообщение
Поделиться на другие сайты

 

{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}

Тоже очень оригинально!

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...