Intertec TimePro Utils
Description
Programmatically get and submit timesheet data to Intertec TimePro (timesheets.com.au)
Installation
Install with pip
:
pip install timepro-timesheet
Usage
Command line
GET data
Once installed, you can use the CLI to get your timesheet data as JSON.
$ timepro get -c CUST -u john.doe -p password123
{
"2018-08-04": [
{
"customer_code": "EXAMPLE",
"customer_description": "Example Company Pty Ltd",
"project_code": "EX-123",
"project_psid": "EX-123{:}1",
"project_description": "EXAMPLE - EX-123 - SOW000 - Important Business Stuff - PO 123",
"task_id": null,
"task_description": null,
"hours": 8
}
]
}
You can filter the timesheet period by specifying dates for --start
and --end
, or by using the --this-week
, --this-month
, --last-week
or --last-month
flags. By default, the current week's timesheet entries are returned.
POST data
Data can be submitted by reading from a JSON file.
$ timepro post -c CUST -u john.doe -p password123 -f timesheet_entries.json
or
$ cat timesheet_entries.json | timepro post -c CUST -u john.doe -p password123
Python
from timepro_timesheet.api import TimesheetAPI
# Log into timesheets.com.au via the TimesheetAPI class
api = TimesheetAPI()
api.login(customer_id='CUST', username='john.doe', password='password123')
# Get timesheet (defaults to current month)
timesheet = api.get_timesheet()
# Get timesheet for a given date
timesheet = api.get_timesheet(start_date=date(2018, 6, 1), end_date=date(2018, 6, 25))
# Output timesheet
timesheet.json()
timesheet.row_entries()
timesheet.date_entries()