Расчет цены для прейскуранта (баг)

Автор Сообщение
Serj
Заслуженный форумщик

Зарегистрирован: 15.12.2006
Сообщения: 90
Откуда: Санкт-Петербург

Добавлено: 20.05.2008 15:02 Заголовок сообщения: Расчет цены для прейскуранта (баг)
Обнаружен досадный баг, приводящий к дублированию записей (с одинаковыми первичными ключами Exclamation ) в таблице.
Речь идет о расчете цены в новый прейскурант на основе старого.
Пример:
Есть код продукции "КР70КР21" (буквы — кирилица)
Для него в прейскуранте "B8" (буквы — англ.) цена — 10 руб.
Расчитываем для него новую цену в прейскурант "B9" с 10%-ым увеличением.
(Управление запасами — Отчеты — Расчеты/Корректировка цены — Расчет цены)
После расчета, новая цена не появится ни в отчетах, ни в процедуре ручного ввода цены в прейскурант (Управление запасами — Позиции запасов/Запросы — Прочие файлы запасов — Прейскуранты).
А в таблице SC39 появится запись с кодом продукции и пробелами в конце.
Далее если мы введем цену вручную (Управление запасами — Позиции запасов/Запросы — Прочие файлы запасов — Прейскуранты), то поимеем 2 Exclamation записи в SC39, код продукта при ручном вводе — без пробелов и код продукта при расчете цены — дополненный пробелами.
В такой ситуации их даже невозможно удалить, т.к. SQL воспринимает их как 2 идентичные записи и ругается.
Пришлось выгрузить содержимое таблицы в текст, исправить, затем во временную таблицу, ну и залить данные в боевую таблицу с предварительным TRUNCATE.
И ещё, в отчет "Сводный прейскурант" будет попадать расчитанная цена, а при вводе заказа — введенная вручную.
Данная ситуация повторилась для всех кодов состоящих из русских букв и цифр, если они чередуются (пример: для КР20ВИ — все ОК, а для КР20ВИ12 — уже нет).

О данном баге доложено в хотлайн, они его воспроизвели успешно.
Просто хотелось предупредить всех у кого есть похожие коды запасов, чтобы не использовали "Расчет цены" до выхода хотфикса.

aav
Администратор
Администратор

Зарегистрирован: 14.09.2004
Сообщения: 1081
Откуда: Санкт-Петербург

Добавлено: 20.05.2008 22:03 Заголовок сообщения: Re: Расчет цены для прейскуранта (баг)
Какая версия Скалы? Какие COLLATION установлены для базы данных?
Serj
Заслуженный форумщик

Зарегистрирован: 15.12.2006
Сообщения: 90
Откуда: Санкт-Петербург

Добавлено: 21.05.2008 08:53 Заголовок сообщения:
Версия Scala 2.2 SR2 Hotfix 3318
SQL 2000, Collation Cyrillic_General_BIN
aav
Администратор
Администратор

Зарегистрирован: 14.09.2004
Сообщения: 1081
Откуда: Санкт-Петербург

Добавлено: 21.05.2008 11:27 Заголовок сообщения: По-моему, похоже…

Serj писал(а):
Collation Cyrillic_General_BIN

Сдаётся мне, что ситуация чем-то напоминает описанную здесь: http://scala.org.ru/scala/viewtopic.php?p=424#424

Serj
Заслуженный форумщик

Зарегистрирован: 15.12.2006
Сообщения: 90
Откуда: Санкт-Петербург

Добавлено: 21.05.2008 13:16 Заголовок сообщения:
Да, ситуация связана с известной проблемой пробелов.
Вот только в данном случае она ещё и приводит к дублирующимся записям и невозможности удалить цены из прейскуранта. Виновата в этом только "корявая" процедура "Расчет цен", добавляющая пробелы.