From 663be0c7c611fbd1b3242902893cda1c85dac68f Mon Sep 17 00:00:00 2001 From: evenegas Date: Wed, 1 Oct 2025 17:52:36 -0600 Subject: [PATCH] =?UTF-8?q?Se=20agreg=C3=B3=20plantillas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/cuestionario/cuestionario.service.ts | 17 ++++++-- src/cuestionario/plantillas.ts | 55 +++++++++++++----------- 2 files changed, 44 insertions(+), 28 deletions(-) diff --git a/src/cuestionario/cuestionario.service.ts b/src/cuestionario/cuestionario.service.ts index b4f3cec..ae6a217 100644 --- a/src/cuestionario/cuestionario.service.ts +++ b/src/cuestionario/cuestionario.service.ts @@ -134,7 +134,7 @@ export class CuestionarioService { for (const qRow of cuestionarios) { - const plantilla = qRow.getCell(9).value ? Number(row.getCell(8).value) : null; + const plantilla = qRow.getCell(9).value ? Number(row.getCell(9).value) : null; if (plantilla && PLANTILLA_MAP[plantilla]) { const fecha_inicio = new Date(qRow.getCell(4).value as string); @@ -143,13 +143,22 @@ export class CuestionarioService { const plantillaId = PLANTILLA_MAP[plantilla]; const base = PLANTILLAS.find(p => p.id === plantillaId); if (!base) throw new Error(`Plantilla ${plantillaId} no encontrada`); - return { + + const createDto: CreateEventoWithCuestionarioDto = { + evento: eventoDto, + cuestionario: { ...base.datos, fecha_inicio, fecha_fin, id_tipo_evento, - }; - } + }, + }; + + + data.push(await this.createCuestionarioEvento(createDto)); + + continue; // Saltar al siguiente cuestionario + } // Filtrar secciones de este cuestionario const secciones = seccionesSheet.getRows(2, seccionesSheet.rowCount - 1) diff --git a/src/cuestionario/plantillas.ts b/src/cuestionario/plantillas.ts index 6a359d9..98da0a7 100644 --- a/src/cuestionario/plantillas.ts +++ b/src/cuestionario/plantillas.ts @@ -1,3 +1,10 @@ +import { TiposValidacion } from 'src/pregunta/entities/pregunta.entity'; +import { + TipoPreguntaEnum, +} from '../tipo_pregunta/entities/tipo_pregunta.entity'; + + + export const PLANTILLAS = [ { imagen: '/plantilla_trabajadores.png', @@ -16,27 +23,27 @@ export const PLANTILLAS = [ preguntas: [ { titulo: '¿Eres parte de la comunidad de la FES Acatlán?', - tipo: 'Cerrada', + tipo: TipoPreguntaEnum.Cerrada, opciones: [{ valor: 'Si' }, { valor: 'No' }], obligatoria: true, - validacion: 'comunidad_trabajador', + validacion: TiposValidacion.COMUNIDAD_TRABAJADOR, }, - { titulo: 'RFC', tipo: 'Abierta (Respuesta corta)', obligatoria: false, validacion: 'rfc' }, - { titulo: 'Correo electrónico', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'correo' }, - { titulo: 'Nombre(s)', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'nombre' }, - { titulo: 'Apellidos', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'apellidos' }, + { titulo: 'RFC', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: false, validacion: TiposValidacion.RFC }, + { titulo: 'Correo electrónico', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.CORREO }, + { titulo: 'Nombre(s)', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.NOMBRE }, + { titulo: 'Apellidos', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.APELLIDOS }, { titulo: 'Género', - tipo: 'Cerrada', + tipo: TipoPreguntaEnum.Cerrada, obligatoria: true, - validacion: 'genero', + validacion: TiposValidacion.GENERO, opciones: [ { valor: 'Masculino' }, { valor: 'Femenino' }, { valor: 'Prefiero no decirlo' }, ], }, - { titulo: 'Carrera', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'carrera' }, + { titulo: 'Carrera', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.CARRERA }, ], }, ], @@ -59,28 +66,28 @@ export const PLANTILLAS = [ preguntas: [ { titulo: '¿Eres parte de la comunidad de la FES Acatlán?', - tipo: 'Cerrada', + tipo: TipoPreguntaEnum.Cerrada, opciones: [{ valor: 'Si' }, { valor: 'No' }], obligatoria: true, - validacion: 'comunidad_alumno', + validacion: TiposValidacion.COMUNIDAD_ALUMNO, }, - { titulo: 'Numero de cuenta', tipo: 'Abierta (Respuesta corta)', obligatoria: false, validacion: 'cuenta_alumno' }, - { titulo: 'Correo electrónico', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'correo' }, - { titulo: 'Nombre(s)', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'nombre' }, - { titulo: 'Apellidos', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'apellidos' }, + { titulo: 'Numero de cuenta', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: false, validacion: TiposValidacion.CUENTA_ALUMNO }, + { titulo: 'Correo electrónico', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.CORREO }, + { titulo: 'Nombre(s)', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.NOMBRE }, + { titulo: 'Apellidos', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.APELLIDOS }, { titulo: 'Género', - tipo: 'Cerrada', + tipo: TipoPreguntaEnum.Cerrada, obligatoria: true, - validacion: 'genero', + validacion: TiposValidacion.GENERO, opciones: [ { valor: 'Masculino' }, { valor: 'Femenino' }, { valor: 'Prefiero no decirlo' }, ], }, - { titulo: 'Institución de procedencia', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'institucion' }, - { titulo: 'Carrera', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'carrera' }, + { titulo: 'Institución de procedencia', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.INSTITUCION }, + { titulo: 'Carrera', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.CARRERA }, ], }, ], @@ -101,13 +108,13 @@ export const PLANTILLAS = [ descripcion: 'Proporciona tus datos personales para poder contactarte y enviarte información relevante sobre la Feria de la Sexualidad.', preguntas: [ - { titulo: 'Número de cuenta / trabajador', tipo: 'Abierta (Respuesta corta)', obligatoria: false }, - { titulo: 'Correo electrónico', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'correo' }, - { titulo: 'Nombre(s)', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'nombre' }, - { titulo: 'Apellidos', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'apellidos' }, + { titulo: 'Número de cuenta / trabajador', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: false }, + { titulo: 'Correo electrónico', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.CORREO }, + { titulo: 'Nombre(s)', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.NOMBRE }, + { titulo: 'Apellidos', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.APELLIDOS }, { titulo: 'Tipo de Asistente', - tipo: 'Cerrada', + tipo: TipoPreguntaEnum.Cerrada, obligatoria: true, opciones: [ { valor: 'Alumno' },