diff --git a/.codecov.yml b/.codecov.yml index a80e4ee9..76fd209b 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -9,7 +9,7 @@ coverage: status: project: default: - threshold: 2.5% + threshold: 0.5% patch: off changes: no diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index be816fba..3bc130df 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -35,11 +35,7 @@ version-resolver: template: | [Upgrade Kimai](https://www.kimai.org/documentation/updates.html) - [Install Kimai](https://www.kimai.org/documentation/installation.html) - [Docker](https://tobybatch.github.io/kimai2/) - **PHP Version compatibility:** - - PHP 7.3 and PHP 7.4 are [end-of-life](https://www.php.net/supported-versions.php) - - PHP 8.0 and PHP 8.1 are supported - - A feature freeze is in place and only bugfix releases will be published for 1.30.x. Next major release will be in the 2.x series (PHP >= 8.1, Symfony 6, Tabler UI, see #2902). + **Compatible with PHP 8.1 and 8.2** $CHANGES diff --git a/.github/workflows/lock.yaml b/.github/workflows/lock.yaml index 0cf9d892..ff2530da 100644 --- a/.github/workflows/lock.yaml +++ b/.github/workflows/lock.yaml @@ -16,10 +16,10 @@ jobs: action: runs-on: ubuntu-latest steps: - - uses: dessant/lock-threads@v3 + - uses: dessant/lock-threads@v4 with: github-token: ${{ github.token }} - issue-inactive-days: '180' + issue-inactive-days: '90' exclude-issue-created-before: '' exclude-issue-created-after: '' exclude-issue-created-between: '' diff --git a/README.md b/README.md index c2fe1ed9..dabe3cd9 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,8 @@
@@ -75,11 +74,11 @@ The best way to start is to [open a new issue](https://github.com/kimai/kimai/is In case you want to contribute, but you wouldn't know how, here are some suggestions: -- Spread the word: More user means more people testing and contributing to Kimai - which in turn means better stability and more and better features. Please vote for Kimai on platforms like Slant, Product Hunt, Softpedia or AlternativeTo, you can tweet about it, share it on LinkedIn, reddit or any of your favorite social media platforms. Every bit helps! -- Answer questions: You know the answer to another user's problem? Share your knowledge! -- Make a feature request: Something can be done better? Something essential missing? Let us know! -- Report bugs -- You don't have to be programmer to help. The documentation and translation could use some love as well. -- Sponsor the project, free software still costs money +- Spread the word: More user means more people testing and contributing to Kimai - which in turn means better stability and more and better features. Please vote for Kimai on platforms like Slant, Product Hunt, Softpedia or AlternativeTo, you can toot or tweet about it, share it on LinkedIn, reddit or any of your favorite social media platforms. Every bit helps! +- Answer questions: You know the answer to another user's problem? Share your knowledge. +- Something can be done better? An essential feature is missing? Create a feature request. +- Report bugs: that shouldn't happen too often. +- You don't have to be programmer, the documentation and translation could use some love as well. +- Sponsor the project: free software costs money to create! There is one simple rule in our "Code of conduct": Don't be an ass! diff --git a/TODO b/TODO deleted file mode 100644 index 5aa624d4..00000000 --- a/TODO +++ /dev/null @@ -1,36 +0,0 @@ -=========================================================================== - -INVOICES - -- HTML Rechnungstemplates funktionieren nicht mehr richtig - -=========================================================================== - -THEME - -- Update to latest release und angepasstes CSS entfernen - -- Theme Dark Mode mit Modus "Browser" sollte Standard sein: - https://github.com/tabler/tabler/issues/892#event-5666309557 - -=========================================================================== - -MIXED - -- Alle URLs ändern - - /admin/activity/ zu /activity/ - - /admin/project/ zu /project/ - - /admin/..../ zu /..../ - - /team/timesheet/ zu /timesheets/ - -- Tags => immer Berechtigung prüfen und "create" option über die VIEW ans Javascript geben - => den FormType nur ändern zu "AutoComplete" wenn es mehr als 500 Tags sind - => Übersetzungen (Suche, Erstellen, Keine Ergebnisse) über data attribute ans JS durchreichen - -=========================================================================== - -MIGRATIONS - -- rename 2.0 migration once it will be released - -=========================================================================== diff --git a/UPGRADING.md b/UPGRADING.md index 1fc2f499..074b6d17 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -8,7 +8,7 @@ you can upgrade your Kimai installation to the latest stable release. Check below if there are more version specific steps required, which need to be executed after the normal update process. Perform EACH version specific task between your version and the new one, otherwise you risk data inconsistency or a broken installation. -## [2.0](https://github.com/kevinpapst/kimai2/releases/tag/2.0) +## [2.0](https://github.com/kimai/kimai/releases/tag/2.0) **!! This release requires minimum PHP version to 8.1 !!** diff --git a/assets/sass/invoice.scss b/assets/sass/invoice.scss index 6c624420..bd3c66fc 100644 --- a/assets/sass/invoice.scss +++ b/assets/sass/invoice.scss @@ -9,9 +9,6 @@ @import "~bootstrap/scss/variables"; @import "~bootstrap/scss/maps"; @import "~bootstrap/scss/mixins"; -//@import "~bootstrap/scss/normalize"; -//@import "~bootstrap/scss/print"; -//@import "~bootstrap/scss/scaffolding"; @import "~bootstrap/scss/reboot"; @import "~bootstrap/scss/type"; @import "~bootstrap/scss/grid"; @@ -19,12 +16,12 @@ @import "~bootstrap/scss/list-group"; @import "~bootstrap/scss/card"; @import "~bootstrap/scss/utilities"; -//@import "~bootstrap/scss/responsive-utilities"; body { font-family: $font-family-sans-serif; &.invoice_print { + --bs-body-font-size: 13px; background-color: #eee; .table.no-border, .table.no-border td, .table.no-border th { @@ -35,6 +32,38 @@ body { font-family: $font-family-sans-serif; } + .mt-2 { + margin-top: 2em; + } + + .mb-3 { + margin-bottom: 3em; + } + + .pt-1 { + padding-top: 1em; + } + + .pb-4 { + padding-bottom: 4em; + } + + .ps-0 { + padding-left: 0; + } + + .bt-1 { + border-top: 1px solid #000000; + } + + .pull-right { + float: right; + } + + .text-end { + text-align: right; + } + .invoice { margin: 105px auto 30px auto; padding: 50px 65px; @@ -48,7 +77,7 @@ body { .page-header { margin: 10px 0 20px 0; - font-size: 22px; + font-size: 20px; > small { color: #666; @@ -79,14 +108,11 @@ body { } .invoice-items { - margin-top: 2em; - margin-bottom: 3em; - .table { thead th { font-weight: bold; border-bottom: 1px solid #ddd; - padding-bottom: 15px + padding-bottom: 10px } tfoot { @@ -105,7 +131,6 @@ body { } } } - } .footer { diff --git a/composer.json b/composer.json index b532bcd7..164c5d3a 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "kimai/kimai", - "license": "MIT", + "license": "AGPL-3.0-or-later", "type": "project", "description": "Kimai - Time Tracking", "authors": [ @@ -10,7 +10,7 @@ }, { "name": "All contributors", - "homepage": "https://github.com/kevinpapst/kimai2/contributors" + "homepage": "https://github.com/kimai/kimai/contributors" } ], "require": { @@ -191,7 +191,7 @@ }, "extra": { "branch-alias": { - "v2.x-dev": "2.0.x-dev" + "dev-main": "2.0.x-dev" }, "symfony": { "id": "01C3FWRDJJEX9K6Y3A4XDFXPBR", diff --git a/composer.lock b/composer.lock index c578518a..40fb409b 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "16922ce13576f2e86b8a3c380fcf814a", + "content-hash": "f3b0627c043009647c1ab9c3ddea3f22", "packages": [ { "name": "bacon/bacon-qr-code", @@ -796,16 +796,16 @@ }, { "name": "doctrine/doctrine-bundle", - "version": "2.8.0", + "version": "2.8.1", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "0421ebc069519a0f19b9c39e5dc18c359be0feab" + "reference": "fe9b2cc1cd0c9b76553b1d4c1a077590ba231a2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/0421ebc069519a0f19b9c39e5dc18c359be0feab", - "reference": "0421ebc069519a0f19b9c39e5dc18c359be0feab", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/fe9b2cc1cd0c9b76553b1d4c1a077590ba231a2d", + "reference": "fe9b2cc1cd0c9b76553b1d4c1a077590ba231a2d", "shasum": "" }, "require": { @@ -891,7 +891,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.8.0" + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.8.1" }, "funding": [ { @@ -907,7 +907,7 @@ "type": "tidelift" } ], - "time": "2022-12-28T16:35:32+00:00" + "time": "2023-01-06T00:24:26+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", @@ -1685,16 +1685,16 @@ }, { "name": "egulias/email-validator", - "version": "3.2.4", + "version": "3.2.5", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "5f35e41eba05fdfbabd95d72f83795c835fb7ed2" + "reference": "b531a2311709443320c786feb4519cfaf94af796" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/5f35e41eba05fdfbabd95d72f83795c835fb7ed2", - "reference": "5f35e41eba05fdfbabd95d72f83795c835fb7ed2", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b531a2311709443320c786feb4519cfaf94af796", + "reference": "b531a2311709443320c786feb4519cfaf94af796", "shasum": "" }, "require": { @@ -1703,7 +1703,6 @@ "symfony/polyfill-intl-idn": "^1.15" }, "require-dev": { - "php-coveralls/php-coveralls": "^2.2", "phpunit/phpunit": "^8.5.8|^9.3.3", "vimeo/psalm": "^4" }, @@ -1741,7 +1740,7 @@ ], "support": { "issues": "https://github.com/egulias/EmailValidator/issues", - "source": "https://github.com/egulias/EmailValidator/tree/3.2.4" + "source": "https://github.com/egulias/EmailValidator/tree/3.2.5" }, "funding": [ { @@ -1749,7 +1748,7 @@ "type": "github" } ], - "time": "2022-12-30T14:09:25+00:00" + "time": "2023-01-02T17:26:14+00:00" }, { "name": "endroid/qr-code", @@ -9815,16 +9814,16 @@ }, { "name": "tijsverkoyen/css-to-inline-styles", - "version": "2.2.5", + "version": "2.2.6", "source": { "type": "git", "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", - "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19" + "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/4348a3a06651827a27d989ad1d13efec6bb49b19", - "reference": "4348a3a06651827a27d989ad1d13efec6bb49b19", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/c42125b83a4fa63b187fdf29f9c93cb7733da30c", + "reference": "c42125b83a4fa63b187fdf29f9c93cb7733da30c", "shasum": "" }, "require": { @@ -9862,9 +9861,9 @@ "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", "support": { "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", - "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.5" + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.6" }, - "time": "2022-09-12T13:28:28+00:00" + "time": "2023-01-03T09:29:04+00:00" }, { "name": "twig/cssinliner-extra", @@ -10462,20 +10461,20 @@ }, { "name": "zircote/swagger-php", - "version": "4.5.3", + "version": "4.5.4", "source": { "type": "git", "url": "https://github.com/zircote/swagger-php.git", - "reference": "e505bce612a86fe90f8fd50917e0848afc5d2ba8" + "reference": "09356f4d68d29bdf3254811fb2602a5d5d1788ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zircote/swagger-php/zipball/e505bce612a86fe90f8fd50917e0848afc5d2ba8", - "reference": "e505bce612a86fe90f8fd50917e0848afc5d2ba8", + "url": "https://api.github.com/repos/zircote/swagger-php/zipball/09356f4d68d29bdf3254811fb2602a5d5d1788ea", + "reference": "09356f4d68d29bdf3254811fb2602a5d5d1788ea", "shasum": "" }, "require": { - "doctrine/annotations": "^1.7", + "doctrine/annotations": "^1.7 || ^2.0", "ext-json": "*", "php": ">=7.2", "psr/log": "^1.1 || ^2.0 || ^3.0", @@ -10534,9 +10533,9 @@ ], "support": { "issues": "https://github.com/zircote/swagger-php/issues", - "source": "https://github.com/zircote/swagger-php/tree/4.5.3" + "source": "https://github.com/zircote/swagger-php/tree/4.5.4" }, - "time": "2022-12-21T18:26:59+00:00" + "time": "2023-01-04T00:51:43+00:00" } ], "packages-dev": [ @@ -10746,16 +10745,16 @@ }, { "name": "doctrine/data-fixtures", - "version": "1.6.1", + "version": "1.6.2", "source": { "type": "git", "url": "https://github.com/doctrine/data-fixtures.git", - "reference": "1a4232c15143ca3c127812d19b23a7961c41eeed" + "reference": "d52cc6d392717734fac908768a7319f8a417401a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/1a4232c15143ca3c127812d19b23a7961c41eeed", - "reference": "1a4232c15143ca3c127812d19b23a7961c41eeed", + "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/d52cc6d392717734fac908768a7319f8a417401a", + "reference": "d52cc6d392717734fac908768a7319f8a417401a", "shasum": "" }, "require": { @@ -10808,7 +10807,7 @@ ], "support": { "issues": "https://github.com/doctrine/data-fixtures/issues", - "source": "https://github.com/doctrine/data-fixtures/tree/1.6.1" + "source": "https://github.com/doctrine/data-fixtures/tree/1.6.2" }, "funding": [ { @@ -10824,7 +10823,7 @@ "type": "tidelift" } ], - "time": "2022-12-23T12:13:51+00:00" + "time": "2023-01-05T18:42:27+00:00" }, { "name": "doctrine/doctrine-fixtures-bundle", @@ -10979,16 +10978,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.13.1", + "version": "v3.13.2", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "78d2251dd86b49c609a0fd37c20dcf0a00aea5a7" + "reference": "3952f08a81bd3b1b15e11c3de0b6bf037faa8496" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/78d2251dd86b49c609a0fd37c20dcf0a00aea5a7", - "reference": "78d2251dd86b49c609a0fd37c20dcf0a00aea5a7", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/3952f08a81bd3b1b15e11c3de0b6bf037faa8496", + "reference": "3952f08a81bd3b1b15e11c3de0b6bf037faa8496", "shasum": "" }, "require": { @@ -11056,7 +11055,7 @@ "description": "A tool to automatically fix PHP code style", "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.13.1" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.13.2" }, "funding": [ { @@ -11064,7 +11063,7 @@ "type": "github" } ], - "time": "2022-12-18T00:47:22+00:00" + "time": "2023-01-02T23:53:50+00:00" }, { "name": "nikic/php-parser", @@ -11235,16 +11234,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.9.4", + "version": "1.9.7", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "d03bccee595e2146b7c9d174486b84f4dc61b0f2" + "reference": "0501435cd342eac7664bd62155b1ef907fc60b6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d03bccee595e2146b7c9d174486b84f4dc61b0f2", - "reference": "d03bccee595e2146b7c9d174486b84f4dc61b0f2", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/0501435cd342eac7664bd62155b1ef907fc60b6f", + "reference": "0501435cd342eac7664bd62155b1ef907fc60b6f", "shasum": "" }, "require": { @@ -11274,7 +11273,7 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.9.4" + "source": "https://github.com/phpstan/phpstan/tree/1.9.7" }, "funding": [ { @@ -11290,25 +11289,25 @@ "type": "tidelift" } ], - "time": "2022-12-17T13:33:52+00:00" + "time": "2023-01-04T21:59:57+00:00" }, { "name": "phpstan/phpstan-doctrine", - "version": "1.3.28", + "version": "1.3.29", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-doctrine.git", - "reference": "8302a6a214b8cbbda8249cce6ec627033af26c12" + "reference": "4967ebbc24a2d7e94f5b2f6dad78e0087dd52fc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-doctrine/zipball/8302a6a214b8cbbda8249cce6ec627033af26c12", - "reference": "8302a6a214b8cbbda8249cce6ec627033af26c12", + "url": "https://api.github.com/repos/phpstan/phpstan-doctrine/zipball/4967ebbc24a2d7e94f5b2f6dad78e0087dd52fc3", + "reference": "4967ebbc24a2d7e94f5b2f6dad78e0087dd52fc3", "shasum": "" }, "require": { "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.8.11" + "phpstan/phpstan": "^1.9.7" }, "conflict": { "doctrine/collections": "<1.0", @@ -11357,9 +11356,9 @@ "description": "Doctrine extensions for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-doctrine/issues", - "source": "https://github.com/phpstan/phpstan-doctrine/tree/1.3.28" + "source": "https://github.com/phpstan/phpstan-doctrine/tree/1.3.29" }, - "time": "2022-12-30T21:24:11+00:00" + "time": "2023-01-04T21:51:32+00:00" }, { "name": "phpstan/phpstan-phpunit", diff --git a/phpstan.neon b/phpstan.neon index 97559883..0d8ff59e 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -570,316 +570,6 @@ parameters: count: 1 path: src/Command/InvoiceCreateCommand.php - - - message: "#^Call to an undefined method object\\:\\:getEventManager\\(\\)\\.$#" - count: 3 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Cannot call method getCustomers\\(\\) on App\\\\Entity\\\\Team\\|null\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Cannot call method getId\\(\\) on App\\\\Entity\\\\Customer\\|null\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Cannot call method getName\\(\\) on App\\\\Entity\\\\Team\\|null\\.$#" - count: 4 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Cannot call method getProjects\\(\\) on App\\\\Entity\\\\Team\\|null\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Cannot call method getTimezone\\(\\) on App\\\\Entity\\\\User\\|null\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Cannot call method getUsers\\(\\) on App\\\\Entity\\\\Team\\|null\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Cannot call method hasUsers\\(\\) on App\\\\Entity\\\\Team\\|null\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:countFromImport\\(\\) has parameter \\$where with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:countFromImport\\(\\) should return int but returns mixed\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:createActivity\\(\\) has parameter \\$fixedRates with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:createActivity\\(\\) has parameter \\$oldActivity with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:createActivity\\(\\) has parameter \\$rates with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:createActivity\\(\\) should return App\\\\Entity\\\\Activity but returns App\\\\Entity\\\\Activity\\|null\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:createInstanceTeam\\(\\) has parameter \\$activities with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:createInstanceTeam\\(\\) has parameter \\$users with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:deactivateLifecycleCallbacks\\(\\) has no return type specified\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:fetchAllFromImport\\(\\) has parameter \\$where with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:fetchAllFromImport\\(\\) return type has no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:fetchIteratorFromImport\\(\\) return type has no value type specified in iterable type Traversable\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:importActivities\\(\\) has parameter \\$activities with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:importActivities\\(\\) has parameter \\$fixedRates with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:importActivities\\(\\) has parameter \\$rates with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:importCustomers\\(\\) has parameter \\$customers with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:importProjects\\(\\) has parameter \\$fixedRates with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:importProjects\\(\\) has parameter \\$projects with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:importProjects\\(\\) has parameter \\$rates with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:importTimesheetRecords\\(\\) has parameter \\$fixedRates with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:importTimesheetRecords\\(\\) has parameter \\$rates with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:importUsers\\(\\) has parameter \\$rates with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:importUsers\\(\\) has parameter \\$users with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:isKnownActivity\\(\\) has parameter \\$oldActivity with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:isKnownCustomer\\(\\) has parameter \\$oldCustomer with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:isKnownGroup\\(\\) has parameter \\$oldGroup with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:isKnownProject\\(\\) has parameter \\$oldProject with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:isKnownUser\\(\\) has parameter \\$oldUser with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:prepareOptionsFromInput\\(\\) return type has no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:setActivityCache\\(\\) has parameter \\$oldActivity with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:setCustomerCache\\(\\) has parameter \\$oldCustomer with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:setGroupCache\\(\\) has parameter \\$oldGroup with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:setProjectCache\\(\\) has parameter \\$oldProject with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:setUserCache\\(\\) has parameter \\$oldUser with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:validateKimai1Data\\(\\) has parameter \\$activities with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:validateKimai1Data\\(\\) has parameter \\$customer with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:validateKimai1Data\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:validateKimai1Data\\(\\) has parameter \\$projects with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:validateKimai1Data\\(\\) has parameter \\$rates with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:validateKimai1Data\\(\\) has parameter \\$users with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:validateKimai1Data\\(\\) return type has no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Method App\\\\Command\\\\KimaiImporterCommand\\:\\:validateOptions\\(\\) has parameter \\$options with no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Parameter \\#1 \\$customer of method App\\\\Entity\\\\Team\\:\\:addCustomer\\(\\) expects App\\\\Entity\\\\Customer, App\\\\Entity\\\\Customer\\|null given\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Parameter \\#1 \\$name of method App\\\\Entity\\\\TimesheetMeta\\:\\:setName\\(\\) expects string, mixed given\\.$#" - count: 3 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Parameter \\#1 \\$object of method Doctrine\\\\Persistence\\\\ObjectManager\\:\\:persist\\(\\) expects object, App\\\\Entity\\\\Team\\|null given\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Parameter \\#1 \\$string of function strtolower expects string, string\\|null given\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Parameter \\#1 \\$user of method App\\\\Entity\\\\Team\\:\\:addTeamlead\\(\\) expects App\\\\Entity\\\\User, App\\\\Entity\\\\User\\|null given\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Parameter \\#1 \\$user of method App\\\\Entity\\\\Team\\:\\:addUser\\(\\) expects App\\\\Entity\\\\User, App\\\\Entity\\\\User\\|null given\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Parameter \\#1 \\$user of method App\\\\Entity\\\\Timesheet\\:\\:setUser\\(\\) expects App\\\\Entity\\\\User, App\\\\Entity\\\\User\\|null given\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Parameter \\#2 \\$object of method App\\\\Command\\\\KimaiImporterCommand\\:\\:validateImport\\(\\) expects object, App\\\\Entity\\\\Team\\|null given\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Parameter \\#2 \\$plainPassword of method Symfony\\\\Component\\\\PasswordHasher\\\\Hasher\\\\UserPasswordHasherInterface\\:\\:hashPassword\\(\\) expects string, string\\|null given\\.$#" - count: 2 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Parameter \\#2 \\$team of method App\\\\Command\\\\KimaiImporterCommand\\:\\:setGroupCache\\(\\) expects App\\\\Entity\\\\Team, App\\\\Entity\\\\Team\\|null given\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Parameter \\#2 \\$version2 of function version_compare expects string, mixed given\\.$#" - count: 2 - path: src/Command/KimaiImporterCommand.php - - - - message: "#^Property App\\\\Command\\\\KimaiImporterCommand\\:\\:\\$oldActivities type has no value type specified in iterable type array\\.$#" - count: 1 - path: src/Command/KimaiImporterCommand.php - - message: "#^Cannot call method getKimaiVersion\\(\\) on App\\\\Plugin\\\\PluginMetadata\\|null\\.$#" count: 1 @@ -6761,7 +6451,7 @@ parameters: path: src/Project/ProjectStatisticService.php - - message: "#^Strict comparison using \\!\\=\\= between null and array\\| {{ 'invoice.from'|trans }} | +{{ 'invoice.from'|trans }} | {% if model.query.user is not empty %} {{ widgets.username(model.query.user) }} @@ -27,7 +27,7 @@ | |||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ 'date'|trans }} | +{{ 'date'|trans }} | {% if model.query.begin|date('m') != model.query.end|date('m') or model.query.begin|date('Y') != model.query.end|date('Y') %} {{ model.query.begin|date_short }} - {{ model.query.end|date_short }} @@ -37,7 +37,7 @@ | |||||||||||||||||||||||||||||||||||||||
| {{ 'customer'|trans }} | +{{ 'customer'|trans }} | {% if model.customer.number is not empty %}[{{ model.customer.number }}]{% endif %} {{ model.customer.name }}{% if model.customer.contact is not empty %} / {{ model.customer.contact }}{% endif %} @@ -45,7 +45,7 @@ | |||||||||||||||||||||||||||||||||||||||
| {{ 'project'|trans }} | +{{ 'project'|trans }} | {{ project.name }} {% if project.orderNumber is not empty %} @@ -56,7 +56,7 @@ {% endif %} {% if activity is not null %} | |||||||||||||||||||||||||||||||||||||||
| {{ 'activity'|trans }} | +{{ 'activity'|trans }} | {{ activity.name }} | @@ -66,7 +66,7 @@ -
| {{ 'invoice.signature_user'|trans }} | -
|---|
| {{ 'invoice.signature_customer'|trans }} | -
{{ 'invoice.signature_user'|trans }}
+{{ 'invoice.signature_customer'|trans }}