The Client, UK based organization, is an independent award winning specialist SEO and PPC consulting and technology firm, which helps businesses dramatically increase their sales and profits.
Client wanted us to develop a Time Sheet Entry system in Salesforce which allows each user to insert his/her time spent on different Project/Programme/Milestone. The Time sheet entry system will include two objects called Time Sheet and Time Sheet lines. Time Sheet object's detail page will display a grid structure where user can enter time sheet lines. The client wanted that a time sheet should be created for each staff member on Monday.
As per our analysis of the given requirements, we found that this could be achieved using Visualforce Pages and Apex on Force.com. There are two objects called Time Sheet and Time Sheet Lines which are used in this project. There is pick list on grid at time sheet’s detail page to select Programme/Project/Milestone. According to selected Programme/Project/Programme Time type pick List will be populated. There are seven input boxes to enter time spent for each weekday. In description box user can enter description for each time line. There is a master detail relationship b/w Time Sheet and Time lines. On Grid page there is Save button which will create time line for each weekday for a Project/Programme/Milestone.
- Creation of Time Sheet
In Salesforce Org there is batch which will run on Sunday night and create Time Sheet for each active staff member. Field values set by batch. No Timeline entries are created by the batch.
Week Commencing date - Currentdate+1
Time Sheet User - Staff member
Name - + week commencing date '-' Staff member name.
- Creation of Time Lines
Time Sheet detail page will display a Grid structure to enter time and Project/Programme/Milestone info for creating time lines. Each row of grid has the same column. First column will display a pick list which has all the Programme/Project/Milestone. User has to select a Programme/Project/Milestone.
After selecting Programme/Project/Milestone time type pick list will be populated according to selected Programme/Project/Milestone.
Each time type will display a description which is dynamic. For displaying dynamic description we have used a custom object called Time type.
After selecting Time Type user can enter time spend on week days. For this there are seven text boxes to enter time. Description box is used to enter description for time lines.
When user clicks on the Save button then time lines for time sheet will be created for each weekday and project/Programme/Milestone. Icons are available to create or delete timelines.
- Save and Submit
There is a button called "Save and Submit". This button will create the timelines and lock the time sheet. This will change the record type of time sheet to Locked.
The figure below shows a Locked record. Grid is not shown for such records.
The Time sheet Entry System is easy to use and all-inclusive user experience System. The Client can now keep track of total time spent by employees on each ongoing projects/Milestones. It can also now keep a record of all its staff members working hours on weekly basis and can analyze the progress and performance of every staff member independently.