Панель «Запрос» карточки «Тип программ лояльности»
Панель «Запрос» карточки «Тип программ лояльности»

Аннотация

TfmDiscountFunctions

Панель «Запрос» содержит текст SQL-запроса к базе данных, используемого при формировании данных для расчета размера скидки (наценки):

Рисунок 11.248. Панель «Запрос»


На панели расположено многострочное текстовое поле для ввода SQL-запроса.

Информация, необходимая для расчета размера скидки или наценки, содержится в базе данных комплекса. Отбор данных, необходимых для расчета конкретной скидки или наценки, производится с помощью запросов, написанных на языке Transact SQL (SQL-запросов).

Рисунок 11.249. Панель «Запрос» с контекстным меню


Контекстное меню поля на панели «Запрос» содержит команду «Тест запроса». Команда доступна только если в поле панели «Запрос» введен текст запроса. С помощью этой команды текст запроса проверяется на наличие ошибок, и по результатам проверки открывается окно с результатом выполнения запроса.

При тестировании запроса необходимо выбрать значения параметров фильтрации на всех шагах фильтра. После успешного выполнения запроса открывается окно сообщения об успешном выполнении запроса.

Рисунок 11.250. Окно сообщения об успешном выполнении запроса


Если в процессе выполнения запроса были обнаружены ошибки в запросе, то выводится окно сообщения об ошибке.

Рисунок 11.251. Окно сообщения об ошибке в запросе


Перечень параметров, которые можно использовать в запросе

CREATE TABLE #Guest(g_ID UNIQUEIDENTIFIER) -- ID гостевого счета

-- Элементы заказа

CREATE TABLE #OrderItems(
  -- Информационные и используемые при добавлении позиций поля
  i_ID                UNIQUEIDENTIFIER PRIMARY KEY,               -- ID элемента заказа
  i_ordr_ID           UNIQUEIDENTIFIER,                           -- ID заказа
  i_PriceOriginal     NUMERIC(18,4),                              -- Цена без скидок и надбавок
  -- Информационные поля
  i_Date              DATETIME,                                   -- Дата регистрации заказа
  i_pcit_ID           UNIQUEIDENTIFIER,                           -- ID элемента пречека
  i_LastPriceDiscount NUMERIC(18,4) NULL,                         -- Сумма ранее начисленной скидки. Выставляется только если i_pcit_ID не NULL
  i_LastPriceMargin   NUMERIC(18,4) NULL,                         -- Сумма ранее начисленной надбавки. Выставляется только если i_pcit_ID не NULL
  i_LastPrice         NUMERIC(18,4) NULL,                         -- Цена после ранее начисленной скидки/надбавки. Выставляется только если i_pcit_ID не NULL
  -- Информационные, изменяемые и используемые при добавлении позиций поля
  i_master_ID         UNIQUEIDENTIFIER,                           -- ID элемента родителя
  i_mitm_ID           UNIQUEIDENTIFIER,                           -- ID элемента прейскуранта
  i_mish_ID           UNIQUEIDENTIFIER,                           -- ID ярлыка элемента прейскуранта
  i_slgr_ID           UNIQUEIDENTIFIER,                           -- ID отдела продаж
  i_mvtp_ID           UNIQUEIDENTIFIER,                           -- ID единицы измерения прейскуранта
  i_Order             INT,                                        -- Порядок
  i_Count             INT,                                        -- Количество
  i_Volume            NUMERIC(18,6),                              -- Объем
  i_PriceDiscount     NUMERIC(18,4) DEFAULT 0,                    -- Скидка
  i_PriceMargin       NUMERIC(18,4) DEFAULT 0,                    -- Надбавка
  -- Управляющие поля
  i_ModifyAction      INT DEFAULT 1,                              -- 1 - добавить, 2 - изменить, 3 - удалить
  -- Служебные поля
  i_Price AS (i_PriceOriginal - i_PriceDiscount + i_PriceMargin), -- Цена
  i_ForUpdate         BIT DEFAULT 0                               -- Признак того, что данный элемент надо перерассчитывать
)

-- Повременные услуги заказа

CREATE TABLE #OrderTimeItems(
  -- Информационные поля
  t_ID                UNIQUEIDENTIFIER PRIMARY KEY,               -- ID тарификации повременной услуги заказа
  t_orti_ID           UNIQUEIDENTIFIER,                           -- ID повременной услуги заказа
  t_ordr_ID           UNIQUEIDENTIFIER,                           -- ID заказа
  t_plac_ID           UNIQUEIDENTIFIER,                           -- ID места размещения
  t_pcit_ID           UNIQUEIDENTIFIER,                           -- ID элемента пречека
  t_LastPriceDiscount NUMERIC(18,4) NULL,                         -- Сумма ранее начисленной скидки. Выставляется только если i_pcit_ID не NULL
  t_LastPriceMargin   NUMERIC(18,4) NULL,                         -- Сумма ранее начисленной надбавки. Выставляется только если i_pcit_ID не NULL
  t_LastPrice         NUMERIC(18,4) NULL,                         -- Цена после ранее начисленной скидки/надбавки. Выставляется только если i_pcit_ID не NULL
  t_PriceOriginal     NUMERIC(18,4),                              -- Цена без скидок и надбавок
  -- Информационные и изменяемые поля
  t_master_ID         UNIQUEIDENTIFIER,                           -- ID элемента родителя
  t_mitm_ID           UNIQUEIDENTIFIER,                           -- ID элемента прейскуранта
  t_mish_ID           UNIQUEIDENTIFIER,                           -- ID ярлыка элемента прейскуранта
  t_slgr_ID           UNIQUEIDENTIFIER,                           -- ID отдела продаж
  t_mvtp_ID           UNIQUEIDENTIFIER,                           -- ID единицы измерения прейскуранта
  t_Order             INT,                                        -- Порядок
  t_DateBegin         DATETIME,                                   -- Дата начала действия
  t_Duration          INT,                                        -- Продолжительность
  t_PriceDiscount     NUMERIC(18,4) DEFAULT 0,                    -- Скидка
  t_PriceMargin       NUMERIC(18,4) DEFAULT 0,                    -- Надбавка
  -- Служебные поля
  t_Price AS (t_PriceOriginal - t_PriceDiscount + t_PriceMargin), -- Цена
  t_ForUpdate         BIT DEFAULT 0                               -- Признак того, что данный элемент надо перерассчитывать
)

-- Начисляемые баллы

CREATE TABLE #GuestDiscountPointOperations(
  p_ID      UNIQUEIDENTIFIER PRIMARY KEY, -- ID записи
  p_dspt_ID UNIQUEIDENTIFIER,             -- ID типа баллов
  p_Value   INT DEFAULT 0                 -- Количество баллов
)