위치:
InsCommissionService:calculate
이 서비스를 사용하여 프로듀서에 대한 커미션을 계산합니다.
방법: calculate
작동 방법
커미션을 계산하기 위해 이 서비스는 다음을 수행합니다.
-
계산에 사용할 적절한
CommissionSchedule을 찾으려면productionCode,producerId,productId,commissionableEvent,context,effectiveDate입력을 수락합니다. -
커미션 일정을 기반으로 커미션을 계산합니다.
-
커미션을 평가하여 지불 거절( 반품된 커미션 금액)인지 판단합니다.
-
위임 가능한 금액이 음수인 경우 서비스에서 커미션을 지불 거절으로 처리합니다.
-
커미션이 지불 거절이 아닌 경우 서비스에서 계산된 커미션 금액을 최소 및 최대 커미션 금액과 비교합니다. 계산된 금액이 너무 낮거나 너무 높으면 계산된 금액 대신 최소 또는 최대 금액을 반환합니다.
-
-
커미션 금액, 계산에 사용된 커미션 일정의 ID, 이 커미션에 적용되는 최소 및 최대 금액을 반환합니다.
입력
입력 |
설명 |
|---|---|
|
(선택 사항) 처리 프로듀서의 ID가 아닌 프로덕션 코드 이름입니다. |
|
(선택 사항) 처리 프로듀서의 ID입니다. |
|
(필수) 커미션이 지급되는 제품의 ID입니다. |
|
커미션 계산을 트리거하는 이벤트 또는 트랜잭션입니다(예: 견적, 판매된 증권 또는 변경/권장). |
|
(선택 사항) 커미션 지불의 유효 일자입니다. null이면 서비스에서 오늘 날짜를 사용합니다. |
|
(필수) 커미션이 계산되는 레코드의 필드 이름 및 값 쌍입니다. 다음을 수행해야 합니다.
조회 필드가 없는 형식:
조회 필드가 있는 형식:
조회 필드를 사용하여 입력을 서식 지정할 경우 최대 2개 수준의 필드를 지정할 수 있습니다. |
|
커미션 계산을 기반으로 하는 금액입니다. |
입력 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
}