Loading
Insurance
InsCommissionService:calculate

InsCommissionService:calculate

Utilisez ce service pour calculer la commission d'un producteur.

Classe: InsCommissionService

Méthode : calculate

Description

Ce service utilise les détails du producteur, du produit d'assurance et de l'événement commissionnable pour calculer une commission pour un producteur.

Fonctionnement

Pour calculer une commission, ce service :

  1. Accepte les entrées productionCode, producerId, productId, commissionableEvent, context et effectiveDate afin de trouver la CommissionSchedule appropriée à utiliser pour le calcul.

  2. Calcule la commission en fonction du barème de la commission.

  3. Évalue la commission pour déterminer s'il s'agit d'une rétrofacturation (un montant de commission retourné).

    • Si le montant à commissionner est négatif, le service traite la commission comme une rétrofacturation.

    • Si la commission n'est pas une rétrofacturation, le service compare le montant de commission calculé aux montants de commission minimum et maximum. Si le montant calculé est trop faible ou trop élevé, le service renvoie le montant minimum ou maximum au lieu du montant calculé.

  4. Renvoie le montant de la commission, l'ID du barème de commission utilisé pour le calculer, ainsi que les montants minimum et maximum qui s'appliquent à cette commission.

Entrées

Entrée

Description

productionCode

Facultatif.

Le nom de code de production, pas l'ID, du producteur de transformation.

producerId

Facultatif.

L'ID du producteur de la transformation.

productId

Obligatoire.

L'ID du produit pour lequel la commission est payée.

commissionableEvent

Facultatif.

L'événement ou la transaction qui déclenche un calcul de commission (par exemple, Devis, Police vendue ou Modifié/Approuvé).

effectiveDate

Facultatif.

La date effective du paiement de la commission. Si nul, le service utilise la date du jour.

context

Obligatoire.

Paires de noms de champ et de valeurs pour l'enregistrement sur lequel la commission est calculée. Vous devez :

  • Insérez un espace de noms dans le nom d'API s'il existe.

  • Incluez objectId, c'est-à-dire l'ID de l'enregistrement pour lequel la commission est calculée.

Format sans champ de référence :

{ objectAPI.fieldAPI : fieldValue }

Format avec champ de référence :

{ objectAPI.relationshipAPI.fieldAPI : fieldValue }

Vous pouvez spécifier jusqu'à deux niveaux de champ si vous mettez en forme l'entrée avec un champ de référence.

commissionableAmount

Facultatif.

Le montant sur lequel le calcul de la commission est basé.

JSON d'entrée

Voici comment mettre en forme le JSON d'entrée.

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

Cet exemple calcule une commission pour un parrainage.

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

Voici le format du JSON de sortie.

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

Voici un exemple de sortie qui montre que le montant calculé (167 €) est compris dans la plage définie par les valeurs minimum et maximum (100 € à 500 €).

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