feat(commercial) : revue de la validation front clients + RG type d'adresse (ERP-119)
- Boutons « Valider » toujours actifs (retrait du gating de validite) : le back renvoie les 422 mappees en rouge par champ. - Champs requis a colonne non-nullable : la cle est omise du payload si vide (companyName, RIB, adresse) -> 422 NotBlank au lieu d'un 400 de type a la deserialisation. - Onglet Contact : au moins un contact requis -> l'amorce vide est soumise pour declencher la 422 RG-1.05 quand aucun contact n'est nomme. - Adresse : affichage inline des erreurs type / sites / categories, et nouvelle RG back « au moins un type d'adresse obligatoire » (Callback sur isProspect).
This commit is contained in:
@@ -223,6 +223,23 @@ class ClientAddress implements TimestampableInterface, BlamableInterface
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Au moins un type d'adresse est obligatoire (Prospection, Livraison ou
|
||||
* Facturation) : une adresse sans aucun drapeau pose n'a pas de sens metier.
|
||||
* La violation est portee sur `isProspect` (meme champ que l'exclusivite) pour
|
||||
* un mapping inline sous le select « Type d'adresse » cote front (ERP-119).
|
||||
*/
|
||||
#[Assert\Callback]
|
||||
public function validateAddressTypeRequired(ExecutionContextInterface $context): void
|
||||
{
|
||||
if (!$this->isProspect && !$this->isDelivery && !$this->isBilling) {
|
||||
$context->buildViolation('Le type d\'adresse est obligatoire.')
|
||||
->atPath('isProspect')
|
||||
->addViolation()
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* RG-1.11 : l'email de facturation est obligatoire si l'adresse est de
|
||||
* facturation, et interdit sinon. Mirror applicatif (422) du CHECK
|
||||
|
||||
Reference in New Issue
Block a user