I’d like to open a discussion on whether the project orientation in ERPNext is the best solution or if we should rather think about going for a task orientated workflow. Or a mix of the two.
The trouble that we stumble over is that we are not able to bill tasks seperately without having to put a lot of work into. Here an example:
I come from Quotation to a Sales Order and create a Project from this. The Items on this Sales Order would be
Now I have the Project “SO-XYZ1234 New PC for customer”. In this Project I would create Tasks being:
- Order Items (1)
- Preconfigure PC (2)
- Setup PC at customers home (3)
So far so good.
When doing my Purchase Order I can only link to the the purchase to the project although I would preferbly be able to define that this is part of (1) and only ultimately part of the Project SO-XYZ123
Now when my tech-guys recieves the Items from the purchase he will work on (2). Here we have built in a “Make” button which is very handy: https://github.com/frappe/erpnext/issues/22177
He can then create his timesheets toward this task and also ultimately toward the project.
If he encouters a problem though and might need some more components he would make a material request toward the task (and ultimatly toward the project). This is not part of core at the moment.
Next he will take the preconfigured PC and make an appointment with the customer. (Here also I could see it beeing usefull, that allow_events_in_timeline would be turned on by default in Task.)
To do this he will need to make a Delivery Note for the PC and take the Item to the customer. When setting up the PC at the customers home (3) he will should also make all his documentation and timesheets on the that Task (3). On this appointment he might notice, that the customer will need a new LED-monitor for that PC as he noticed, that the interface has changed from VGA to DVI for example. He will then leave the PC with the customer and let hom know, that a new appointment needs to be made. In this case I figure one would create a new Task “New Monitor” (4) within the current Project SO-XYZ123 and would create a new Material Request and maybe a new Event.
The tech-guy would come back to the office and do the above.
Now Sales will wan’t to have that PC invoiced as quick as possible. As the Item is already with the customer this shouldn’t be a problem. It is though. Once I create an Invoice from Delivery Note or Sales Order which has been connected to the Project SO-XYZ123 it will force me to have the Project selected. This will then pull all open time sheets on the sales Invoice and I am not able to invoice the PC by itself. Why? If I remove all Time Sheets from Time Sheet List in Sales Invoice and hit save it will just refetsch all open time sheets. The only way I can solve this at the moment is to leave at least one time sheet or to change the status of Sales Order and Delivery Note to “Closed” and make a seperate Invoice with no connection to the prior.
My suggestion is, that we go from Project wise billing to Task wise billing to be able to invoice more accurate without “blocking” further transactions.
If I should provide any further information or screenshots please let me know.
Thank you & kind regards
Replace Project with Task in most places and auto-fetch Project from Task
Maybe not replace Project with Tasks?
But treat tasks in SO (or other related doctypes) as input to Items child table (get Tasks/Items from Project) which can be added or removed. Like the items in SO/etc.
This used to be like that in earlier version. If you created a project from SO it would replicate all items as tasks inside the project.
One major issue that we have is that billing can easily go wrong as it’s not verry streight forward to bill underlying tasks instead of billing projects in total.
What I meant is creating SO from Project. Not creating Project from SO as you said.
So you would have Project first, then make SO from the Tasks in the Project (and put them as items in SO). This way you can choose which tasks to sell (and later bill).
Yes, now I get what you mean.
Create a Project XYZ123
- Order Items (1)
- Preconfigure PC (2)
- Setup PC at customers home (3)
Then, when creating a Quote and later the Sales Order be able to link the tasks in the corresponding Sales Order Item?
Then if I invoice a task I would only Invoice the corresponding Sales Order Item and the connected timesheets under the Task which is linked?
I miss this feature as well.
So the way I do is I create Items mimicking the Tasks and make SO with these Items.
Works… but still missing the linkage between Project/Tasks and SQ and SO.
It would be fairly easy to solve the links via a custom script which extends the dashboard in the respective doctype.
For me though the invoicing part is one of the biggest pains.
I’m courious to hear what the officials have to say to that.
Hi @hrwx your thoughts on the subject?
Hello @all I have created a graph on how I think the workflow between sales, support and project could be. I have marked existing “Make-buttons” in green. Semi working ones in orange and all missing in red.
Looking forward to you feedback.
Also I would like to note, there should be many issues to a single task which is not possible with the momentary design of ERPNext.
I’m not entirely sure what you mean by “do not need Project”…
I agree on that Project is something bigger. I figure the ERPNext design uses this as something smaller though, as this can be created from a Sales Order.
If I where to chose I would have a “Make Task” from Sales Order and have the project, as you say as something bigger conjoining all sorts of things that aren’t in ERPNext at the moment. Like e.g. Quotations. I figure a project can start even befor a Lead has become a customer…
I would go for something like this…
Ok. If it suits your business case, that’s good.
Also what I forgot to mention…we work with Issue a lot. We are in IT services. Most things come in as an issue. For example if a computer is slow we will trouble shoot and find out, that a hard drive needs to be replaced. From this there is a Sales cycle to be started wich can only be starten manually for the moment.
In another case it is a software issue and we need to start replace a whole IT Solution or server system which has several dependencies. In that case we wan’t to escelate an issue right up toward a project and have the “process-trail” tracked…
I’m sure this is also a use-case outside my trade?!
yeah, I have also seen this. But isn’t Cost Center already sufficient for the accounting and controlling purpose?
Also I feel, that the moduul Projects needs a little polishing here and there. For example I can not bill a single Task inside Project. This is something we would like to work towards. Let’s take you construction business as example. I thing we should be able bill the Task “Foundation” befor the project is finished. Also “Roof” should not necessarily be on the same invoice. At the moment I can only bill whole projects and then need to remove all time sheets from the invoice that I don’t need. This a prone for mistakes.
How do you use Projects in your system?
Could you consider making a Service Item (meaning Item in Stock module, and putting the qty, unit, and rates for services rendered in Sales Order, Sales Invoice, Delivery etc.
Yes, that will work. We have tried that also. The trouble is, it will still fetch all other open timesheets to that Invoice as soon as the project field is filled.
Also the option to bill a whole task (from several time sheets) won’t work.
My trouble is not, that it is not possible to do (it is) but there is no clean process which makes it prone for errors which are at this point really annoying as we a booking things for good after which we are not able to correct anything as we would have to cancel sales invoices etc
You can make a Material Request for Multiple Project
- for each Item row, Accounting Dimension Section has Project Field
- projects can be different for each item.
You create a Purchase Order
- Get Items From Material Request
- You have one Purchase Order with selected Items for Different projects.
Is it possible to set the Bill field of Timesheet to Unchecked initially?
You may update the Bill field to checked later - even if the timesheet is already submitted.
all good, I am aware of that. It’s about billing small portions of a project. There is no trouble linking everything together. Though some times it would be nice to have a higher resolution so beeing to be able to link Material Request, Purchase Order etc. at Task level…and then bill just that Task.
Take the “Roof” stated earlier as an example. Have the tiles etc. linked to just that task. If I#m building a house the house is the project split into tasks like, roof, baseplate, woodwork, electrics etc. Or would you put them in separate projects? (there is no sub-project in ERPNext as far as I know)