- PHP 63%
- Twig 37%
| Controller | ||
| DependencyInjection | ||
| EventSubscriber | ||
| Form | ||
| Repository | ||
| Resources | ||
| Service | ||
| composer.json | ||
| GroupedProjectReportBundle.php | ||
| LICENSE | ||
| README.md | ||
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
- Skopiuj katalog pluginu do:
var/plugins/GroupedProjectReportBundle
- Wyczyść cache Kimai:
php bin/console cache:clear
- 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.