I’m reviewing the behaviour of Pricing Rules on Sales Order for a Distribution company.
The salesperson is given a max discount limit (say 30%) and standard discount (as in pricelist, say 20%) that can be followed or not depends on how he/she negotiates with the customer.
When creating Sales Order Item, depends on the order volume, customer, territory, and negotiation with the customer, salesperson can apply the same pricelist discount (20%), or lower (15%), or higher (25%), as long as it doesn’t go beyond the item’s Max Discount (30%). For this case, first, salesperson should be able to edit the default/calculated rate or discount percentage. Probably a customization?
I would avoid Ignore Pricing Rule option because checking on the data, it looses the link to the original pricelist to have the standard discount or calculated rate. (tabSales Order Item.pricing_rules).
Second, I should be able to keep the original item rate, pricelist item rate, and sales order item rate. The reason because I want to produce Sales Margin Performance report, comparing the base rate/amount, standard price list rate/amount, and the actual sales order rate/amount. Probably a customization?
Salesperson’s performance is good if he/she can provide lower discount percentage than the standard pricelist (20% - 15% = 5%). This “discount profit” later then to be extracted and saved in a special account (for further marketing activities). A positive journal entry. On contrary, if the discount rate is higher than the standard pricelist discount due to circumstances, this will trigger a higher approval of Sales Order. A negative journal entry. Let’s keep this customization aside for a while.
Now before going for customization, I’m reviewing BASE_* columns in tabSales Order Item. What is the actual purpose of these columns? Because when I tested for some standard cases (following or ignoring the pricing rule), the values are mostly the same as the counterparts (e.g. base_pricelist_rate vs pricelist_rate, base_rate vs rate, base_amount vs amount). If not used anywhere (report, subsequence flow), I thought I could use these columns for the requirement above rather than creating new custom columns?
Any opinion or suggestion?