Настройка прайс-листов — различия между версиями
Iv (обсуждение | вклад) |
Iv (обсуждение | вклад) |
||
Строка 109: | Строка 109: | ||
Если невозможно установить значение из поля MaxPrice, берем значение из поля MaxPriceList, если у него @System=2 то ставим его, если нет то 0. | Если невозможно установить значение из поля MaxPrice, берем значение из поля MaxPriceList, если у него @System=2 то ставим его, если нет то 0. | ||
− | Для корректной работы необходимо чтобы иды ограничительных прайс-листов были перечислены в секции Prices параметр ExtraPrices, если у клиента указан прайс не перечисленный в этом параметре ограничение применяться не будет | + | Для корректной работы необходимо чтобы иды ограничительных прайс-листов были перечислены в секции Prices параметр ExtraPrices, |
+ | если у клиента указан прайс не перечисленный в этом параметре ограничение применяться не будет |
Версия 15:38, 7 июля 2010
Описание в ини
Каждый использующийся прайс лист должен быть описан в ини сервера . Каждый прайс-лист описывается в виде секции [Price n] (где n – порядковый номер, пишется через пробел). Секция должна содержать следующие параметры:
Параметр | Описание | Значение по умолчанию |
Level | Минимальный уровень доступа | -1 (доступен для всех)
возможно перечисление нескольких значений через ; |
DocType | Тип документа, который будет соответствовать заказу | 0 |
PriceName | Русское название прайс-листа | (20 символов) |
ProcName | Имя запрашиваемой процедура
FromFile - прайс-лист не будет обновляться из базы FROMCDS=Путь_к_файлу - Файл остатков будет загружен из cds файл должен обязательно содержать все объявленные доп колонки датасет параметров в этом случае не требуется |
Обязательный параметр |
ParamDataSet | Описание датасета параметров | Обязательный параметр |
RecalcPrices | Применять персональные договора | 0 |
RecalcQuantity | Применять блочные резервы и округления | 0 |
ApplyMarkup | Применять скидки из Users.dat | 0 |
ApplyMinPrice | Применять ограничительный прайс снизу | 1 |
ApplyMaxPrice | Применять ограничительный прайс сверху | 1 |
CheckRestricts | Если 1, то при выходе цены за пределы ограничительных,она будет обнуляться (т.е. позиция не попадет в прайс-лист) | 0 |
CheckRests | Если 1, то в прайс-лист не попадут позиции с нулевыми остатками | 0 |
Замечание 1: Значением параметра ParamDataSet является строка, определяющая структуру датасета и значения его полей. Каждое поле описывается в виде: Имя поля,Тип=”Значение”. Описания полей между собой разделяются символом “|”. Строку, описывающую датасет, можно легко получить, запустив ГБ с ключом –packetlog и выполнив нужный отчет. Например, если нужны параметры процедуры PriceLists_Report, то в GB_Log_Server они будут перечислены после строки «Open PriceLists_Report». Если полю передается пустое значение, то его можно не описывать.
Замечание 2: Колонки Node, Price1, Price2, Quantity являются обязательными, поэтому, в случае если результат процедуры не содержит колонок Node, Price, Quantity, необходимо указать соответствия для этих колонок. Например: Quantity=FreeQty, где FreeQty – колонка из отчета, соответствующая необходимой колонке Quantity. Соответствия можно смотреть прямо в ГБ в Настройке колонок.
Замечание 3: В разделе Prices необходимо указать параметры Price[i], Price[i+1], где i=3 для первого дополнительного прайс-листа, 5 – для второго, и так далее.
- Если для разных прайс-листов используются разные типы документов, то надо завести файл с описанием типов документов (DocTypesDesc.dat)
Распределение прайс-листов по клиентам
- 1.Распределение прайс листов по клиентам с помощью параметра Level прайс листа и клиента.
При значении по умолчанию (-1) прайс-лист будет доступен для скачивания всем клиентам. При изменении этого параметра на любой другой только тем клиентам значение Level(параметр 8 в users.dat) которых присутствует в Level прайс листа.
Пример: Прайс-листы [Price 0] Level=-1 (либо не определен) [Price 1 ] Level=10 [Price 2] Level=10;20 Клиенты 20100000000000-000-00 = Клиент1 = 1 = = = = = 10 = = = = = = = 20100000000000-000-01 = Клиент1(2 адрес) = 1 = = = = = 20 = = = = = = = 20100000000000-000-00 = Клиент2 = 1 = = = = = = = = = = = = Получаем Клиент1 - 0,1,2 Клиент1(2 адрес) - 0,2 Клиент2 - только 0
- 2.Распределение прайс-листов с помощью персональных договоров.
Возможна передача клиенту прайс-листов указанных в его договоре. В таком случае при запросе прайс-листа цены берутся не из указанного в настройках, а из данных персонального прайса, возможные скидки игнорируются. Ид такого прайс-листа должен быть обязательно перечислен в параметре ExtraPrices секции Prices. Применение договоров возможно к каждому конкретному uin. В договоре необходимо создать поле Heap.AddressId в которое записывается код адреса, такой же код должен быть указан в Users.dat на выбранном uin 13 параметр. При получении прайс-листа у этого клиента будут действовать все договора с пустым значением поля Heap.AddressId и те у которых стоит код для этого uin.
Пример: Договор1 Heap.AddressId=2210 Договор2 Heap.AddressId пусто Договор3 Heap.AddressId=1789 Клиент1 20100000000000-000-00 = Клиент1 = 1 = = = = = = = = = = 2210 = = Применяются Договор1 и Договор2 Клиент2 20100000000000-000-00 = Клиент1 = 1 = = = = = = = = = = = = Применяется только Договор2
Ограничительные прайс-листы
Установка идов ограничительных прайс листов производится либо в RServ.ini секция Prices параметры
MaxPriceList (задает условие для ограничительного прайс листа сверху, устанавливает MaxPrice )
MinPriceList (задает условие для ограничительного прайс листа сверху снизу, устанавливает MinPrice )
В условии можно использовать поля полученные из процедуры Get_Web_Partners
либо передавая их в Get_Web_Partners передаваться могут 3 поля MinPrice, MaxPrice, MaxPriceList
Ограничительный прайс лист снизу
Значение берется из поля MinPrice.
Если невозможно установить значение из поля MinPrice, берем значение из поля MaxPriceList и проверяем если у него @System=2 то ставим его, если нет то 0.
Ограничительный прайс лист снизу Значение берется из поля MaxPrice. Если невозможно установить значение из поля MaxPrice, берем значение из поля MaxPriceList, если у него @System=2 то ставим его, если нет то 0.
Для корректной работы необходимо чтобы иды ограничительных прайс-листов были перечислены в секции Prices параметр ExtraPrices, если у клиента указан прайс не перечисленный в этом параметре ограничение применяться не будет