fix duplicating timesheet if allow overlapping is deactivated (#2732)

This commit is contained in:
Kevin Papst
2021-08-25 19:31:48 +02:00
committed by GitHub
parent 5023fa6189
commit fae525c82f
4 changed files with 7 additions and 6 deletions

View File

@@ -215,7 +215,7 @@ abstract class TimesheetAbstractController extends AbstractController
{
$copyTimesheet = clone $timesheet;
$form = $this->getDuplicateForm($timesheet);
$form = $this->getDuplicateForm($copyTimesheet, $timesheet);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
@@ -605,7 +605,7 @@ abstract class TimesheetAbstractController extends AbstractController
return $query;
}
abstract protected function getDuplicateForm(Timesheet $entry): FormInterface;
abstract protected function getDuplicateForm(Timesheet $entry, Timesheet $original): FormInterface;
abstract protected function getCreateForm(Timesheet $entry): FormInterface;
}

View File

@@ -100,8 +100,8 @@ class TimesheetController extends TimesheetAbstractController
return $this->generateCreateForm($entry, TimesheetEditForm::class, $this->generateUrl('timesheet_create'));
}
protected function getDuplicateForm(Timesheet $entry): FormInterface
protected function getDuplicateForm(Timesheet $entry, Timesheet $original): FormInterface
{
return $this->generateCreateForm($entry, TimesheetEditForm::class, $this->generateUrl('timesheet_duplicate', ['id' => $entry->getId()]));
return $this->generateCreateForm($entry, TimesheetEditForm::class, $this->generateUrl('timesheet_duplicate', ['id' => $original->getId()]));
}
}

View File

@@ -195,9 +195,9 @@ class TimesheetTeamController extends TimesheetAbstractController
return $this->generateCreateForm($entry, TimesheetAdminEditForm::class, $this->generateUrl('admin_timesheet_create'));
}
protected function getDuplicateForm(Timesheet $entry): FormInterface
protected function getDuplicateForm(Timesheet $entry, Timesheet $original): FormInterface
{
return $this->generateCreateForm($entry, TimesheetAdminEditForm::class, $this->generateUrl('admin_timesheet_duplicate', ['id' => $entry->getId()]));
return $this->generateCreateForm($entry, TimesheetAdminEditForm::class, $this->generateUrl('admin_timesheet_duplicate', ['id' => $original->getId()]));
}
protected function getPermissionEditExport(): string

View File

@@ -155,6 +155,7 @@ final class TimesheetService
$this->repository->save($timesheet);
$this->dispatcher->dispatch(new TimesheetCreatePostEvent($timesheet));
// TODO really stop always or only if $timesheet->getEnd() === null
try {
$this->stopActiveEntries($timesheet);
} catch (ValidationFailedException $vex) {