Add price list on purchase

Rational

Some business sector has enforced prices (ex: fixed book price). In such business the purchase prices are often negotiated as discount on the fixed price. On large catalog of products it is an hard work to use the Product Supplier to set the price when it can be computed from a formula.

Proposal

We propose to have a module purchase_price_list which adds a price list on the purchase and a supplier price list on the party.
The computation of the purchase price is extended to also compute it using the price list if set and if there is no Product Supplier with a price available.
The price list is extended to include the list price of the product in the evaluation context.
The unit_price of the price list computation is the purchase price received from the super() call.

Implementation

I’m implementing this feature. And as it is close to the sale_price_list, I follow closely its design. But I do not find useful to store the price list on the purchase order like we do for sale. The reason is that the purchase price from Tryton is mainly a proposal, it must be compared and validated with the supplier. So there is two cases. The first is that the price list on the supplier is right and it computes the proper price. Then there is no need to set a different price list on the purchase. The second is that the price list on the supplier is wrong or missing and it computes the wrong price. Then the user can set a correct price list on the supplier or if it is not possible to have a correct price list, he just edit the prices. So there is no point neither to set a price list on the purchase.