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;
|
$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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user