Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

2

Can Odoo (out of the box, SAAS only) model 'real' cost of production (WIP, labor, variable raw materials)?

By
Ray Carnes
on 8/27/16, 8:54 PM 585 views

I have seen a lot of Community modules that extend manufacturing capabilities.  What if I want to use SaaS and have Odoo correctly calculate the cost of items I produce (and how much money I have tied up on the production floor in uncompleted jobs) when they use variable amounts of labor and materials?

WIP calculations are important so I can assess the cost of stopping work on jobs and starting others.

4

Ray Carnes

--Ray Carnes--
15717
| 9 7 9
Greater Los Angeles, United States
--Ray Carnes--

Senior Odoo Analyst

OpenERP 6.1, 7.0 and Odoo 8.0, 9.0 (Since 2012)

Completed Functional and Technical Training.

Major Skills:

  • Needs Discovery and Requirements Analysis;

  • Function and Technical Specifications;

  • Project Planning;

  • Prototyping and Proof of concepts;

  • Data migration;

  • Configuration & Customization (UI and modules);

  • Integration - data, business logic and service levels;

  • Training and Knowledge transfer;

  • Go Live support;

  • Help desk;

  • Version Migration.

I have over 20 years of experience empowering and enabling users with enterprise information systems that make a real and measurable difference in their ability to proactively manage their businesses and organizations. 

Ray Carnes
On 8/27/16, 9:09 PM

Let’s look at a very simple example.  

A single product “Finished Widget” is created from a combination of components and labor – with the exact amounts of both not known until after each Manufacturing Order is completed. 

Note: We will not include purchasing of raw materials in this example and will model Labor as a component instead of a service (reducing complexity of the example).  The principles here should help you understand what is possible. 

Four Products:


The cost price of the Finished Widget is set to $0 to make the point that Odoo will calculate the actual product cost based on the number of components and labor used in each Manufacturing Order.

The Bill of Materials:


Odoo allows us to increase or decrease the quantity of components used in an actual Manufacturing Orders – supporting cases where the actual quantity of components and labor is not known until after a product is created.  What we have above is what gets used in a ‘perfect’ case.  It could be more or less.

Before we start making anything, let’s review how the Product Categories and Locations need to be setup - critical to all this working.

For both Raw Materials and Finished Goods Product Categories:


For Labor Product Category, it is the same as the above with the following Account Stock Properties:


For the Production Location:


Finally, to see what I will show in this example, you will need to add the PRODUCT_ID field to the account_move_line tree view (Journal Items) and the PRICE_UNIT field to stock_move tree view.

Let’s produce three “Finished Widgets” – one with exactly what is on the Bill of Materials, one with more, one with less – and look at how the product cost changes.

1. MO1 – same as BoM:

We will confirm; reserve; and then produce this Manufacturing Order.

The Stock Moves (This product cost us $19.95 to make):

The Accounting Moves for the Components:


A total of $19.95 is moved from Stock to WIP.

The Accounting Moves for the Finished Product:

A total of $19.95 is moved from WIP to Stock.

2. MO2 – more than BoM:

In the Produce wizard, we adjust the quantities – increasing everything by 1 unit:

 

The Stock Moves (This product cost us $38.05 to make):


The Accounting Moves:


(Both the $38.05 from stock to WIP and the $38.05 from WIP to stock)

3. MO3 – less than BoM:

In the Produce wizard, we adjust the quantities – decreasing Component Two and Labor and removing Component One entirely:


The Stock Moves (This product cost us $9.35 to make):


The Accounting Moves:


(Both the $9.35 from stock to WIP and the $9.35 from WIP to stock)

So you can see Odoo correctly costed the product each time:


And correctly values them in Inventory:



Again, I have deliberately simplified the exercise, but it does demonstrate ONE way to model the real manufacturing costs associated with variable materials and labor inputs. 

The way I have completed the Manufacturing Orders in a single step means that the value of WIP will be increased and decreased in a single step - you can have it increase, then decrease (two steps) if you consume materials first, then produce.  You can do this via the Produce Wizard by changing "Consume and Produce" to "Consume" and clicking the PRODUCE button on the Manufacturing Order twice, once to Consume, once to Produce.  You will get the same accounting movements, but the timing will allow you to measure WIP for each job. 

great demonstration which might definetrly help Saas users. Thanks Ray

AD LIBITOM, michel Guénard
on 8/28/16, 5:12 PM

Excellent post! And it does help all Odoo users, not only SaaS.

Ermin Trevisan
on 8/29/16, 8:53 AM

Hi Ray Carnes,

Thanks for your post, very helpful.

But Having stock for a service isn't that digesting. adding them in BOM also.

You said "(reducing complexity of the example)" in your answer, do we have any other complex or simple way to handle this without configuring Labor as a stockable item ?

fasluca
on 11/7/16, 11:58 PM

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

4 follower(s)

Stats

Asked: 8/27/16, 8:54 PM
Seen: 585 times
Last updated: 11/18/16, 2:35 PM