...
This documents the contract that binds the policyHolder (e.g. employer) to pay the contributions and binds the insurance to provide coverage for the agreed benefit packages for the policyholder insuree.
Before every period, a Contract (list of contributions terms) will be generated based on the policy holder insuree information provided by the policy holder (default param, contract dates, CPB).
(Optional) Once generated the policy holder could update the contract (refresh list of employees and change insuree parameters).
Once submitted by the policy holder and approved by scheme admin the contributions part of the contract will be created and be eligible for payment, a trusted user could create directly an approved contract through the API.
Disclaimer for contract outside formal sector
Even if on the data structure level the contract should be usable for direct contracting (without policyholder), this work focuses on the formal sector work that means that the team will deliver a solution that work with the formal sector but may not directly usable for direct contracting
Payment and policy update
...
create
run service updateFromPHInsuree
NotifiedAmount = ContractValuation(false)
Contract state will become “Draft”
edit/update
check rights for contract / amendments
check status
if in “draft”/ “request for information“ / “counter“ only the code cannot be changed,
if in “Negotiable” changes are possible only with the authority “Approve/ask for change”
delete
check rights
block deleting contract not in Updateable or Approvable state
submit
check right
RectifiedAmount = ContractValuation(false)
create Contractcontribution (see createcontractContribution service)
send signal
Contract state will become “Negotiable”
approved
check rights (Approve/ask for change)
send signal
RectifiedAmount = ContractValuation(true)
create Contractpayment (see createcontractPayment service)
Contract state will become “Executable”
counter
check right (Approve/ask for change)
Contract state will become “counter”,
renew
create a new contract that follow the existing active contract (if not yet existing)
amend
check rights
create a new “amendment“ contract from the last amendement
increment Amendment of 1 (i.e. 1st amendment will have 1, 2nd: 2 … )
change status of the previous contract/amendement to 6 “addendum“
ContractValuation(bool save)
create the ContractContributionPlanDetails based on the ContractDetails
save them only if the save param is true
return the total amount
createContribution
create the contributions based on the ContractContributionPlanDetails
createcontractPayment
create a payment that cover all contributions related to the contract
updateFromPHInsuree
if PH is set, Update the ContractDetails based on the PHInsuree
getNegativeAmountAmendement (creditnote)
look for approved contract (amendement) for that PH that have a negative AmountDue
activateContractedPolicies (listen to payment signal)
Activate the policy related to the contract (create policy insuree for the contract period + grace period)
Contract state will become “effective”,
change status to 7 - Effective
TerminateContract
previous contract of the (DateValidTo) will become “terminated“
Config
...
PHInsureToCDetatils
Takes a PHinsuree as input and a contractDetails as output where the insuree and the CPB from the PH insureee will be used
This is likely to be called by the mutation to create details from front end when the PH is set
Config
"ContractState":[
{
"value":"1",
"label":{
"fr":"Demande d'information",
"en":"Request for information"
...
insuree picker (with sort option ASC/DESC)
CBP picker (with sort option ASC/DESC)
- Apply
Limited to PHInsuree
Nice to have : not limited to PHinsuree if PH not set
CBP picker (with sort option ASC/DESC)
Limited to PHCPB
Nice to have : not limited to PHCPB if PH not set
Apply search button
reset search button
Add new contract details button (top right)
...
a popup will be display with :
if PH is set (must have)
PHInsuree picker (Insuree, same fields as he Insuree picker )
CPB not editable per the user, auto update form Pinsuree (unless this can be add on the PH insuree picker)
if PH is not set (nice to have)
CPB picker restricted to the PHCPB if PH define on the contract *
Insuree picker restricted to the PHinsuree if PH define on the contract *
calculation parameters (Mandatory fields will be managed by the calculation contribution)
Save button
The relationship whit with the contract is not displayed because implicitconfirmation popup
on delete contract details
...