Timesheet Variables
From SmartWiki
The following variables can be used when creating a Web Page View or in other custom fields when referencing Timesheets: On the Web Page View you can refer to each Timesheet field using special terminology which allows them to be generated as a list:
Contents
Syntax
- [#(?object=timesheet)~variablename~#]
where variablename is one of:
- Date: ~actiondate~
- User: ~username~
- Status: ~status~
- Client: ~client~
- Project: ~project~
- Duration: ~totalhours~
- Billable: ~billable~
- Notes: ~itemdescription~
- Timecode: ~timecode~
- Is Billable: ~isagainstjob~ - will return 1 when timecode used is marked as billable, 0 when timecode is not
Examples
The following are examples that could be used on a Web Page View to create a table listing timesheet items:
<table cellspacing=0 cellpadding=2 border=1> <tr><th>Staff</th><th>Details</th><th>Date</th><th>Effort</th><th>Status</th><th>Billable</th><th>Billed</th></tr> [#(?object=timesheet;orderby=actiondate) <tr><td nowrap>~username~</td><td>~itemdescription~</td><td>~actiondate~</td><td>~totalhours~</td><td>~status~</td><td>~billable~</td><td>~if(tsinvoiceid>0,'Yes','No') as billed~</td></tr> #] </table>
<table cellspacing=0 cellpadding=2 border=0> <tr><th>Billable Hours</th><th>Not Billable Hours</th><th>Billed Hours</th><th>Unbilled Hours</th></tr> <!--Billable Hours:--> <tr><th> [#(?object=timesheet;criteria=isagainstjob=1;groupfunction=sum)~totalhours~#]</th> <!--Not Billable Hours:--> <th> [#(?object=timesheet;criteria=isagainstjob=0;groupfunction=sum)~totalhours~#]</th> <!--Billed Hours:--> <th> [#(?object=timesheet;criteria=tsinvoiceid>0 and isagainstjob=1;groupfunction=sum)~totalhours~#]</th> <!--Unbilled Hours:--> <th> [#(?object=timesheet;criteria=tsinvoiceid=0 and isagainstjob=1;groupfunction=sum)~totalhours~#]</th> </tr> </table>
The code between the [#(?object=timesheet) and closing #] will be repeated for each timesheet item to be included.
Other examples include:
Last Timesheet Entry Date
[#(?object=timesheet;groupfunction=max)~actiondate~#]
Non-Invoiced Hours
<!--@sscalculation((REPLACE("[#(?object=timesheet;criteria=tsinvoiceid=0 and isagainstjob=1;groupfunction=sum)~totalhours~#]",",",""))*1)-->
Invoiced
<!--@sscalculation((REPLACE("[#(?object=timesheet;criteria=tsinvoiceid>0 and isagainstjob=1;groupfunction=sum)~totalhours~#]",",",""))*1)-->
Non-billable hours
<!--@sscalculation((REPLACE("[#(?object=timesheet;criteria=isagainstjob=0;groupfunction=sum)~totalhours~#]",",",""))*1)-->
Billable Hours
<!--@sscalculation((REPLACE("[#(?object=timesheet;criteria=isagainstjob=1;groupfunction=sum)~totalhours~#]",",",""))*1)-->
Actual Hours (total hours)
<!--@sscalculation(REPLACE("[#(?object=timesheet;groupfunction=sum)~totalhours~#]",",","")*1)-->
Timecodes
[#(?object=timesheet;)~timecode~<BR>#]
Implementation Note: Saving timesheet records does not trigger the template formulas of Level 1 objects to which they are associated. To have fields summing timesheet items on the Level 1 record, use Read Only - System Variable fields.