Legosp Forum

Shop-Script "Legosp" => Общие вопросы => Тема начата: Drifter-B от Апреля 28, 2012, 11:12:12 am

Название: Убрать округление цен
Отправлено: Drifter-B от Апреля 28, 2012, 11:12:12 am
Версия 5.0.2

Вопрос знатокам: Возможно ли убрать округление цен до целых чисел?
У меня присутствуют цены "1,8 руб", "1,4 руб", а при вводе они округляются до "1 руб".

Заранее спасибо.
Название: Re: Убрать округление цен
Отправлено: Jordan от Апреля 28, 2012, 11:45:21 am
Я через БД делаю 2 запросами
Цитировать
ALTER TABLE `SS_products` CHANGE `Price` `Price` BIGINT NULL DEFAULT NULL;
ALTER TABLE `SS_products` CHANGE `Price` `Price` FLOAT( 20 ) NULL DEFAULT NULL;
И отбрасываются все копейки
Название: Re: Убрать округление цен
Отправлено: Jordan от Апреля 28, 2012, 12:16:34 pm
Неправильно понял вопрос. Извините....
Название: Re: Убрать округление цен
Отправлено: Drifter-B от Апреля 28, 2012, 02:03:19 pm
Т.е. если изменить тип поля в базе, всё будет ok?
Если так, то какой тип ставить - real?
Название: Re: Убрать округление цен
Отправлено: Юрий от Апреля 28, 2012, 02:46:50 pm
Если по всем магазину убрать тогда в файле cfg/functions.php
найти ф-ю
function show_price($price)
{
if (fract($price))
$price = number_format($price, 2, ',', ' ');
else $price = number_format($price, 0, '', ' ');

$csign_left  = (defined("CONF_CURRENCY_ID_LEFT")) ? CONF_CURRENCY_ID_LEFT : "US $";
$csign_right = (defined("CONF_CURRENCY_ID_RIGHT")) ? CONF_CURRENCY_ID_RIGHT : "";
return $csign_left.$price.$csign_right;
}

и заменить на
function show_price($price)
{
$price = number_format($price, 2, ',', '');//если до десятых то 2->1

$csign_left  = (defined("CONF_CURRENCY_ID_LEFT")) ? CONF_CURRENCY_ID_LEFT : "US $";
$csign_right = (defined("CONF_CURRENCY_ID_RIGHT")) ? CONF_CURRENCY_ID_RIGHT : "";
return $csign_left.$price.$csign_right;
}
Название: Re: Убрать округление цен
Отправлено: Drifter-B от Апреля 28, 2012, 03:02:27 pm
Да, отображение цены это изменило, спасибо. Однако, это только пол дела. Цена округляется до целых сразу при вводе товара в базу. Как бы теперь и это побороть?
Название: Re: Убрать округление цен
Отправлено: Юрий от Апреля 28, 2012, 03:53:23 pm
Где Вы это увидели? Я только что специально просмотрел catalog_products_edit.php - ничего похожего на округление - не увидел....

В структуре поля Price стоит Тип -> float, по этому в базу и пишется целое число!
Вроде целое - int.
а float - Числа с плавающей точкой
Название: Re: Убрать округление цен
Отправлено: Drifter-B от Апреля 28, 2012, 04:00:14 pm
Всё, извиняюсь - клинический случай тупости. =)
У меня при вводе цены в виде "1,40" она почему-то сохраняется как 1, а если вводить "1.40" то нормально сохраняется как 1.4...

Извиняюсь за беспокойство.
Название: Re: Убрать округление цен
Отправлено: Drifter-B от Мая 17, 2012, 01:15:09 pm
Кстати, а почему при разных раскладках скрипт ведёт себя по-разному? Объясню:
Поле "цена" в админке, вод производится с нум-пада:
раскладка русская -> ввожу 1,4 -> отображается "1,4" -> в базу пишется 1
раскладка английская -> ввожу 1,4 -> отображается "1.4" -> в базу пишется 1,4

Это глюк такой или где-то стоит проверка? Возможно я чего-то не понимаю, конечно... =)
Название: Re: Убрать округление цен
Отправлено: Drifter-B от Мая 18, 2012, 07:15:23 am
Да, предложенный твик помогает.
Спасибо.