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; $copyTimesheet = clone $timesheet;
$form = $this->getDuplicateForm($timesheet); $form = $this->getDuplicateForm($copyTimesheet, $timesheet);
$form->handleRequest($request); $form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) { if ($form->isSubmitted() && $form->isValid()) {
@@ -605,7 +605,7 @@ abstract class TimesheetAbstractController extends AbstractController
return $query; 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; 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')); 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')); 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 protected function getPermissionEditExport(): string

View File

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