Versions Compared

Key

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

...

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

...