Add the support of multi-currency on stock move and product cost and price

Registered by Joël Grand-Guillaume @ camptocamp

Better prices management into OpenERP...

- We need to be able to set independent product cost price lists with different value and currency for each company in a multi-company environment. The products are global and the same for all companies. This is the key point.

- The product cost price should be editable in the price list. Ideally accessed directly from the product form.

- Nice to have : the possibility to ask pricelist into invoices to be consistent between all price computation into the tools.

This will allow OpenERP to deal with multi-currency and multi-company stock accounting, as well as allow OpenERP to compute costs per company (example: a service company has to companies : one in France, one in Brazil, so you can use only one shared product, but with different cost computation, based on the product pricelist. Should work with Timsheet as well..

This is a must have for international company !

Regards,

Blueprint information

Status:
Complete
Approver:
None
Priority:
High
Drafter:
Joël Grand-Guillaume @ camptocamp
Direction:
Needs approval
Assignee:
Joël Grand-Guillaume @ camptocamp
Definition:
Review
Series goal:
None
Implementation:
Implemented
Milestone target:
milestone icon 6.0
Started by
Joël Grand-Guillaume @ camptocamp
Completed by
Joël Grand-Guillaume @ camptocamp

Whiteboard

New requirements :
-------------------------

Please feel free to read and contribute !

http://dev.camptocamp.com/files/Requierements.odt

Thanks !

Joël

---------------------------------------------------------------
Already implemented in the related branch
----------------------------------------------------------------
23.12.2009 :
                     - TODO Correct all usage of standard_price : use the field setted in the company property : pricetype. It last : SQL request, mrp report, all concerned extra-addons
                     - TODO Find something to allow each company to have their standard_price, or share it ! Both should work => Done
                     - TODO (Nice to have) Correct the amount to invoice and the theorical revenue in AA (take care of pricelist)
                     - TODO (Nice to have) Add the support of foreign currency in stock moves

22.12.2009 : - TODO Take care of average price in wizard_partial_picking => Done
                     - TODO Compute amount currency and account currency everytime => Done
                     - TODO Change indicator computation => Done
                     - TODO Adapt debit/credit and balance in tree view to compute them based
                                  on account company currency => Done
                     - TODO Check all indicators => Done

17.12.2009 : - Valuation price list to allow different cost price per company
                     - Modify timesheet & analytic stuff to compute based on this pricelist
                     - Modify stock valuation (on inventory, move and so) to take care of valuation price list
                     - Adapt timesheet module
                     - Adapt indicators of account analytic analysis

--------------------------------------
------------------------------------
PAST IDEAS & Comments:
-------------------------------------
--------------------------------------

To handle this feature, we should (just a start, not exhaustive):

First round
-----------------

- Add a currency field on product
- Add a new price list type : "company cost"
- Add a price iist on the company to handle cost computation
- Add UoM for list_price and standard_price, if not available take the standard UoM
- Keep a historical for list_price and standard price (use when compute margin) see https://blueprints.launchpad.net/openobject-addons/+spec/fields-related-historical
- Add new field last_purchase_price and last_purchase_data

- Change the price_get function into pricelist.py to take care of the product currency
- Change the computation of the cost stored into account analytic line, especially when recording costs from timesheet lines. This should take care of product cost price with his currency and the new "company cost" price list rules/computation.
- Change the way accounting move related to stock move are done in both "PMP" and "Standard price" valuation types.

Second round
---------------------
Think on the price list for company, may be there is another solution :

- A costs price field per company, per product to avoid the complexity of pricelist (especially when updating price and so).

Some need described here
-----------------------------------

- We need to be able to set independent product cost price lists with different value and currency for each company in a multi-company environment. The products are global and the same for all companies. This is the key point.
- The product cost price should be editable in the price list. Ideally accessed directly from the product form.

Something new to think about
--------------------------------------
- Product cost update usually happens with the picking of the incoming product from a purchase order. BUT we do not always receive the final invoice together with the shipped products. Sometimes the purchase invoice arrive 2 weeks later and we should already enter the product cost price with the picking. This causes trouble with the current method. We would have to use the price of the purchase quote and manually recalculate product cost late => Why not add a wizard on picking to de that ?

====GG 10.12.2009 ====
I see in trunk module multi_company_product by Axelor. This module is playing a lot of cost and sale prices with currencies across companies. I don't know if it works but it looks it is going to solve problems of this blueprint. Is this module a result of this blueprint or it is some parallel activity?
====GG end=====
==== Joël 10.12.2009 ======
No, this module isn't part of this blueprint. I will investigate it to see if it could fit those needs. The idea of this blueprint is more to implement a more "unified" way to handle prices in multi-company. Tree axes:
- Purchase price (from supplier => ok)
- Sale price (for customer => ok)
- Cost price (for each company => ko)

Have a look on my linked docs to see if you agree with what I suggest. I'll investigate the module you talked about.
===== Joël end ====
===== Joël 15.12.09 ====
Updated the odt doc linked
===== Joël end ====

(?)

Work Items