Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

contributionValuationRule inherit from absCalculationRule

static version = 1
status = active
static UUID = 0e1b6dd4-04a0-4ee6-ac47-2a99cfa5e9a8
static CalculationRuleName = “CV: percent of income “

...

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'},
{'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':"floatnumber",'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':"floatnumber",'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.

Methods

ready()

Make sure the now is within dataValid (or after dateValidFrom if dateValidTo is None)

...

  • getParameter to getParameter signal

  • getLinkedClass ot getLinkedClass signal

activeForObject(self, instance, context)
instance.__class__ == CCPD and context IN (create,update) and self.checkCalculation(instance)
checkCalculation(self, instance)

class= class of instance

match = False

...

if checkCalculation(cp)

match = True

break

}

calculate(instance)

if instance.__class__ == ContractContributionPlanDetails

...

return CCPD.value

else Return False

getLinkedClass(classname)

ListClass = []

if class == ContributionPlan or class == None

...