Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Округление цен в базе данных


Recommended Posts

Доброго времени суток!

При создании скидки и настройки округления до 0 знаков после запятой на сайте и в админке отображаются круглые цифры, например сумма без скидки 127 рублей, -2% скидки получаем округленную сумму 124 рубле. При создании счета у клиента отображается сумма правильная-округленна 124 рубля, а в базе данных записывается сумма 124,46 рублей, то есть с копейками.

image.png.de89fd779ffd24b6b5732c9663ac66b4.png

А теперь вопрос, как сделать что бы округление происходило и в цене на сайте и в базе данных?

Link to comment
Share on other sites

чтобы было корректное округление везде нужно менять в
- во всех контроллерах, где выводится товар
- в классе, отвечающем за корзину

- в подитогах

Link to comment
Share on other sites


3 минуты назад, thentru сказал:

чтобы было корректное округление везде нужно менять в
- во всех контроллерах, где выводится товар
- в классе, отвечающем за корзину

- в подитогах

Подскажите, а если у меня множество групп покупателей  и у каждой через модуль прописаны скидки, это как то может отразится на механизме ценообразования?

Link to comment
Share on other sites

Guest smartcoder
4 минуты назад, piklas сказал:

Подскажите, а если у меня множество групп покупателей  и у каждой через модуль прописаны скидки, это как то может отразится на механизме ценообразования?

Вам написали, менять везде округление, где это связано с ценой, в том числе и со скидками.

Link to comment
Share on other sites

1 минуту назад, smartcoder сказал:

Вам написали, менять везде округление, где это связано с ценой, в том числе и со скидками.

Тогда вопрос, это реально сделать или лучше смирится?

Link to comment
Share on other sites

Guest smartcoder
Только что, piklas сказал:

Тогда вопрос, это реально сделать или лучше смирится?

Заплатите человеку, если это вам надо - все реально, если вам это надо.

Link to comment
Share on other sites

Отписываюсь о решении вопроса, может кому пригодится. Суть проблемы была в том что когда на сайте делаете скидку на товар, цена на сайте округлялась, но в базе цена была с копейками и при выгрузке, на пример в 1с или  любой другой внешний обработчик заказов выгружались копейки. Решение: заказал разработку модификатора который округляет все цены на сайте.

Edited by piklas
Link to comment
Share on other sites

  • 6 months later...

Мда...
Так можно описывать любое решение проблемы:
"Была проблема - бла-бла-бла. Нашел решение - заплатил программеру, он сделал для меня модуль!"
А что, так можно было? Ж8-(  )

Link to comment
Share on other sites

7 часов назад, Wild сказал:

Мда...
Так можно описывать любое решение проблемы:
"Была проблема - бла-бла-бла. Нашел решение - заплатил программеру, он сделал для меня модуль!"
А что, так можно было? Ж8-(  ) 

Я честно не знаю что сделал программист, но он сделал именно то что мне надо.

Link to comment
Share on other sites

10 hours ago, piklas said:

Я честно не знаю что сделал программист, но он сделал именно то что мне надо.

Исключительно ради любопытства... Вы в самом первом посте топика приводили скрин из phpmyadmin'a с кусочком полей таблиц и их значениями. Вас не затруднит сделать еще один, точно такой же скрин? Мне просто интересно, не пошел ли Ваш исполнитель самым прямым путем (сквозь "стены") и не изменил ли тип данных в табличке  с decimal на integer, например :ugeek: На скрине просто должна присутствовать дробная часть у значений, типа "100.0000", а не просто "100".

Link to comment
Share on other sites

15 часов назад, piklas сказал:

Я честно не знаю что сделал программист, но он сделал именно то что мне надо.

Просто когда вы начинаете пост фразой типа "...Отписываюсь о решении вопроса...", то предполагается, что вы нашли решение и опубликуете его в паблик для других.
Даже если вы сделали это с помощью стороннего программера.
Если же вы тупо заплатили кому-то, решили свою проблему, но не собираетесь опубликовывать его, то успокойтесь и не пишите пафосных постов.
Это решение знают ВСЕ 100% людей сидящих на этом форуме.
Причем не только вашей, но и ВООБЩЕ ВСЕХ ПРОБЛЕМ (заплати и тебе сделают)!
Вы не догадывались об этом?

Link to comment
Share on other sites

Кстати вопрос...
Не проверял (пока лениво), но если в таблице объявлено 2 знака после запятой, то при записи туда значения 10.00517 туда запишется значение 10.01 (с математическим округлением) или 10.00 (остальные знаки обрежутся)?

Link to comment
Share on other sites

19 minutes ago, Wild said:

Кстати вопрос...
Не проверял (пока лениво), но если в таблице объявлено 2 знака после запятой, то при записи туда значения 10.00517 туда запишется значение 10.01 (с математическим округлением) или 10.00 (остальные знаки обрежутся)?

до

Spoiler

image.png.b65355a1d92118db4ef851c67348ca89.png

после 1(сократил до 2х знаков)

Spoiler

image.png.5cc47abfc713283ee668da70fa52cd82.png

 

после 2 (до целого)

Spoiler

image.png.0f6d0750a3e4d2811f3ab7044ec21805.png

 

формально, mysql не выдаст ошибки при вставке дробного значения в поле с типом целого (или при вставке значения с "излишней" точностью) - сработает приведение типов с нормальным округлением к ближайшему возможному значению

 

Edited by 100napb
  • +1 1
Link to comment
Share on other sites

Спасибо что не поленились проверить.
Костыль, конечно, но самое простое решение проблемы.
Результатом доволен, применю у клиента.
Не уверен, но для уважаемого @piklas похоже именно это и сделали.
Тупо исправили количество знаков после запятой в поле БД (работы - 5 секунд).
Хотя он писал про некий модификатор...
Может он "пустышка"? ))
@piklas, не поделитесь на посмотреть?
Мне чисто из спортивного интереса.
Уверяю вас, он не представляет особой ценности.
Особенно если в магазине НЕ ИСПОЛЬЗУЕТСЯ многовалютный учет с фишками типа автообновление курса и т.п.
Вдруг выяснится что можно предъявить претензии разработчику за "фуфел"? ))

Link to comment
Share on other sites

В 25.03.2019 в 14:57, Wild сказал:

Спасибо что не поленились проверить.
Костыль, конечно, но самое простое решение проблемы.
Результатом доволен, применю у клиента.
Не уверен, но для уважаемого @piklas похоже именно это и сделали.
Тупо исправили количество знаков после запятой в поле БД (работы - 5 секунд).
Хотя он писал про некий модификатор...
Может он "пустышка"? ))
@piklas, не поделитесь на посмотреть?
Мне чисто из спортивного интереса.
Уверяю вас, он не представляет особой ценности.
Особенно если в магазине НЕ ИСПОЛЬЗУЕТСЯ многовалютный учет с фишками типа автообновление курса и т.п.
Вдруг выяснится что можно предъявить претензии разработчику за "фуфел"? ))

Я показать не смогу что сделано, а делал мне хороший товарищ @TeslaFeo напишите ему, он объяснит.

Edited by piklas
Link to comment
Share on other sites

  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.