Loading
Страхование
InsCommissionService:calculate

InsCommissionService:calculate

Используйте эту службу для расчета комиссии для производителя.

Класс: InsCommissionService

Метод: calculate

Описание

Данная служба использует сведения о производителе, страховом продукте и заказываемом событии для расчета комиссии для производителя.

Принцип работы

Для расчета комиссии данная услуга:

  1. Принимает вводные данные productionCode, producerId, productId, commissionableEvent, context и effectiveDate для поиска подходящих CommissionSchedule для использования в вычислении.

  2. Рассчитывает комиссию на основе расписания комиссии.

  3. Оценивает комиссию, чтобы определить, является ли она возвратом платежа (возвращенная стоимость комиссии).

    • Если комиссионная стоимость является отрицательной, служба рассматривает комиссию как обратный платеж.

    • Если комиссия не является возвратом платежа, служба сравнивает вычисленную сумму комиссии с минимальными и максимальными суммами комиссии. Если вычисленная стоимость слишком низкая или слишком высокая, служба возвращает минимальную или максимальную стоимость вместо вычисленной стоимости.

  4. Возвращает сумму комиссии, код расписания комиссии, используемого для ее расчета, а также минимальную и максимальную суммы, применяемые к этой комиссии.

Вводные данные

Ввод

Описание

productionCode

Дополнительно.

Имя производственного кода, а не код производителя обработки.

producerId

Дополнительно.

Код производителя обработки.

productId

Обязательно.

Код продукта, за который оплачивается комиссия.

commissionableEvent

Дополнительно.

Событие или транзакция, запускающая расчет комиссии (например, «Смета», «Проданный полис» или «Изменено/Подтверждено»).

effectiveDate

Дополнительно.

Дата вступления в силу комиссионной оплаты. При нулевом значении служба использует сегодняшнюю дату.

context

Обязательно.

Имя поля и пары значений для записи, на основе которой рассчитывается комиссия. Вы должны:

  • Добавьте пространство имен в API-имя при его наличии.

  • Добавьте objectId, то есть код записи, для которой рассчитывается комиссия.

Формат без поля поиска:

{ objectAPI.fieldAPI : fieldValue }

Формат с полем поиска:

{ objectAPI.relationshipAPI.fieldAPI : fieldValue }

При форматировании ввода с полем поиска можно указать не более двух уровней полей.

commissionableAmount

Дополнительно.

Сумма, на которой основан расчет комиссии.

JSON ввода

Ниже указан способ форматирования JSON ввода.

{
   "productionCode": ProductionCode.Name,
   "producerId": Producer.Id,
   "product2Id": Product2.Id,
   "commissionableEvent": event type,
   "commissionableAmount": amount of the transaction,
   "context": {
      "objectId": ID of applicable object used,
	  "objectAPI.fieldAPI" : value
   }
}

Данный образец вычисляет комиссию для утверждения.

{
   "productionCode":AX001,
   "producerId":ay001jh002,
   "product2Id":az011jh022,
   "commissionableEvent":"Endorsement",
   "commissionableAmount":500,
   "context":{
      "Quote.vlocity_ins__TotalPremiumforTerm__c":100,
      "QuoteLineItem.vlocity_ins__GroupClassId__r.vlocity_ins__ClassCode__c":"Managers",
      "QuoteLineItem.vlocity_ins__FeeAmount__c":5,
      "objectId":ax003jh001
   }
}

Вывод JSON

Ниже указан формат вывода JSON.

{
   "commissionAmount": amount,
   "commissionScheduleId": ID of the commission schedule used,
   "minCommissionAmount": CommissionScheduleAssignment.MinCommissionAmount,
   "maxCommissionAmount": CommissionScheduleAssignment.MaxCommissionAmount
}

Ниже указан образец вывода, отображающий вычисленную сумму ($167) в диапазоне, определенном минимальным и максимальным значениями ($100-$500).

{
   "commissionAmount":167,
   "commissionScheduleId":"ab001od002",
   "minCommissionAmount":100,
   "maxCommissionAmount":500
}
 
Загрузка
Salesforce Help | Article