diff --git a/src/EventListener/DispositionWorkflowGuardSubscriber.php b/src/EventListener/DispositionWorkflowGuardSubscriber.php index 2a9852f..85d12c3 100644 --- a/src/EventListener/DispositionWorkflowGuardSubscriber.php +++ b/src/EventListener/DispositionWorkflowGuardSubscriber.php @@ -69,6 +69,16 @@ class DispositionWorkflowGuardSubscriber implements EventSubscriberInterface $destination = $assignment->getDestination(); $today = new \DateTimeImmutable(); + $contractDocument = $disposition->getDocumentByType(Upload::TYPE_CONTRACT); + + if (null === $contractDocument || Upload::STATUS_CHECKED !== $contractDocument->getStatus()) { + $message = $this + ->translator + ->trans('message.upload_invoice.contract_missing_or_not_checked') + ; + $event->setBlocked(true, $message); + } + $earliestDate = $destination->getDateFrom(); if ($earliestDate > $today) { diff --git a/translations/messages.de.yaml b/translations/messages.de.yaml index 01e8bcd..05f200a 100644 --- a/translations/messages.de.yaml +++ b/translations/messages.de.yaml @@ -28,6 +28,7 @@ message: upload_contract: too_late: 'Die Frist für den Upload des Honorarvertrages ist abgelaufen (%date_from% - %date_to%). Bitte wende dich an deinen Ansprechpartner.' upload_invoice: + contract_missing_or_not_checked: 'Der Honorarvertrag wurde noch nicht hochgeladen oder ist noch nicht geprüft worden.' too_early: 'Du kannst deine Honorarnote mit Beginn deines Einsatzes ab dem %date% einreichen.' too_late: 'Du hättest deine Honorarnote bis zum %date% einreichen müssen. Bitte wende dich an deinen Ansprechpartner.' confirm_invoice: