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:
Kevin Papst
2020-01-31 17:07:14 +01:00
committed by GitHub
parent 9e2fccb105
commit 3ff46e06c0
53 changed files with 1964 additions and 1634 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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);
}
/**

View File

@@ -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);
}
/**

View File

@@ -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);
}
/**

View File

@@ -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);
}
/**

View File

@@ -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

View File

@@ -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);
}