Configurable rate rounding (#5734)

* added invoice hydration of the issuer object
* added "rate calculator" mode
* new config to select rounding mode
* replace static calls with dependency injection
This commit is contained in:
Kevin Papst
2025-12-16 16:47:46 +01:00
committed by GitHub
parent 07ac6c308f
commit 595b5f4b25
43 changed files with 876 additions and 411 deletions

View File

@@ -12,11 +12,14 @@ namespace App\Tests\Timesheet;
use App\Timesheet\Util;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\Group;
use PHPUnit\Framework\TestCase;
#[Group('legacy')]
#[CoversClass(Util::class)]
class UtilTest extends TestCase
{
#[Group('legacy')]
#[DataProvider('getRateCalculationData')]
public function testCalculateRate(float $hourlyRate, int $duration, float $expectedRate): void
{
@@ -42,6 +45,7 @@ class UtilTest extends TestCase
yield [7360.99, 1234, 2502.74];
}
#[Group('legacy')]
public function testCalculateRateWithRounding(): void
{
$total = 0.00;
@@ -82,6 +86,7 @@ class UtilTest extends TestCase
self::assertEqualsWithDelta(149176.3, $total, 0.00001);
}
#[Group('legacy')]
public function testDecimalDuration(): void
{
$inputs = [