Skip to Content
Menu
This question has been flagged

I intend to employ Odoo as the operational software for a construction company comprising a workforce of approximately 20-30 workers.

The predominant proportion of our orders are fixed-price arrangements, wherein we establish a prearranged agreement with the client regarding the projected cost of the project. Throughout the construction process, it is necessary for us to consistently procure raw materials. In certain instances, the goods are promptly transported to the construction site and use it immediately, while in other cases, they are retained in our central warehouse for an extended period of time before being gradually distributed to the project.


How can I effectively manage this process in Odoo?


Unfortunately, in my particular circumstance, associating the analytic account with the purchase order and project is insufficient, as the purchase order may contain multiple construction materials for numerous projects. In other words, I have to calculate the actual utilization of raw materials at the construction site.

Furthermore, I don't know how to set this up in the inventory application due to the absence of project addresses (construction site location) within the project application. Or how to "consume" products in a project.

I am also interested in obtaining information regarding the timing, quantity, and type of raw materials consumed for a specific task within a given project. This data will enable me to monitor our progress in relation to the planned budget.


Avatar
Discard

Hi @Mujtabaa Bashir,

Your solution is very promising, however for some reason the profitability under project status is not updated with the consumed materials.

Do you know why?

Best Answer

Interesting business case.

Analytic accounting: Create project and a related sales orders.  The sales orders and everything posted from sales order, will be posted to the analytic account. You can have services (use time sheet to record hours) and delivery of consumables or stock materials.

For delivery directly to construction site from vendor you might activate Drop Shipping (In settings for Purchase app).  You can select this on sales order line, and it will create a purchase requisition directly. But be aware that it will be consumed and cost allocated directly, when you register receipt.

You can also define Drop Shipping on the purchase order. It is on the purchase order header, so you cannot mix the PO for warehouse delivery. The delivery address can be created as a contact (any). You can set the analytic account on the purchase or vendor invoice.  (But it will then not be directly invoice to the customer.)

For delivery  from central warehouse, you also use a sales order and the delivery adress is a contact you create.

For follow consumption, there is no alternative to using posting from delivery.  Perhaps set up a warehouse without adress.  Like described here: https://www.odoo.com/pt_BR/forum/ajuda-1/how-can-i-differ-the-billing-address-and-the-shipping-address-for-a-purchase-order-106801

Best luck


Avatar
Discard
Best Answer

Hi Rick,


I have come across a similar use case and I came up with the following flow (on V17):


I will illustrate the project sales / material consumption flow:


Pre-requisites: analytic accounting enabled.


I set up a product as type: service which creates a project and a task. In this case, the client sells different types of construction services with fixed-price arrangements which would cover all their costs, i.e. Materials, labor costs and any other miscellaneous / employee expenses incurred during a project as well as their potential mark up.


I have then set up a custom operation type with type of operation set as delivery. The destination location is then set as an inventory loss type of location:


Configuration for the operation type:

 

Configuration for the destination location:


Note that I have added a Cost of Revenue type of account so that when the journal entry is created, the entries are automatically reflected in the P&L.


On the SO, they will add only the service product which will have the fixed selling price. This creates the corresponding project and a task. At the same time, an analytic account has been created, linked to the project.


Sales Order example:


The respective Project and analytic account:



Once we have the analytic account, for automation purposes, I create an analytic distribution model to link the Cost of Revenue account, the customer and the analytic account:


In this case, my Cost of revenue account has the above prefix. Whenever a delivery is validated and the journal entry created, with the above configuration, the Analytic account should be picked automatically against the account.


We then deliver materials. Create the delivery and set the delivery address as the customer's address:


Example of the material delivery created:


Once validated, journal entries will be created to accommodate for the change in stock valuation. Let's look at it from the journal items view:



Because of the analytic distribution model, the analytic accounts are added automatically to the entries. NOTE that this assumes there is no other project being done / sold to this customer concurrently. Otherwise, you may need to assign the analytic accounts manually to each line depending for which project that delivery was made.


To then check the profitability, head over to the analytic accounts menu and select the analytic account you'd like to view the progress for:





You can see the margins / profitability summarized above and the specific lines of income and expenses which have been made below.


I hope this helps!



Avatar
Discard
Related Posts Replies Views Activity
2
Jun 23
2719
1
Feb 25
742
0
Sep 21
2233
2
Aug 21
2872
0
Jan 17
3413