fix(front) : 422 sur champ requis vide en edition fournisseur (ERP-96)
En edition (PATCH merge), omettre la cle d'un champ requis vide laissait la valeur serveur inchangee -> faux 200 (l'ancien code postal etait conserve). Nouveau helper blankEmptyRequired + flag forUpdate sur les builders : a la creation (POST) on omet toujours la cle (NotBlank), en edition d'une ligne existante on envoie '' (chaine valide, pas de 400 de type) pour declencher NotBlank 422 inline sous le champ. Applique au bloc principal, aux adresses et aux RIB (selon id !== null).
This commit is contained in:
@@ -590,7 +590,7 @@ async function submitMain(): Promise<void> {
|
||||
mainSubmitting.value = true
|
||||
mainErrors.clearErrors()
|
||||
try {
|
||||
const updated = await api.patch<SupplierDetail>(`/suppliers/${supplierId}`, buildMainPayload(main), {
|
||||
const updated = await api.patch<SupplierDetail>(`/suppliers/${supplierId}`, buildMainPayload(main, { forUpdate: true }), {
|
||||
headers: { Accept: 'application/ld+json' },
|
||||
toast: false,
|
||||
})
|
||||
@@ -750,7 +750,10 @@ async function submitAddresses(): Promise<void> {
|
||||
addresses.value,
|
||||
addressErrors,
|
||||
async (address) => {
|
||||
const body = buildAddressPayload(address)
|
||||
// Edition d'une adresse existante : champ requis vide envoye en `''`
|
||||
// (NotBlank 422) au lieu d'etre omis — sinon le PATCH garderait
|
||||
// l'ancienne valeur (faux 200). Creation (id null) : omit classique.
|
||||
const body = buildAddressPayload(address, { forUpdate: address.id !== null })
|
||||
if (address.id === null) {
|
||||
const created = await api.post<{ id: number }>(
|
||||
`/suppliers/${supplierId}/addresses`,
|
||||
@@ -843,7 +846,9 @@ async function submitAccounting(): Promise<void> {
|
||||
ribs.value,
|
||||
ribErrors,
|
||||
async (rib) => {
|
||||
const body = buildRibPayload(rib)
|
||||
// Edition d'un RIB existant : champ requis vide envoye en `''` (NotBlank
|
||||
// 422) au lieu d'etre omis (sinon le PATCH garderait l'ancienne valeur).
|
||||
const body = buildRibPayload(rib, { forUpdate: rib.id !== null })
|
||||
if (rib.id === null) {
|
||||
const created = await api.post<{ id: number }>(
|
||||
`/suppliers/${supplierId}/ribs`,
|
||||
|
||||
Reference in New Issue
Block a user