Se agregó caso especial y un campo a la entidad usuario

This commit is contained in:
evenegas
2025-07-30 10:18:15 -06:00
parent 4be22ac054
commit ff4364a55f
4 changed files with 30 additions and 8 deletions
+3
View File
@@ -103,6 +103,9 @@ export class Usuario {
@Column({ name: 'a_materno', type: 'varchar', length: 60 })
a_materno: string;
@Column({ type: 'varchar', length: 20, nullable: true, default: null })
contraseña: string | null;
@Column({
type: 'varchar',
length: 15,
+13 -2
View File
@@ -341,6 +341,8 @@ export class ExcelService {
case 'Trabajadores':
Object.assign(servData, { Red: true });
break;
}
const serv = queryRunner.manager.create(ServActivos, servData);
@@ -545,6 +547,7 @@ export class ExcelService {
'Posgrado',
'Reinscrito',
'Licenciatura',
'Caso Especial',
];
const usuarios = await this.usuarioRepo.find({
@@ -563,7 +566,8 @@ export class ExcelService {
'genero',
'carreraUsuarios', // relación intermedia
'carreraUsuarios.carrera', // carrera asociada a través de la intermedia
'usuarioTipos',
'usuarioTipos.tipoUsuario',
],
});
@@ -572,13 +576,20 @@ export class ExcelService {
const header = [
'num_cuenta', 'fecha_nacimiento'
'num_cuenta', 'fecha_nacimiento', 'contraseña', 'tipos_usuario'
].join(',') + '\n';
const rows = usuarios.map(u => {
const tiposUsuario = (u.usuarioTipos ?? [])
.map(utu => utu.tipoUsuario?.tipo_usuario ?? '')
.join(' | ');
return [
u.num_cuenta,
u.fecha_nacimiento,
u.contraseña ?? '',
tiposUsuario
].join(',');
}).join('\n');
+7
View File
@@ -5,10 +5,17 @@ export class CreateUsuarioDto {
@IsString()
num_cuenta?: string;
@IsOptional()
@IsString()
usuario?: string;
@IsOptional()
@IsString()
carrera?: string;
@IsOptional()
@IsString()
contraseña?: string;
@IsString()
tipo_usuario: string;
+7 -6
View File
@@ -64,7 +64,7 @@ export class UsuariosService {
const resultado: {
servicio: string;
status: string;
fecha_activacion: string | null;
fecha_activacion: string;
}[] = [];
const mapServicio = (nombre: string, estado: string | undefined) => {
@@ -82,7 +82,7 @@ export class UsuariosService {
resultado.push({
servicio: nombre,
status: 'Inactivo',
fecha_activacion: null,
fecha_activacion: "",
});
}
};
@@ -440,7 +440,7 @@ export class UsuariosService {
try {
const existente = await queryRunner.manager.findOne(Usuario, {
where: { num_cuenta: usuario.num_cuenta },
where: { num_cuenta: usuario.num_cuenta ?? usuario.usuario },
relations: ['genero'],
});
@@ -468,7 +468,7 @@ export class UsuariosService {
const nuevo = queryRunner.manager.create(Usuario, {
num_cuenta: usuario.num_cuenta,
num_cuenta: usuario.num_cuenta ?? usuario.usuario,
nombre: usuario.nombre,
a_paterno: usuario.a_paterno,
a_materno: usuario.a_materno,
@@ -477,6 +477,7 @@ export class UsuariosService {
generacion: usuario.generacion ?? null,
genero,
movimiento: mov,
contraseña: usuario.contraseña ?? null, // Asegúrate de manejar la contraseña adecuadamente
});
const savedUser = await queryRunner.manager.save(nuevo);
@@ -486,7 +487,7 @@ export class UsuariosService {
const FieldMap = [
'Diplomado', 'Extra Largo', 'Servicio Social', 'Idiomas R (UNAM)', 'Idiomas Sabatino',
'Reinscrito', 'Posgrado', 'Intercambio UNAM', 'Movilidad', 'Ampliación de Conocimiento',
'Licenciatura', 'Profesor', 'Trabajadores',
'Licenciatura', 'Profesor', 'Trabajadores', 'Caso especial',
];
if (!FieldMap.includes(usuario.tipo_usuario)) {
@@ -605,7 +606,7 @@ export class UsuariosService {
break;
case 'Caso especial':
case 'Trabajadores':
const servActivosTrabajadores = this.servActivosRepository.create({
Red: true,