Details
Description
Service changes that involve both an upgrade/downgrade and a coupon change simultaneously are calculated incorrectly by the pricing presenter because it applies the old coupon to both the old service state and the new service state. The presenter should be updated to apply the old coupon to the old service state and the new coupon to the new service state.
- Items with differing coupons cannot be merged because they will result in inaccurate pricing calculations since we cannot infer a single unit price and apply multiple coupons (i.e. the old coupon and the new coupon) to that price
- Items with coupons where one of the coupons is of the 'amount' type cannot be merged because an amount discount is not distributive like a percentage discount and would not arrive at the same price when merged
Example:
Old Service
Price $100
Discount 10%
New Service
Price $150
Discount 20%
Assuming the service change occurs for the entire term, the entire old service cost should be removed and the entire new service cost should be added, i.e.:
Remove $90 ($100 * (1 - 0.1))
Add $120 ($150 * (1 - 0.2))
Cost is $30
Line items:
Item | Price |
---|---|
Remove Old Service | -$100 |
Add New Service | $150 |
Remove Old Discount 10% | $10 |
Add New Discount 20% | -$30 |
Total: $30
Issue Links
Activity
Field | Original Value | New Value |
---|---|---|
Rank | Ranked higher |
Description | Service changes that involve both an upgrade/downgrade and a coupon change are calculated incorrectly by the pricing presenter because it applies the old coupon to both the old service state and the new service state. The presenter should be updated to apply the old coupon to the old service state and the new coupon to the new service state. |
Service changes that involve both an upgrade/downgrade and a coupon change are calculated incorrectly by the pricing presenter because it applies the old coupon to both the old service state and the new service state. The presenter should be updated to apply the old coupon to the old service state and the new coupon to the new service state.
Make sure unit tests still pass |
Fix Version/s | 4.2.1 [ 11020 ] |

Status | Open [ 1 ] | In Progress [ 3 ] |
Summary | Upgrades with changing coupons or not properly handled by the pricing presenter | Service changes not considering current coupon when changing it |
Description |
Service changes that involve both an upgrade/downgrade and a coupon change are calculated incorrectly by the pricing presenter because it applies the old coupon to both the old service state and the new service state. The presenter should be updated to apply the old coupon to the old service state and the new coupon to the new service state.
Make sure unit tests still pass |
Service changes that involve both an upgrade/downgrade and a coupon change simultaneously are calculated incorrectly by the pricing presenter because it applies the old coupon to both the old service state and the new service state. The presenter should be updated to apply the old coupon to the old service state and the new coupon to the new service state.
Make sure unit tests still pass |
Remaining Estimate | 0 minutes [ 0 ] | |
Time Spent | 2 hours, 4 minutes [ 7440 ] | |
Worklog Id | 10655 [ 10655 ] |
Time Spent | 2 hours, 4 minutes [ 7440 ] | 5 hours, 4 minutes [ 18240 ] |
Worklog Id | 10657 [ 10657 ] |
Description |
Service changes that involve both an upgrade/downgrade and a coupon change simultaneously are calculated incorrectly by the pricing presenter because it applies the old coupon to both the old service state and the new service state. The presenter should be updated to apply the old coupon to the old service state and the new coupon to the new service state.
Make sure unit tests still pass |
Service changes that involve both an upgrade/downgrade and a coupon change simultaneously are calculated incorrectly by the pricing presenter because it applies the old coupon to both the old service state and the new service state. The presenter should be updated to apply the old coupon to the old service state and the new coupon to the new service state.
* Items with differing coupons cannot be merged because they will result in inaccurate pricing calculations since we cannot infer a single unit price and apply multiple coupons (i.e. the old coupon and the new coupon) to that price |
Time Spent | 5 hours, 4 minutes [ 18240 ] | 5 hours, 57 minutes [ 21420 ] |
Worklog Id | 10658 [ 10658 ] |
Time Spent | 5 hours, 57 minutes [ 21420 ] | 6 hours, 55 minutes [ 24900 ] |
Worklog Id | 10659 [ 10659 ] |
Description |
Service changes that involve both an upgrade/downgrade and a coupon change simultaneously are calculated incorrectly by the pricing presenter because it applies the old coupon to both the old service state and the new service state. The presenter should be updated to apply the old coupon to the old service state and the new coupon to the new service state.
* Items with differing coupons cannot be merged because they will result in inaccurate pricing calculations since we cannot infer a single unit price and apply multiple coupons (i.e. the old coupon and the new coupon) to that price |
Service changes that involve both an upgrade/downgrade and a coupon change simultaneously are calculated incorrectly by the pricing presenter because it applies the old coupon to both the old service state and the new service state. The presenter should be updated to apply the old coupon to the old service state and the new coupon to the new service state.
* Items with differing coupons cannot be merged because they will result in inaccurate pricing calculations since we cannot infer a single unit price and apply multiple coupons (i.e. the old coupon and the new coupon) to that price * Items with coupons where one of the coupons is of the 'amount' type cannot be merged because an amount discount is not distributive like a percentage discount and would not arrive at the same price when merged |
Description |
Service changes that involve both an upgrade/downgrade and a coupon change simultaneously are calculated incorrectly by the pricing presenter because it applies the old coupon to both the old service state and the new service state. The presenter should be updated to apply the old coupon to the old service state and the new coupon to the new service state.
* Items with differing coupons cannot be merged because they will result in inaccurate pricing calculations since we cannot infer a single unit price and apply multiple coupons (i.e. the old coupon and the new coupon) to that price * Items with coupons where one of the coupons is of the 'amount' type cannot be merged because an amount discount is not distributive like a percentage discount and would not arrive at the same price when merged |
Service changes that involve both an upgrade/downgrade and a coupon change simultaneously are calculated incorrectly by the pricing presenter because it applies the old coupon to both the old service state and the new service state. The presenter should be updated to apply the old coupon to the old service state and the new coupon to the new service state.
* Items with differing coupons cannot be merged because they will result in inaccurate pricing calculations since we cannot infer a single unit price and apply multiple coupons (i.e. the old coupon and the new coupon) to that price * Items with coupons where one of the coupons is of the 'amount' type cannot be merged because an amount discount is not distributive like a percentage discount and would not arrive at the same price when merged Example: Old Service Price $100 Discount 10% New Service Price $150 Discount 20% Assuming the service change occurs for the entire term, the entire old service cost should be removed and the entire new service cost should be added, i.e.: Remove $90 ($100 * (1 - 0.1)) Add $120 ($150 * (1 - 0.2)) Cost is $30 Line items: ||Item||Price|| |Remove Old Service|-$100| |Add New Service|$150| |Remove Old Discount 10%|$10| |Add New Discount 20%|-$30| Total: $30 |
Time Spent | 6 hours, 55 minutes [ 24900 ] | 7 hours, 20 minutes [ 26400 ] |
Worklog Id | 10662 [ 10662 ] |
Fix Version/s | 4.3.0-b1 [ 11019 ] |
Sprint | 4.3.0 Sprint 1 [ 49 ] |
Rank | Ranked higher |
Original Estimate | 0 minutes [ 0 ] | |
Assignee | Jonathan Reissmueller [ jonathan ] | Tyson Phillips [ tyson ] |

Status | In Progress [ 3 ] | In Review [ 5 ] |
Resolution | Fixed [ 1 ] |

Status | In Review [ 5 ] | Closed [ 6 ] |