From a0c363dd1b52649cae1b8a744031c385fe798f3a Mon Sep 17 00:00:00 2001 From: Sergio Ramirez Date: Wed, 11 Feb 2026 11:30:22 -0400 Subject: [PATCH] corregido guardar registro osp --- .../feactures/training/components/form.tsx | 70 ++++++++++--------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/apps/web/feactures/training/components/form.tsx b/apps/web/feactures/training/components/form.tsx index 08d5116..9d91c2b 100644 --- a/apps/web/feactures/training/components/form.tsx +++ b/apps/web/feactures/training/components/form.tsx @@ -44,8 +44,8 @@ import { CardHeader, CardTitle, } from '@repo/shadcn/components/ui/card'; -import React from 'react'; import { SelectSearchable } from '@repo/shadcn/components/ui/select-searchable'; +import React from 'react'; const OSP_TYPES = ['EPSIC', 'EPSDC', 'UPF', 'OTROS', 'COOPERATIVA']; const STATUS_OPTIONS = ['ACTIVA', 'INACTIVA']; @@ -166,7 +166,6 @@ export function CreateTrainingForm({ mode: 'onChange', }); - // Cascading Select Logic const ecoSector = useWatch({ control: form.control, name: 'ecoSector' }); const productiveSector = useWatch({ @@ -268,7 +267,15 @@ export function CreateTrainingForm({ // 1. Definimos las claves que NO queremos enviar en el bucle general // 'files' se procesa aparte. // 'photo1/2/3' son strings (urls viejas) que no queremos reenviar como texto. - const excludedKeys = ['files', 'photo1', 'photo2', 'photo3', 'coorState', 'coorMunicipality', 'coorParish']; + const excludedKeys = [ + 'files', + 'photo1', + 'photo2', + 'photo3', + 'coorState', + 'coorMunicipality', + 'coorParish', + ]; Object.entries(formData).forEach(([key, value]) => { // 2. Condición actualizada: Si la key está en la lista de excluidos, la saltamos @@ -287,17 +294,16 @@ export function CreateTrainingForm({ } }); - - // 2. Mapeo manual y conversión a numérico - // if (formData.state) { - // data.append('state', Number(formData.state).toString()); - // } - // if (formData.municipality) { - // data.append('municipality', Number(formData.municipality).toString()); - // } - // if (formData.parish) { - // data.append('parish', Number(formData.parish).toString()); - // } + // 2. Mapeo manual y conversión a numérico + // if (formData.state) { + // data.append('state', Number(formData.state).toString()); + // } + // if (formData.municipality) { + // data.append('municipality', Number(formData.municipality).toString()); + // } + // if (formData.parish) { + // data.append('parish', Number(formData.parish).toString()); + // } if (defaultValues?.id) { data.append('id', defaultValues.id.toString()); } @@ -305,24 +311,23 @@ export function CreateTrainingForm({ // 4. Aquí se agregan las NUEVAS fotos (binary) si el usuario seleccionó alguna selectedFiles.forEach((file) => { data.append('files', file); - }); - console.log(data); + }); const mutation = defaultValues?.id ? updateTraining : createTraining; - // mutation(data as any, { - // onSuccess: () => { - // form.reset(); - // setSelectedFiles([]); - // onSuccess?.(); - // }, - // onError: (e) => { - // console.error(e); - // form.setError('root', { - // type: 'manual', - // message: 'Error al guardar el registro', - // }); - // }, - // }); + mutation(data as any, { + onSuccess: () => { + form.reset(); + setSelectedFiles([]); + onSuccess?.(); + }, + onError: (e) => { + console.error(e); + form.setError('root', { + type: 'manual', + message: 'Error al guardar el registro', + }); + }, + }); }; return ( @@ -398,8 +403,6 @@ export function CreateTrainingForm({ )} /> - - )} /> - ( @@ -921,7 +924,6 @@ export function CreateTrainingForm({ 3. Detalles de la ubicación -