Premium Table Child Question Configuration
Introduction
Unlike normal questions, sub-questions for premium tables must be configured differently. You can use any of the below Question Templates. There is also exclusive options available for the Question Settings.
Question Templates
PremiumTableCurrency0dp
PremiumTableCurrency2dp
Displays a currency value with decimals based on the template name.
PremiumTableCurrency0dpNegative
PremiumTableCurrency2dpNegative
Displays a currency value with decimals based on the template name. Allows negative values if QuestionDisabled is false.
PremiumTableDecimalToPercentage0dp
PremiumTableDecimalToPercentage1dp
PremiumTableDecimalToPercentage2dp
PremiumTableDecimalToPercentage3dp
PremiumTableDecimalToPercentage4dp
PremiumTableDecimalToPercentage5dp
PremiumTableDecimalToPercentage6dp
PremiumTableDecimalToPercentage7dp
Converts a decimal value to a percentage with decimals based on the template name.
Example:
Decimal Value = 0.2543
Displayed as Percentage (to 2dp) = 25.43%
PremiumTablePercentage0dp
PremiumTablePercentage1dp
PremiumTablePercentage2dp
PremiumTablePercentage3dp
PremiumTablePercentage4dp
PremiumTablePercentage5dp
PremiumTablePercentage6dp
PremiumTablePercentage7dp
Displays a number as a percentage with decimals based on the template name.
Example:
Value = 18.65
Displayed as Percentage (to 2dp) = 18.65%
PremiumTableEmpty
This template is used when we don’t want to display anything in this particular field for this particular type.
Since premium tables need a consistent number of fields for each type, this template would be used to render any gaps in the grid where there’s no corresponding data.
Since this QuestionTemplate doesn’t point to an actual property, it’s good convention to give it a somewhat descriptive QuestionAlias value.
Example:
QuestionAlias = FeeEmptyLocationName
(Where this empty template is in place of LocationName on the Fee row)
PremiumTableDropdown
This displays a value as a dropdown, where the options are declared in QuestionOptions for the question in Umbraco. As such, entries can only be hard-coded at this point.
Example:
To setup a dropdown with 3 options:
QuestionOption.Value = “Excess of Loss Primary”
QuestionOption.Value = “Excess of Loss Excess”
QuestionOption.Value = “Line Slip”
PremiumTableQuote
This template is designed to be pointed at a Boolean property against the risk and will render a checkbox with the appearance of a button. It will generally be pointed at the Quoted flag on the risk.
If the Boolean value is set to true, then “Quoted” will be displayed as the label for the checkbox, if it’s set to false then the label is read in from QuestionTitle.
Through the use of QuestionOptions, when this value is set to false it’s possible to also set other properties against that same rate to false. This is done with the following setup:
Example:
If we want to set the “Recommended” flag to false when the “Quoted” flag is set to false then we use the following setup:
QuestionOption.Value = “deselectOnFalse”
QuestionOption.Filter = “Recommended”
PremiumTableUniqueSelector
Much like PremiumTableQuote, this is designed to be pointed at a Boolean property on a risk, more typically Recommended or Selected. The key difference here is that when clicking to set the flag against a particular rate of type “Premium”, the flags against the other rates of type “Premium” will be set to false. It’s called “Unique Selector” as it’s only possible to set a single instance of a Boolean to true in the array of “Premium” entries.
Through the use of QuestionOptions, when this value is set to false it’s possible to also set other properties against that same rate to false. An example of this can be seen above.
PremiumTableTextBox
This template should be pointed at a string property. It will render the value inside a text box. If QuestionDisabled is set to true, then it will simply render the string as normal text.
PremiumTableWorkflowBind
This template is only applicable for PremiumTableMultiLimits and only visible on the “PreBind” workflow of a product.
This template would generally be pointed at the Selected property of a rate. It renders a button to toggle between true and false.
When one rate is set to true, the rest will be set to false as this executes the onUniqueRateSelect function in the UI component.
PremiumTableInspectorBind
This template is only applicable for PremiumTableMultiLimits and only visible in the Risk Inspector.
This template would generally be pointed at the Selected property of a rate. It renders a button to toggle between true and false.
When one rate is set to true, the rest will be set to false as this executes the onUniqueRateSelect function in the UI component.
PremiumTableTotalOverride
Deprecated
PremiumTableInspectorStatus
This template would generally be pointed at the Status property of a rate. It renders that string inside a formatted div tag.
If the Bound flag is set to true for that rate record, the tag is rendered with a success style (I think this would normally be a green box to clearly show which limit has been bound).
This template is only visible from within the Risk Inspector.
PremiumTableTaxButtons
This template is used to render buttons/dropdowns for viewing/editing taxes.
It has a different implementation between:
PremiumTableMultiSections
PremiumTableMultiLimits
For PremiumTableMultiSections each QuestionOption.Value is the button label and Filter is an array of rate types which we want to target.
Example:
To load all Premium and Fee records into the dropdown, use the following:
QuestionOption.Value = “Taxes”
QuesitonOption.Filter = “['Premium','Fee']”
This will load each ClassOfBusiness from Premium records and each FeeName from Fee records into the dropdown. Then this dropdown is used to switch between these records and view/edit the taxes.
For PremiumTableMultiLimits each QuestionOption.Value is the button label and Filter is the class of business which we want to filter on.
Example:
To load all taxes for “Professional Indemnity” class of business, use the following:
QuestionOption.Value = “Taxes”
QuesitonOption.Filter = “Professional Indemnity”
Another Example:
To load all taxes for the “SWAC Admin Charge” fee, use the following:
QuestionOption.Value = “SWAC Taxes”
QuesitonOption.Filter = “SWAC Admin Charge”
This will load taxes from any Premium records where the ClassOfBusiness matches the Filter and taxes from any Fee records where the FeeName matches the filter.
Question Settings
QuestionTemplate
<See Previous Section>
Determines at high-level how we present the property value to the user, where subsequent properties gives us further detail.
QuestionTitle
<Free Text>
This will determine the column header. Where there are multiple row types in the same column (“Premium”, “Fee”, “PremiumSummary”, “Summary”) the column headers will always be read in from the “Premium” record.
QuestionVisibility
“Premium”
“Fee”
“PremiumSummary”
“Summary”
This is basically used to filter on “Type” to determine which array elements will be targeted by the sub-question.
It’s only necessary to setup one instance per Type. So if there were multiple “Fee” and “Premium” records, it will loop through all of them.
We expect a single instance of both “PremiumSummary” and “Summary” though
QuestionCode
<Free Text>
Doesn’t have a practical use, but the convention followed is:
“PremiumTable” + <QuestionAlias>
Example:
QuestionAlias = “Excess”
QuestionCode = “PremiumTableExcess”
QuestionAlias
<PropertyName>
This is the name of a property which we wish to display in this field. The available properties will depend on the QuestionVisibility value. Not all properties are available for all types.
QuestionOptions
<Various>
The QuestionOptions property doesn’t have a single defined purpose here. For a lot of instances it does nothing, but for some templates it drives behaviour. These instances will be detailed individually in this document.
QuestionDisabled
True (Read-only)
False (Editable)
This determines whether the property is editable or not. Typically values won’t be editable, so this would be set to true.
If you consider OverridePremium for “Premium” rows, we’d set this property to false. This will render the value as an input where the value can be changed by the user.
Tax Buttons
These sit outside of the rules of the grid composition. In the following example, we have a Show/Hide Taxes button which allows taxes to be edited by Class Of Business or Fee Name. The setup is as follows:
PremiumTableTaxButtons
Tax Buttons
TaxButtons
Value: Taxes Filter: ['Premium', 'Fee']
TaxButtons
False
After clicking “Show Taxes” the following dropdown becomes available, where the user can select the relevant Class Of Business or Fee Name (we filtered the dropdown to include both through the QuestionOptions of TaxButtons):

After selecting an entry from this dropdown, the TaxTableComponent is loaded where the taxes for that Class Of Business or Fee Name (in this case “Professional Indemnity”) can be viewed, added, edited and deleted:

Last updated