Time Entry System in Salesforce

Client

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.

Challenges

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.

Solutions

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.

  1. 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.

    Time sheet entry system image1


  2. 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.

    Time sheet entry system image2

    After selecting Programme/Project/Milestone time type pick list will be populated according to selected Programme/Project/Milestone.

    Time sheet entry system image3

    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.

    Time sheet entry system image4

    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.


  3. 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.

    Time sheet entry system image5

Results

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.