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: 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