2017-07-17 18:20:28
Краткое описание :
История изменений цен в прайс-листахОписание :
Формирование прайс-листовЧто измененно :
История изменений цен в прайс-листах
Для продажи произведенной продукции используется
один прайс-лист (указан в настройках пользователя, и
соответственно в накладных на отпуск именно этот
прайс-лист указан). Цены на продукцию могут меняться
как целиком, там и частично, при этом приходится менять
на "живую" в текущем прайс-листе, и старая цена
теряется. Формировать каждый раз новый прайс-лист не
вариант, т.к. цены меняются постоянно. Поэтому
необходимо в одном действующем прайс-листе видеть даты
изменения прайс-листов.
Как измененно :
1. Добавлена настройка "Настройки Галактики - Логистика - Прайс-листы - Вести историю цены". При значении "да" настройки для модуля "Управление договорами" - Прайс-листы - Формирование - редактирование прайс-листа (F4) - кнопка "Цена" добавлены возможности просмотра и редактирования истории изменения цены позиции прайс-листа в диалоговом окне "Порядок формирования цены к позиции". История изменения цены в виде пар "дата;цена" накапливается с помощью внешнего атрибута "История изменения цены". Формат значений внешнего атрибута следующий:
"дата;цена|дата;цена|дата;цена|дата;цена....
Пары расположены по убыванию даты (от более поздней даты к более ранней).
Значение цены во внешний атрибут округляется в соответствии с настройками "Настройка Галактики - Логистика - Прайс-листы - ...значения в НДЕ округлять до..." (для рублевого прайса) и "Настройка Галактики - Логистика - Прайс-листы - ...значения в валюте округлять до..." (для валютного и валютно-рублевого прайсов). Если пользователь указал значение цены с меньшим числом цифр в дробной части, чем указано в настройке - то во внешний атрибут будет вставлено значение пользователя.
2. Если прайс-лист рублевый, то реализована работа с историей рублевой цены - поле "Цена НДЕ", если прайс валютный или рублево-валютный - то работа с историей валютной цены - поле "Цена в валюте". При модификации столбцов цены "Цена в НДЕ" (для рублевого прайса) или "Цена в валюте" (для валютного или рублево-валютного) в окне редактировании прайс-листа производится вставка новой пары "дата;цена" во внешний атрибут "История изменения цены" (в случае, если этой даты нет в истории) или обновление значения цены (в случае, если дата есть в истории). Значение цены - это новое значение, которое ввел пользователь, значение даты - это дата цен прайс-листа. Пары вставляются отсортированные по убыванию даты, до вставки или обновления производится проверка, не превышает длина строки атрибута 255 символов.
3. В окне редактирования прайс-листа вставлен столбец "Дата расчета", который содержит значение даты текущей цены, его значение хранится во внешнем атрибуте "Дата цены".
4. При открытии окна редактирования прайс-листа из внешнего атрибута "История изменения цены" считываются данные. В ходе считывания пар производится анализ форматов даты и цены. Если возникает ошибка при переводе строкового значения даты в формат даты или строкового значения цены в числовой формат - будут выданы сообщения, если неправильный формат даты - то в историю изменения цены эта пара записана не будет, если неправильный формат цены, то значение этой цены в истории будет равно 0.
5.Для работы с записями истории цены реализованы:
- текущее значение цены выделено жирным начертанием;
- пункт локального меню "Установить значение цены" - значение цены выбранной записи из истории станет текущей в окне редактирования прайс-листа;
- удаление записи из истории, после удаления записи данные истории будут отсортированы по дате и перезаписаны во внешний атрибут "История изменения цены";
- вставка и редактирование записи в историю производится с помощью отдельного окна, если поле даты осталось пустым, то вставка не производится и выдается сообщение, если такая дата есть в истории, то значение цены в истории, соответствующее этой дате обновляется, если дата есть и равна значению дате расчета в окне редактирования прайс-листа, то вставка не производится и выдается сообщение. Перед вставкой/обновлением производится проверка на превышение ограничения длины поля внешнего атрибута (255 символов), в случае если превышена длина, вставка производится не будет, будет выдано соответствующее сообщение. После вставки записи, данные будут отсортированы и перезаписаны во внешний атрибут "История изменения цены".