Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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

  • No labels