Teacher Modification

This commit is contained in:
IO
2024-07-26 18:24:17 -06:00
parent 81dfbe4910
commit 63f3f7f443
6 changed files with 28 additions and 9 deletions
+3
View File
@@ -2,6 +2,9 @@ import { Type } from "class-transformer";
import { IsBoolean, IsInt, IsNotEmpty, IsNumber, IsString, IsOptional, Length, ValidateNested} from "class-validator";
export class profesorDto{
@IsInt()
id_profesor: number;
@IsInt()
@IsNotEmpty()
+6 -6
View File
@@ -16,10 +16,10 @@ import { User } from 'src/users/entities/user.entity';
@Entity()
export class Profesor {
@PrimaryColumn()
@PrimaryColumn({ type: 'int', nullable: false })
id_profesor: number;
@Column({ type: 'int',nullable: false })
@Column({ type: 'int', nullable: false })
id_usuario: number;
@Column({ type: 'varchar', length: 10, nullable: true })
@@ -86,19 +86,19 @@ export class Profesor {
fecha_actualizacion: Date;
@ManyToOne(() => Edificio, edificio => edificio.profesores)
@JoinColumn({ name: 'id_edificio' })
@JoinColumn({ name: 'id_edificio', referencedColumnName: 'id_edificio', foreignKeyConstraintName: 'FK_edificio' })
edificio: Edificio;
@ManyToOne(() => Adscripcion, adscripcion => adscripcion.profesores)
@JoinColumn({ name: 'id_adscripcion' })
@JoinColumn({ name: 'id_adscripcion', referencedColumnName: 'id_adscripcion', foreignKeyConstraintName: 'FK_adscripcion' })
adscripcion: Adscripcion;
@ManyToOne(() => Categoria, categoria => categoria.profesores)
@JoinColumn({ name: 'id_categoria' })
@JoinColumn({ name: 'id_categoria', referencedColumnName: 'id_categoria', foreignKeyConstraintName: 'FK_categoria' })
categoria: Categoria;
@ManyToOne(() => User, user => user.profesores)
@JoinColumn({ name: 'id_usuario' })
@JoinColumn({ name: 'id_usuario', referencedColumnName: 'id_usuario', foreignKeyConstraintName: 'FK_usuario' })
user: User;
@OneToMany(() => DatosAcademicos, datosAcademicos => datosAcademicos.profesor,{ cascade: true })
+16
View File
@@ -26,6 +26,19 @@ export class ProfesorService {
private readonly proyectosAcademicosRepository: Repository<ProyectosAcademicos>,
) {}
private async findAvailableId(): Promise<number> {
let id = 1;
let exists = true;
while (exists) {
if (!await this.profesorRepository.findOne({ where: { id_profesor: id } })) {
exists = false;
return id;
}
id++;
}
}
//register teacher
async register(data: profesorDto): Promise<Profesor | undefined> {
const { num_trabajador, rfc, proyectosAcademicos, datosAcademicos, lineasInvestigacion} = data;
@@ -38,6 +51,9 @@ export class ProfesorService {
throw new HttpException('number of worker already exist', 403);
}
const availableId = await this.findAvailableId();
data.id_profesor = availableId;
const savedProfesor = await this.profesorRepository.save(data);
if (proyectosAcademicos && proyectosAcademicos.length > 0) {
@@ -16,6 +16,6 @@ export class DatosAcademicos {
grados_obtenidos: string;
@ManyToOne(() => Profesor, (profesor) => profesor.datosAcademicos)
@JoinColumn({ name: 'id_profesor' })
@JoinColumn({ name: 'id_profesor', referencedColumnName: 'id_profesor', foreignKeyConstraintName: 'FK_datos_academicos' })
profesor: Profesor;
}
@@ -14,6 +14,6 @@ export class LineasInvestigacion {
lineas_inv_html: string;
@ManyToOne(() => Profesor, profesor => profesor.lineasInvestigacion)
@JoinColumn({ name: 'id_profesor' })
@JoinColumn({ name: 'id_profesor', referencedColumnName: 'id_profesor', foreignKeyConstraintName: 'FK_lineas_investigacion' })
profesor: Profesor;
}
@@ -14,6 +14,6 @@ export class ProyectosAcademicos {
proyecto_html: string;
@ManyToOne(() => Profesor, profesor => profesor.proyectosAcademicos)
@JoinColumn({ name: 'id_profesor' })
@JoinColumn({ name: 'id_profesor', referencedColumnName: 'id_profesor', foreignKeyConstraintName: 'FK_proyectos_academicos' })
profesor: Profesor;
}