Search
 
SCRIPT & CODE EXAMPLE
 

TYPESCRIPT

When my Vendor charges more than the PO price, can I easily update my Inventory costs for product already received at the PO price? odoo

We don't recommend updating the Purchase Order - as it contains useful information about the agreement "at the time" you had with the Vendor, even if it changes because they need to increase prices, back order items, substitute products, etc.

Periodically, you may want to assess how well your Vendors are able to keep to their agreements, so having a record of what you both discussed at the time is important.

The best approach is to leverage both the Price Difference (aka PPV) feature, as well as the Landed Cost feature. Together they can work well to update the value of Inventory you have received at the PO price to ensure your COGS is accurate.


1. Setup a Purchase Price Variance expense account:


2. Link this account to each Product Category, via the Price Difference Account field:


3. Define a new Product Category for your PPV service product so you can use the same account there under the Stock Input Account:


4. Create your PPV Service Product inside this Category, with the default Split Method you prefer.


Let's say your Purchase Order looks like this:


When you receive the Widget, your Inventory Valuation report will show $25 and you will see a debit to your Inventory Account for $25.

When you receive the Bill for the Widget, Odoo will default the price for the Widget to $25. Instead of adjusting this price, you add a second line for the difference. In this case, we will assume the price increased to $31.25. Your Bill would then look like this:

Note: This is where the majority of the work is needed in this workflow. Each line will show the PO price, so for each line where your Vendors shows a different unit price, you will need to add a difference line. You can use the calculator feature of numeric fields to make this easier - simply prefix your entry with the equal sign so Odoo knows you want it to minus $25 (the PO price) from $31.25 (the Bill price) to automatically calculate for you the $6.25 difference.


Once you confirm the Bill, the following Journal Entry will be created:


To clear the debit from the PPV account and reclass it to the Inventory Account, you would click "Create Landed Costs" on the Bill and identify the Transfer for this PO (or this shipment if there were multiple) - everything else will pre-populate:


The Landed Cost, once validated and posted, will credit the PPV account and debit your Inventory account, so that your Inventory Valuation report will now show $31.25 and when you sell this product, the Cost of Goods will be accurate at $31.25 instead of the Purchase Order price of $25.

It will also reconcile the relevant debit (from the Bill) and credit (from the Landed Cost), so a periodic review of any balance(s) remaining in the PPV account will identify any Vendor Bills where the Landed Cost was not created, and will identify which Bill you need to revisit.


Note: If the products are sold between the time you receive them and the time you process the Landed Cost, the amount will instead be debited to Cost of Goods (since you can't debit the value of inventory you have already sold). If you have sold some but still have some in Inventory, you will see a debit to increase COGS for the quantity you have sold and a debit to increase Inventory for the quantity remaining.
Comment

PREVIOUS NEXT
Code Example
Typescript :: oclif text 
Typescript :: google sheets return number of unique items 
Typescript :: how to check if a variable exists in python 
Typescript :: check if string include numbers in typescript 
Typescript :: oclif open link 
Typescript :: git writing objects slow 
Typescript :: typescript take user input from console 
Typescript :: It is not possible to unreserve more products of ... than you have in stock. odoo 
Typescript :: react native elements input limit 
Typescript :: if exists certain line in sql table java condition 
Typescript :: android:exported needs to be explicitly specified for <receiver. Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined. 
Typescript :: typescript type check only 
Typescript :: Should robots have faces? 
Typescript :: azure artifacts npm install latest version not updating 
Typescript :: set localStorage angualr 
Typescript :: ion input ngmodel not working ionic 6 
Typescript :: typescript code region 
Typescript :: type of children for nextjs 
Typescript :: What were four effects of the War of 1812? 
Typescript :: symfony assets install 
Typescript :: what is test management 
Typescript :: group objects in javascript 
Typescript :: is assigned a value but never used 
Typescript :: css how to create gradients on text stroke 
Typescript :: instragram basic api Display 
Typescript :: loop through string typescript 
Typescript :: drop index if exists mysql 
Typescript :: supertest typescript 
Typescript :: map typescript 
Typescript :: check in Recat if an url is of image or video 
ADD CONTENT
Topic
Content
Source link
Name
6+2 =