Loading
Seguro
InsCommissionService:calculate

InsCommissionService:calculate

Utilice este servicio para calcular la comisión de 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 comisión.

  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ínimos y máximos que se aplican a esta comisión.

Entradas

Entrada

Descripción

productionCode

Opcional

El nombre del código de producción, no el Id., del 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

El 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 valor 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

El 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
}

A continuación se muestra un resultado de muestra que muestra que el importe calculado (167 $) está dentro del intervalo definido por valores mínimos y máximos (100-500 $).

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