...
no signal listener to register
activeForObject(self, instance, context)
...
instance.__class__ == CCPD
...
and context
...
IN (create,update
...
condition = if instance.contribution_plan.calculation_rule_id = 0e1b6dd4-04a0-4ee6-ac47-2a99cfa5e9a8
calculate(instance, *args)
...
) and self.checkCalculation(instance)
checkCalculation(self, instance)
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
}
calculate(instance)
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