<?php
declare(strict_types=1);
/**
* @author Mehrez Labidi
*/
namespace App\Form\Type\DepotAnnonce;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use App\Validator\Constraints\Annee;
use App\Validator\Constraints\Montant;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Constraints\NotBlank;
class ValidatorElementsChiffresN implements EventSubscriberInterface {
/**
* @return string[]
*/
public static function getSubscribedEvents(): array {
return [
FormEvents::PRE_SET_DATA => 'onPreSetData',
FormEvents::PRE_SUBMIT => 'onPreSubmit'
];
}
/**
*
* @param FormEvent $event
* @return void
*/
public function onPreSetData(FormEvent $event): void {
$this->validation($event);
}
/**
*
* @param FormEvent $event
* @return void
*/
public function onPreSubmit(FormEvent $event): void {
$this->validation($event);
}
/**
*
* @param type $event
*/
private function validation($event) {
$user = $event->getData();
$form = $event->getForm();
// if ((empty($user['EBE_n'])) && (empty($user['resultat_net_n'])) && (empty($user['resultat_exploitation_n']))) {
// Vérifier si les champs sont null ou chaîne vide, mais pas zéro
$ebeEmpty = !isset($user['EBE_n']) || $user['EBE_n'] === '' || $user['EBE_n'] === null;
$resultatNetEmpty = !isset($user['resultat_net_n']) || $user['resultat_net_n'] === '' || $user['resultat_net_n'] === null;
$resultatExploitationEmpty = !isset($user['resultat_exploitation_n']) || $user['resultat_exploitation_n'] === '' || $user['resultat_exploitation_n'] === null;
if ($ebeEmpty && $resultatNetEmpty && $resultatExploitationEmpty) {
$form->add('resultat_net_n',
TextType::class,
[
"attr" => ["autocomplete" => "off"],
"constraints" => [
new Montant(),
new NotBlank(["message" => "Le champ Resultat net n est obligatoire"])
]
]
);
$form->add('EBE_n',
TextType::class,
[
"attr" => ["autocomplete" => "off"],
"constraints" => [
new Montant(),
new NotBlank(["message" => "Le champ EBE n est obligatoire"])
]
]
);
$form->add('resultat_exploitation_n', TextType::class,
[
"attr" => ["autocomplete" => "off"],
"constraints" => [
new Montant(),
new NotBlank(["message" => "Le champ Resultat Exploitation n est obligatoire"])
]
]
);
} else {
$form->add('EBE_n', TextType::class, ["constraints" => [new Montant()], "attr" => ["autocomplete" => "off"]]);
$form->add('resultat_exploitation_n', TextType::class, ["constraints" => [new Montant()], "attr" => ["autocomplete" => "off"]]);
$form->add('resultat_net_n', TextType::class, ["constraints" => [new Montant()], "attr" => ["autocomplete" => "off"]]);
}
}
}