Availability |
Odoo Online
Odoo.sh
On Premise
|
Odoo Apps Dependencies |
•
Inventory (stock)
• Purchase (purchase) • Discuss (mail) • Invoicing (account) |
Lines of code | 197 |
Technical Name |
stock_last_purchase_price |
License | AGPL-3 |
Website | https://www.openhrms.com |
Versions | 12.0 13.0 14.0 15.0 16.0 17.0 18.0 |

Costing method: Last Purchase Price
Introducing new costing method 'Last Purchase Price' in Odoo

Explore this module
Overview
This module allows you to update your product's cost as your last purchase price and changes the stock valuation based on that
Configuration
After installing the module, Select the newly added costing method in product category. Provide 'Price Difference Account' too if you are following automated inventory valuation.
Features

New Costing Method
A New Costing Method Is Added To The List And Can Be Chosen From Product Category Form

Last Purchase Price
Cost Price Of Products Will Be Updated With Their Last Purchase Price

Stock Valuation Report
Takes Last Purchase Price In Stock Valuation Report

Price Difference Account
Automatically Posting Price Difference Related Accounting Entries To The 'Price Difference Account' When We Use Automated Inventory Valuation
Screenshots
Product form

Product category

Purchase order created with new cost

Cost updated in product form

Journal Item generated by the price change

Suggested Products
Our Services

Odoo Customization

Odoo Implementation

Odoo Support

Hire Odoo Developer

Odoo Integration

Odoo Migration

Odoo Consultancy

Odoo Implementation

Odoo Licensing Consultancy
Our Industries

Trading
Easily procure and sell your products

POS
Easy configuration and convivial experience

Education
A platform for educational management

Manufacturing
Plan, track and schedule your operations

E-commerce & Website
Mobile friendly, awe-inspiring product pages

Service Management
Keep track of services and invoice

Restaurant
Run your bar or restaurant methodically

Hotel Management
An all-inclusive hotel management application
Need Help?

Please log in to comment on this module
Report comment
Any abuse of this reporting system will be penalizedWhat are the recommended configurations?
.. My Tests... With manual inventory valuation the module works if cost is zero and the next purchase gives an error. With automated Valuation the module also with if cost is zero and give another popup warning than there is no difference in standard price but the work around is to add 0.01 to the purchase price and it will update.. These are my experiences.. Kindly advise your recommended configurations to make it work...
Hi. Am getting an error updating the cost of a product from purchase order. . "no difference between the standard price and the new price."
norman.dipauli@gmail.com
Good morning, this module can be used in v14 CE ?
Error module
Some errors have occurred and cannot be fixed. Please check and update soon
The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/odoo/src/odoo/odoo/http.py", line 640, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/home/odoo/src/odoo/odoo/http.py", line 316, in _handle_exception raise exception.with_traceback(None) from new_cause UnboundLocalError: local variable 'new_std_price' referenced before assignment
odoo 11
is it available for odoo 11?
Bug on OE V13
Dear all I tried the module on a standard OE V13 I defined a product category with Costing Method = last Purchase Price Made a first PO with 12 units each 2.30 €, got the 2.30 € price on the product Made a second PO with 8 units each 2.50 €, when performing the reception of the product system crashes with following error Error: Odoo Server Error Traceback (most recent call last): File "/home/tempo/odoo13/odoo/odoo/http.py", line 624, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/home/tempo/odoo13/odoo/odoo/http.py", line 310, in _handle_exception raise pycompat.reraise(type(exception), exception, sys.exc_info()[2]) File "/home/tempo/odoo13/odoo/odoo/tools/pycompat.py", line 14, in reraise raise value File "/home/tempo/odoo13/odoo/odoo/http.py", line 669, in dispatch result = self._call_function(**self.params) File "/home/tempo/odoo13/odoo/odoo/http.py", line 350, in _call_function return checked_call(self.db, *args, **kwargs) File "/home/tempo/odoo13/odoo/odoo/service/model.py", line 94, in wrapper return f(dbname, *args, **kwargs) File "/home/tempo/odoo13/odoo/odoo/http.py", line 339, in checked_call result = self.endpoint(*a, **kw) File "/home/tempo/odoo13/odoo/odoo/http.py", line 915, in __call__ return self.method(*args, **kw) File "/home/tempo/odoo13/odoo/odoo/http.py", line 515, in response_wrap response = f(*args, **kw) File "/home/tempo/odoo13/odoo/addons/web/controllers/main.py", line 1326, in call_button action = self._call_kw(model, method, args, kwargs) File "/home/tempo/odoo13/odoo/addons/web/controllers/main.py", line 1314, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "/home/tempo/odoo13/odoo/odoo/api.py", line 387, in call_kw result = _call_kw_multi(method, model, args, kwargs) File "/home/tempo/odoo13/odoo/odoo/api.py", line 374, in _call_kw_multi result = method(recs, *args, **kwargs) File "/home/tempo/odoo13/odoo/addons/stock/wizard/stock_immediate_transfer.py", line 34, in process pick_to_do.action_done() File "/home/tempo/odoo13/odoo/addons/stock/models/stock_picking.py", line 727, in action_done todo_moves._action_done(cancel_backorder=self.env.context.get('cancel_backorder')) File "/home/tempo/odoo13/odoo/addons/stock_account/models/stock_move.py", line 246, in _action_done valued_moves['in'].product_price_update_before_done() File "/home/tempo/odoo13/custom/stock_last_purchase_price/models/stock.py", line 44, in product_price_update_before_done move.product_id.with_context(force_company=move.company_id.id).sudo().write({'standard_price': new_std_price}) UnboundLocalError: local variable 'new_std_price' referenced before assignment