Форум UnitCMS

Убрать округление цен

Drifter-B

  • **
  • 25
  • +0/-0
Убрать округление цен
« : Апрель 28, 2012, 12:12:12 pm »
Версия 5.0.2

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

Заранее спасибо.
 

Jordan

Re: Убрать округление цен
« Ответ #1 : Апрель 28, 2012, 12:45:21 pm »
Я через БД делаю 2 запросами
Цитировать
ALTER TABLE `SS_products` CHANGE `Price` `Price` BIGINT NULL DEFAULT NULL;
ALTER TABLE `SS_products` CHANGE `Price` `Price` FLOAT( 20 ) NULL DEFAULT NULL;
И отбрасываются все копейки
 

slamm™

  • "Lego Edition" Support
  • *****
  • 1438
  • +263/-3
  • Програмист Lego SP
    • Разработка модулей для LegoSP
Re: Убрать округление цен
« Ответ #2 : Апрель 28, 2012, 01:00:49 pm »
Я через БД делаю 2 запросами и отбрасываются все копейки
Как я понял нужно убрать округление, а не сделать округление до целого числа.
Помог ?! Скажи спасибо на один из кошельков =)
WM: Z417625084406, R258781682589, U149520171899
YM: 410011436110815
_________
Skype: slamm_spec
URL: http://slamm.com.ua
 

slamm™

  • "Lego Edition" Support
  • *****
  • 1438
  • +263/-3
  • Програмист Lego SP
    • Разработка модулей для LegoSP
Re: Убрать округление цен
« Ответ #3 : Апрель 28, 2012, 01:10:27 pm »
Версия 5.0.2
Вопрос знатокам: Возможно ли убрать округление цен до целых чисел?
У меня присутствуют цены "1,8 руб", "1,4 руб", а при вводе они округляются до "1 руб".
Заранее спасибо.
В структуре поля Price стоит Тип -> float, по этому в базу и пишется целое число!
Помог ?! Скажи спасибо на один из кошельков =)
WM: Z417625084406, R258781682589, U149520171899
YM: 410011436110815
_________
Skype: slamm_spec
URL: http://slamm.com.ua
 

Jordan

Re: Убрать округление цен
« Ответ #4 : Апрель 28, 2012, 01:16:34 pm »
Неправильно понял вопрос. Извините....
 

Drifter-B

  • **
  • 25
  • +0/-0
Re: Убрать округление цен
« Ответ #5 : Апрель 28, 2012, 03:03:19 pm »
Т.е. если изменить тип поля в базе, всё будет ok?
Если так, то какой тип ставить - real?
 

Юрий

  • ****
  • 307
  • +69/-0
    • Во-Сток
Re: Убрать округление цен
« Ответ #6 : Апрель 28, 2012, 03: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;
}
 

Drifter-B

  • **
  • 25
  • +0/-0
Re: Убрать округление цен
« Ответ #7 : Апрель 28, 2012, 04:02:27 pm »
Да, отображение цены это изменило, спасибо. Однако, это только пол дела. Цена округляется до целых сразу при вводе товара в базу. Как бы теперь и это побороть?
 

Юрий

  • ****
  • 307
  • +69/-0
    • Во-Сток
Re: Убрать округление цен
« Ответ #8 : Апрель 28, 2012, 04:53:23 pm »
Где Вы это увидели? Я только что специально просмотрел catalog_products_edit.php - ничего похожего на округление - не увидел....

В структуре поля Price стоит Тип -> float, по этому в базу и пишется целое число!
Вроде целое - int.
а float - Числа с плавающей точкой
« Последнее редактирование: Апрель 28, 2012, 05:01:48 pm от Юрий »
 

Drifter-B

  • **
  • 25
  • +0/-0
Re: Убрать округление цен
« Ответ #9 : Апрель 28, 2012, 05:00:14 pm »
Всё, извиняюсь - клинический случай тупости. =)
У меня при вводе цены в виде "1,40" она почему-то сохраняется как 1, а если вводить "1.40" то нормально сохраняется как 1.4...

Извиняюсь за беспокойство.
 

Drifter-B

  • **
  • 25
  • +0/-0
Re: Убрать округление цен
« Ответ #10 : Май 17, 2012, 02:15:09 pm »
Кстати, а почему при разных раскладках скрипт ведёт себя по-разному? Объясню:
Поле "цена" в админке, вод производится с нум-пада:
раскладка русская -> ввожу 1,4 -> отображается "1,4" -> в базу пишется 1
раскладка английская -> ввожу 1,4 -> отображается "1.4" -> в базу пишется 1,4

Это глюк такой или где-то стоит проверка? Возможно я чего-то не понимаю, конечно... =)
 

slamm™

  • "Lego Edition" Support
  • *****
  • 1438
  • +263/-3
  • Програмист Lego SP
    • Разработка модулей для LegoSP
Re: Убрать округление цен
« Ответ #11 : Май 17, 2012, 02:55:39 pm »
Кстати, а почему при разных раскладках скрипт ведёт себя по-разному? Объясню:
Поле "цена" в админке, вод производится с нум-пада:
раскладка русская -> ввожу 1,4 -> отображается "1,4" -> в базу пишется 1
раскладка английская -> ввожу 1,4 -> отображается "1.4" -> в базу пишется 1,4

Это глюк такой или где-то стоит проверка? Возможно я чего-то не понимаю, конечно... =)
Очень интересно =)
Думаю стоит сделать так, в catalog_products_edit.php заменить код
if (!isset($_POST["price"]) || !$_POST["price"] || $_POST["price"] < 0)
$_POST["price"] = 0; //price can not be negative
на:
		if (!isset($_POST["price"]) || !$_POST["price"] || $_POST["price"] < 0) {
$_POST["price"] = 0; //price can not be negative
} else {
$_POST["price"] = str_replace(",", ".", $_POST["price"]);
}
Помог ?! Скажи спасибо на один из кошельков =)
WM: Z417625084406, R258781682589, U149520171899
YM: 410011436110815
_________
Skype: slamm_spec
URL: http://slamm.com.ua
 

Drifter-B

  • **
  • 25
  • +0/-0
Re: Убрать округление цен
« Ответ #12 : Май 18, 2012, 08:15:23 am »
Да, предложенный твик помогает.
Спасибо.
 

 

Sitemap 1 2 3 4 5