Loading
Seguro
InsCommissionService:calculate

InsCommissionService:calculate

Utilice este servicio para calcular la comisión para un productor.

Clase: InsCommissionService

Método: calculate

Descripción

Este servicio utiliza detalles acerca del productor, el producto de seguro y el evento comisionable para calcular una comisión para un productor.

Funcionamiento

Para calcular una comisión, este servicio:

  1. Acepta entradas de productionCode, producerId, productId, commissionableEvent, context y effectiveDate para encontrar las CommissionSchedule apropiadas para utilizar para el cálculo.

  2. Calcula la comisión basándose en la programación de comisiones.

  3. Evalúa la comisión para determinar si es una devolución de cargo (un importe de comisión devuelto).

    • Si el importe de comisión es negativo, el servicio trata la comisión como una devolución de cargo.

    • Si la comisión no es una devolución de cargo, el servicio compara el importe de comisión calculado con importes de comisión mínimos y máximos. Si el importe calculado es demasiado bajo o demasiado alto, el servicio devuelve el importe mínimo o máximo en vez del importe calculado.

  4. Devuelve el importe de la comisión, el Id. de la programación de comisiones utilizada para calcularla y los importes mínimo y máximo que se aplican a esta comisión.

Entradas

Ingreso

Descripción

productionCode

Opcional.

El nombre del código de producción, no el Id., para el productor de procesamiento.

producerId

Opcional.

El Id. del productor de procesamiento.

productId

Obligatorio.

El Id. del producto por el que se paga la comisión.

commissionableEvent

Opcional.

Evento o transacción que desencadena un cálculo de comisión (por ejemplo, Presupuesto, Póliza vendida o Cambiado/Aprobado).

effectiveDate

Opcional.

La fecha efectiva del pago de la comisión. Si es nulo, el servicio utiliza la fecha de hoy.

context

Obligatorio.

Pares de valores y nombre de campo para el registro en el que se calcula la comisión. Debe:

  • Incluya un espacio de nombres en el nombre de API si existe.

  • Incluya objectId, es decir, el Id. del registro para el que se calcula la comisión.

Formato sin campo de búsqueda:

{ objectAPI.fieldAPI : fieldValue }

Formato con campo de búsqueda:

{ objectAPI.relationshipAPI.fieldAPI : fieldValue }

Puede especificar hasta dos niveles de campos si da formato a la entrada con un campo de búsqueda.

commissionableAmount

Opcional.

Importe en el que se basa el cálculo de la comisión.

JSON de entrada

A continuación le mostramos cómo dar formato a JSON de entrada.

{
   "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
   }
}

Esta muestra calcula una comisión para una aprobación.

{
   "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 de salida

Este es el formato del JSON de salida.

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

Este es el resultado de muestra que muestra que el importe calculado (167 USD) está dentro del intervalo definido por valores mínimos y máximos (100-500 USD).

{
   "commissionAmount":167,
   "commissionScheduleId":"ab001od002",
   "minCommissionAmount":100,
   "maxCommissionAmount":500
}
 
Cargando
Salesforce Help | Article