開銷管理

根據客戶與專案追蹤您的開銷,可分類並列入收支單。

Kevin Papst
提供者
Kevin Papst

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
  • 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)

If turned on, Expenses count towards budgets and revenue statistics.

Expense summaries are displayed on the detail pages for customer, project and activity.

Invoice calculator

This bundle ships two new invoice calculator:

  • ExpenseActivityInvoiceCalculator one entry per activity, expenses display description
  • ExpenseCategoryProjectInvoiceCalculator - one entry for each expense category, timesheets are grouped into one entry per project

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_"

Changelog

## Version 2.11.0

Compatibility: requires minimum Kimai 2.10.0

- Changed: cache permissions in view
- Changed: support attribute caching in Voter

## Version 2.10.0

Compatibility: requires minimum Kimai 2.10.0

- Fixed: use correct base class for migration - removes Doctrine deprecation warning

## Version 2.9.0

Compatibility: requires minimum Kimai 2.10.0

- Added: System-Configuration to disable time field

## Version 2.8.0

Compatibility: requires minimum Kimai 2.9.0 (but 2.10 is recommended)

- Changed: remove time field and set to 12:00:00 internally
- Changed: set "now" as pre-filled default value for an expense date
- Changed: more DateTime to DateTimeImmutable refactorings
- Fixed: "not null" category validator does not highlight correct field

## Version 2.7.0

Compatibility: requires minimum Kimai 2.9.0

- Changed: internal DateTime to DateTimeImmutable refactoring
- Changed: replace deprecated RestRoute attribute with SF native one
- Changed: replace deprecated Route vs Attribute annotations

## Version 2.6.0

Compatibility: requires minimum Kimai 2.6.0

- Added: calculate "exported" vs. "not exported" statistics and provide for several statistics
- Added: sort invoice entries if "expense category project" grouping is activated
- Changed: re-use "Expenses" translation for configuration
- Fixed: broken "category" translation

## Version 2.5.0

Compatibility: requires minimum Kimai 2.5.0

- Changed: create default category if none is existing yet
- Changed: moved some translations to core allowing more languages

## Version 2.4.0

Compatibility: requires minimum Kimai 2.1.0

- Use annotation type for routes

## Version 2.3.0

Compatibility: requires minimum Kimai 2.0.33

- Fixed: API pagination compatibility with Kimai 2.0.33

## Version 2.2.3

Compatibility: requires minimum Kimai 2.0.26

- Added: simplify API form setup (no visible changes)
- Fixed: "extended settings" on edit screen collapses on clicking anywhere in the title
- Fixed: compatibility check for Kimai version

## Version 2.2.2

Compatibility: requires minimum Kimai 2.0.9

- Added: upgrade item actions to use v2 API.
- Fixed: locale-switching problem in context menu of calendar (only with Kimai 2.0.19)

## Version 2.2.1

Compatibility: requires minimum Kimai 2.0.9

- Fixed: Teamleads could not limit entries to selected teams

## Version 2.2.0

Compatibility: requires minimum Kimai 2.0.9

- Added: normal users do not see a sub-menu anymore
- Added: Batch delete expenses
- Fixed: 500 error on searches with meta field
- Fixed: Excel export did not respect the current user

## Version 2.1.6

Compatibility: requires minimum Kimai 2.0.9

- Fixed: export query did not respect selected teams
- Fixed: missing closing HTML tag
- Added: improved code style

## Version 2.1.5

Compatibility: requires minimum Kimai 2.0.9

- Fixed: reactivate DataFixtures as service, so they can be used (fixes all demos as well)

## Version 2.1.4

Compatibility: requires minimum Kimai 2.0.9

- Added: identify listener for auto-deactivation during batch imports

## Version 2.1.3

Compatibility: requires minimum Kimai 2.0

- Cleanup PDF export template

## Version 2.1.2

Compatibility: requires minimum Kimai 2.0

- Cleanup translation files

## Version 2.1.1

Compatibility: requires minimum Kimai 2.0

- API: simplified usage of "billableMode" and added description

## Version 2.1.0

Compatibility: requires minimum Kimai 2.0

- API: added route to fetch categories
- API: export "cost" and "description" fields with categories

## Version 2.0.3

Compatibility: requires minimum Kimai 2.0

- Fixed: remove customer from API
- Fixed: API returns 500 on missing user field

## Version 2.0.2

Compatibility: requires minimum Kimai 2.0

- Fixed: enable fields for API, added API description

## Version 2.0.1

Compatibility: requires minimum Kimai 2.0

- Fixed: Duplicate Menu-Subscriber ID

## Version 2.0

Compatibility: requires minimum Kimai 2.0

- Fixed: compatibility with Kimai 2.0
- Added: move expenses to replacement user upon user deletion #99
- Added: dashboard widgets for total expenses of the current user for today/week/month/year
- Added: basic statistics in listing page
- Added: Expenses has it's own top-level-menu with items `Expenses`, `Categories`
- Fixed: clarify API docs

## Version 1.33.0

Compatibility: requires minimum Kimai 1.28.0

- Added: Pre-fill create form via URL (date, project & activity, description, user, metaFields)

## Version 1.32.0

Compatibility: requires minimum Kimai 1.28.0

- Added: Cleanup logic for installations where user count < 2 or team count < 2

## Version 1.31.0

Compatibility: requires minimum Kimai 1.20.2

- Added: Team filter in expense form and query
- Added: Support team filter in invoice query
- Added: Support team filter in export query

## Version 1.30.1

Compatibility: requires minimum Kimai 1.20.2

- Updated/Improved dutch translations - thanks Edward

## Version 1.30

Compatibility: requires minimum Kimai 1.20.2

- Added: NL translations - thanks Edward

## Version 1.29

Compatibility: requires minimum Kimai 1.20.2

- Added: PL translations - thanks @KonradMazur

## Version 1.28

Compatibility: requires minimum Kimai 1.20.2

- Added: Support for invoice text field in project and activity

## Version 1.27

Compatibility: requires minimum Kimai 1.19

- Added: CSS classes in edit form to allow customizations

## Version 1.26

Compatibility: requires minimum Kimai 1.19

- Added: create expense from project detail page
- Added: create expense from activity detail page

## Version 1.25

Compatibility: requires minimum Kimai 1.19

- Added: add expense sums to revenue on dashboard
- Added: show amount/cost/refundable statistics on customer/project/activity detail pages
- Added: pagination support for category page
- Added: description column in category table
- Added: copy category description into expense description upon selection
- Fixed: migration wasn't executed due to invalid namespace

## Version 1.24

Compatibility: requires minimum Kimai 1.15

- Added: allow negative costs
- Added: support for modernized search with filter count and reset action
- Fixed: exporting PDF with many entries/pages
- Fixed: Excel exporter now exposes the correct columns
- Removed: Broken CSV exporter that exposed too many and invalid columns

## Version 1.23

Compatibility: requires minimum Kimai 1.15

- Fixed: emptying the cost field for existing expenses (as admin) caused an error

## Version 1.22

Compatibility: requires minimum Kimai 1.15

- Added: option to customize PDF and HTML export templates by creating new files
- Added: open dialog upon "create copy" (expense duplication), instead of hard copy in list view
- Fixed: removed duplicated date-time from PDF export template
- Fixed: budget/statistic calculation only used cost (without multiplier)

## Version 1.21.1

Compatibility: requires minimum Kimai 1.15

- Fixed: billable state should be ignored in query (expenses were missing in export)
- Fixed: PDF title

## Version 1.21

Compatibility: requires minimum Kimai 1.15

- Added: support 65535 character per custom field value (previously 256 chars)
- Added: color for categories
- Added: use rounding rules for minute dropdown
- Added: configure if expenses should be included in budgets
- Added: include expenses in monthly budget statistics
- Fixed: definitions for new Kimai version

## Version 1.20

Compatibility: requires minimum Kimai 1.14.1

- Added: Include refundable expenses in used customer budget
- Added: Include refundable expenses in used project budget
- Added: Include refundable expenses in used activity budget

## Version 1.19.1

Compatibility: requires minimum Kimai 1.14

- Fixed: Open "create expense from timesheet" dialog in modal

## Version 1.19

Compatibility: requires minimum Kimai 1.14

- Added: Support for bookmarking default search options
- Added: German translations for validation error
- Added: Validation for project begin & end date vs. expense date
- Fixed: Required changes for full compatibility with Kimai 1.14 (broken page-action links in detail pages)
- Fixed: Order of page-action buttons in line with other screens
- Fixed: Allow to import expenses from Kimai 1 into deactivated activities/projects/customers

## Version 1.18.1

Compatibility: requires minimum Kimai 1.12

- Fixed: API datetime expected localized datetime format

## Version 1.18

Compatibility: requires minimum Kimai 1.12

- Fixed: duplicating expenses will duplicate meta-fields as well
- Fixed: API pagination parameters were ignored (size & page)

## Version 1.17

Compatibility: requires minimum Kimai 1.12

- Added: invoice calculator to group expenses by category and timesheets by project
- Fixed: exporting expenses could fail, as the current time was used for start and end date
- Fixed: housekeeping - keep code clean and up2date

## Version 1.16

Compatibility: requires minimum Kimai 1.12

- Added: Include expense items in Kimai export module
- Added: Duplicate expense action in dropdown

## Version 1.15

Compatibility: requires minimum Kimai 1.11

- Added: Display custom-fields sorted by configured internal order
- Added: Export expense custom fields in Excel
- Added: Using bundle installer for unified workflow
- Fixed: Team permission check improvements
- Fixed: Composer 2 compatibility

## Version 1.14

Compatibility: requires minimum Kimai 1.10

- Fixes action dropdown links to filter expenses (multi-select support)
- Changed UI labels from "refundable" to "billable" (to match Kimai wording)
- Fixed group_by problem on some databases including pagination result size
- Use `view_all_data` permission instead of Admin assignment

## Version 1.13

Compatibility: requires minimum Kimai 1.9

- **Activates `view_expense` permission by default for user and teamleads** - if you don't want that: deactivate the permission before upgrading!
- Creates a default "Demo" category if none is existing yet (for new installations only)
- Allow to delete expense categories
    - Re-assign expenses to other category while deleting a category
- Reload list for first expense (on empty list)
- Added Hebrew translation - thanks @eransurg

## Version 1.12

Compatibility: requires minimum Kimai 1.9

- Support custom-fields for expenses
- Added checkbox for "exported" flag for users with `edit_exported_expense` permission
- Added phpstan for static code analysis (internal: no user feature)
- Fixed directory separator for installer on Windows
- Improved API definition (BC break: removed unused `end` field)

Database was changed, you need to run `bin/console kimai:bundle:expenses:install`.

## Version 1.11

Compatibility: requires minimum Kimai 1.9

- Support multi-select in search for: customer, project, activity
- Fix timezone issue in expenses listing
- Use same styles for pdf export than kimai core and fixed UTF-8 issue
- Added `edit_exported_expense` permission check to prevent unallowed edits/deletes of already exported expenses

## Version 1.10

Compatibility: requires minimum Kimai 1.7

- Allow empty activities in "grouped by activity" invoice calculator
- Fix permission issue for non-admins
- Optional display export column in listing

## Version 1.9

Compatibility: requires minimum Kimai 1.7

- Added "grouped by activity" invoice calculator that renders the description for expenses, instead of the activity name
- Fixed translation file names (plugin needs to be deleted before update!)

## Version 1.8.1

Compatibility: requires minimum Kimai 1.7

- Bugfix: cannot change start to a later date

Database columns are changed, you need to run `bin/console kimai:bundle:expenses:install`.

## Version 1.8

Compatibility: requires minimum Kimai 1.7

- Applying default permissions for all roles (check them if you update from a previous version)
- Added field for a "category help text" (which will be displayed behind the category name in the "edit/create expense" form)
- Bugfix: Always set the cost from the category, if the user is not allowed to set it manually (allows switching the category)
- Bugfix: Allow API usage from the docs page

## Version 1.7

Compatibility: requires minimum Kimai 1.7

- Required code changes to be compatible with Kimai 1.7
- Added export functionality in listing page for: PDF, HTML, CSV, Excel
- Added own permission section for "user roles & permission screen"

## Version 1.6

Compatibility: requires minimum Kimai 1.6.2

- Added command to import expenses from Kimai v1
- Removed end field, expenses have a fixed datetime only
- Activity field is now optional

## Version 1.5

Compatibility: requires minimum Kimai 1.6.2

- Support data limitation via getUser() for invoice data filter
- Replaced permission `view_expense_other` by `view_other_timesheet` (check your permission settings after update)
- Fix access for regular user with `view_other_timsheet` permission
- Invoices templates can distinguish between expenses and timesheets via `${entry.type}` (contains `expense`)
- Invoices templates can display the expense catgeory name via `${entry.category}`

## Version 1.4

Compatibility: requires minimum Kimai 1.6.1

- Show multiplier as amount (instead of 1) on invoices

## Version 1.3

Compatibility: requires minimum Kimai 1.6

- Support free search term
- Added API functions:
    - Get expense collection
    - Get expense entity
    - Create expense
    - Update expense
    - Delete expense
- Improve permission handling (auto register for ROLE_SUPER_ADMIN, as preparation for Kimai 1.6)

## Version 1.2

Compatibility: requires minimum Kimai 1.4

**ATTENTION** - when upgrading, you need to configure the new permissions!

- Respect team permissions
- Added new permissions: view_expense_other and edit_expense_cost
- Allow to set default cost on category
- Allow to hide entry based cost field to use only the pre-configured

## Version 1.1

Compatibility: requires minimum Kimai 1.4

- End-date is now optional
- Fixed duplicate index
- Fixed wrong version number
- API changes for Kimai 1.4

## Version 1.0

Compatibility: requires minimum Kimai 1.3

Initial release

安裝

複製檔案

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 ...

清除快取

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:

Adjust 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/

建立資料庫

Run the following command:

bin/console kimai:bundle:expenses:install

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

更新

Updating the plugin works exactly like the installation:

  • Delete the directory var/plugins/ExpensesBundle/
  • Execute all installation steps again:
    • 複製檔案
    • 清除快取
    • Update database with bin/console kimai:bundle:expenses:install

相容性

下表比較了外掛程式與所需的最低 Kimai 版本。

套件版本 最低 Kimai 版本
2.8.0 - 2.11.0 2.10.0
2.7.0 2.9.0
2.6.0 2.6.0
2.5.0 2.5.0
2.4.0 2.1.0
2.3.0 2.0.33
2.2.3 2.0.26
2.1.4 - 2.2.2 2.0.9
2.0 - 2.1.3 2.0
1.32.0 1.28.0
1.28 - 1.31.0 1.20.2
1.25 - 1.27 1.19
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

體驗版本

如要測試此外掛程式,可前往體驗版網頁 demo.kimai.org:

使用者名稱: susan_super
密碼: kitten

在此處找到更多測試帳號.

使用截圖

Screenshot
分頁列出的所有已記錄的開銷
Screenshot
可透過共通於多個 Kimai 介面的搜尋面板來篩選您的開銷
Screenshot
您新增或編輯開銷紀錄時,可填寫這些欄位
Screenshot
將開銷分類後,可得到更清楚的總覽與更方便的篩選選項
Screenshot
您可設定各分類的名稱、成本要素、與簡短說明

常見問題

這些常見問題由提供您本服務的開發者提供。

You can buy the plugin via the Marketplaces 'Lemon Squeezy' or 'Gumroad' and pay with Credit Card or PayPal. Both offer instant access to the purchases.

Support-questions, bug-reports and feature-requests will be answered in this Github repository

提供者

Kevin Papst

Building Kimai since 2009

如果您有任何問題,請透過以下聯絡資訊直接與此開發者聯絡。
Top