Timesheet management add-on for Emacs org-mode
NOTE: the latest stable version is
0.4.1 which should
Super Quick Example
If you want to see how timesheet.el works quickly without changing your
current configuration try the following in a test account (i.e. a user that
does NOT have
- Make sure you have all the required Dependencies (see below)
- Copy the example Emacs configuration
cp -a src/github/tmarble/timesheet.el/example.emacs.d/ .emacs.d/
- Start Emacs
emacs -nw --debug-init
- Create an example timesheet
- Move the cursor to the first clock entry
CLOCK: [2014-04-01 Tue 08:30]--[2014-04-01 Tue 11:00] => 2014-04-01 Tue 08:30 -- 2014-04-01 Tue 11:00 @ 2.50
- Create an invoice (the example binding of
<f10> Iis to 'timesheet-invoice-at-point). You should see the invoice for Yoyodyne in USD.
- Copy the GBP and EUR examples (
yoyodyne-fr.org) to the home directory:
cp .emacs.d/elpa/timesheet-*/share/yoyodyne-*.org ~/
- Visit yoyodyne-uk.org, move the cursor to first clock entry, create an invoice
for Yoyodyne England:
- Visit yoyodyne-fr.org, move the cursor to first clock entry, create an invoice
for Yoyodyne France:
Ensure TEXINPUT is set. Typically all you need to do is
(require 'preview) as auctex will set this for you.
Start by creating an example client...
You will be viewing the buffer yoyodyne.org that already has some example time entries. Create an invoice with
- Customize your "company" directory where invoices are generated, your next invoice number, etc.
M-x customizethen search for
- Customize your name (in defs.tex) and logo (in logo.pdf).
- Learn more about org-mode!
Customizing each client
You can customize certain constants and properties for each client by defining the following at thte the top of the org file:
The properties are all used to fill in common parts of the invoice.
The constants are:
- customer: used to determine the directory to store the invoice
- rate: hourly rate (NOTE: this could be abused to be a daily rate if you record one "hour" to represent quantity one at this rate)
- roundmin: the number of minutes to round to. By default this is 15 minutes. The value could be between [1..60] inclusive.
#+CONSTANTS: customer=Yoyodyne rate=20.00 roundmin=10 #+PROPERTY: RemitTo1 Emacs Consultants LLC #+PROPERTY: RemitTo2 123 Any Street #+PROPERTY: RemitTo3 Minneapolis, MN 55401 #+PROPERTY: Terms Net 30 #+PROPERTY: BillTo1 Yoyodyne, Inc. #+PROPERTY: BillTo2 451 Franklin Street #+PROPERTY: BillTo3 Boston, MA 02110-1301 USA
An initial attempt has been made to make timesheet.el aware of different
currencies. Currently timesheet.el understands USD, GBP and EUR.
Specify a currency by adding a proprty at the top of your org file:
#+PROPERTY: Currency GBP
yoyodyne-fr.org files for examples.
NOTE: using EUR requires that main.tex include
(which is now part of the default main.tex template).
NOTE: no effort has been made to localize the use and location of commas and periods in currency strings.
For developers interesting in thinking more about this I have found the following links:
- Regarding currency conversions
- Regarding commas and periods
- Regarding units (leveraging calc)
- Related to numbers and emacs
- LaTex special characters
This program depends on ...
- The following emacs packages (MELPA):
s org auctex
- The following Debian packages
apt-get install emacs24 make gawk sed git tar rubber texlive-latex-extra texlive-fonts-recommended texlive-fonts-extra evince
There are several known bugs:
- Only tested on GNU/Linux
This work is Copyright © 2014-2016 Informatique, Inc.
and is licensed under the GPL version 3 or any later version.