From 80990c9edc4078ede6e19d1eff7b6328cc48f32c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Sat, 14 Oct 2023 16:55:08 +0200 Subject: [PATCH] Feat: Assign potential comment to upload for later use --- .../Admin/Document/CheckController.php | 9 ++++++--- src/Entity/Upload.php | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/Controller/Admin/Document/CheckController.php b/src/Controller/Admin/Document/CheckController.php index 264eb3b..08489e3 100644 --- a/src/Controller/Admin/Document/CheckController.php +++ b/src/Controller/Admin/Document/CheckController.php @@ -57,7 +57,7 @@ class CheckController extends AbstractController $this->confirmDocument($document, 'confirm_invoice', Upload::STATUS_PAID); break; case Upload::STATUS_REJECTED: - $this->rejectDocument($document); + $this->rejectDocument($document, $formData->getComment()); $this->eventDispatcher->dispatch(new DocumentRejectedEvent($formData), DocumentRejectedEvent::NAME); } @@ -73,11 +73,14 @@ class CheckController extends AbstractController return $this->json($response); } - private function rejectDocument(Upload $document): void + private function rejectDocument(Upload $document, string $comment = null): void { $transition = Upload::TYPE_CONTRACT === $document->getType() ? 'reject_contract' : 'reject_invoice'; $this->workflow->apply($document->getDisposition(), $transition); - $document->setStatus(Upload::STATUS_REJECTED); + $document + ->setStatus(Upload::STATUS_REJECTED) + ->setComment($comment) + ; $this->entityManager->flush(); $this->addFlash('success', 'Das Dokument wurde abgelehnt'); diff --git a/src/Entity/Upload.php b/src/Entity/Upload.php index f531601..85eadd9 100644 --- a/src/Entity/Upload.php +++ b/src/Entity/Upload.php @@ -6,6 +6,7 @@ use App\Entity\Traits\BlameableEntity; use App\Entity\Traits\TimestampableEntity; use App\Model\UploadDto; use App\Repository\UploadRepository; +use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Uid\Uuid; @@ -61,6 +62,9 @@ class Upload implements BlameableEntityInterface, TimestampableEntityInterface #[ORM\ManyToOne(inversedBy: 'documents')] private ?Disposition $disposition = null; + #[ORM\Column(type: Types::TEXT, nullable: true)] + private ?string $comment = null; + public function __construct() { $this->uuid = Uuid::v4(); @@ -198,4 +202,16 @@ class Upload implements BlameableEntityInterface, TimestampableEntityInterface return $this; } + + public function getComment(): ?string + { + return $this->comment; + } + + public function setComment(?string $comment): static + { + $this->comment = $comment; + + return $this; + } }