diff --git a/apps/api/src/database/schema/surveys.ts b/apps/api/src/database/schema/surveys.ts index e6d4c5b..2f54fc8 100644 --- a/apps/api/src/database/schema/surveys.ts +++ b/apps/api/src/database/schema/surveys.ts @@ -99,18 +99,14 @@ export const trainingSurveys = t.pgTable( .notNull() .default(''), communeSpokespersonCedula: t - .text('commune_spokesperson_cedula') - .notNull() - .default(''), + .text('commune_spokesperson_cedula'), communeSpokespersonRif: t - .text('commune_spokesperson_rif') - .notNull() - .default(''), + .text('commune_spokesperson_rif'), communeSpokespersonPhone: t .text('commune_spokesperson_phone') .notNull() .default(''), - communeEmail: t.text('commune_email').notNull().default(''), + communeEmail: t.text('commune_email'), communalCouncil: t.text('communal_council').notNull(), siturCodeCommunalCouncil: t.text('situr_code_communal_council').notNull(), communalCouncilRif: t.text('communal_council_rif').notNull().default(''), @@ -119,13 +115,9 @@ export const trainingSurveys = t.pgTable( .notNull() .default(''), communalCouncilSpokespersonCedula: t - .text('communal_council_spokesperson_cedula') - .notNull() - .default(''), + .text('communal_council_spokesperson_cedula'), communalCouncilSpokespersonRif: t - .text('communal_council_spokesperson_rif') - .notNull() - .default(''), + .text('communal_council_spokesperson_rif'), communalCouncilSpokespersonPhone: t .text('communal_council_spokesperson_phone') .notNull() diff --git a/apps/api/src/features/training/dto/create-training.dto.ts b/apps/api/src/features/training/dto/create-training.dto.ts index 3cf3c55..2564e84 100644 --- a/apps/api/src/features/training/dto/create-training.dto.ts +++ b/apps/api/src/features/training/dto/create-training.dto.ts @@ -30,11 +30,11 @@ export class CreateTrainingDto { // === 2. DATOS OSP === @ApiProperty() - @IsString() + @IsOptional() ospName: string; @ApiProperty() - @IsString() + @IsOptional() ospRif: string; @ApiProperty() @@ -165,20 +165,13 @@ export class CreateTrainingDto { @IsString() communeSpokespersonName: string; - @ApiProperty() - @IsString() - communeSpokespersonCedula: string; - - @ApiProperty() - @IsString() - communeSpokespersonRif: string; @ApiProperty() @IsString() communeSpokespersonPhone: string; @ApiProperty() - @IsString() + @IsOptional() communeEmail: string; @ApiProperty() @@ -197,14 +190,6 @@ export class CreateTrainingDto { @IsString() communalCouncilSpokespersonName: string; - @ApiProperty() - @IsString() - communalCouncilSpokespersonCedula: string; - - @ApiProperty() - @IsString() - communalCouncilSpokespersonRif: string; - @ApiProperty() @IsString() communalCouncilSpokespersonPhone: string; diff --git a/apps/web/feactures/training/components/equipment-list.tsx b/apps/web/feactures/training/components/equipment-list.tsx index 7a2e4a7..e882bce 100644 --- a/apps/web/feactures/training/components/equipment-list.tsx +++ b/apps/web/feactures/training/components/equipment-list.tsx @@ -30,14 +30,13 @@ export function EquipmentList() { const [isOpen, setIsOpen] = useState(false); const [newItem, setNewItem] = useState({ machine: '', - specifications: '', quantity: '', }); const handleAdd = () => { if (newItem.machine && newItem.quantity) { append({ ...newItem, quantity: Number(newItem.quantity) }); - setNewItem({ machine: '', specifications: '', quantity: '' }); + setNewItem({ machine: '', quantity: '' }); setIsOpen(false); } }; @@ -68,16 +67,6 @@ export function EquipmentList() { placeholder="Nombre de la maquinaria" /> -
- - - setNewItem({ ...newItem, specifications: e.target.value }) - } - placeholder="Especificaciones técnicas" - /> -
- - - {/* @ts-ignore */} - {field.specifications} - 0 + dataCoorMunicipality?.data?.length ? dataCoorMunicipality.data : [{ id: 0, stateId: 0, name: 'Sin Municipios' }]; const coorParishOptions = - Array.isArray(dataCoorParish?.data) && dataCoorParish?.data.length > 0 + Array.isArray(dataCoorParish?.data) && dataCoorParish?.data?.length ? dataCoorParish.data : [{ id: 0, stateId: 0, name: 'Sin Parroquias' }]; const stateOptions = dataState?.data || [{ id: 0, name: 'Sin estados' }]; - const municipalityOptions = - Array.isArray(dataMunicipality?.data) && dataMunicipality.data.length > 0 - ? dataMunicipality.data - : [{ id: 0, stateId: 0, name: 'Sin Municipios' }]; + const municipalityOptions = dataMunicipality?.data?.length + ? dataMunicipality.data + : [{ id: 0, stateId: 0, name: 'Sin Municipios' }]; - const parishOptions = - Array.isArray(dataParish?.data) && dataParish.data.length > 0 - ? dataParish.data - : [{ id: 0, stateId: 0, name: 'Sin Parroquias' }]; + const parishOptions = dataParish?.data?.length + ? dataParish.data + : [{ id: 0, stateId: 0, name: 'Sin Parroquias' }]; // No local state needed for existing photos, we use form values @@ -727,7 +718,7 @@ export function CreateTrainingForm({ render={({ field }) => ( - Nombre de la organización + Nombre de la organización (opcional) @@ -1025,38 +1016,7 @@ export function CreateTrainingForm({ )} /> - ( - - - Cédula de Identidad del Vocero - - - - - - - )} - /> - - ( - - - RIF del Vocero - - - - - - - )} - /> - + )} /> - - ( - - - Cédula de Identidad del Vocero - - - - - - - )} - /> - - ( - - - RIF del Vocero - - - - - - - )} - /> - +
-

Distribución Interna

-
+

Zona de Distribucción

+
- - ({ - value: String(s.id), - label: s.name, - }))} - onValueChange={(val) => { - const id = Number(val); - setInternalStateId(id); - setNewItem({ ...newItem, internalState: id }); - }} - placeholder="Estado" - /> -
-
- - ({ - value: String(s.id), - label: s.name, - }))} - onValueChange={(val) => { - const id = Number(val); - setInternalMuniId(id); - setNewItem({ ...newItem, internalMunicipality: id }); - }} - placeholder="Municipio" - disabled={!internalStateId} - /> -
-
- - ({ - value: String(s.id), - label: s.name, - }))} - onValueChange={(val) => - setNewItem({ ...newItem, internalParish: Number(val) }) - } - placeholder="Parroquia" - disabled={!internalMuniId} - /> -
-
-
-
- + setNewItem({ ...newItem, - internalDescription: e.target.value, - }) - } - /> -
-
- - - setNewItem({ - ...newItem, - internalQuantity: e.target.value, + internalDistributionZone: e.target.value, }) } /> @@ -297,7 +237,7 @@ export function ProductActivityList() {

-

Distribución Externa

+

Exportación

@@ -397,7 +337,7 @@ export function ProductActivityList() { />
- +
- + = { 'ELABORACION DE ACEITE COMESTIBLE', 'FABRICA DE HIELO', 'ELABORACION DE PAPELON', + 'TORREFACTORA DE CÁFE', + 'ESPULPADORA DE TOMATES Y FRUTAS', 'ARTESANIAS', ], [ACTIVIDAD_PRINCIPAL.TEXTIL]: [ diff --git a/apps/web/feactures/training/schemas/training.ts b/apps/web/feactures/training/schemas/training.ts index c0bdd3f..897d367 100644 --- a/apps/web/feactures/training/schemas/training.ts +++ b/apps/web/feactures/training/schemas/training.ts @@ -10,11 +10,7 @@ const productItemSchema = z.object({ monthlyCount: z.coerce.string().or(z.number()).optional(), // Distribución Interna - internalState: z.number().optional(), - internalMunicipality: z.number().optional(), - internalParish: z.number().optional(), - internalDescription: z.string().optional(), - internalQuantity: z.coerce.string().or(z.number()).optional(), + internalDistributionZone: z.string().optional(), // Distribución Externa externalCountry: z.string().optional(), @@ -38,7 +34,6 @@ const productionItemSchema = z.object({ const equipmentItemSchema = z.object({ machine: z.string(), - specifications: z.string().optional(), quantity: z.coerce.string().or(z.number()).optional(), // Aceptamos string o number por los inputs }); @@ -62,7 +57,7 @@ export const trainingSchema = z.object({ .string() .min(1, { message: 'Actividad productiva es requerida' }), ospRif: z.string().optional().or(z.literal('')), - ospName: z.string().min(1, { message: 'Nombre de la OSP es requerido' }), + ospName: z.string().optional().or(z.literal('')), companyConstitutionYear: z.coerce .number() .min(1900, { message: 'Año inválido' }), @@ -98,8 +93,6 @@ export const trainingSchema = z.object({ siturCodeCommune: z.string().optional().or(z.literal('')), communeRif: z.string().optional().or(z.literal('')), communeSpokespersonName: z.string().optional().or(z.literal('')), - communeSpokespersonCedula: z.string().optional().or(z.literal('')), - communeSpokespersonRif: z.string().optional().or(z.literal('')), communeSpokespersonPhone: z.string().optional().or(z.literal('')), communeEmail: z .string() @@ -112,8 +105,6 @@ export const trainingSchema = z.object({ siturCodeCommunalCouncil: z.string().optional().or(z.literal('')), communalCouncilRif: z.string().optional().or(z.literal('')), communalCouncilSpokespersonName: z.string().optional().or(z.literal('')), - communalCouncilSpokespersonCedula: z.string().optional().or(z.literal('')), - communalCouncilSpokespersonRif: z.string().optional().or(z.literal('')), communalCouncilSpokespersonPhone: z.string().optional().or(z.literal('')), communalCouncilEmail: z .string()