No description
  • PHP 63%
  • Twig 37%
Find a file
2026-03-10 10:10:57 +01:00
Controller Export to csv and pdf 2026-03-09 12:31:44 +01:00
DependencyInjection first commit 2026-03-06 21:07:50 +01:00
EventSubscriber fixes 2026-03-08 01:00:27 +01:00
Form fixes 2026-03-08 01:00:27 +01:00
Repository groups summary 2026-03-08 02:08:52 +01:00
Resources better table view 2026-03-10 10:10:57 +01:00
Service Export to csv and pdf 2026-03-09 12:31:44 +01:00
composer.json fixes 2026-03-08 01:00:27 +01:00
GroupedProjectReportBundle.php fixes 2026-03-08 01:00:27 +01:00
LICENSE Initial commit 2026-03-06 12:22:29 +00:00
README.md groups summary 2026-03-08 02:08:52 +01:00

Kimai Grouped Project Report Plugin

Plugin dodaje nowy typ raportu w Kimai, który pozwala agregować czas pracy na podstawie zdefiniowanych grup projektów.

Raport umożliwia:

  • wybór zakresu dat
  • wybór klienta
  • wybór jednego lub wielu pracowników
  • agregację czasu pracy w rozbiciu miesięcznym
  • definiowanie do trzech grup projektów
  • opcjonalne zliczanie wszystkich pozostałych projektów

Raport może być generowany:

  • dla wszystkich wybranych pracowników łącznie
  • osobno dla każdego pracownika z podsumowaniem końcowym

Funkcjonalność raportu

Raport prezentuje dane w kilku sekcjach.

1. Tabela miesięczna

Dla każdego miesiąca wyświetlane są:

  • pracownik (jeżeli włączony tryb per user)
  • grupy projektów
  • pozostałe projekty
  • suma godzin

Czas jest liczony na podstawie pola:

kimai2_timesheet.duration

które jest przechowywane w sekundach.

Raport przelicza czas na godziny.


Grupowanie projektów

Można zdefiniować maksymalnie 3 grupy projektów.

Dla każdej grupy można ustawić:

  • aktywność grupy
  • nazwę grupy
  • listę numerów projektów

Numery projektów należy podać w formacie:

0021,0025,0040

Numery odpowiadają polu:

kimai2_projects.number

Jeżeli wprowadzony numer projektu nie istnieje dla wybranego klienta, raport zwróci błąd.


Pozostałe projekty

Opcja:

Uwzględnij wszystkie pozostałe projekty

powoduje, że wszystkie projekty klienta, które nie należą do żadnej z grup, zostaną zsumowane w kolumnie Pozostałe.


Tabela projektów

Na końcu raportu znajduje się dodatkowa tabela:

Grupa Projekty

Zawiera ona:

  • nazwę grupy
  • listę projektów należących do tej grupy

Nazwy projektów pochodzą z pola:

kimai2_projects.name

Projekty są wyświetlane jako lista rozdzielona przecinkami.

Tabela zawiera również wiersz Pozostałe, jeżeli ta opcja została włączona.


Struktura pluginu

GroupedProjectReportBundle
├── Controller
├── EventSubscriber
├── Form
│   └── Model
├── Repository
├── Resources
│   ├── translations
│   └── views
└── Service

Główne komponenty:

Komponent Opis
ReportBuilder buduje dane raportu
Repository zapytania SQL do bazy
Twig template render raportu
FormType formularz filtrów

Wymagania

Plugin wymaga:

  • Kimai 2.x
  • PHP 8+
  • bazy MySQL lub MariaDB

Instalacja

  1. Skopiuj katalog pluginu do:
var/plugins/GroupedProjectReportBundle
  1. Wyczyść cache Kimai:
php bin/console cache:clear
  1. Zaloguj się do Kimai.

Nowy raport będzie dostępny w sekcji:

Reports

Baza danych

Plugin korzysta z następujących tabel:

kimai2_timesheet
kimai2_projects
kimai2_users
kimai2_customers

Kluczowe pola:

timesheet.duration
timesheet.start_time
projects.number
projects.name
projects.customer_id

Obsługiwane języki

Plugin zawiera tłumaczenia:

  • Polish
  • English

Pliki tłumaczeń znajdują się w:

Resources/translations

Możliwe rozszerzenia

Plugin może zostać rozszerzony o:

  • eksport raportu do PDF
  • eksport raportu do CSV / Excel
  • wybór projektów z listy zamiast wpisywania numerów
  • zapis konfiguracji raportów
  • filtrowanie po aktywnościach

Autor

Krzysztof 'Grenn' Pogorzelski krzysiek@devnull.com.pl

Plugin został przygotowany jako rozszerzenie raportowe dla Kimai.