Hi. I would like to know if there is any way to update product costs from the Purchase Order. Since I created all the products but I would like their cost to be updated as the purchase orders are created. Currently the categories are in "Standard Price" with automatic valuation. But the costs of the Product tab are not updated. Thank you
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project management
- MRP
This question has been flagged
Hello Eladio Garcia,
The recalculation of product costs (inventory valuation) are carried out after receipt of the products (after entering the products into stock). This is the norm and this is exactly what Odoo does (of course if you well set up FIFO or AVCO on product category).
However, if you want to do this you will need to do some customization and I'm afraid it might be a little tricky and risky. Below are so hints that would helps:
if you are using Odoo >= 13.0, so you will have to create a Stock Valuation Layer (stock.valuation.layer model) for each product on your PO with the quantity and the unit price mentioned on the PO Line.
Be sure to prevent Odoo core to create Stock Valuation Layers at the stock receipt to avoid double computation of the stock valuation.
Good luck to you.
This is the best way. I'm doing some correction in V16 because on kick start, the products categories wasn't configured correctly, so in order to correct them having moves in accounting, i have to look inside the code, and i found a function in the model stock.valuation.layer called _validate_accounting_entries that does the entries in the account.move model. Then i have to replicate the functionality of this function to make the corrections in the dates that were to have to be. Another interesting function used inside _validate_accounting_entries is _account_entry_move, which does the computacion of the account moves an returns an array of account.move's related to that stock move.
Here is a server action sample for stock.valuation.layer:
for record in records:
a = record.stock_move_id._account_entry_move(record.quantity, record.description, record.id, record.value)
da = record.create_date.date()
a[0]['date'] = da
b = env['account.move'].create(a)
b._post()
Pudiste solucionarlo?? yo con Odoo13 uso el modulo Last Purchase price de Cybrosys, que esta en el store y es gratuito. Yo estoy tratando de hacer lo mismo en Odoo15 por el momento sin solucion.
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
0
Aug 24
|
170 | ||
|
1
Apr 21
|
2700 | ||
|
1
Sep 20
|
1931 | ||
|
7
Jun 20
|
20407 | ||
|
1
Jan 20
|
1642 |
Hi,
in PO create function,call a function that will update the product.
Something like:
@api.model
def create(self, vals):
record = super(...).create(vals)
record.update_product_cost_price()
return record
def update_product_cost_price(self)
for line in self.order_line:
# Add your comppute logic for cost price
Hope this helps.
if not, write back for more analysis