corregido guardar registro osp

This commit is contained in:
2026-02-11 11:30:22 -04:00
parent 42e802f8a7
commit a0c363dd1b

View File

@@ -44,8 +44,8 @@ import {
CardHeader, CardHeader,
CardTitle, CardTitle,
} from '@repo/shadcn/components/ui/card'; } from '@repo/shadcn/components/ui/card';
import React from 'react';
import { SelectSearchable } from '@repo/shadcn/components/ui/select-searchable'; import { SelectSearchable } from '@repo/shadcn/components/ui/select-searchable';
import React from 'react';
const OSP_TYPES = ['EPSIC', 'EPSDC', 'UPF', 'OTROS', 'COOPERATIVA']; const OSP_TYPES = ['EPSIC', 'EPSDC', 'UPF', 'OTROS', 'COOPERATIVA'];
const STATUS_OPTIONS = ['ACTIVA', 'INACTIVA']; const STATUS_OPTIONS = ['ACTIVA', 'INACTIVA'];
@@ -166,7 +166,6 @@ export function CreateTrainingForm({
mode: 'onChange', mode: 'onChange',
}); });
// Cascading Select Logic // Cascading Select Logic
const ecoSector = useWatch({ control: form.control, name: 'ecoSector' }); const ecoSector = useWatch({ control: form.control, name: 'ecoSector' });
const productiveSector = useWatch({ const productiveSector = useWatch({
@@ -268,7 +267,15 @@ export function CreateTrainingForm({
// 1. Definimos las claves que NO queremos enviar en el bucle general // 1. Definimos las claves que NO queremos enviar en el bucle general
// 'files' se procesa aparte. // 'files' se procesa aparte.
// 'photo1/2/3' son strings (urls viejas) que no queremos reenviar como texto. // '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]) => { Object.entries(formData).forEach(([key, value]) => {
// 2. Condición actualizada: Si la key está en la lista de excluidos, la saltamos // 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
// 2. Mapeo manual y conversión a numérico // if (formData.state) {
// if (formData.state) { // data.append('state', Number(formData.state).toString());
// data.append('state', Number(formData.state).toString()); // }
// } // if (formData.municipality) {
// if (formData.municipality) { // data.append('municipality', Number(formData.municipality).toString());
// data.append('municipality', Number(formData.municipality).toString()); // }
// } // if (formData.parish) {
// if (formData.parish) { // data.append('parish', Number(formData.parish).toString());
// data.append('parish', Number(formData.parish).toString()); // }
// }
if (defaultValues?.id) { if (defaultValues?.id) {
data.append('id', defaultValues.id.toString()); data.append('id', defaultValues.id.toString());
} }
@@ -306,23 +312,22 @@ export function CreateTrainingForm({
selectedFiles.forEach((file) => { selectedFiles.forEach((file) => {
data.append('files', file); data.append('files', file);
}); });
console.log(data);
const mutation = defaultValues?.id ? updateTraining : createTraining; const mutation = defaultValues?.id ? updateTraining : createTraining;
// mutation(data as any, { mutation(data as any, {
// onSuccess: () => { onSuccess: () => {
// form.reset(); form.reset();
// setSelectedFiles([]); setSelectedFiles([]);
// onSuccess?.(); onSuccess?.();
// }, },
// onError: (e) => { onError: (e) => {
// console.error(e); console.error(e);
// form.setError('root', { form.setError('root', {
// type: 'manual', type: 'manual',
// message: 'Error al guardar el registro', message: 'Error al guardar el registro',
// }); });
// }, },
// }); });
}; };
return ( return (
@@ -398,8 +403,6 @@ export function CreateTrainingForm({
)} )}
/> />
<FormField <FormField
control={form.control} control={form.control}
name="visitDate" name="visitDate"
@@ -417,7 +420,7 @@ export function CreateTrainingForm({
</FormItem> </FormItem>
)} )}
/> />
<FormField <FormField
control={form.control} control={form.control}
name="state" name="state"
render={({ field }) => ( render={({ field }) => (
@@ -921,7 +924,6 @@ export function CreateTrainingForm({
<CardTitle>3. Detalles de la ubicación</CardTitle> <CardTitle>3. Detalles de la ubicación</CardTitle>
</CardHeader> </CardHeader>
<CardContent className="grid grid-cols-1 lg:grid-cols-2 gap-6 items-start"> <CardContent className="grid grid-cols-1 lg:grid-cols-2 gap-6 items-start">
<FormField <FormField
control={form.control} control={form.control}
name="ospAddress" name="ospAddress"