I have the following entity-relationship diagram (simplified, just the part for this question and there are extra attrributes in reality)
A [Maintenance Ticket] has N assigned WorkOrders, each WorkOrder has assigned N Resources (WorkOrders) and for each such assignations there must be logged N Activities (how many hours the worker dedicated to the given workOrder each day)
I had a design working until the requirement for Activities arrived; a simple master-detail (ticket-workOrders), with each workOrder showing the list of workers (the 4th column).
For creating new orders/editing existing ones, a simple popup appeared. It has a pick list, to select from all of the valid workers which ones are assigned to the workOrder.
Now the issue is how to add the activities into the mix. I have considered 3 alternatives.
1) Keep everything as it is now, and add a button "Activity" next to each worker in the detail. The button shows a popup with a table of previously entered activities and a form to add new ones.
2) Add a "Close" or "Report activity" button to the workOrder. There, a popup similar to the one in 1) would appear (but of course an extra field to select to which worker belongs the activity would be needed).
3) Modify the "Edit" popup in order to both select available workers and add activities to the selected workers.
I would like to go with 3) because I like to keep the number of screens as low as possible, but I can not think of a way of keeping it simple. I only can think of keeping the pickList and add a table for activities (but then I have to check integrity between picklist and activities).
In the case that 3) is deemed a bad option, I would then go to 2), but I am open to consider other alternatives.
So, what I am asking is:
a) Can anyone think of a good way of implementing 3)?
b) Can anyone point any advantage/disavantage of my options that I missed?
c) Can anyone provide another alternative?
I'll added how I did it as an alternative, in case someone wants to give advice / offer a proposal.
In the end I kept the dessign above defined; for adding the activities I added another popup to the main page:
The 3 buttons shown in the background are associated to each workorder; the first is for the popup for edition of the workOrder itself, including assigning workers (screenshot 2), the second is for the popup of the activities (screenshot 3).
My main issue is that the info about the workers is "duplicated" between the popups, changes in the first popup affect the values in the second one.
Other issue is that there are a little too much popups for my taste, but given that usually the user will work in batches (they will add all of the activities in one or two runs) it is less trouble.
The advantage of my approach is that it is as they usually work; first they create the workOrder and assign the workers, a few days later they report the activities.
A possible alternative would be this:
managing workers and their activities directly from the main page. But I fear that I will end with a page overcrowded with buttons, and I do not know what would be worse.
So the question would be which is the preferred approach (basically, what will the user find less complicated) or if there is any alternative.
Maybe I am giving it too much importance; it is my first programming work alone and after a long time so I want it to be polished.