Allow to recalculate rates via bulk edit (#1768)
This commit is contained in:
@@ -330,14 +330,21 @@ abstract class TimesheetAbstractController extends AbstractController
|
||||
$timesheet->setExported($dto->isExported());
|
||||
$execute = true;
|
||||
}
|
||||
// setting both values allows to erase wrong
|
||||
if (null !== $dto->getHourlyRate()) {
|
||||
|
||||
if ($dto->isRecalculateRates()) {
|
||||
$timesheet->setFixedRate(null);
|
||||
$timesheet->setHourlyRate($dto->getHourlyRate());
|
||||
$timesheet->setHourlyRate(null);
|
||||
$timesheet->setInternalRate(null);
|
||||
$execute = true;
|
||||
} elseif (null !== $dto->getFixedRate()) {
|
||||
$timesheet->setFixedRate($dto->getFixedRate());
|
||||
$timesheet->setHourlyRate(null);
|
||||
$timesheet->setInternalRate(null);
|
||||
$execute = true;
|
||||
} elseif (null !== $dto->getHourlyRate()) {
|
||||
$timesheet->setFixedRate(null);
|
||||
$timesheet->setInternalRate(null);
|
||||
$timesheet->setHourlyRate($dto->getHourlyRate());
|
||||
$execute = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -198,12 +198,16 @@ class TimesheetMultiUpdate extends AbstractType
|
||||
|
||||
if ($options['include_rate']) {
|
||||
$builder
|
||||
->add('recalculateRates', YesNoType::class, [
|
||||
'label' => 'label.recalculate_rates',
|
||||
])
|
||||
->add('fixedRate', FixedRateType::class, [
|
||||
'currency' => $currency,
|
||||
])
|
||||
->add('hourlyRate', HourlyRateType::class, [
|
||||
'currency' => $currency,
|
||||
]);
|
||||
])
|
||||
;
|
||||
}
|
||||
|
||||
$builder->add('entities', HiddenType::class, [
|
||||
|
||||
@@ -29,6 +29,10 @@ class TimesheetMultiUpdateDTO extends MultiUpdateTableDTO
|
||||
* @var bool
|
||||
*/
|
||||
private $replaceTags = false;
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
private $recalculateRates = false;
|
||||
/**
|
||||
* @var Customer|null
|
||||
*/
|
||||
@@ -50,13 +54,13 @@ class TimesheetMultiUpdateDTO extends MultiUpdateTableDTO
|
||||
*/
|
||||
private $exported = null;
|
||||
/**
|
||||
* @var float
|
||||
* @var float|null
|
||||
*/
|
||||
private $fixedRate;
|
||||
private $fixedRate = null;
|
||||
/**
|
||||
* @var float
|
||||
* @var float|null
|
||||
*/
|
||||
private $hourlyRate;
|
||||
private $hourlyRate = null;
|
||||
|
||||
public function getCustomer(): ?Customer
|
||||
{
|
||||
@@ -133,6 +137,18 @@ class TimesheetMultiUpdateDTO extends MultiUpdateTableDTO
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function isRecalculateRates(): bool
|
||||
{
|
||||
return $this->recalculateRates;
|
||||
}
|
||||
|
||||
public function setRecalculateRates(bool $recalculateRates): TimesheetMultiUpdateDTO
|
||||
{
|
||||
$this->recalculateRates = $recalculateRates;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function isReplaceTags(): bool
|
||||
{
|
||||
return $this->replaceTags;
|
||||
|
||||
@@ -278,9 +278,9 @@ mpdf-->
|
||||
{% set entryRateInternal = '–' %}
|
||||
{% endif %}
|
||||
{% if showInternalRate %}
|
||||
<td class="cost">{{ entryRate }}</td>
|
||||
<td class="cost">{{ entryRateInternal }}</td>
|
||||
{% endif %}
|
||||
<td class="cost">{{ entryRateInternal }}</td>
|
||||
<td class="cost">{{ entryRate }}</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
@@ -304,6 +304,10 @@
|
||||
<source>help.rate_internal</source>
|
||||
<target>Interner Verrechnungswert (wenn dieser nicht angegeben ist, wird der normale Satz verwendet)</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.recalculate_rates">
|
||||
<source>label.recalculate_rates</source>
|
||||
<target>Preise neu berechnen</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.language">
|
||||
<source>label.language</source>
|
||||
<target>Sprache</target>
|
||||
|
||||
@@ -304,6 +304,10 @@
|
||||
<source>help.rate_internal</source>
|
||||
<target>Internal costs (if this is not specified, the normal rate is used)</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.recalculate_rates">
|
||||
<source>label.recalculate_rates</source>
|
||||
<target>Recalculate rates</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="label.language">
|
||||
<source>label.language</source>
|
||||
<target>Language</target>
|
||||
|
||||
Reference in New Issue
Block a user