Порядок и особенности создания конфигурационного файла тарификатора показан на примере.
Требования и особенности формирования конфигурационного файла описаны в виде комментариев в примере ниже.
ПРИМЕЧАНИЕ
Если для ИП и ЮЛ действуют одинаковые тарифы, то можно один и тотже конфигурационный файл использовать у продукта для ЮЛ и ИП.
ВНИМАНИЕ
Все значения полей, которые указываются в тарификаторе для элемента field, рекомендуется внести как обязательные в настройки продукта для гарантии того, что пользователь их заполнит и тариф будет посчитан.
Например, в примере ниже есть следующие варианты значений поля field:
"BG:productDealState.amount"
"BG:productDealState.termDays"
"BG:productDealState.tender.federalLaw"
"BG:productDealState.isPrepayment"
Т.к. все эти значения типа "PRODUCT_FIELDS", то в настройках продукта перечисленные значения должны быть указаны в блоке productFields.
required
ПРИМЕЧАНИЕ
Рекомендуется перед импортом проверить файл с помощью любого валидатора yaml, чтобы исключить явные ошибки форматирования.
Скачать пример можно также по ссылке Пример для документации - Тарификатор Банка БАНК1 для БГ(И) (ред. 06-06-2019).yaml
#----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #тарифы, связанные с продуктом #тарифов может быть несколько в зависимости от ограничений, для каждого набора ограничений свой тариф, если тариф зависит от набора ограничений tariffs: - #tariff: #name varchar(250) NOT NULL name: "Тарифы по 185 ФЗ/615 ПП для банковской гарантии на исполнение, БАНК1" #shortName varchar(50) NOT NULL #выводится в списке тарифов продукта в личном кабинете поставщика сервиса shortName: "185 ФЗ/615 ПП, БГ(И), БАНК1" #description varchar(500) NULL #может использоваться при выводе подсказки по тарифу в списке тарифов продукта в личном кабинете поставщика сервиса description: "185 ФЗ/615 ПП, БГ(И), БАНК1" #указание на тип продукта, для которого создается тариф, по нему выполняется явная валидация связанных продуктов и ограничений внутри тарифа #мнемокод типа продукта, выбирается из справочника product_types #Например, "BG" или "PARTICIPATION_BG" или "TENDER_LOAN" productType: "BG" #startDate date NOT NULL, Дата начала действия тарифа в системе в формате "yyyy-mm-dd" startDate: "2017-01-01" #endDate date NULL, Дата окончания действия тарифа в системе, если EndDate = Null и текущая дата > StartDate, то считаем, что тариф действует #endDate в формате "yyyy-mm-dd" endDate: NULL #раздел settings, состав блока зависит от типа тарификатора #на текущий момент поддерживается только тип тарифа = INTERNAL #тариф может быть встроенный = INTERNAL, при котором в goodfin импортируются данные для расчета предварительного тарифа, который выводится в предложениях клиенту #тариф может определяться по запросу к API сервиса в момент рассмотрения предложения. Пока не реализовано #тариф может определяться сервисом только в момент рассмотрения заявки, следовательно на нашей стороне мы можем только указать "Определяется в сервисе". Пока не реализовано settings: #на текущий момент поддерживается только тип тарифа = INTERNAL type: "INTERNAL" #fieldColumn - это поле, по диапазонам значений которого будут рисоваться колонки тарификатора #Надо выбирать поле того типа продукта, для которого строится тариф #Поле также должно быть указано обязательным для продукта fieldColumn: #type varchar(50) NOT NULL - указывает на один из справочников - источник поля field #по умолчанию, PRODUCT_FIELDS. Также может быть COMPANY_FIELDS type: "PRODUCT_FIELDS" #field varchar(100) NOT NULL указание на поле, участвующее в расчете #Например, "BG:productDealState.amount" или "PARTICIPATION_BG:productDealState.amount" или "TENDER_LOAN:productDealState.amount" #полный перечень возможных значений для типа COMPANY_FIELDS см. в company_fields #полный перечень возможных значений для типа PRODUCT_FIELDS см. в product_types_fields field: "BG:productDealState.amount" #fieldRow - это поле, по диапазонам значений которого будут рисоваться строки тарификатора. #Надо выбирать поле того типа продукта, для которого строится тарификатор #Поле также должно быть указано обязательным для продукта fieldRow: #type varchar(50) NOT NULL - указывает на один из справочников - источник поля field #по умолчанию, PRODUCT_FIELDS. Также может быть COMPANY_FIELDS type: "PRODUCT_FIELDS" #field varchar(100) NOT NULL указание на поле, участвующее в расчете #Например, "BG:productDealState.termDays" или "PARTICIPATION_BG:productDealState.termDays" или "TENDER_LOAN:productDealState.termDays" #полный перечень возможных значений для типа COMPANY_FIELDS см. в company_fields #полный перечень возможных значений для типа PRODUCT_FIELDS см. в product_types_fields field: "BG:productDealState.termDays" #calcField - это поле, которое является базовым для определения тарифа. #От значения данного поля будут браться проценты, суммироваться надбавки или вычитаться скидки и пр. #Надо выбирать поле того типа продукта, для которого строится тарификатор #Поле также должно быть указано обязательным для продукта calcField: #type varchar(50) NOT NULL - указывает на один из справочников - источник поля field #по умолчанию, PRODUCT_FIELDS. Также может быть COMPANY_FIELDS type: "PRODUCT_FIELDS" #field varchar(100) NOT NULL указание на поле, участвующее в расчете #Например, "BG:productDealState.amount" или "PARTICIPATION_BG:productDealState.amount" или "TENDER_LOAN:productDealState.amount" #полный перечень возможных значений для типа COMPANY_FIELDS см. в company_fields #полный перечень возможных значений для типа PRODUCT_FIELDS см. в product_types_fields field: "BG:productDealState.amount" #строки тарифа tariffСalculatingRows: #rowStartValue - указание, с какой величины начинается расчет #rowStartValue < проверяемое значение <= rowEndValue, другими словами диапазон указывается по правилу (rowStartValue,rowEndValue] #rowName - имя строки, которое используется как код диапазона значений строки тарифа при описании ячеек тарифа - rowName: "row1_365" rowStartValue: 1 rowEndValue: 365 - rowName: "row365_732" rowStartValue: 365 rowEndValue: 732 - rowName: "row732_1095" rowStartValue: 732 rowEndValue: 1095 #колонка тарифа tariffСalculatingColumns: #columnStartValue < период <= columnEndValue, другими словами диапазон указывается по правилу (columnStartValue,columnEndValue] #columnName - имя колонки, которое используется как код диапазона значений колонки тарифа при описании ячеек тарифа - columnName: "col0_50000" columnStartValue: 0 columnEndValue: 50000 - columnName: "col50000_100000" columnStartValue: 50000 columnEndValue: 100000 - columnName: "col100000_500000" columnStartValue: 100000 columnEndValue: 500000 - columnName: "col500000_1000000" columnStartValue: 500000 columnEndValue: 1000000 - columnName: "col1000000_3000000" columnStartValue: 1000000 columnEndValue: 3000000 - columnName: "col3000000_7000000" columnStartValue: 3000000 columnEndValue: 7000000 - columnName: "col7000000_10000000" columnStartValue: 7000000 columnEndValue: 10000000 - columnName: "col10000000_50000000" columnStartValue: 10000000 columnEndValue: 50000000 - columnName: "col50000000_100000000" columnStartValue: 50000000 columnEndValue: 100000000 - columnName: "col100000000_150000000" columnStartValue: 100000000 columnEndValue: 150000000 tariffCells: #rowName - ссылка на строку, NOT NULL #columnName - ссылка на колонку, NOT NULL #cellValue - ставка #cellValueType - тип значения. Возможные варианты значений см. в справочнике tariff_cell_types #cellMinValue - минимальная ставка, может быть NULL #cellMinValueType - тип значения, может быть NULL, если cellMinValue = NULL. Возможные варианты значений см. в справочнике tariff_cell_types - {rowName: "row1_365", columnName: "col0_50000", cellValue: 2400.00, cellValueType: "RUB", cellMinValue: 2400.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col50000_100000", cellValue: 4200.00, cellValueType: "RUB", cellMinValue: 4200.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col100000_500000", cellValue: 4.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 6000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col500000_1000000", cellValue: 4.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 12000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col1000000_3000000", cellValue: 4.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 16800.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col3000000_7000000", cellValue: 4.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col7000000_10000000", cellValue: 3.96, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col10000000_50000000", cellValue: 3.96, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col50000000_100000000", cellValue: 3.74, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col100000000_150000000", cellValue: 3.48, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col0_50000", cellValue: 3000.00, cellValueType: "RUB", cellMinValue: 3000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col50000_100000", cellValue: 4800.00, cellValueType: "RUB", cellMinValue: 4800.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col100000_500000", cellValue: 4.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 6000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col500000_1000000", cellValue: 4.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 12000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col1000000_3000000", cellValue: 4.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 16800.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col3000000_7000000", cellValue: 4.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col7000000_10000000", cellValue: 3.96, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col10000000_50000000", cellValue: 3.96, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col50000000_100000000", cellValue: 3.74, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col100000000_150000000", cellValue: 3.48, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col0_50000", cellValue: 3000.00, cellValueType: "RUB", cellMinValue: 3000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col50000_100000", cellValue: 6000.00, cellValueType: "RUB", cellMinValue: 6000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col100000_500000", cellValue: 4.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 6000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col500000_1000000", cellValue: 4.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 12000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col1000000_3000000", cellValue: 4.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 16800.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col3000000_7000000", cellValue: 4.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col7000000_10000000", cellValue: 3.96, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col10000000_50000000", cellValue: 3.96, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col50000000_100000000", cellValue: 3.74, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col100000000_150000000", cellValue: 3.48, cellValueType: "ANNUAL_PERCENT", cellMinValue: 18000.00, cellMinValueType: "RUB"} tariffConstraints: #блок повторяется столько раз, сколько ограничений в применимости тарифа #type и field - это блок для указания поля, по которому будет определяться ограничение применимости тарифа #Надо выбирать поле того типа продукта, для которого строится тарификатор #Поле также должно быть указано обязательным для продукта #valueType varchar(50) NOT NULL. Это может быть простое перечисление значений ENUM, может быть диапазон значений RANGE. #для типа valueType = ENUM values оформляется списком допустимых значений #для типа valueType = RANGE values оформляется обязательным списком из двух значений: начального и конечного - type: "PRODUCT_FIELDS" field: "BG:productDealState.tender.federalLaw" valueType: "ENUM" values: - "185FL615PP" - #tariff: #name varchar(250) NOT NULL name: "44,223-ФЗ, без аванса, БГ(И), БАНК1" #shortName varchar(50) NOT NULL #выводится в списке тарифов продукта в личном кабинете поставщика сервиса shortName: "44,223-ФЗ, без аванса, БГ(И), БАНК1" #description varchar(500) NULL #может использоваться при выводе подсказки по тарифу в списке тарифов продукта в личном кабинете поставщика сервиса description: "44,223-ФЗ, без аванса, БГ(И), БАНК1" #указание на тип продукта, для которого создается тариф, по нему выполняется явная валидация связанных продуктов и ограничений внутри тарифа #мнемокод типа продукта, выбирается из справочника product_types #Например, "BG" или "PARTICIPATION_BG" или "TENDER_LOAN" productType: "BG" #startDate date NOT NULL, Дата начала действия тарифа в формате "yyyy-mm-dd" startDate: "2017-01-01" #endDate date NULL, Дата окончания действия тарифа, если EndDate = Null и текущая дата > StartDate, то считаем, что тариф действует #endDate в формате "yyyy-mm-dd" endDate: NULL #раздел settings, состав блока зависит от типа тарификатора #на текущий момент поддерживается только тип тарифа = INTERNAL #тариф может быть встроенный = INTERNAL, при котором в goodfin импортируются данные для расчета предварительного тарифа, который выводится в предложениях клиенту #тариф может определяться по запросу к API сервиса в момент рассмотрения предложения. Пока не реализовано #тариф может определяться сервисом только в момент рассмотрения заявки, следовательно на нашей стороне мы можем только указать "Определяется в сервисе". Пока не реализовано settings: #на текущий момент поддерживается только тип тарифа = INTERNAL type: "INTERNAL" #fieldColumn - это поле, по диапазонам значений которого будут рисоваться колонки тарификатора #Надо выбирать поле того типа продукта, для которого строится тариф #Поле также должно быть указано обязательным для продукта fieldColumn: #type varchar(50) NOT NULL - указывает на один из справочников - источник поля field #по умолчанию, PRODUCT_FIELDS. Также может быть COMPANY_FIELDS type: "PRODUCT_FIELDS" #field varchar(100) NOT NULL указание на поле, участвующее в расчете #Например, "BG:productDealState.amount" или "PARTICIPATION_BG:productDealState.amount" или "TENDER_LOAN:productDealState.amount" #полный перечень возможных значений для типа COMPANY_FIELDS см. в company_fields #полный перечень возможных значений для типа PRODUCT_FIELDS см. в product_types_fields field: "BG:productDealState.amount" #fieldRow - это поле, по диапазонам значений которого будут рисоваться строки тарификатора. #Надо выбирать поле того типа продукта, для которого строится тарификатор #Поле также должно быть указано обязательным для продукта fieldRow: #type varchar(50) NOT NULL - указывает на один из справочников - источник поля field #по умолчанию, PRODUCT_FIELDS. Также может быть COMPANY_FIELDS type: "PRODUCT_FIELDS" #field varchar(100) NOT NULL указание на поле, участвующее в расчете #Например, "BG:productDealState.termDays" или "PARTICIPATION_BG:productDealState.termDays" или "TENDER_LOAN:productDealState.termDays" #полный перечень возможных значений для типа COMPANY_FIELDS см. в company_fields #полный перечень возможных значений для типа PRODUCT_FIELDS см. в product_types_fields field: "BG:productDealState.termDays" #calcField - это поле, которое является базовым для определения тарифа. #От значения данного поля будут браться проценты, суммироваться надбавки или вычитаться скидки и пр. #Надо выбирать поле того типа продукта, для которого строится тарификатор #Поле также должно быть указано обязательным для продукта calcField: #type varchar(50) NOT NULL - указывает на один из справочников - источник поля field #по умолчанию, PRODUCT_FIELDS. Также может быть COMPANY_FIELDS type: "PRODUCT_FIELDS" #field varchar(100) NOT NULL указание на поле, участвующее в расчете #Например, "BG:productDealState.amount" или "PARTICIPATION_BG:productDealState.amount" или "TENDER_LOAN:productDealState.amount" #полный перечень возможных значений для типа COMPANY_FIELDS см. в company_fields #полный перечень возможных значений для типа PRODUCT_FIELDS см. в product_types_fields field: "BG:productDealState.amount" #строки тарифа tariffСalculatingRows: #rowStartValue - указание, с какой величины начинается расчет #rowStartValue < проверяемое значение <= rowEndValue, другими словами диапазон указывается по правилу (rowStartValue,rowEndValue] #rowName - имя строки, которое используется как код диапазона значений строки тарифа при описании ячеек тарифа - rowName: "row1_365" rowStartValue: 1 rowEndValue: 365 - rowName: "row365_732" rowStartValue: 365 rowEndValue: 732 - rowName: "row732_1095" rowStartValue: 732 rowEndValue: 1095 #колонка тарифа tariffСalculatingColumns: #columnStartValue < период <= columnEndValue, другими словами диапазон указывается по правилу (columnStartValue,columnEndValue] #columnName - имя колонки, которое используется как код диапазона значений колонки тарифа при описании ячеек тарифа - columnName: "col0_50000" columnStartValue: 0 columnEndValue: 50000 - columnName: "col50000_100000" columnStartValue: 50000 columnEndValue: 100000 - columnName: "col100000_500000" columnStartValue: 100000 columnEndValue: 500000 - columnName: "col500000_1000000" columnStartValue: 500000 columnEndValue: 1000000 - columnName: "col1000000_3000000" columnStartValue: 1000000 columnEndValue: 3000000 - columnName: "col3000000_7000000" columnStartValue: 3000000 columnEndValue: 7000000 - columnName: "col7000000_10000000" columnStartValue: 7000000 columnEndValue: 10000000 - columnName: "col10000000_50000000" columnStartValue: 10000000 columnEndValue: 50000000 - columnName: "col50000000_100000000" columnStartValue: 50000000 columnEndValue: 100000000 - columnName: "col100000000_150000000" columnStartValue: 100000000 columnEndValue: 150000000 tariffCells: #rowName - ссылка на строку, NOT NULL #columnName - ссылка на колонку, NOT NULL #cellValue - ставка #cellValueType - тип значения. Возможные варианты значений см. в справочнике tariff_cell_types #cellMinValue - минимальная ставка, может быть NULL #cellMinValueType - тип значения, может быть NULL, если cellMinValue = NULL. Возможные варианты значений см. в справочнике tariff_cell_types - {rowName: "row1_365", columnName: "col0_50000", cellValue: 2000.00, cellValueType: "RUB", cellMinValue: 2000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col50000_100000", cellValue: 3500.00, cellValueType: "RUB", cellMinValue: 3500.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col100000_500000", cellValue: 3.40, cellValueType: "ANNUAL_PERCENT", cellMinValue: 5000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col500000_1000000", cellValue: 3.40, cellValueType: "ANNUAL_PERCENT", cellMinValue: 10000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col1000000_3000000", cellValue: 3.40, cellValueType: "ANNUAL_PERCENT", cellMinValue: 14000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col3000000_7000000", cellValue: 3.40, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col7000000_10000000", cellValue: 3.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col10000000_50000000", cellValue: 3.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col50000000_100000000", cellValue: 3.05, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col100000000_150000000", cellValue: 2.90, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col0_50000", cellValue: 2500.00, cellValueType: "RUB", cellMinValue: 2500.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col50000_100000", cellValue: 4000.00, cellValueType: "RUB", cellMinValue: 4500.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col100000_500000", cellValue: 3.40, cellValueType: "ANNUAL_PERCENT", cellMinValue: 5000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col500000_1000000", cellValue: 3.40, cellValueType: "ANNUAL_PERCENT", cellMinValue: 10000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col1000000_3000000", cellValue: 3.40, cellValueType: "ANNUAL_PERCENT", cellMinValue: 14000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col3000000_7000000", cellValue: 3.40, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col7000000_10000000", cellValue: 3.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 16000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col10000000_50000000", cellValue: 3.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col50000000_100000000", cellValue: 3.05, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col100000000_150000000", cellValue: 2.90, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col0_50000", cellValue: 2500.00, cellValueType: "RUB", cellMinValue: 2500.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col50000_100000", cellValue: 5000.00, cellValueType: "RUB", cellMinValue: 5000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col100000_500000", cellValue: 3.40, cellValueType: "ANNUAL_PERCENT", cellMinValue: 5000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col500000_1000000", cellValue: 3.40, cellValueType: "ANNUAL_PERCENT", cellMinValue: 10000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col1000000_3000000", cellValue: 3.40, cellValueType: "ANNUAL_PERCENT", cellMinValue: 14000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col3000000_7000000", cellValue: 3.40, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col7000000_10000000", cellValue: 3.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 16000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col10000000_50000000", cellValue: 3.20, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col50000000_100000000", cellValue: 3.05, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col100000000_150000000", cellValue: 2.90, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} tariffConstraints: #блок повторяется столько раз, сколько ограничений в применимости тарифа #type и field - это блок для указания поля, по которому будет определяться ограничение применимости тарифа #Надо выбирать поле того типа продукта, для которого строится тарификатор #Поле также должно быть указано обязательным для продукта #valueType varchar(50) NOT NULL. Это может быть простое перечисление значений ENUM, может быть диапазон значений RANGE. #для типа valueType = ENUM values оформляется списком допустимых значений #для типа valueType = RANGE values оформляется обязательным списком из двух значений: начального и конечного - type: "PRODUCT_FIELDS" field: "BG:productDealState.isPrepayment" valueType: "ENUM" values: - "false" - type: "PRODUCT_FIELDS" field: "BG:productDealState.tender.federalLaw" valueType: "ENUM" values: - "223FL" - "44FL" - #tariff: #name varchar(250) NOT NULL name: "44,223-ФЗ, с авансом, БГ(И), БАНК1" #shortName varchar(50) NOT NULL #выводится в списке тарифов продукта в личном кабинете поставщика сервиса shortName: "44,223-ФЗ, с авансом, БГ(И), БАНК1" #description varchar(500) NULL #может использоваться при выводе подсказки по тарифу в списке тарифов продукта в личном кабинете поставщика сервиса description: "44,223-ФЗ, с авансом, БГ(И), БАНК1" #указание на тип продукта, для которого создается тариф, по нему выполняется явная валидация связанных продуктов и ограничений внутри тарифа #мнемокод типа продукта, выбирается из справочника product_types #Например, "BG" или "PARTICIPATION_BG" или "TENDER_LOAN" productType: "BG" #startDate date NOT NULL, Дата начала действия тарифа в формате "yyyy-mm-dd" startDate: "2017-01-01" #endDate date NULL, Дата окончания действия тарифа, если EndDate = Null и текущая дата > StartDate, то считаем, что тариф действует #endDate в формате "yyyy-mm-dd" endDate: NULL #раздел settings, состав блока зависит от типа тарификатора #на текущий момент поддерживается только тип тарифа = INTERNAL #тариф может быть встроенный = INTERNAL, при котором в goodfin импортируются данные для расчета предварительного тарифа, который выводится в предложениях клиенту #тариф может определяться по запросу к API сервиса в момент рассмотрения предложения. Пока не реализовано #тариф может определяться сервисом только в момент рассмотрения заявки, следовательно на нашей стороне мы можем только указать "Определяется в сервисе". Пока не реализовано settings: #на текущий момент поддерживается только тип тарифа = INTERNAL type: "INTERNAL" #fieldColumn - это поле, по диапазонам значений которого будут рисоваться колонки тарификатора #Надо выбирать поле того типа продукта, для которого строится тариф #Поле также должно быть указано обязательным для продукта fieldColumn: #type varchar(50) NOT NULL - указывает на один из справочников - источник поля field #по умолчанию, PRODUCT_FIELDS. Также может быть COMPANY_FIELDS type: "PRODUCT_FIELDS" #field varchar(100) NOT NULL указание на поле, участвующее в расчете #Например, "BG:productDealState.amount" или "PARTICIPATION_BG:productDealState.amount" или "TENDER_LOAN:productDealState.amount" #полный перечень возможных значений для типа COMPANY_FIELDS см. в company_fields #полный перечень возможных значений для типа PRODUCT_FIELDS см. в product_types_fields field: "BG:productDealState.amount" #fieldRow - это поле, по диапазонам значений которого будут рисоваться строки тарификатора. #Надо выбирать поле того типа продукта, для которого строится тарификатор #Поле также должно быть указано обязательным для продукта fieldRow: #type varchar(50) NOT NULL - указывает на один из справочников - источник поля field #по умолчанию, PRODUCT_FIELDS. Также может быть COMPANY_FIELDS type: "PRODUCT_FIELDS" #field varchar(100) NOT NULL указание на поле, участвующее в расчете #Например, "BG:productDealState.termDays" или "PARTICIPATION_BG:productDealState.termDays" или "TENDER_LOAN:productDealState.termDays" #полный перечень возможных значений для типа COMPANY_FIELDS см. в company_fields #полный перечень возможных значений для типа PRODUCT_FIELDS см. в product_types_fields field: "BG:productDealState.termDays" #calcField - это поле, которое является базовым для определения тарифа. #От значения данного поля будут браться проценты, суммироваться надбавки или вычитаться скидки и пр. #Надо выбирать поле того типа продукта, для которого строится тарификатор #Поле также должно быть указано обязательным для продукта calcField: #type varchar(50) NOT NULL - указывает на один из справочников - источник поля field #по умолчанию, PRODUCT_FIELDS. Также может быть COMPANY_FIELDS type: "PRODUCT_FIELDS" #field varchar(100) NOT NULL указание на поле, участвующее в расчете #Например, "BG:productDealState.amount" или "PARTICIPATION_BG:productDealState.amount" или "TENDER_LOAN:productDealState.amount" #полный перечень возможных значений для типа COMPANY_FIELDS см. в company_fields #полный перечень возможных значений для типа PRODUCT_FIELDS см. в product_types_fields field: "BG:productDealState.amount" #строки тарифа tariffСalculatingRows: #rowStartValue - указание, с какой величины начинается расчет #rowStartValue < проверяемое значение <= rowEndValue, другими словами диапазон указывается по правилу (rowStartValue,rowEndValue] #rowName - имя строки, которое используется как код диапазона значений строки тарифа при описании ячеек тарифа - rowName: "row1_365" rowStartValue: 1 rowEndValue: 365 - rowName: "row365_732" rowStartValue: 365 rowEndValue: 732 - rowName: "row732_1095" rowStartValue: 732 rowEndValue: 1095 #колонка тарифа tariffСalculatingColumns: #columnStartValue < период <= columnEndValue, другими словами диапазон указывается по правилу (columnStartValue,columnEndValue] #columnName - имя колонки, которое используется как код диапазона значений колонки тарифа при описании ячеек тарифа - columnName: "col0_50000" columnStartValue: 0 columnEndValue: 50000 - columnName: "col50000_100000" columnStartValue: 50000 columnEndValue: 100000 - columnName: "col100000_500000" columnStartValue: 100000 columnEndValue: 500000 - columnName: "col500000_1000000" columnStartValue: 500000 columnEndValue: 1000000 - columnName: "col1000000_3000000" columnStartValue: 1000000 columnEndValue: 3000000 - columnName: "col3000000_7000000" columnStartValue: 3000000 columnEndValue: 7000000 - columnName: "col7000000_10000000" columnStartValue: 7000000 columnEndValue: 10000000 - columnName: "col10000000_50000000" columnStartValue: 10000000 columnEndValue: 50000000 - columnName: "col50000000_100000000" columnStartValue: 50000000 columnEndValue: 100000000 - columnName: "col100000000_150000000" columnStartValue: 100000000 columnEndValue: 150000000 tariffCells: #rowName - ссылка на строку, NOT NULL #columnName - ссылка на колонку, NOT NULL #cellValue - ставка #cellValueType - тип значения. Возможные варианты значений см. в справочнике tariff_cell_types #cellMinValue - минимальная ставка, может быть NULL #cellMinValueType - тип значения, может быть NULL, если cellMinValue = NULL. Возможные варианты значений см. в справочнике tariff_cell_types - {rowName: "row1_365", columnName: "col0_50000", cellValue: 2000.00, cellValueType: "RUB", cellMinValue: 2000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col50000_100000", cellValue: 3500.00, cellValueType: "RUB", cellMinValue: 3500.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col100000_500000", cellValue: 3.70, cellValueType: "ANNUAL_PERCENT", cellMinValue: 5000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col500000_1000000", cellValue: 3.70, cellValueType: "ANNUAL_PERCENT", cellMinValue: 10000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col1000000_3000000", cellValue: 3.70, cellValueType: "ANNUAL_PERCENT", cellMinValue: 14000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col3000000_7000000", cellValue: 3.70, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col7000000_10000000", cellValue: 3.80, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col10000000_50000000", cellValue: 3.60, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col50000000_100000000", cellValue: 3.05, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row1_365", columnName: "col100000000_150000000", cellValue: 2.90, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col0_50000", cellValue: 2500.00, cellValueType: "RUB", cellMinValue: 2500.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col50000_100000", cellValue: 4000.00, cellValueType: "RUB", cellMinValue: 4500.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col100000_500000", cellValue: 3.70, cellValueType: "ANNUAL_PERCENT", cellMinValue: 5000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col500000_1000000", cellValue: 3.70, cellValueType: "ANNUAL_PERCENT", cellMinValue: 10000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col1000000_3000000", cellValue: 3.70, cellValueType: "ANNUAL_PERCENT", cellMinValue: 14000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col3000000_7000000", cellValue: 3.70, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col7000000_10000000", cellValue: 3.80, cellValueType: "ANNUAL_PERCENT", cellMinValue: 16000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col10000000_50000000", cellValue: 3.60, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col50000000_100000000", cellValue: 3.05, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row365_732", columnName: "col100000000_150000000", cellValue: 2.90, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col0_50000", cellValue: 2500.00, cellValueType: "RUB", cellMinValue: 2500.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col50000_100000", cellValue: 5000.00, cellValueType: "RUB", cellMinValue: 5000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col100000_500000", cellValue: 3.70, cellValueType: "ANNUAL_PERCENT", cellMinValue: 5000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col500000_1000000", cellValue: 3.70, cellValueType: "ANNUAL_PERCENT", cellMinValue: 10000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col1000000_3000000", cellValue: 3.70, cellValueType: "ANNUAL_PERCENT", cellMinValue: 14000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col3000000_7000000", cellValue: 3.70, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col7000000_10000000", cellValue: 3.80, cellValueType: "ANNUAL_PERCENT", cellMinValue: 16000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col10000000_50000000", cellValue: 3.60, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col50000000_100000000", cellValue: 3.05, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} - {rowName: "row732_1095", columnName: "col100000000_150000000", cellValue: 2.90, cellValueType: "ANNUAL_PERCENT", cellMinValue: 15000.00, cellMinValueType: "RUB"} tariffConstraints: #блок повторяется столько раз, сколько ограничений в применимости тарифа #type и field - это блок для указания поля, по которому будет определяться ограничение применимости тарифа #Надо выбирать поле того типа продукта, для которого строится тарификатор #Поле также должно быть указано обязательным для продукта #valueType varchar(50) NOT NULL. Это может быть простое перечисление значений ENUM, может быть диапазон значений RANGE. #для типа valueType = ENUM values оформляется списком допустимых значений #для типа valueType = RANGE values оформляется обязательным списком из двух значений: начального и конечного - type: "PRODUCT_FIELDS" field: "BG:productDealState.isPrepayment" valueType: "ENUM" values: - "true" - type: "PRODUCT_FIELDS" field: "BG:productDealState.tender.federalLaw" valueType: "ENUM" values: - "223FL" - "44FL"