Next major version 2 with PHP 8.1, Symfony 6, Tabler UI, 2FA ... (#2902)
This commit is contained in:
@@ -19,19 +19,8 @@ use App\Repository\TimesheetRepository;
|
||||
*/
|
||||
final class RateService implements RateServiceInterface
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $rates;
|
||||
/**
|
||||
* @var TimesheetRepository
|
||||
*/
|
||||
private $repository;
|
||||
|
||||
public function __construct(array $rates, TimesheetRepository $repository)
|
||||
public function __construct(private array $rates, private TimesheetRepository $repository)
|
||||
{
|
||||
$this->rates = $rates;
|
||||
$this->repository = $repository;
|
||||
}
|
||||
|
||||
public function calculate(Timesheet $record): Rate
|
||||
@@ -49,13 +38,13 @@ final class RateService implements RateServiceInterface
|
||||
|
||||
if (null !== $rate) {
|
||||
if ($rate->isFixed()) {
|
||||
$fixedRate = $fixedRate ?? $rate->getRate();
|
||||
$fixedRate ??= $rate->getRate();
|
||||
$fixedInternalRate = $rate->getRate();
|
||||
if (null !== $rate->getInternalRate()) {
|
||||
$fixedInternalRate = $rate->getInternalRate();
|
||||
}
|
||||
} else {
|
||||
$hourlyRate = $hourlyRate ?? $rate->getRate();
|
||||
$hourlyRate ??= $rate->getRate();
|
||||
$internalRate = $rate->getRate();
|
||||
if (null !== $rate->getInternalRate()) {
|
||||
$internalRate = $rate->getInternalRate();
|
||||
@@ -86,8 +75,8 @@ final class RateService implements RateServiceInterface
|
||||
$factor = $this->getRateFactor($record);
|
||||
}
|
||||
|
||||
$factoredHourlyRate = (float) ($hourlyRate * $factor);
|
||||
$factoredInternalRate = (float) ($internalRate * $factor);
|
||||
$factoredHourlyRate = $hourlyRate * $factor;
|
||||
$factoredInternalRate = $internalRate * $factor;
|
||||
$totalRate = 0;
|
||||
$totalInternalRate = 0;
|
||||
|
||||
@@ -130,7 +119,7 @@ final class RateService implements RateServiceInterface
|
||||
$weekday = $record->getEnd()->format('l');
|
||||
$days = array_map('strtolower', $rateFactor['days']);
|
||||
if (\in_array(strtolower($weekday), $days)) {
|
||||
$factor += $rateFactor['factor'];
|
||||
$factor += (float) $rateFactor['factor'];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,6 +127,6 @@ final class RateService implements RateServiceInterface
|
||||
$factor = 1.00;
|
||||
}
|
||||
|
||||
return (float) $factor;
|
||||
return $factor;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user