Calculating Discounts on an Order

Discounts are always calculated based on the ship-to customer, unless a purchasing group is being used and has been defined otherwise. Discounts are recalculated when an order is changed to determine if the criteria matches and the discount is still eligible. For example, when you create a quantity discount for purchasing more than 10 items and a customer purchases 10 but returns 5 items, the discount is recalculated (and potentially eliminated) and the order is reinstated to the full price for the 5 items.

 

From the Order Entry screen, if you are creating an order that is over 30 lines, check the Defer Order Calculations checkbox to speed data entry. When checked, the application does not calculate the order summary until you save the information or click Calculate Discounts and Shipping. Please note that as of 7.4.2, if a discount is applied to an order after a "Manual" payment schedule has been created, the system will update the order line total and scheduled payment amount accordingly, but will not update the scheduled payment percentages. For more information on applying discounts to a product, please see the Linking Coupons to Products.

When a 100% discount is added to an order line, the system creates a 100% discount against the full revenue amount of the order line, reversing any previous price adjustments.

Changes to an Order with a Discount

As of 7.4.2, the system will not refetch the discount ID on an adjustment of an invoiced line. If there is any change in the order master, the discount ID will be refetched. If there is any change on the order line other than adjustment, the discount ID will be fetched and if a new discount should be applied at the order level, then the new discount will be applied on all the lines, regardless of whether they are invoiced or not. Additionally, if a new discount should be applied at the line level, then the new discount will be applied on all un-invoiced lines and the line which was changed, regardless of whether the line is invoiced or not. If it is not better than the previous discount, the previous discount will remain on the line. If a line changes and the discount is refetched but no discount is available now for the order, then if the previous discount on the order was an order level discount, it will be removed. However, if the previous discount on the order was a line level discount, it will remain on the line.

Recalculating Discounts on Invoiced Order Lines

As of 7.5.0, the Recalculate Discount on Inv. Line button can be used to re-evaluate all invoiced and proforma order lines for qualification for existing discounts and qualification for better discounts. This button is only enabled if the order has at least one invoiced order line and if the “Allow Discount Recalc on Invoiced Lines” application parameter is set to 'Y'.

Manual Overrides

As of 7.5.2, when a user manually changes the discount amount on an order (whether it's a manual discount or an automatic discount), the system sets MANUAL_DISCOUNT_OVERRIDE_FLAG to Y. If the discount has not been manually overridden, the discount will be recalculated as any other regular discount. On price adjustment, the discount amount will be recalculated.

 

If the Product Discount ID is changed on order detail, then the system resets MANUAL_DISCOUNT_OVERRIDE_FLAG to N. In case of quantity-based discounts, if the discounts are re-fetched, the discount amount will change as per new discount.

 

If the discount has a flat amount, then the system sets MANUAL_DISCOUNT_OVERRIDE_FLAG to Y in such cases so that the amount is not recalculated.

 

If MANUAL_DISCOUNT_OVERRIDE_FLAG is Y, then the discount amount will not be recalculated. The overarching principle is that the system will always maintain the discount amount, if possible. However, if this fixed discount amount would cause the line to go negative, the discount will be reduced to whatever amount is necessary to bring the line balance back up to zero.

The Manual Discount Override checkbox now displays on the Line Item Details screen, is set by the system, and is read-only.