Skip to content
This repository has been archived by the owner on Oct 24, 2023. It is now read-only.

Keleo/RecalculateRatesBundle

Repository files navigation

Important

This plugin was made for Kimai 1.x.
The features of this bundle were incorporated into the core system and are now available in Kimai 2.x.


Recalculate-Rates plugin for Kimai

A Kimai plugin, which forces a recalculation of the hourly and fixed rates for timesheet records on certain updates.

There are two possible modes in which this plugin can work:

  1. Recalculate prices if certain fields were changed
  2. Recalculate prices on every update

The first mode is the better one, but only available from Kimai 1.20.1 on.

You can configure the mode, by default mode 1 is used, unless your Kimai version is too old, then 2 is used.

Recalculate prices if certain fields were changed

This mode should be preferred.

A timesheet record rate will be recalculated if it was changed in one of these fields: Customer, Project, Activity, User, Price

This still might overwrite custom rates, which were applied to single timesheets. But this case is very rare and using custom rates for single entries should be avoided anyway. If you find yourself using this workflow often, consider using the Expense plugin.

Recalculate prices on every update

The good part is:

  • you can change customer/project and activity and be sure, that the correct rate is used.

The bad part:

  • even setting the export field might change the hourly rate and render your history invalid
  • a manually entered hourly/fixed rate will be overwritten
  • you HAVE to work with the pre-configured rates on your activities/projects/customers.

Installation

First clone it to your Kimai installation plugins directory:

cd var/plugins/
git clone https://github.com/Keleo/RecalculateRatesBundle.git

The file structure needs to look like this afterwards:

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

And then rebuild the cache:

bin/console kimai:reload --env=prod