[Proposal] Items/BOQ in Task and Consumption


Companies into a certain domain (like System Integration and Construction), where it’s a service which is being rendered but involves lots of stock items. Also, the project life-cycle is pretty long, hence you cannot use the Manufacturing module to track the movement and consumption of stock items.

Hence, proposing Item list / BOQ within the Task. These will be the items that will be getting consumed/transferred during the project’s life cycle.

Here are the specifics of the new feature.


  1. Each Task will be having a child table, where items and qty will be listed.
  2. Should we add a feature for adding functionality to fetch Items from BOM / Product Bundle?
  3. Project Warehouse, perhaps on the Project level only, and not on task level.
  4. Option to create a Stock Entry > Select a “Purpose” and proceed with Stock Entry.
  5. If the Purpose selected is “Material Transfer”, then:
    1.1 Source Warehouse will “Warehouse” on item level.
    1.2 Target Warehouse will be “Project Warehouse”.
    1.3 Items will be “Project” tagged to it.
  6. If the Purpose selected is “Material Issue”, then:
    1.1 Source Warehouse will be “Warehouse” on item.
    1.2 On each item, Project will be linked.
    1.3 Expense will be booked for the Item in default Expense Account, tagger with Project as a dimension.
  7. Should there also be status field in Task Item table? Like Transfer Qty or Issues Qty? And then make rest of the qty fetch on next transfer?

Looking forward to your suggestions.


@umair, I understood your idea, and it looks great, but, in many of these types of companies, they have also the concept of “Work Orders” that are exactly what you are describing, but, involves the consumption of “Raw Materials” against a service and allowing to manage “Work Orders” for “Services” to do.

As the way, the actual Work Orders are designed, I believe, it will make more sense, continue improving the “Work Orders” to allow consume materials and produce a service

The major difference in this case, is that a Task will be required against the work order, and will have the same effect you are describing in terms of information, but on terms of accounting, will be much more clear, register against an specific service this consumption.

Also, this have a direct correlation with Asset Capitalization, on (telecom, energy, water and gas distribution), you offer a service for your customer, but 90% of the time, you will need to extend your network to reach the place of your customer.

To extend the network, you will need lots of raw materails and labor, labor are always registered against tasks, but the raw materials, should be registered against a service, to determine the “Valuation of the Service” and “Capitalization of Assets”.

For example, lets take the scenario I’m a water distributor and I’m going to make an installation to a new customer.

I’ll need to find the leaf of water supply network, that close the the place of the customer, let’s suppose this leaf is 100 meters from the place of the customer.

In that scenario, I’ll need

110 meters of pipes
1 hidrometer

This are the BOM elements of my “Water Supply Installation” service

So, I’ll generate a Work Order for someone go and install the service (this WO is related to an task)
At the finalization of the Work Order (there’s no Item issued in stock, since it have gone against a service), so I’ll register this cost against the project and task.

At the same time, I’ll need to register the raw materials, in “Asset Captialization” because, I do have consumed the materials, to expand my network (that is my active asset).

With the installation completed, I can start offering the service of “Water Supply” for my customer.

Keep in mind, that for some cases, I can bill the “Water Supply Installation” for the customer too, and in that case, I can just enable the “Billing” on the task, and bill the labor and materials.

On that case it will represent an direct profit for me, since my assets are “Capitalized”, my cost of materials consumed, will be virtualized to zero.

This scenario, is really simple, but some installations, can have options also, like in gas:

First there’s a team, that need to dig the pipes passage.
Second there’s a team, that solder distribution points.
Third there’s a team that connect customers.

All these operations can occur in a single work order, for the construction of a project, in different times.


@mahescho I remember you describing a similar requirement: recording time and materials consumed against a project and consolidated billing at the end of the month. Maybe you can elaborate on this here.

Hi @umair,

We had done some requirement analysis for a General Contractor. We had thought of BOQ on task level is a must for task-level cost estimation. The industries you have mentioned basically need to record manpower, equipment, and material in a BOQ.

Manpower and Material were thought to be created from BOM Item and Equipment from Workstation. We need a provision to define timesheets for equipment so a link to the workstation in the timesheet would help.

Activity Cost should be defined at a more generic level like employee designation rather than for individual employees. So manpower costing is made easy.

1 Like

HI @umair

I don’t know if your proposal is what I have in mind but let me demonstrate.

1- A long term project is launched which will Require New purchased materials dedicated to the project. The project will require also material that is in stock.

2- The project has tasks which will require Stock and Man power to be fulfilled
We could use Stock entry against Boms/ repack to transfer material From:
-Project’s Received items pool
-Work orders could be launched if needed, we should then, be able to specify on which Task this work order aims for. This will grant access to the Projects inventory pool as well as regular inventory.

Items received in Projects ‘‘pool’’ is not accessible Through other Projects Task stock entries or Regular Work orders to inventory.

I’m putting emphasis on supporting Both behaviors because in some cases.
-Manufactured Sub assemblies in production can be used in R&D projects.
-In which case, once built, this sub assembly should be dedicated to the project and not be considered as available in current stock.
-R&D projects tends to required lots of punctual purchases that needs to be tracked and in lots of cases, there are trials and errors in which cases, an item could be purchase as a an alternative to the planned material. We still want to be able to manage which material was valid and consumed for the Tasks’s completion*.

3-let’s assume the project is done
-Items are consumed against tasks
-There’s a way to see the amount of material used in each tasks
-All remaining items in the project’s pool could then, be transferred back to regular inventory, or sent to scrap*.

Inventory Pools is a concept that already exist in some MRP. It allows flexibility and tracking especially for product development.

Thanks for your input

Thanks again for such a detailed elaboration!!

Here is how I would map it, using the current design of Project and Task, BOQ and Asset Capitalization cycle…


  1. Project is created for assembling
  2. With a project, a Warehouse is also created.
  3. Against a Project, a parent task of pipeline installation is done.
  4. Against a parent task, child tasks are created as, Digging (1), Pipeline installation (2) and commissioning (3).
  5. Aginst 2, you list all the raw-materials, like pipes, elbows, water-proofing solution and taping etc.
  6. When you are at stage 2, you can mark it as completed only if you consumed or transfer raw-materials.
  7. In this case, let’s say we transfer the stock from raw-material items from our to sub-contractor’s warehouse.
  8. Tasks are completed / closed. The value of consumed item is booked against a Project, but not in the case of Transferred item (as it could be capitalized).
  9. For the service billing, you will anyways create a Sales Invoice and tag your Project there.

To address the broader point, just like we envison Work Order as a central entry for manufacturing, in the case where Service is the output, we can consider “Task” as a central document.

Asset Capitalization

Since raw-material items are not yet consumed, there is scope for capitalization of stock items into fixed asset item. I believe we have discussed this cycle in this thread.

The industries you have mentioned basically need to record manpower, equipment, and material in a BOQ.

Yes. Got one sample sheet from the customer which also list Manpower resources. It calculates manpower cost at:

Resource qualification / designation > 1 (no. of resource) > 3 months (duration) > $1000 (monthly cost). If not in BOM, we can add a table in Task for this planning, and get the total cost.

This explains that, in the Task, we will need a field for total value, which could be some of BOQ item or stock items listed in the Task. Sum total of this cost will go to Project.

Because of those that will need to use Project and Tasks as “Work orders for services”, do you think it will be a good idea to have a separate child doctype that holds the information for planning the expected items, resources and other costs rather than adding a table in BOM?

Also, how will calculation of work in progress be done?

Finally I found something that might be quite what I was looking for, with a lot more features of course!

I am more interested in construction domain and it would be really great if some one could introduce Construction Domain with all necessary features in ERPNext.

Some of the important features and work flow I guess would be:

1. Create a new Project, project warehouse. Materials can be transferred from another project warehouse or main store as well.

2. Create a BOQ with quantities like RCC work in cu.m or Steel works in kg/Ton and so on. I actually think two variations of BOQ would be great (- see below). For contracting, usually contract papers list volume of RCC in cu.m instead of no. of bags of cement + sand + aggregate. But the purchase has to be made in no. of bags of cement + volume of sand + volume of aggregate. So, it would be easier for contractor to control the quantities of individual items rather than as per contract.

*For those who don’t understand: lets say you have to concrete a floor, assume floor size is 5m x 4m and the thickness of concrete you would want is 0.1m, then total volume of concrete would be 5x4x0.1 = 2cu.m. The contractor would quote some price for the work like Rs. 10,000/cu.m. As per contractors calculations, the quantities requirements are : 15 bags cement, 1cu.m of sand and 1.57 cu.m aggregates.
Lets say the contractor lost around 0.1 cu.m of sand, 0.23 cu.m aggregate during storage and 1 bag of cement was damaged during transportation. This would definitely increase his costs.
So, his total consumption was 16 bags cement, 1.1 cu.m sand and 1.8 cu.m aggregate.
So, two variations of BOQ could be:
a. As per contract with wholesome quantity like
Item | Qty. | Rate | Amount
RCC | 2 cu.m | 10,000 | 20,000
Total | 20,000
VAT 13% | 2600
Grand | 22,600

Something like this.
b. As per materials as in BOM of erpnext

Item | Qty. | Rate | Amount
Cement | 15 bgs | 700 | 10500
Sand | 1 cu.m | 1500 | 1500
Aggregate | 1.57 | 1600 | 2512
Total | 14512
VAT 13% | 1886.56
Grand Total | 16398.56
Similarly add labor cost, transportation cost, etc what may incur.

Now this is as per calculations. Similar BOQ must be prepared as per actual consumption and actual cost can be calculated and the two can be compared to evaluate what went wrong, what materials are over consumed, what are under-consumed, may be compare rates of estimate and actual purchase, etc.

3. There should be a master/doctype/whatever linked with projects to input daily work progress, materials consumed daily (deducted automatically from store upon entry) all at one place. (It would be just like TimeSheets, but improved).

4. Material consumption reporting according to task.

5. Gantt Chart must be improved drastically. The current one is not user friendly.

6. Option to create a WBS/Critical Path analysis would be added benefit.

7. Automatically assign project to items during material issue/transfer/purchase request.

  1. Features to view proper reports/consumption/project progress according to project, task, day, month, etc.

Many other improvements might be necessary including in accounting, stocks, or others , but I am focusing on the user only for now.

1 Like