support custom fields for timesheets, customers, projects and activities (#871)

This commit is contained in:
Kevin Papst
2019-06-26 00:39:05 +02:00
committed by GitHub
parent 994c671fd8
commit d8621f0b7a
103 changed files with 2567 additions and 238 deletions

View File

@@ -82,6 +82,7 @@ trait RendererTrait
{
$customer = $model->getCustomer();
$project = $model->getQuery()->getProject();
$activity = $model->getQuery()->getActivity();
$currency = $model->getCalculator()->getCurrency();
$values = [
@@ -108,6 +109,20 @@ trait RendererTrait
'query.year' => $model->getQuery()->getBegin()->format('Y'),
];
if (null !== $activity) {
$values = array_merge($values, [
'activity.id' => $activity->getId(),
'activity.name' => $activity->getName(),
'activity.comment' => $activity->getComment(),
]);
foreach ($activity->getVisibleMetaFields() as $metaField) {
$values = array_merge($values, [
'activity.meta.' . $metaField->getName() => $metaField->getValue(),
]);
}
}
if (null !== $project) {
$values = array_merge($values, [
'project.id' => $project->getId(),
@@ -115,6 +130,12 @@ trait RendererTrait
'project.comment' => $project->getComment(),
'project.order_number' => $project->getOrderNumber(),
]);
foreach ($project->getVisibleMetaFields() as $metaField) {
$values = array_merge($values, [
'project.meta.' . $metaField->getName() => $metaField->getValue(),
]);
}
}
if (null !== $customer) {
@@ -129,6 +150,12 @@ trait RendererTrait
'customer.homepage' => $customer->getHomepage(),
'customer.comment' => $customer->getComment(),
]);
foreach ($customer->getVisibleMetaFields() as $metaField) {
$values = array_merge($values, [
'customer.meta.' . $metaField->getName() => $metaField->getValue(),
]);
}
}
return $values;
@@ -169,7 +196,7 @@ trait RendererTrait
$begin = $timesheet->getBegin();
$end = $timesheet->getEnd();
return [
$values = [
'entry.row' => '',
'entry.description' => $description,
'entry.amount' => $amount,
@@ -196,6 +223,14 @@ trait RendererTrait
'entry.customer' => $customer->getName(),
'entry.customer_id' => $customer->getId(),
];
foreach ($timesheet->getVisibleMetaFields() as $metaField) {
$values = array_merge($values, [
'entry.meta.' . $metaField->getName() => $metaField->getValue(),
]);
}
return $values;
}
/**