Настройка прайс-листов

Материал из GB wiki
Перейти к: навигация, поиск


Описание в ини

Каждый использующийся прайс лист должен быть описан в ини сервера . Каждый прайс-лист описывается в виде секции [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
DiscountOverMinPrice Номер скидки/наценки которая будет применена к минимальной цене 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

Если параметр прайс-листа Heap.@System = 2, то прайс будет считаться ограничительным сверху, в остальных случаях - снизу

Для корректной работы необходимо чтобы иды ограничительных прайс-листов были перечислены в секции Prices параметр ExtraPrices,
если  у клиента указан прайс не перечисленный в этом параметре ограничение применяться не будет