code improvements (#1423)
* removed unused mapping information * added support for further field types * fixed changing date objects for begin and end * added more project fields as invoice variables * theme update and asset rebuild
This commit is contained in:
@@ -234,7 +234,9 @@ class TimesheetFixtures extends Fixture implements DependentFixtureInterface
|
||||
->setDuration($duration);
|
||||
} else {
|
||||
// running entries should be short
|
||||
$entry->getBegin()->setTimestamp(time())->modify('- ' . rand(10, self::TIMERANGE_RUNNING) . ' minutes');
|
||||
$newBegin = clone $entry->getBegin();
|
||||
$newBegin->setTimestamp(time())->modify('- ' . rand(10, self::TIMERANGE_RUNNING) . ' minutes');
|
||||
$entry->setBegin($newBegin);
|
||||
}
|
||||
|
||||
return $entry;
|
||||
|
||||
@@ -17,7 +17,7 @@ trait BudgetTrait
|
||||
/**
|
||||
* @var float
|
||||
*
|
||||
* @ORM\Column(name="budget", type="float", precision=10, scale=2, nullable=false)
|
||||
* @ORM\Column(name="budget", type="float", nullable=false)
|
||||
* @Assert\NotNull()
|
||||
*/
|
||||
private $budget = 0.00;
|
||||
|
||||
@@ -17,7 +17,7 @@ trait RatesTrait
|
||||
/**
|
||||
* @var float
|
||||
*
|
||||
* @ORM\Column(name="fixed_rate", type="float", precision=10, scale=2, nullable=true)
|
||||
* @ORM\Column(name="fixed_rate", type="float", nullable=true)
|
||||
* @Assert\GreaterThanOrEqual(0)
|
||||
*/
|
||||
private $fixedRate = null;
|
||||
@@ -25,7 +25,7 @@ trait RatesTrait
|
||||
/**
|
||||
* @var float
|
||||
*
|
||||
* @ORM\Column(name="hourly_rate", type="float", precision=10, scale=2, nullable=true)
|
||||
* @ORM\Column(name="hourly_rate", type="float", nullable=true)
|
||||
* @Assert\GreaterThanOrEqual(0)
|
||||
*/
|
||||
private $hourlyRate = null;
|
||||
|
||||
@@ -125,7 +125,7 @@ class Timesheet implements EntityWithMetaFields, ExportItemInterface
|
||||
/**
|
||||
* @var float
|
||||
*
|
||||
* @ORM\Column(name="rate", type="float", precision=10, scale=2, nullable=false)
|
||||
* @ORM\Column(name="rate", type="float", nullable=false)
|
||||
* @Assert\GreaterThanOrEqual(0)
|
||||
*/
|
||||
private $rate = 0.00;
|
||||
|
||||
@@ -313,6 +313,12 @@ final class InvoiceModel
|
||||
'project.hourly_rate' => $formatter->getFormattedMoney($project->getHourlyRate(), $currency),
|
||||
'project.hourly_rate_nc' => $formatter->getFormattedMoney($project->getHourlyRate(), null),
|
||||
'project.hourly_rate_plain' => $project->getHourlyRate(),
|
||||
'project.budget_money' => $formatter->getFormattedMoney($project->getBudget(), $currency),
|
||||
'project.budget_money_nc' => $formatter->getFormattedMoney($project->getBudget(), null),
|
||||
'project.budget_money_plain' => $project->getBudget(),
|
||||
'project.budget_time' => $project->getTimeBudget(),
|
||||
'project.budget_time_decimal' => $formatter->getFormattedDecimalDuration($project->getTimeBudget()),
|
||||
'project.budget_time_minutes' => number_format($project->getTimeBudget() / 60),
|
||||
]);
|
||||
|
||||
foreach ($project->getVisibleMetaFields() as $metaField) {
|
||||
|
||||
@@ -36,7 +36,9 @@ final class CeilRounding implements RoundingInterface
|
||||
return;
|
||||
}
|
||||
|
||||
$record->getBegin()->setTimestamp($timestamp - $diff + $seconds);
|
||||
$newBegin = clone $record->getBegin();
|
||||
$newBegin->setTimestamp($timestamp - $diff + $seconds);
|
||||
$record->setBegin($newBegin);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -57,7 +59,9 @@ final class CeilRounding implements RoundingInterface
|
||||
return;
|
||||
}
|
||||
|
||||
$record->getEnd()->setTimestamp($timestamp - $diff + $seconds);
|
||||
$newEnd = clone $record->getEnd();
|
||||
$newEnd->setTimestamp($timestamp - $diff + $seconds);
|
||||
$record->setEnd($newEnd);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -36,11 +36,13 @@ final class ClosestRounding implements RoundingInterface
|
||||
return;
|
||||
}
|
||||
|
||||
$newBegin = clone $record->getBegin();
|
||||
if ($diff > ($seconds / 2)) {
|
||||
$record->getBegin()->setTimestamp($timestamp - $diff + $seconds);
|
||||
$newBegin->setTimestamp($timestamp - $diff + $seconds);
|
||||
} else {
|
||||
$record->getBegin()->setTimestamp($timestamp - $diff);
|
||||
$newBegin->setTimestamp($timestamp - $diff);
|
||||
}
|
||||
$record->setBegin($newBegin);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -61,11 +63,13 @@ final class ClosestRounding implements RoundingInterface
|
||||
return;
|
||||
}
|
||||
|
||||
$newEnd = clone $record->getEnd();
|
||||
if ($diff > ($seconds / 2)) {
|
||||
$record->getEnd()->setTimestamp($timestamp - $diff + $seconds);
|
||||
$newEnd->setTimestamp($timestamp - $diff + $seconds);
|
||||
} else {
|
||||
$record->getEnd()->setTimestamp($timestamp - $diff);
|
||||
$newEnd->setTimestamp($timestamp - $diff);
|
||||
}
|
||||
$record->setEnd($newEnd);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -36,7 +36,9 @@ final class DefaultRounding implements RoundingInterface
|
||||
return;
|
||||
}
|
||||
|
||||
$record->getBegin()->setTimestamp($timestamp - $diff);
|
||||
$newBegin = clone $record->getBegin();
|
||||
$newBegin->setTimestamp($timestamp - $diff);
|
||||
$record->setBegin($newBegin);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -57,7 +59,9 @@ final class DefaultRounding implements RoundingInterface
|
||||
return;
|
||||
}
|
||||
|
||||
$record->getEnd()->setTimestamp($timestamp - $diff + $seconds);
|
||||
$newEnd = clone $record->getEnd();
|
||||
$newEnd->setTimestamp($timestamp - $diff + $seconds);
|
||||
$record->setEnd($newEnd);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -36,7 +36,9 @@ final class FloorRounding implements RoundingInterface
|
||||
return;
|
||||
}
|
||||
|
||||
$record->getBegin()->setTimestamp($timestamp - $diff);
|
||||
$newBegin = clone $record->getBegin();
|
||||
$newBegin->setTimestamp($timestamp - $diff);
|
||||
$record->setBegin($newBegin);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -57,7 +59,9 @@ final class FloorRounding implements RoundingInterface
|
||||
return;
|
||||
}
|
||||
|
||||
$record->getEnd()->setTimestamp($timestamp - $diff);
|
||||
$newEnd = clone $record->getEnd();
|
||||
$newEnd->setTimestamp($timestamp - $diff);
|
||||
$record->setEnd($newEnd);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -57,7 +57,9 @@ final class DurationFixedBeginMode implements TrackingModeInterface
|
||||
$timesheet->setBegin($this->dateTime->createDateTime());
|
||||
}
|
||||
|
||||
$timesheet->getBegin()->modify($this->configuration->getDefaultBeginTime());
|
||||
$newBegin = clone $timesheet->getBegin();
|
||||
$newBegin->modify($this->configuration->getDefaultBeginTime());
|
||||
$timesheet->setBegin($newBegin);
|
||||
}
|
||||
|
||||
public function getId(): string
|
||||
|
||||
@@ -50,7 +50,9 @@ final class DurationOnlyMode extends AbstractTrackingMode
|
||||
$timesheet->setBegin($this->dateTime->createDateTime());
|
||||
}
|
||||
|
||||
$timesheet->getBegin()->modify($this->configuration->getDefaultBeginTime());
|
||||
$newBegin = clone $timesheet->getBegin();
|
||||
$newBegin->modify($this->configuration->getDefaultBeginTime());
|
||||
$timesheet->setBegin($newBegin);
|
||||
|
||||
parent::create($timesheet, $request);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user