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
New PC
PC Setup
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: "Make"-Button in Task · Issue #22177 · frappe/erpnext · GitHub
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.
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).
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.
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…
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
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)