static version = 1
status = active
static UUID = 0e1b6dd4-04a0-4ee6-ac47-2a99cfa5e9a8
static CalculationRuleName = “CV: percent of income “
dateValidTo = None
dateValidFrom = 2000-01-01
{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'},
{'type':"checkbox",'name':"includeFamilly",'label':{'en':'include family members',’fr':'Inclure les membres de la familles'},'rights':{'read':"151201", ‘write':'151202','update’:'151203','replace’:'151206'},relevance:"True"}]}
{class:"ContractDetails", ‘parameters':[{'type':"number",'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':"number",'name':"income",'label':{'en':'Income','fr':'Salaire'},'rights':{'read':"150201", ‘create':"150202”,'update’:”150203",'replace’:”150206"},relevance:"True",condition:"$_>100",'default':''}]}@rafa
relevance and condition are Nice to have.
Make sure the now is within dataValid (or after dateValidFrom if dateValidTo is None)
make sure the status is active
then
Register
getParameter to getParameter signal
getLinkedClass ot getLinkedClass signal
class= class of instance
match = False
if class == ContributionPlan
match =self.UUID == instance.calculation
else if class == PH insuree
match = checkCalculation(instance.cpb)
else if class == ContractDetails:
match =checkCalculation(instance.cpb)
else if class == ContractContributionPlanDetails
match =checkCalculation(instance.cp)
else if class == ContributionPlanBundle:
for cp in instance.cp
if checkCalculation(cp)
match = True
break
}
if instance.__class__ == ContractContributionPlanDetails
rate = instance.contribution_plan.json_ext.rate
income = instance.contract_details.json_ext.income
CCPD.value = income * rate
return CCPD.value
else Return False
ListClass = []
if class == ContributionPlan or class == None
ListClass.amend(Calculation)
else if class == PH insuree or class == None
ListClass.amend( ContributionPlanBundle)
else if class == ContractDetails or class == None
ListClass.amend( ContributionPlanBundle)
else if class == ContractContributionPlanDetails or class == None
ListClass.amend(ContributionPlan)
else if class == ContributionPlanBundle or class == None
ListClass.amend(ContributionPlan)
return listClass