Concepts
The pricing for the same benefit plan may differ from a sector to another; the «Contribution plan» are to define different cost/pricing rules and the payment periodicity (in a month) for a given Benefit plan.
A benefit package (product in IMIS) can have multiple Contribution plans attached meaning different insurees may have different contributions level (or/and different calculation) but contribute to the same pool. The Contribution plans will have parameters such as maximum payment delay, grace periods.
...
Managing a contribution plan bundle should be possible for the SchemeAdmin
Web application
UC10-1: Search: contribution plan bundles List > use the search box > search, the default list will show only the active (not deleted and today between dateValidFrom/To) contribution plan bundle
UC10-2: Add: contribution plan bundle List > 'add' contribution plan bundle > fill the details on the contribution plan bundle page on the create card > save
UC10-3: Update: contribution plan bundles List > "Select" contribution plans bundles > update the details on the contribution plan bundle card > save
UC10-4: Delete: contribution plan bundle List > "Select" contribution plan bundle > "Delete > confirmation popup
UC10-5: Replace: contribution plan bundle-> List contribution plan bundle List > "Select" contribution plan bundle > update the details on the contribution plan bundle,
updateon the
contribution plan on thereplace card > Create a new version
backend
UC10-6: Replacing / removing propagation to policyholder contribution plan bundle
UC10-7: Replacing / removing propagation to policyholder insuree contribution plan bundle
Contribution plan
Managing a contribution plan bundle should be possible for the SchemeAdmin
Web application
UC8-1: Search: contribution plan List > use the search box > search, the default list will show only the active(not deleted and today between dateValidFrom/To) contribution plan
UC8-2: Add: contribution plan List > 'add' contribution plan > fill the details on the contribution plan create card> save
UC8-3: Update: contribution plan List > "Select" contribution plan > update the details on the contribution plan edit card> save
UC8-4: Delete: contribution plan List > "Select" contribution plan > "Delete > confirmation popup
UC8-5: Replace: contribution plan bundle List > List contribution plan > "Select" contribution plan > update the details on the contribution plan on the replace popup > create a new version
backend
UC8-6: Replacing / removing propagation to contribution plan bundle
Back end module Details design
...
To manage the group insurance several authorities will be added,the prefix of this module will be 151
ContributionPlanBundle, prefix 1511
Search → 151101
Create → 151102
Update → 151103
Delete → 151104
Replace → 151106
ContributionPlan, prefix 1512
Search →151201
Create → 151202
Update → 151203
Delete → 151204
Replace → 151206
Roles
SchemeClerk( Clerck)
ContributionPlanBundle
R
ContributionPlan
R
SchemeAdmin*
ContributionPlanBundle
C/R/U/D
ContributionPlan
C/R/U/D
PolicyHolderClerk
ContributionPlanBundle
R
ContributionPlan
R
Entities
ContributionPlanBundle(HistoryBusinessModel)
Code (varchar)*
Name (varchar)
Periodicity (int)
Cade is mandatory
ContributionPlanBundleDetails - under ContributionPlanBundle (HistoryBusinessModel)
ContributionPlanBundleUUID: (fk ContributionPlanBundle)*
ContributionPlanUUID: (fk_contributionPlan)*
All fields are mandatory
ContributionPlan(HistoryBusinessModel)
Code (varchar 32)*
name(varchar 256)*
CalculationUUID*
BenefitPlanUUID (fk_product )*
Periodicity (int)*
Number of month between 2 payment
Not save in database:
length : int = None
(NICE TO HAVE)dependantList : Dict/List = []
Grace Period,Rate,Threshold will be stored on the json_ext part of HistoryModel
All fields are mandatory
Services and Mutations
C/U/D service ContributionPlanBundle
check authority
ensure Code uniqueness for ValidTo/ValidFrom
Ensure mandatory fields are present
code not editable once created
Ensure that the periodicity for the contribution plan are the same
Ensure that the detail DatevalidFrom is greater or equal to CP DatevalidFrom
Ensure that the detail DatevalidTo is lesseror equal to CP DatevalidTo or DatevalidTo is null
Replace ContributionPlanBundle
Keep the code
normal HistoryBusinessModel replace
C/U/D service ContributionPlan
check authority
ensure Code uniqueness for ValidTo/ValidFrom
Ensure mandatory fields are present
code not editable once created
(Nice to have)Replace ContributionPlan
Keep the code
normal HistoryBusinessModel replace
GetContributionLength
set the length param to periodicity
send a signal
return the length param (modified or not by the signal recievers)
(NICE TO HAVE)GetDependants
set a member data denpendantList to []
send a signal
return dependantList modified or not by signals
Front end detailed design
...
contribution plan & bundle menu item should be located under the main menu "administration".
...
ContributionPlan search page
ContributionPlan search criteria
Code (string)
name (string)
DateValidFrom
DateValidTo (if empty show all CP valid at DateValidFrom, if not, show all CP which were valid a some point between DateValidForm and DateValidTo)
periodicity (int) - min 1, max 12
option to show deleted
button to apply search criteria
Button to reset search criteria
ContributionPlan search result column
code
name
calculation (contribution_fe Code - CalculationClassName)
until a picker for
calculation
is provided byCalculation
module, thecalculation
's id should be displayed
insurance Product (contribution_fe)
periodicity
DateValidTo
DateValidFrom
Delete (Trash) and Edit (Pen) buttons at the end of the line
MaterialUI :plus: to add a ContributionPlan
Double click or click on Edit button to update a ContributionPlan.
It should be possible to sort the result per column in ASC or DESC order
ContributionPlan card
code (mandatory, not editable once created)
name (mandatory)
calculation (contribution_fe) (mandatory)
insurance Product (contribution_fe) (mandatory)
periodicity (mandatory)
- DateValidTo
DateValidFrom (mandatory)
DateValidFrom DateValidTo
The material (Save) UI button will save the changes
add Contribution plan
Code, Name, Calculation, Insurance product, periodicity, DateValidFrom are mandatory
Edit contribution plan
Name, DatevalidTo can be edtited
(Nice to have) Replace contribution plan
Code and periodicity are not editable
ContributionPlanBundle search page
search criteria
Code (string)
name(string)
periodicity (int) - min 1, max 12
DateValidFrom
DateValidTo (if empty show all CP valid at DateValidFrom, if not, show all CP which were valid a some point between DateValidForm and DateValidTo)
calculation (contribution_fe) (look inside the Contribution plans of the bundle)
insurance Product (contribution_fe) (look inside the Contribution plans of the bundle)
option to show deleted
button to apply search criteria
Button to reset search criteria
search result column
code
name
periodicity
DateValidTo
DateValidFrom
Delete (Trash) and Edit (Pen) and replace buttons at the end of the line (see Location module)
MaterialUI :plus: to add a ContributionPlanBundle
Double click or click on Edit button to update a ContributionPlanBundle .
It should be possible to sort the result per column in ASC or DESC order
Add a contribution plan bundle
When clicked on add the ContributionPlanBundle card open
Edit a contribution plan bundle
When click on edit, the ContributionPlanBundle card open, all fields but CODE and periodicity can be edited (ValidityFrom,ValidityTo, Name)
Replace a contribution plan bundle
When click on replace, the ContributionPlanBundle card open, all fields but CODE can be edited (ValidityFrom,ValidityTo, Name, periodicity )
...
ContributionPlanBundle card
code (mandatory, not editable once created)
name (mandatory)
periodicity (
Mandatorymandatory, not editable once created)
- DateValidTo
DateValidFrom (mandatory)
DateValidFrom DateValidTo
Contribution plan part of the contribution plan bundle
column for the list of contribution plan ContributionPlanBundleContributionPlan (no search)
name (of the ContributionPlan define in the ContributionPlanBundleContributionPlan)
code (of the ContributionPlan define in the ContributionPlanBundleContributionPlan)
product
periodicity(Not required anymore)DateValidTo (
from the details not from CPof the ContributionPlanBundleContributionPlan)
DateValidFrom ((
from of the
detailsnot from cpContributionPlanBundleContributionPlan)
replace, edit and delete button
a add button should be placed on the top right of the list,
Add a contribution plan in the bundleContributionPlanBundleContributionPlan
When clicked on add the create popup will be displayed, all fields but CPB are editable (CPB is defined by the parent page), here are the mandatory fields
...
Mandatory fields have *, Not editable have #
CPB(not displayed)
contribution plan selected* (shows only CP with the same periodicity)
- DateValidTo
DateValidFrom* (from the details not from CP)
DateValidTo
Edit a contribution plan in the bundle,ContributionPlanBundleContributionPlan
When clicked on edit the update popup will be displayed, only DateValidTo will be editableReplace a contribution plan in the bundle, Mandatory fields have *, Not editable have #
CPB(not displayed)
contribution plan selected#
DateValidFrom# (from the details not from CP)
DateValidTo
Replace a ContributionPlanBundleContributionPlan
When clicked on replace the replace popup will be displayed, all fields but CPB are editable (CPB is defined by the parent page), here are the mandatory fields
...
Mandatory fields have *, Not editable have #
CPB(not displayed)
contribution plan selected*
DateValidFrom* (from the details not from CP)
DateValidTo
The material (Save) UI button will save the changes
...