I think your problem can be solved very elegantly with TimeCard .I would suggest that you make a role-based list of TimeCard properties. For example:
Volvo, VV:New Product Site, VVNP: Project manager, 75$
Volvo, VV:New Product Site, VVNP: Web designer, 80$
With this, the employees don’t have to choose anything more than the particular role they perform. So if one of your employees does work as a project manager in the Volvo project, he would simply have to report with one property for each meeting. All the other properties, as well as the rates, would follow.
A disadvantage of this might be that you have to make a long list of roles, but the users only have to select their own roles and would get a very easy reporting. And when one project is finished they will of course de-select the role from the ones in their chosen list.