Offered by

Logo - Kevin Papst

Kevin Papst

Freelancer, PHP professional and Kimai maintainer since 2007

If you have any question, visit the developers homepage or use the email for direct contact .

Try it

You can test this plugin in our dedicated plugin demo:

  • Username: susan_super
  • Password: kitten

Find more testing accounts here.

Keep track of your expenses and include them in your invoices.
Last update: 14 Sep 2019

Features

  • Record all your expenses and show them in a table view
    • The data can be searched- and filtered (see screenshots)
  • All (billable) expenses will be automatically included in your invoices
    • Negative amounts allow for complex bookings, budget and invoice adjustments
  • Manage expenses via API
  • Export expenses in: Excel, PDF, HTML
  • Support for custom-fields (see Custom-fields plugin)
  • Include expenses in Kimai export module
  • Import expenses from Kimai 1

Expenses will be assigned to free configurable categories and each category has:

  • name
  • visibility flag
  • default cost
  • color
  • help text (will be shown when creating an expense)
  • description (will be copied into the expense description upon selection)

Each expense has the following fields:

  • a date-time
  • category (see above)
  • user
  • project (and customer)
  • activity (optional)
  • description (free text field)
  • the cost (can be hidden for default user, if you use default cost via category)
  • an amount (see it as multiplier, use 1 if you want to charge the cost only)
  • a billable flag (non-billable expenses will not be added to your invoices)
  • an export flag (to make sure, that each expense will be invoiced only once)

Permissions

Permission Name Description
view_expense allows access to the expenses screen
edit_expense edit existing expenses
edit_expense_cost edit the cost of a single expense (deactivate this, if you want to provide default costs via the category)
export_expense export expenses
create_expense create new expenses
delete_expense delete existing expenses
manage_expense_category manage expense types
edit_exported_expense allow to edit and delete exported expenses

Pre-defined permissions are assigned to all default user roles.

The following restrictions are in place for accessing other user’s data:

  • can only be seen by users who own the view_other_timesheet
  • users that own the view_expense permission but NOT view_other_timesheet will only see own expenses
  • the visible data for non-admin users (permission view_all_data) is limited by team assignments

Importing from Kimai v1

This bundle supports data import from Kimai v1, but you need to imported the other data (like customers) first.

An example for the import command:

bin/console kimai:bundle:expenses:import-v1 "mysql://username:password@127.0.0.1:3306/database?charset=utf8" "kimai_"

Purchase

You can buy this item from the developer with a regular EU-invoice or via Gumroad (platform for selling digital goods). Please create an account during your purchase to receive software updates. Read more about the license and purchase options.

Every customer gets free access to a private GitHub repository (like a forum) for support and access to the latest updates. Sent your GitHub username and your purchase receipt to kevin@kevinpapst.de and you will receive an invite soon!

Screenshots

Installation

Compatibility

Plugins should always be compatible with higher Kimai versions, the following list contains the plugin version and the required minimum Kimai version.

Bundle version Minimum Kimai version
1.21 - 1.24 1.15
1.20 1.14.1
1.19 - 1.19.1 1.14
1.16 - 1.18.1 1.12
1.15 1.11
1.14 1.10
1.11 - 1.13 1.9
1.7 - 1.10 1.7
1.5 - 1.6 1.6.2
1.4 1.6.1
1.3 1.6
1.1 - 1.2 1.4
1.0 1.3

Copy files

Extract the ZIP file and upload the included directory and all files to your Kimai installation to the new directory:

var/plugins/ExpensesBundle/

The file structure needs to look like this afterwards:

var/plugins/
├── ExpensesBundle
│   ├── ExpensesBundle.php
|   └ ... more files and directories follow here ...

Clear cache

After uploading the files, Kimai needs to know about the new plugin. It will be found once the cache was re-built. Call these commands from the Kimai directory:

How to reload Kimai cache

bin/console kimai:reload --env=prod

It is not advised, but in case the above command fails you could try:

rm -r var/cache/prod/*

You might have to set file permissions afterwards:

Fix Kimai file permission

You have to allow PHP (your webserver process) to write to var/ and it subdirectories.

Here is an example for Debian/Ubuntu (to be executed inside the Kimai directory):

chown -R :www-data .
chmod -R g+r .
chmod -R g+rw var/
chmod -R g+rw public/avatars/

Test Kimai before executing these commands (they are likely not required in a shared-hosting environment). You probably need to prefix them with sudo and the group might be called different than www-data.

Create database

Run the following command:

bin/console kimai:bundle:expenses:install

This will create the required database tables and update them to the latest version.

Updates

Updating the plugin works exactly like the installation:

  • Delete the directory var/plugins/ExpensesBundle/
  • Execute all installation steps again:
    • Copy files
    • Clear cache
    • Update database with bin/console kimai:bundle:expenses:install

All items by Kevin Papst

Audit-Trail plugin

Records detailed change/audit logs for timesheets, customers, projects and activities and displays them in a per-item timeline.
plugin
39€

Custom-content plugin
New

Create custom content for: stylesheets, javascript, a global warning message and a new page to render markdown content for company news.
plugin
9€

Custom-fields plugin

Create free configurable additional fields for timesheets, customers, projects, activities and users in various formats. Fields can be optional or mandatory and restricted by permissions.
plugin
49€

Enhanced invoicing plugin

Enhanced invoicing features: change format locale, automatic timesheet proof PDF for new invoices.
plugin
0€

Expenses plugin

Keep track of your expenses based on a customer, project and activity. These expenses can be categorized and included in your invoices.
plugin
49€

Kiosk plugin

Attendance time-tracking in an environment, where the user has no access to Kimai (eg. in a warehouse) by using a barcode or RFID scanner to start and stop timesheets.
plugin
199€

Task management plugin

Create tasks, start/stop/pause them, assign them to users and teams - a todo-list management plugin that is connected to your time-tracker and adds two new dashboard widgets
plugin
49€

Translation plugin
New

Change all visible elements (form labels, table header, menu items ...) in your Kimai installation with your own translations
plugin
29€