fix duplicating timesheet if allow overlapping is deactivated (#2732)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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()]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user