391f383c4b
Un brouillon dont le type de contrepartie est choisi sans son champ associé (client/fournisseur null, ou libellé « Autre » vide) violait chk_wt_*_branch et levait une 500 : le callback de cohérence RG-5.03 ne joue qu'au groupe finalize, laissant passer l'incohérence à l'enregistrement du brouillon. - back : WeighingTicketProcessor retire la contrepartie entière quand le champ de branche est absent (clearCounterparty) au lieu de persister un état incohérent. N'affecte que le brouillon (à la validation, le callback finalize lève déjà une 422 avant le processor). - front : buildDraftPayload n'émet le type que si son champ associé est rempli ; la validation continue d'envoyer toujours le type pour la 422 métier. - tests : 2 cas back (CLIENT sans client, AUTRE libellé vide) + 2 cas front.