contributionValuationRule inherit from absCalculationRule
static version = 1
status = active
static UUID = 0e1b6dd4-04a0-4ee6-ac47-2a99cfa5e9a8
static CalculationRuleName = “CV: percent of income “
dateValidTo = None
dateValidFrom = 2000-01-01
static description = “ This calcutation will add the income in the contract details and PHinsuree and the percentage in the Contribution plan so when a contract valuation is requested then the calculation will determine the value based on the contract details income and CP percentage “
list of impacted class and parameters
{class:"ContributionPlan", ‘parameters':['type':"select",'name':"rate",'label':{'en':'Percentage of income',’fr':'Pourcentage du salaire'},'rights':{'read':"151201", ‘write':'151202','update’:'151203','replace’:'151206'},relevance:"True",condition:".$_>1",'optionSet':[{'value':'5',label:{'en':'5%','fr':'5%'}},{'value':'10',label:{'en':'10%','fr':'10%'}},{'value':'15',label:{'en':'15%','fr':'15%'}},],'default':'5']}
{class:"ContractDetails", ‘parameters':['type':"float",'name':"income",'label':{'en':'Income','fr':'Salaire'},'rights':{'read':"152101", ‘create':"152102”,'update’:”152103",'replace’:”152103"},relevance:"True",condition:"$_>100",'default':'']}
{class:"PolicyHolderInsuree", ‘parameters':['type':"float",'name':"income",'label':{'en':'Income','fr':'Salaire'},'rights':{'read':"150201", ‘create':"150202”,'update’:”150203",'replace’:”150206"},relevance:"True",condition:"$_>100",'default':'']}
relevance and condition are Nice to have.
Methods
ready()
Make sure the now is within dataValid (or after dateValidFrom if dateValidTo is None)
make sure the status is active
then
no signal listener to register
activeForObject(instance, context)
Object = CCPD
context =create,update
condition = if instance.contribution_plan.calculation_rule_id = 0e1b6dd4-04a0-4ee6-ac47-2a99cfa5e9a8
calculate(instance, *args)
instance is a CCPD
rate = instance.contribution_plan.json_ext.rate
income = instance.contract_details.json_ext.income
CCPD.value = income * rate
return CCPD.value