diff --git a/src/API/TimesheetController.php b/src/API/TimesheetController.php index 7b7396af..1a63a5ce 100644 --- a/src/API/TimesheetController.php +++ b/src/API/TimesheetController.php @@ -194,10 +194,13 @@ class TimesheetController extends BaseApiController } } - $this->repository->stopActiveEntries( - $timesheet->getUser(), - $this->hardLimit - ); + if (null === $timesheet->getEnd()) { + $this->repository->stopActiveEntries( + $timesheet->getUser(), + $this->hardLimit + ); + } + $entityManager = $this->getDoctrine()->getManager(); $entityManager->persist($timesheet); $entityManager->flush(); diff --git a/src/Controller/TimesheetController.php b/src/Controller/TimesheetController.php index 28fcd97f..2fd0ddaa 100644 --- a/src/Controller/TimesheetController.php +++ b/src/Controller/TimesheetController.php @@ -165,11 +165,12 @@ class TimesheetController extends AbstractController if (count($errors) > 0) { $this->flashError('timesheet.start.error', ['%reason%' => $errors[0]->getPropertyPath() . ' = ' . $errors[0]->getMessage()]); } else { - $entityManager = $this->getDoctrine()->getManager(); - $entityManager->persist($entry); $this->stopActiveEntries($user); + $entityManager = $this->getDoctrine()->getManager(); + $entityManager->persist($entry); $entityManager->flush(); + $this->flashSuccess('timesheet.start.success'); } } catch (\Exception $ex) { diff --git a/src/Controller/TimesheetControllerTrait.php b/src/Controller/TimesheetControllerTrait.php index 80f23422..918f1bae 100644 --- a/src/Controller/TimesheetControllerTrait.php +++ b/src/Controller/TimesheetControllerTrait.php @@ -172,7 +172,9 @@ trait TimesheetControllerTrait $entityManager = $this->getDoctrine()->getManager(); try { - $this->stopActiveEntries($entry->getUser()); + if (null === $entry->getEnd()) { + $this->stopActiveEntries($entry->getUser()); + } $entityManager->persist($entry); $entityManager->flush(); diff --git a/templates/calendar/user.html.twig b/templates/calendar/user.html.twig index 345d2af6..48d4c440 100644 --- a/templates/calendar/user.html.twig +++ b/templates/calendar/user.html.twig @@ -5,7 +5,7 @@ {% block page_title %}{{ 'calendar.title'|trans }}{% endblock %} {% block page_subtitle %}{{ 'calendar.subtitle'|trans }}{% endblock %} -{% block page_actions %}{{ widgets.page_actions({'list': path('timesheet'), 'create': path('timesheet_create')}) }}{% endblock %} +{% block page_actions %}{{ widgets.page_actions({'list': path('timesheet'), 'create': path('timesheet_create', {'origin': 'calendar'})}) }}{% endblock %} {% block main %}