...
Use cases
Contract
Web application
UC3-1: Add bulk "contract": Policy holder List > select policyholder(s) > Contract list > generate bulk contract > enter the date on which the contract must be created if not already covered by previous contract.
UC3-2: Add "contract": Policy holder List > Select a Policy Holder > Contract list> Generate contract > enter the date on which the contract must be created if not already covered by previous contract.> confirmation with the contract dates
UC3-3: Update contract details: Policy holder List > Select a Policy Holder > Contract list > Select contract > updates one/ several lines > save
UC3-4: Submit/sign "contract": Policy holder List > Select a Policy Holder > Contract list > Select contract(s) > Submit/sign contract
UC3-5: Review "Contract": Policy holder List > Select a Policy Holder > Contract list > Select contract(s) > contract Reviewed (only for submitted contract)
UC3-6: Ask updates "Contract": Policy holder List > Select a Policy Holder > Contract list > Select contract(s) > ask update (only for submitted contract)
UC3-7: Amend "contract": Policy holder List > Select a Policy Holder > Contract list > Select contract >Generate Amendment > confirmation with Amendment number > add details (if it is about a new employee, they should be added before on the employee list)
Portal access
- UC14-1: search contract > My Contract list >fill search criteria > search
- UC14-2: Update details > My Contract list > Select contract > update one/several line > save
- UC14-3: Submit/sign "contract" > My Contract list > Select contract(s) > Submit/Sign contract
Backend
UC3-8: send payment notification by email
UC3-9: send update required (from ask update) notification by email
Payment
The new policy status "contracted" indicate that the insuree policy doesn't have the same dates as the policy because it is renewable contract payment that defines the validity of the insureepolicy
on payment, a script will:
Check if there is a valid policy for the insure covered by the contract (+ grace period), if not then it will create such policy with the normal duration and a status "contracted."
Create or update the policy insure up to the end of the grace period, two insurees policies could be created if two policies are required to cover the contract period.
Web application
UC4-1: Add payment: Policy holder List > Select a Policy Holder > contract list > create payment > enter value > save > confirmation giving the contract status
UC4-2: update payment: Policy holder List > Select a Policy Holder > payment list > Select payment > update value > save > confirmation giving the contract status
UC4-3: delete payment: Policy holder List > Select a Policy Holder > payment list > Select payment > delete payment > confirmation giving the contract status
UC4-5: add credit note from contract or amendment: Policy holder List > Select a Policy Holder > payment list > add credit note (negative payment)
Back end
UC4-6: assign a credit note to contract: On contract approval, if there is a credit note not assigned to a contract, it will be assigned to the newly approved contract.
UC5-1: When a full payment is received for a contract, the policy of the policyholder insuree part of the contact will be renewed if needed
UC5-2: When a full payment is received for a contract, the insureepolicy of the policyholder insuree part of the contact will be activated
Authorities
To manage the group insurance several authorities will be added, the existing authorities have a "*" :
PolicyHolderContract
C/R/U/D (4 authorities)
Submit
Approve/ask for change
Amend
PolicyHolderContractDetails
C/R/U/D (4 authorities)
Approve
Payment
C*/R*/U*/D*(4 authorities)
Submit (TBC)
Validate
CreditNote
Entities
Contract (Contribution Collection)
UUID (char(24) )
Version (optimistic locking)
PolicyHolderUUID (fk policyHolder)
AmountNotified (float)
Upon Automatic creation
AmountRectified (float)
Manual update from the policy holder
AmountDue (float)
Value approved by the Scheme admins
PaymentDateDue (date)
Status (fk:dictionary:ContractStatus)
PayementReference(string)
Json_ext (json)
DateCreated(date)
DateUpdate(date)
UserUpdateUUID(fk users)
UserCreateUUID (fk users)
ContractFrom (date)
ContractTo (date)
Entity ContractDetails (input) - under Contract
UUID (char(24) )
ContractUUID (fk Contract)
PolicyHolderInsureeUUID (fk PolicyHolderInsuree)
ContributionPlanBundleUUID:Version(fk ContributionPlanBundle)
Json_ext (json)
Json_param (json)
PolicyHolderInsuree parameters
Json_param_history (json)
Same as Json_ext but for audits
DateCreated(date)
DateUpdate(date)
UserUpdateUUID(fk users)
UserCreateUUID (fk users)
Entity ContractContributionPlanDetails (output) - under ContractDetails
UUID (char(24) )
Version ( integer - to be used for optimistic locking)
ContributionPlanUUID (fk_contributionPlan)
PolicyUUID (fk_policy)
ContractDetailsUUID
Json_ext (json)
ContributionPlan parameters
DateCreated(date)
DateUpdate(date)
UserUpdateUUID(fk users)
UserCreateUUID (fk users)