diff --git a/src/Controller/Teamer/Disposition/DetailController.php b/src/Controller/Teamer/Disposition/DetailController.php index e8a159d..3c28852 100644 --- a/src/Controller/Teamer/Disposition/DetailController.php +++ b/src/Controller/Teamer/Disposition/DetailController.php @@ -46,7 +46,10 @@ class DetailController extends AbstractController $isUploadInvoice = $this->workflow->can($disposition, 'upload_invoice'); // Create dummy form without fields to generate POST requests - $form = $this->createForm(TeamerDispositionType::class, $disposition, ['enable_pickup' => $isUploadContract]); + $form = $this->createForm(TeamerDispositionType::class, $disposition, [ + 'enable_pickup' => $isUploadContract, + 'enable_invoice_confirmation' => $isUploadInvoice, + ]); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { diff --git a/src/Form/TeamerDispositionType.php b/src/Form/TeamerDispositionType.php index 4051a95..701b821 100644 --- a/src/Form/TeamerDispositionType.php +++ b/src/Form/TeamerDispositionType.php @@ -4,11 +4,13 @@ namespace App\Form; use App\Entity\Disposition; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; use Symfony\Component\OptionsResolver\OptionsResolver; +use Symfony\Component\Validator\Constraints\IsTrue; class TeamerDispositionType extends AbstractType { @@ -34,6 +36,18 @@ class TeamerDispositionType extends AbstractType } }); } + + if (true === $options['enable_invoice_confirmation']) { + $builder->add('confirmInvoiceData', CheckboxType::class, [ + 'label' => 'Ich bestätige, dass meine persönlichen Daten, Bankverbindung und Kontoinhaber korrekt sind', + 'mapped' => false, + 'constraints' => [ + new IsTrue([ + 'message' => 'Deine Bestätigung ist erforderlich', + ]), + ], + ]); + } } public function configureOptions(OptionsResolver $resolver): void @@ -41,6 +55,7 @@ class TeamerDispositionType extends AbstractType $resolver->setDefaults([ 'data_class' => Disposition::class, 'enable_pickup' => false, + 'enable_invoice_confirmation' => false, ]); } } diff --git a/templates/teamer/disposition/detail.html.twig b/templates/teamer/disposition/detail.html.twig index eda044e..dec5754 100644 --- a/templates/teamer/disposition/detail.html.twig +++ b/templates/teamer/disposition/detail.html.twig @@ -108,6 +108,9 @@ 'endpoint_upload': path('_uploader_upload_invoice'), 'accepted_files': 'image/jpg,image/jpeg,application/pdf', } %} + {% if form.confirmInvoiceData is defined %} + {{ form_row(form.confirmInvoiceData) }} + {% endif %}