Añadida la opcion "otro" en actividad productiva al registrar y ver los datos de OSP

This commit is contained in:
2026-03-24 15:58:35 -04:00
parent 524869b1f9
commit 200df205c9
10 changed files with 2177 additions and 31 deletions

View File

@@ -0,0 +1,2 @@
DROP VIEW "public"."v_training_surveys";--> statement-breakpoint
ALTER TABLE "training_surveys" ADD COLUMN "productive_activity_other" text DEFAULT '';

File diff suppressed because it is too large Load Diff

View File

@@ -183,6 +183,13 @@
"when": 1772643066120,
"tag": "0025_funny_makkari",
"breakpoints": true
},
{
"idx": 26,
"version": "7",
"when": 1774379641691,
"tag": "0026_last_vampiro",
"breakpoints": true
}
]
}

View File

@@ -76,6 +76,7 @@ export const trainingSurveys = t.pgTable(
.notNull()
.default(''),
productiveActivity: t.text('productive_activity').notNull(),
productiveActivityOther: t.text('productive_activity_other').default(''),
ospRif: t.text('osp_rif'),
ospName: t.text('osp_name'),
companyConstitutionYear: t.integer('company_constitution_year').notNull(),

View File

@@ -1,3 +1,4 @@
import { Optional } from '@nestjs/common';
import { ApiProperty } from '@nestjs/swagger';
import { Transform, Type } from 'class-transformer';
import {
@@ -42,6 +43,11 @@ export class CreateTrainingDto {
@IsString()
productiveActivity: string;
@ApiProperty()
@IsString()
@IsOptional()
productiveActivityOther: string;
@ApiProperty()
@IsString()
currentStatus: string;

View File

@@ -16,7 +16,7 @@ export class TrainingService {
constructor(
@Inject(DRIZZLE_PROVIDER) private drizzle: NodePgDatabase<typeof schema>,
private readonly minioService: MinioService,
) {}
) { }
async findAll(paginationDto?: PaginationDto) {
const {
@@ -268,7 +268,7 @@ export class TrainingService {
// 2. Extraer solo visitDate para formatearlo.
// Ya NO extraemos state, municipality, etc. porque no vienen en el DTO.
const { visitDate, state, municipality, parish, ...rest } =
const { visitDate, state, municipality, parish, productiveActivityOther, ...rest } =
createTrainingDto;
const [newRecord] = await this.drizzle
@@ -280,6 +280,9 @@ export class TrainingService {
// Conversión de fecha
visitDate: new Date(visitDate),
// Borra las tildes y cambia el texto a mayusculas
productiveActivityOther: productiveActivityOther.toUpperCase().normalize("NFD").replace(/[\u0300-\u036f]/g, ""),
// 3. Asignar fotos de forma segura
photo1: photoPaths[0] ?? null,
photo2: photoPaths[1] ?? null,