Affects Version/s: 6.1.1 CE GA2, 6.1.30 EE GA3, 6.2.0 CE M2, 6.2.0 CE M4
Fix Version/s: None
Environment:Tomcat 7.0 + MySQL 5. Portal 6.1.x EE GIT ID: febe1fa217a5859f770442405eeb455a6c72bf3a.
Tomcat 7.0 + MySQL 5. Portal 6.2.x GIT ID: 838cef246e57e86ae29e9d7d4e145c22c9ffb53a.
Steps to recreate:
1) Configure the shopping portlet to utilize insurance (flat rate or percentage)
2) Add an item to the cart with > $0 value
3) Go to Cart
4) Add insurance from the drop down
6) Look at saved order and the insurance break out does not show up, even though it is used in the total calculation.
7) Look at the record in the DB for that order, and the insure field is set to 0 (note that the insurance amount is set correctly)
This causes a few of issues:
1) The insurance is always added to the order total when viewing the order after checkout (this is really a separate issue that the insure flag is not being checked properly for the order total before adding the insurance amount when displaying the order). Note that it is not added during the check out.
2) The insurance amount is not shown in the break out of the order total, but it is added to the total, causing possible confusion.
3) The flag can no longer be relied on to determine if insurance was added to the order (the default behavior is to not check the flag and to always add the insurance amount to the order total, even if insurance was not selected)
The reason this is happening:
In the com.liferay.portlet.shopping.service.impl.ShoppingOrderLocalServiceImpl.addLatestOrder method, the insure flag is never set from the cart insure flag, on the order being added. (note that it actually is set when updating the order via the updateLatestOrder method.)