# data[].attributes.headline
[PC] Layers - It's possible to delete pre-existing layers on a policy change

# data[].attributes.subject
[PC] Layers - It's possible to delete pre-existing layers on a policy change

# data[].attributes.body
Steps to Reproduce

1. Create a new submission and fill in all the necessary fields

2. Create a layered coinsurance agreement (XoL Programme) with 4 layers

3. Quote and Issue the Policy

4. Do a policy change starting at the starting date of the policy

5. Verify you can't remove any layers

6. Add a new Layer

7. Add a new second Layer (we now have a total of 6 layers)

8. Remove the layer created in step 6 (causing us to have a gap in layers)

Actual Result
After removing the layer, it becomes possible to delete any layer

Expected result
The removing of layers shouldn't be affected

# data[].attributes.headline
[PC] Layers - Can't fix gap if one of the layers has been deleted

# data[].attributes.subject
[PC] Layers - Can't fix gap if one of the layers has been deleted

# data[].attributes.body
If a layer is deleted, It becomes impossible to quote the policy (without removing all layers and starting from scratch) to fix the gap.

Steps to Reproduce:

1. Create a new Submission and fill all the mandatory fields

2. Select Policy Type "XoL Programme"

3. Create a Layer with limit 10$ (Excess is set as 0$ automatically)

4. Create a second Layer with limit 50$ (Excess is set as 10$ automatically)

5. Remove the layer created in 4.

6. Quote the Policy

Actual Result:
It's not possible to quote the policy because there's a gap in the layers. Upon trying to add a new layer, the excess is set automatically as 60$ and we can't fix the gap.

Expected Result:
It's not possible to quote the policy because there's a gap in the layers. Upon trying to add a new layer, it should be possible to set the excess and limit to fix the gap and quote the policy.

# data[].attributes.headline
[PC] Layers - Policy Review not working for layers

# data[].attributes.subject
[PC] Layers - Policy Review not working for layers

# data[].attributes.body
Steps to Reproduce

1. Create a new submission and fill in all the necessary fields

2. Create a layered coinsurance agreement (XoL Programme) with 4 layers

3. Quote and Issue the Policy

4. Do a policy change starting at the starting date of the policy

5. Add a new Layer

6. Go to the policy review screen

Actual Result
The screen displays no changes between versions.

Expected Result
The layer changes should be reflected in the Policy Review screen so I can see what was changed.

# data[].attributes.headline
[PC] delete Agreement Type dropdown text, and then cancel Agreement type change warning, and agreement type is then null / CII_Use is will be false

# data[].attributes.subject
[PC] delete Agreement Type dropdown text, and then cancel Agreement type change warning, and agreement type is then null / CII_Use is will be false

# data[].attributes.body
1. Create standard CI policy
2. add agreement for lead and follow
3. select Agreement type field, and delete the text.
4. click anywhere else on the screen

And now, regardless of whether you accept or cancel the agreement type change, coinsurance data is gone / CI type is null/none

# data[].attributes.headline
[BC] BOP values look weird after issuing policy with layers

# data[].attributes.subject
[BC] BOP values look weird after issuing policy with layers

# data[].attributes.body
This may be out of scope BTW
1 - Issue a BOP policy (default values are fine)
2 - Add two XoL layers and one agreement on each: first layer contains a property agreement with us leading 75% and second layer has a liability agreement with us following 10%
3 - Values in BC, for premium, look different from the ones in PC, only taxes are correct.

# data[].attributes.headline
[PC] Invalid Quote Generated when using different Coverage and Settlement Currencies

# data[].attributes.subject
[PC] Invalid Quote Generated when using different Coverage and Settlement Currencies

# data[].attributes.body
1 - Create a Submission (I used PA) and select Coverage Currency as USD and Settlement Currency as EUR.
2 - Fill in a basic vehicle for California with an assigned Driver
3 - Quote the policy

Expected Result:
Getting a normal Quote

Actual Result:
We get an invalid quote message.
Checking the logs shows us that the issue is due to a CI enhancement.
dewire.com su       2018-10-24 09:47:40,015 ERROR Application.Financials Exception occurred during rating...
java.lang.IllegalArgumentException: Currencies are not equal: EUR, USD
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)
at gw.pl.currency.MonetaryAmount.add(MonetaryAmount.java:222)
at gw.currency.GWIterableMonetaryAmountSumCoreEnhancement.sum(GWIterableMonetaryAmountSumCoreEnhancement.gsx:27)
at gw.acc.coinsurance.enhancements.TransactionIterableCIEnhancement.ShareSum_CI(TransactionIterableCIEnhancement.gsx:9)

# data[].attributes.headline
[PC] NullPointerException is thrown when using small premiums, because the cost is rounded to 0

# data[].attributes.subject
[PC] NullPointerException is thrown when using small premiums, because the cost is rounded to 0

# data[].attributes.body
Steps to reproduce:
1. Create a submission with very small amounts (e.g.: 1111)
2. Try to quote and issue the policy

Expected result:
There should be a validation or warning that the cost is too small and it generates null cost and no transaction.

Actual result:
A NullPointerException is thrown in the logs because it can't find the transaction:
java.lang.NullPointerException
at gw.acc.coinsurance.financials.PolicyPeriodCITransactionCalculator.calculateTransactions(PolicyPeriodCITransactionCalculator.gs:52)
at gw.acc.coinsurance.financials.PolicyPeriodCITransactionCalculator$block_7_.invoke(PolicyPeriodCITransactionCalculator.gs:43)
at gw.lang.enhancements.CoreIterableEnhancement.each(CoreIterableEnhancement.gsx:180)
at gw.acc.coinsurance.financials.PolicyPeriodCITransactionCalculator.calculateTransactions(PolicyPeriodCITransactionCalculator.gs:43)
at gw.financials.PolicyPeriodFinancialsEnhancement.amendTransactionsOurShare(PolicyPeriodFinancialsEnhancement.gsx:146)
at gw.job.QuoteProcess$block_11_.invoke(QuoteProcess.gs:139)
at gw.api.profiler.GWProfilerTagCoreEnhancement.execute(GWProfilerTagCoreEnhancement.gsx:14)
at gw.job.QuoteProcess.requestQuote(QuoteProcess.gs:139)
at gw.job.JobProcess$block_4_.invoke(JobProcess.gs:317)
at gw.api.profiler.GWProfilerTagCoreEnhancement.execute(GWProfilerTagCoreEnhancement.gsx:14)
at gw.job.JobProcess.requestQuote(JobProcess.gs:317)
at gw.job.JobProcess.requestQuote(JobProcess.gs:301)
at gw.job.FullAppJobProcessAction.process(FullAppJobProcessAction.gs:34)
at gw.job.JobWizardHelperEnhancement$block_1_.invoke(JobWizardHelperEnhancement.gsx:111)
at gw.job.JobWizardHelperEnhancement.doWithUWRedirect(JobWizardHelperEnhancement.gsx:150)
at gw.job.JobWizardHelperEnhancement.requestQuote(JobWizardHelperEnhancement.gsx:109)
at gw.job.JobWizardHelperEnhancement.requestQuote(JobWizardHelperEnhancement.gsx:104)
at pcfc.expressions.JobWizardToolbarButtonSet_SubmissionExpressions$JobWizardToolbarButtonSetExpressionsImpl.action_15(JobWizardToolbarButtonSet_SubmissionExpressions.gs:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at gw.internal.gosu.parser.GosuMethodInfo$GosuMethodCallHandler.handleCall(GosuMethodInfo.java:300)
at com.guidewire.pl.web.config.expression.GosuMethodHandle.invoke(GosuMethodHandle.java:72)
at com.guidewire.pl.web.action.GosuActionListener.onAction(GosuActionListener.java:50)
at com.guidewire.pl.web.action.GosuActionListener.action(GosuActionListener.java:81)
at com.guidewire.pl.web.action.ActionWidget.widgetEvent_internal(ActionWidget.java:100)
at com.guidewire.pl.web.widget.Widget.widgetEvent(Widget.java:168)
at com.guidewire.pl.web.controller.lifecycle.ExecuteEventsStep.execute(ExecuteEventsStep.java:44)
at com.guidewire.pl.web.controller.lifecycle.LifecycleRequestHandler.runLifecycleSteps(LifecycleRequestHandler.java:233)
at com.guidewire.pl.web.controller.lifecycle.LifecycleRequestHandler.handleRequest(LifecycleRequestHandler.java:205)
at com.guidewire.pl.web.controller.WebControllerImpl$2.run(WebControllerImpl.java:207)
at com.guidewire.pl.web.internaltools.profiler.WebProfiler.profilingBlock(WebProfiler.java:211)
at com.guidewire.pl.web.controller.WebControllerImpl.processWithProfilingHouseKeeping(WebControllerImpl.java:203)
at com.guidewire.pl.web.controller.WebControllerImpl.handleRequest(WebControllerImpl.java:175)
at com.guidewire.pl.web.controller.WebServlet.handleRequest(WebServlet.java:194)
at com.guidewire.pl.web.controller.WebServlet.doPost(WebServlet.java:132)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
at com.guidewire.pl.web.controller.WebServlet.service(WebServlet.java:140)

# data[].attributes.body
1 - Create a Workers' Compensation policy. Keep everything to a default,
2 - I used the covered employees only values as follows: class 0038(2), 25 employees, 100 basis
3 - Choose Standard (the only choice for WC) coinsurance a add one agreement for Liability (Admin own claim share, 90/10 dist) and quote

Expected Result:
- We get a valid quote

Actual Result:
- We get an invalid quote with a NPE in the logs

dewire.com su       2018-10-24 11:07:37,491 ERROR Application.Financials Exception occurred during rating...
java.lang.NullPointerException
at gw.acc.coinsurance.financials.PolicyPeriodCITransactionCalculator.calculateTransactions(PolicyPeriodCITransactionCalculator.gs:52)
at gw.acc.coinsurance.financials.PolicyPeriodCITransactionCalculator$block_7_.invoke(PolicyPeriodCITransactionCalculator.gs:43)
at gw.lang.enhancements.CoreIterableEnhancement.each(CoreIterableEnhancement.gsx:180)
at gw.acc.coinsurance.financials.PolicyPeriodCITransactionCalculator.calculateTransactions(PolicyPeriodCITransactionCalculator.gs:43)
at gw.financials.PolicyPeriodFinancialsEnhancement.amendTransactionsOurShare(PolicyPeriodFinancialsEnhancement.gsx:146)
at gw.job.QuoteProcess$block_11_.invoke(QuoteProcess.gs:139)
at gw.api.profiler.GWProfilerTagCoreEnhancement.execute(GWProfilerTagCoreEnhancement.gsx:14)
at gw.job.QuoteProcess.requestQuote(QuoteProcess.gs:139)
at gw.job.JobProcess$block_4_.invoke(JobProcess.gs:317)
at gw.api.profiler.GWProfilerTagCoreEnhancement.execute(GWProfilerTagCoreEnhancement.gsx:14)
at gw.job.JobProcess.requestQuote(JobProcess.gs:317)
at gw.job.JobProcess.requestQuote(JobProcess.gs:301)
at gw.job.FullAppJobProcessAction.process(FullAppJobProcessAction.gs:34)
at gw.job.JobWizardHelperEnhancement$block_1_.invoke(JobWizardHelperEnhancement.gsx:111)
at gw.job.JobWizardHelperEnhancement.doWithUWRedirect(JobWizardHelperEnhancement.gsx:150)
at gw.job.JobWizardHelperEnhancement.requestQuote(JobWizardHelperEnhancement.gsx:109)
at gw.job.JobWizardHelperEnhancement.requestQuote(JobWizardHelperEnhancement.gsx:104)
at pcfc.expressions.JobWizardToolbarButtonSet_SubmissionExpressions$JobWizardToolbarButtonSetExpressionsImpl.action_15(JobWizardToolbarButtonSet_SubmissionExpressions.gs:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)

# data[].attributes.headline
Invalid Premium Values in PC and BC when I add an Agreement in a PolicyChange

# data[].attributes.subject
Invalid Premium Values in PC and BC when I add an Agreement in a PolicyChange

# data[].attributes.body
Step to Reproduce:
1- Create a Policy and choose something else instead of Apartment (like Motel)with no Coinsurance and issue it
2 - Make a policy Change 3 days in the future
3 - Add an agreement with Liability Cover Class
4 - Put 12% as Policy Commission Value
5 - Issue the policy change

Expected Result:
PC - Having a Coinsurance Policy with Premium properly split by cover Class. (In the Quote Screen of the PolicyChange file).
BC - Showing coinsurance information in Charges screen and Commission screen

Actual Result:
PC - No correct values of the premium split by cover class ( sum of the premiums has to match with the Total Premium). No Our share column in the Cost Change Detail of the Quote Screen
BC -No policy level commission and Leader fee applied to charges screen and No cover classes shown.
No leader fee column in the commissions screen

# data[].attributes.headline
[PC] While in read only mode we see a checkbox for Participants on Agreements

# data[].attributes.subject
[PC] While in read only mode we see a checkbox for Participants on Agreements

# data[].attributes.body
Usually these checkboxes don't show up when in read only mode.

# data[].attributes.headline
[PC] Validation for when we choose a Coinsurance Type but we don't actually add no agreements or layers?

# data[].attributes.subject
[PC] Validation for when we choose a Coinsurance Type but we don't actually add no agreements or layers?

# data[].attributes.body
This may solve the problem with Charges showing up separated by Cover Class in BC even though there are no cover class columns visible making it weird looking. If we never choose CI in the first place, behaves normally.

# data[].attributes.headline
[PC] Layers - Can't create a layer with limit < excess

# data[].attributes.subject
[PC] Layers - Can't create a layer with limit < excess

# data[].attributes.body
Steps to Reproduce:

1. Create a new submission and fill in all the necessary fields

2. Create a coinsurance agreement with type XoL Programme

3. Add a layer with Limit 1000

4. Add a second layer with limit 2000

5. Add a third layer.

Actual Result:
We can't add a new layer with limit 1000. This way, we can't have layers in 1000$ increments and they become exponential.

Expected Result:
We should be able to add a new layer with limit 1000.

# data[].attributes.headline
[CC] Share amounts with decimals are not displayed correctly on the Coinsurance screen in CC

# data[].attributes.subject
[CC] Share amounts with decimals are not displayed correctly on the Coinsurance screen in CC

# data[].attributes.body
Create a policy with a Lead/Administer standard agreement and 3 followers
Lead: 96.1%
Follow1: 1.3%
Follow2: 1.3%
Follow3: 1.3%

Create a Claim in CC for this policy
Go to Coinsurance screen in CC

Expected result
Correctly displayed percentages which mirror the agreement shares

Actual result
Percentages rounded and not added up correctly in totals

# data[].attributes.headline
[PC] Leader role should be automatically selected when creating an Agreement?

# data[].attributes.subject
[PC] Leader role should be automatically selected when creating an Agreement?

# data[].attributes.headline
[CC] FNOL Snapshot > Parties Involved > Coinsurer throws server error

# data[].attributes.subject
[CC] FNOL Snapshot > Parties Involved > Coinsurer throws server error

# data[].attributes.body
Create a Claim for a Coinsurance policy
On Claim go to FNOL Snapshot > Parties Involved
Click on the part with role Coinsurer

Expected behaviour
Can see the Contact details of the Coinsurer

Actual Behavior
Server Error thrown

# data[].attributes.attachment_link.title
CC -  FNOL Snapshot - Parties Involved error.PNG

# data[].attributes.headline
[PC] Leader's fee changes are not reflected in BC

# data[].attributes.subject
[PC] Leader's fee changes are not reflected in BC

# data[].attributes.body
1 - Issue a policy with one Agreement with 6% leader fee
2 - Change the policy and change the leader fee to 90%

The 90% leader fee is never seen in BC

I believe this may be by design, in which case we should lock the leader fee to prevent changes.

# data[].attributes.headline
[PC] Somehow an agency bill with a type can be set to null

# data[].attributes.subject
[PC] Somehow an agency bill with a type can be set to null

# data[].attributes.body
Not sure how the agency bill plan is set to null, or where it is set to null.
Attaching screen shots

# data[].attributes.headline
For Commercial Package we're not displaying Our Share in Quote - Policy Premium break-down. Is that ok?

# data[].attributes.subject
For Commercial Package we're not displaying Our Share in Quote - Policy Premium break-down. Is that ok?

# data[].attributes.headline
When adding a new subplan in Commission Plan, in the commissions screen the Primary commission rate is not updated with the primary rate of the subplan created 

# data[].attributes.subject
When adding a new subplan in Commission Plan, in the commissions screen the Primary commission rate is not updated with the primary rate of the subplan created 

# data[].attributes.headline
Policy Commission in PC is Ignored When no Coinsurance Information has been added.

# data[].attributes.subject
Policy Commission in PC is Ignored When no Coinsurance Information has been added.

# data[].attributes.body
Charges per Cover Class

issuance

policy change

Total Commission

Leader's Fee

Charges for OOTB policies

# data[].attributes.body
Exposures

Reserves

RecoveryReserves

Recoveries

Payments

Claim Financials

OOTB claims

# data[].attributes.body
Commission Plans

Primary Commission Plan Rate

Special Rates

Cover Class Rates

Policy Level Commission Rate

Override Commission Plan

Override Commission on Charge

# data[].attributes.body
Coinsurance types

Standard Coinsurance

XoL Programme

Modify Policy Type

Agreement Validations

fields validations

total commission >100%

total shares of 100%

XoL Agreements

Layer Agreements

# data[].attributes.body
Submission

Policy Change

Normal policy changes

Coinsurance changes

Out-of-sequence changes

Renewal

Cancellation

Rewrite

# data[].attributes.body
Standard Agreements

Lead: Administer

Lead: Administer, own claim share

Lead: Broker collection, claim funding

Lead: Broker collection, own claim share

Follower