Project workflow for company using both services/material with tracking time/material consumption

Hi,
I’m trying to set up ERPNext the way to fit our project management needs. I have written this simple text to help me understand how ERPNext works, as I cannot find any comprehensive guide how to set it up for a company like ours. I post it here, because there are still some unanswered questions. If I get the answers, I will update the document, as I think that it could be helpful for a lot of companies in similar business. It is pretty long post, sorry for that, but I think that it is better to have everything in one place than to open several topics with individual questions, also it is better for understanding the context.

We are company delivering security alarms and CCTV cameras. Our workflow is simple – we buy material (cameras, cables etc) and use it to implement CCTV or alarm system in various buildings. So we work both with material and services.

This is the way I think things should work… for simplicity I start directly with Sales Order.

Sales Order:
New sales order, enter items (several material components + one service item for installation), set delivery date, Save, Submit
Blue Make – Project

Now I’m in Project view:

Project:
Give it some reasonable name, set project type, set complete method (task progress), set start and end dates.
There are created tasks for both material and service items, so I have deleted material tasks as they don’t make sense to me. Then set up start and end date for task/tasks, if I want to enter estimated time, I have to go to the tasks full view dialog.
Save

If I want to create some subtask under that task I go to Project-Task-New, but before it I have to check IsGroup in the task I want it to be parent (in my case one created automatically when creating project)

Q: Is it possible to create these tasks only for services?

Q: Is it possible to automatically enter Estimated Time value from Sales Order Item qtty (hours) value, from that was task created?

Q: What is the benefit of creating Cost Center for the project? I guess I can put all the costs to the project the same way. Or is it for some „related“ costs I can’t put to project via Items?

All required material I have on stock, now I want to issue it to workers.

Sales Order:
Go back to Sales Order, Blue Make – Material Request.

And in Material Request view

Material Request:
Set Required Date and type to Material Issue, Save, Submit

Q: Is it possible to set default type to Material Issue?

Q: Is it possible to automatically delete Service Items (doesn’t make sense to issue them)

Now let’s issue requested material to workers

Material Request
Blue Make – Issue Material

Stock Entry:
In More Information I have to enter my Project, if I won’t enter it, cost for the material won’t go to the Project.
Save, Submit

Q: Is it possible to enter automatically linked project? Should be already linked via Sales Order/Material Request I guess.

Now I can go to the Stock Ledger (Stock – Stock Ledger) and check if there is a movement. OK, it is there. Then I go to the Items view to see, if there is updated stock balance, but there is still issued amount displayed as Reserved Qty.

Q: Should we use Material Request/Issue or Delivery function to put material on project? Request/Issue makes more sense to me, as we issue material several time during the project to the workers. The Delivery note is issued for all of the components at once at the end of the project, when is the work accepted by customer. But if I do Delivery at the end of the project, all the material is issued twice (first time by Material Issue and second time by Delivery). And if I don’t make Delivery, Sales Order stays in To Deliver state. What are the best practices here?

Then I go to the Projects - Project to check, if in my project is recorded cost of issued material. And OK, it is there in Costing and Billing - Total Consumed Material Cost. Also in Margin – Gross Margin I can see impact of issued material.

Q: What is the difference if I create Material Request from the Project view instead of from Sales Order? If I create Material Request from the Project page (Material Request “+”, Get Items from… Sales Order), delete service Items, set Type to Material Issue, Save, Submit, then in Project – Costing and Billing - Total Consumed Material Cost is still zero.

Q: Seems that Total Consumed Material Cost is displayed without VAT, but Estimated Cost and Total Sales Amount are displayed with VAT included, this is confusing, maybe would be better to display all the values without VAT, is it possible to set it up this way?

Another place, where I expect to see project costs is Profitability Analysis. If I go to Accounts – Other Reports – Profitability Analysis and choose report based on Project, there is nothing.

Q: Why I can’t see anything in Profitability Analysis?

Let‘s enter some working hours on project.

Projects:
Project – Timesheet – New, then enter Employee. In table below I enter Activity Type (with set Activity Cost), From Time, Hours and Project. Then I need to click gray arrow at the end of the row and in appearing dialog select Task.
I don’t check Bill checkbox, as I don’t bill hours, but agreed price from sales order.
Save – Submit

Q: Is ts possible to enter automatically project? Should be already linked, if I created timesheet from the project view.

Let’s check if recorded work is present in cost of the project. Projects - Project - Costing and Billing - Total Costing Amount via Timesheets – OK, it is there and it corresponds with rate, set to Employee in Activity Cost.
Once again I go to the Profitability Analysis, but there is still nothing.

Q: Why I still can’t see anything in Profitability Analysis?

So Task is completed (I entered to the Timesheet all the hours, planned for the Task). But in Task view, there is still %Progress as 0. Also in Project view is %Completed displayed as 0 (Complete Method was set to Task Progress). If I manually enter %Progress to Task 100%, it is automatically displayed also in Project view, as expected.

Q: Do I have to enter task progress manually in the Task view? Is it possible to calculate it automatically from working hours assigned to this task in timesheet?

Project is finished, let’s make invoice.

Sales Order – Blue Make – Invoice
Everything is OK, so Save – Submit

Now I see in my Project Total Billed Amount and Margin, numbers are OK.

But if I look at Sales Order, it is still in state „To Deliver“. I think that only way to move it to done status is to do Blue Make – Delivery, Save, Submit. But if I do it this way, I have another move in stock and all the material is issued twice, as I already described above…

1 Like

Hi,
can someone help me with these questions? I know it’s a pretty comprehensive topic with a lot of questions, but it would help me a lot. Without solving some of those issues I probably won’t be able to deploy ERPNext…

Hello, programmer from a service provider here. I can’t answer all the questions, but let me answer the ones that I’m familiar with.

Q: Is it possible to create these tasks only for services?

Can you provide an example for this? A task can correspond to an Activity in Project Management. I’m not quite sure with what you mean by ‘services’. If you’re referring to the Items under the “Services” item group, you can add a link field for this one in tasks and add a filter for it to include service items only.

Q: Is it possible to automatically enter Estimated Time value from Sales Order Item qtty (hours) value, from that was task created?

Yes, but you’ll need to add a custom script (and probably custom fields for the linked Sales Order Item’s task.)

Q: What is the benefit of creating Cost Center for the project? I guess I can put all the costs to the project the same way. Or is it for some „related“ costs I can’t put to project via Items?

It’s to track the Project wise profitability (read: https://erpnext.org/docs/user/manual/en/accounts/articles/tracking-project-profitability-using-cost-center)

Q: Is it possible to set default type to Material Issue?

Yes. Go to customize form and look for the type field. Set the default to Material Issue.

Q: Is it possible to automatically delete Service Items (doesn’t make sense to issue them)

You can add a custom script to exclude items under the “Services” item group in the filters.

Q: Is it possible to enter automatically linked project? Should be already linked via Sales Order/Material Request I guess.

Yes. Might require a custom script, but it’s definitely possible assuming there’s a Sales Order/Material Request linked field in the form.

Q: Should we use Material Request/Issue or Delivery function to put material on project? Request/Issue makes more sense to me, as we issue material several time during the project to the workers. The Delivery note is issued for all of the components at once at the end of the project, when is the work accepted by customer. But if I do Delivery at the end of the project, all the material is issued twice (first time by Material Issue and second time by Delivery). And if I don’t make Delivery, Sales Order stays in To Deliver state. What are the best practices here?

Depends on you. :slight_smile: Some organizations don’t use Delivery Note. You can add a server-side script that will update Sales Order to “Delivered” once Material Issue for that project has been submitted.

Q: Why I can’t see anything in Profitability Analysis? & Q: Why I still can’t see anything in Profitability Analysis?

I think you might need to set the Project’s cost center. :slight_smile:

By the way, if you want someone to guide you through identifying your requirements and customizing everything, you might want to look for a service provider. They usually cover everything from consultancy, recommendations to development and training.

Best Regards,

Hera

Hi @littlehera,
thanks a lot for your answers, here are additional informations and maybe some more questions :slight_smile:

Q: Is it possible to create these tasks only for services?

Can you provide an example for this? A task can correspond to an Activity in Project Management. I’m not quite sure with what you mean by ‘services’. If you’re referring to the Items under the “Services” item group, you can add a link field for this one in tasks and add a filter for it to include service items only.

Example: I have Sales Order with 10 CCTV cameras (items I have on the stock) and 5 hrs of working time for installing the cameras (it is service item - under Services group, doesn’t have maintained stock). If I create project from Sales Order, it automatically creates task for 10 CCTV cameras (doesn’t make sense, as camera is material I need for this project, it is not an activity) and task for installation (it is OK, installation is an activity, where I want to track time via timesheets).

Q: Is it possible to automatically enter Estimated Time value from Sales Order Item qtty (hours) value, from that was task created?

Yes, but you’ll need to add a custom script (and probably custom fields for the linked Sales Order Item’s task.)

Q: Is it possible to enter automatically linked project? Should be already linked via Sales Order/Material Request I guess.

Yes. Might require a custom script, but it’s definitely possible assuming there’s a Sales Order/Material Request linked field in the form.

Could you please guide me a little more, where exactly add that scripts? :wink: I think I can write some python scripts myself, but I need to understand the concept and context…

Q: What is the benefit of creating Cost Center for the project? I guess I can put all the costs to the project the same way. Or is it for some „related“ costs I can’t put to project via Items?

It’s to track the Project wise profitability (read: https://erpnext.org/docs/user/manual/en/accounts/articles/tracking-project-profitability-using-cost-center)

I already have seen that article, I know what Cost Center is from the economic point of view, but I still don’t understand benefits for projects in ERPNext. I understand how can Cost Center help in tracking costs for departments, branches or for example cars. But I can’t see any difference between tracking costs directly on projects (project view - Costing and Billing) and on cost center (maybe it is more detailed). Are there any projects related costs, that I can put to the Cost Center, but not to the Project?

Q: Why I can’t see anything in Profitability Analysis? & Q: Why I still can’t see anything in Profitability Analysis?

I think you might need to set the Project’s cost center. :slight_smile:

Noooo… really? Sorry, just joking… :slight_smile: But seriously, is this that reason, why to use Cost Center? It is not possible to see project profitability without Cost Center?

Q: Should we use Material Request/Issue or Delivery function to put material on project? Request/Issue makes more sense to me, as we issue material several time during the project to the workers. The Delivery note is issued for all of the components at once at the end of the project, when is the work accepted by customer. But if I do Delivery at the end of the project, all the material is issued twice (first time by Material Issue and second time by Delivery). And if I don’t make Delivery, Sales Order stays in To Deliver state. What are the best practices here?

Depends on you. :slight_smile: Some organizations don’t use Delivery Note. You can add a server-side script that will update Sales Order to “Delivered” once Material Issue for that project has been submitted.

We would like to use both Material Issue (because it puts material costs to the project - DN doesn’t) and Delivery Note (because we need to give it to the customer to sign it). Is it possible?

One more general question regarding scripting and customization for the programmer. How does these changes (scripting, customizations etc) persists all the updates?

Thanks a lot and regards!
Martin

Hello again.

It sounds to me that you have a very specific use case. If you want to have erpnext customized to fit your needs, then it is quite possible although based from your answers, some of the customizations may need to touch the core (ERPNext code).

Let me start by answering your questions on customizations:

One more general question regarding scripting and customization for the programmer. How does these changes (scripting, customizations etc) persists all the updates?

Customizations via the UI (Custom Field, Customize Form, Custom Scripts) are stored in the database and are migrated when updates happen. They don’t disappear when a new update rolls in but they might break if the update involves renaming/deprecating.

Eg. If you have a Link Field to Production Order, which has been renamed to Work Order, your link field will generate errors since “Production Order” can’t be found.

As for the scripts, you can do client side scripting using JS via Custom Script. You can search this one via the Search Bar and it’ll show you an interface where you can add JS code to an existing doctype.

As for Python Scripting, you can either:

  1. Update the source code of ERPNext : this may conflict with future updates unless if you plan on submitting a PR for your customization and have it merged to the ERPNext code.
  2. Create a Custom App and add HOOKS: this involves creating python scripts that will be triggered via JS or Doctype actions (eg. submit, save, etc). It won’t get in the way ERPNext updates.

What some organizations do is they use the most stable version available (Eg. v10 which is on the master branch) and stick to that one. Other organizations maintain their own fork/repo for ERPNext where they push their customizations.

Others merge their customizations to the ERPNext Core via PR’s (Pull Requests). Others stick to doing customizations they can do using a custom app and maintaining the app as ERPNext updates and evolves.

But I can’t see any difference between tracking costs directly on projects (project view - Costing and Billing) and on cost center (maybe it is more detailed). Are there any projects related costs, that I can put to the Cost Center, but not to the Project?

&

But seriously, is this that reason, why to use Cost Center? It is not possible to see project profitability without Cost Center?

Cost Center is linked to Accounts. Project-wise profitability gets data from accounts which is why if you don’t have a cost-center linked to the project, the analytics won’t show up.

We would like to use both Material Issue (because it puts material costs to the project - DN doesn’t) and Delivery Note (because we need to give it to the customer to sign it). Is it possible?

If you only need a print out for the customer to sign, might I suggest creating a print format or a different doctype which will suit your case?

Hera
Bai Web And Mobile Lab

1 Like

Hi @littlehera,

I don’t think that we have so specific use case, it is pretty common here. If I look around here, there is a lot of small or middle-sized companies from the services area, like all the construction-related companies, ITs or artisans, who work similar way. Btw, I think that ERPNext, maybe a little customized for our conditions, could be an excellent solution for them, as they can’t afford SAP, but they don’t know that ERPNext even exists, as it is not such widespread here.

Thank you for all the answers, I really appreciate your help. I will give it a try and will see :slight_smile:

Martin

1 Like

Hi,

Sorry to interfere on this thread.

I don’t think this is a specific use case at all.

I think that the case of a company with projects composed of tasks that consist on labour from workers and materials used from the warehouse is common to any service oriented company.

And with all the advances on this great software that is ERPNext, I still can’t see the tools in there that makes invoicing on such an scenario a little easier.

Many thanks and kind regards from Spain,

Alb

Hi @pagliaso,
you are welcome…
From my point of view, ERPNext is primary focused on manufacturing and labour-only services like sw development, consultancy etc. If you want to use it for example in construction company, it is very hard, almost impossible, to customize it to your needs. It is not only about invoicing, but mainly about quotations or projects, as projects are the key for every company. General modules like CRM or HR are probably OK, but I have issues with the modules, that are more “business specific”. If you want to customize it by yourself, you come accross the problem of system consistency and to not touching the core. With no clear and up to date documentation it is very hard to achieve it. Another point is, that I feel that larger customizations are not “preferred way” and general recommendation is to use it “as is”, maybe with some minor customizations via Customize Forms.
I am trying to deploy ERPNext in my company for about two years (with some breaks, to be honest) and still not able to use it in production…