Files
kimai2/src/Timesheet/Calculator/RateCalculator.php

48 lines
1.1 KiB
PHP

<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Timesheet\Calculator;
use App\Entity\Rate;
use App\Entity\Timesheet;
use App\Timesheet\CalculatorInterface;
use App\Timesheet\RateService;
/**
* Implementation to calculate the rate for a timesheet record.
*/
class RateCalculator implements CalculatorInterface
{
/**
* @var RateService
*/
private $service;
public function __construct(RateService $service)
{
$this->service = $service;
}
public function calculate(Timesheet $record)
{
$rate = $this->service->calculate($record);
$record->setRate($rate->getRate());
$record->setInternalRate($rate->getInternalRate());
if ($rate->getHourlyRate() !== null) {
$record->setHourlyRate($rate->getHourlyRate());
}
if ($rate->getFixedRate() !== null) {
$record->setFixedRate($rate->getFixedRate());
}
}
}