diff --git a/src/carrera-programa/carrera-programa.service.ts b/src/carrera-programa/carrera-programa.service.ts index 7183b73..d38b65e 100644 --- a/src/carrera-programa/carrera-programa.service.ts +++ b/src/carrera-programa/carrera-programa.service.ts @@ -53,7 +53,7 @@ export class CarreraProgramaService { where: { institucionCarrera, programa }, }) .then((existeCarretaPrograma) => { - // Si encuentro uno saco error + // Si encontramos uno sacamos error if (existeCarretaPrograma) throw new ConflictException( 'Ya se asignó este programa a esta carrera.', diff --git a/src/equipo-programa/equipo-programa.service.ts b/src/equipo-programa/equipo-programa.service.ts index 73bdb8d..39ef934 100644 --- a/src/equipo-programa/equipo-programa.service.ts +++ b/src/equipo-programa/equipo-programa.service.ts @@ -40,16 +40,15 @@ export class EquipoProgramaService { id_programa, ); - // Validamos que el programa seleccionado no sea "Sin programa" + // Validamos que el programa seleccionado no sea "Sin software" if (programa.id_programa === 1) throw new ConflictException( - 'No se puede asignar manualmente sin programa.', + 'No se puede asignar manualmente sin software.', ); // Validamos que el equipo pertenezca a la institución del operador if ( - operador.tipoUsuario.id_tipo_usuario > 2 && operador.institucion.id_institucion != - equipo.carrito.modulo.institucion.id_institucion + equipo.carrito.modulo.institucion.id_institucion ) throw new ForbiddenException( 'No puedes modificar la información este equipo porque no pertenece a tu institución.', @@ -57,7 +56,7 @@ export class EquipoProgramaService { // Buscamos un registro con los datos mandados del client return this.findByEquipoPrograma(equipo, programa) .then((existeEquipoPrograma) => { - // Si encuentro uno saco error + // Si encontramos uno sacamos error if (existeEquipoPrograma) throw new ConflictException( 'Este software ya fue asignado a este equipo.', @@ -70,7 +69,7 @@ export class EquipoProgramaService { } create(equipo: Equipo, programa: Programa): Promise { - // Verificamos si tiene programa "Sin programa" + // Verificamos si tiene programa "Sin software" return this.findByEquipoPrograma(equipo, { id_programa: 1 }).then( async (existeEquipoSinPrograma) => { // Si lo tiene lo eliminamos @@ -105,13 +104,13 @@ export class EquipoProgramaService { // No se puede eliminar "Sin programa" manualmente if (equipoPrograma.programa.id_programa === 1) throw new ConflictException( - 'No se puede eliminar manualmente sin programa.', + 'No se puede eliminar manualmente sin software.', ); // Buscamos cuantos programas tiene el equipo return this.repository .count({ where: { equipo: equipoPrograma.equipo } }) .then(async (n) => { - // Asignar "Sin programa" si es que solo tiene 1, el que se va a eliminar + // Asignar "Sin software" si es que solo tiene 1, el que se va a eliminar if (n === 1) await this.createSinPrograma(equipoPrograma.equipo); // Eliminamos registro return this.repository.remove(equipoPrograma); @@ -121,24 +120,11 @@ export class EquipoProgramaService { })); } - findFullInfoAllByIdEquipo(id_equipo: number): Promise { - return this.fullInformacionEquipoProgramaView - .find({ where: { id_equipo } }) - .then((infoEquipoProgramas) => { - const equipoProgramas: EquipoPrograma[] = []; - - for (let i = 0; i < infoEquipoProgramas.length; i++) - equipoProgramas.push( - this.repository.create({ - id_equipo_programa: infoEquipoProgramas[i].id_equipo_programa, - programa: { - id_programa: infoEquipoProgramas[i].id_programa, - programa: infoEquipoProgramas[i].programa, - }, - }), - ); - return equipoProgramas; - }); + findByEquipoPrograma( + equipo: Equipo, + programa: Programa | Partial, + ): Promise { + return this.repository.findOne({ where: { equipo, programa } }); } findById(id_equipo_programa: number): Promise { @@ -169,10 +155,23 @@ export class EquipoProgramaService { }); } - findByEquipoPrograma( - equipo: Equipo, - programa: Programa | Partial, - ): Promise { - return this.repository.findOne({ where: { equipo, programa } }); + findFullInfoAllByIdEquipo(id_equipo: number): Promise { + return this.fullInformacionEquipoProgramaView + .find({ where: { id_equipo } }) + .then((infoEquipoProgramas) => { + const equipoProgramas: EquipoPrograma[] = []; + + for (let i = 0; i < infoEquipoProgramas.length; i++) + equipoProgramas.push( + this.repository.create({ + id_equipo_programa: infoEquipoProgramas[i].id_equipo_programa, + programa: { + id_programa: infoEquipoProgramas[i].id_programa, + programa: infoEquipoProgramas[i].programa, + }, + }), + ); + return equipoProgramas; + }); } } diff --git a/src/equipo-tipo-entrada/equipo-tipo-entrada.controller.ts b/src/equipo-tipo-entrada/equipo-tipo-entrada.controller.ts index 1b8e248..7409283 100644 --- a/src/equipo-tipo-entrada/equipo-tipo-entrada.controller.ts +++ b/src/equipo-tipo-entrada/equipo-tipo-entrada.controller.ts @@ -38,6 +38,7 @@ export class EquipoTipoEntradaController { this.validarUsuarioService.validarAdminOperador(operador); return this.equipoTipoEntradaService.asignar( + operador, body.id_equipo, body.id_tipo_entrada, ); diff --git a/src/equipo-tipo-entrada/equipo-tipo-entrada.service.ts b/src/equipo-tipo-entrada/equipo-tipo-entrada.service.ts index c21036d..eb88205 100644 --- a/src/equipo-tipo-entrada/equipo-tipo-entrada.service.ts +++ b/src/equipo-tipo-entrada/equipo-tipo-entrada.service.ts @@ -30,37 +30,50 @@ export class EquipoTipoEntradaService { private institucionTipoEntradaService: InstitucionTipoEntradaService, ) {} - async asignar(id_equipo: number, id_tipo_entrada: number) { + async asignar( + operador: Operador, + id_equipo: number, + id_tipo_entrada: number, + ): Promise<{ message: string }> { const equipo = await this.equipoService.findById(id_equipo); const tipoEntrada = await this.institucionTipoEntradaService.findTipoEntradaById( id_tipo_entrada, ); - // Validamos que no eixsta un registro con estos ids - return this.findByEquipoTipoEntrada(equipo, tipoEntrada).then( - (existeEquipoTipoEntrada) => { - // Error si existe saco error + // Validamos que el equipo pertenezca a la institución del operador + if ( + operador.institucion.id_institucion != + equipo.carrito.modulo.institucion.id_institucion + ) + throw new ForbiddenException( + 'No puedes modificar la información este equipo porque no pertenece a tu institución.', + ); + // Buscamos un registro con los datos mandados del client + return this.findByEquipoTipoEntrada(equipo, tipoEntrada) + .then((existeEquipoTipoEntrada) => { + // Si encontramos uno sacamos error if (existeEquipoTipoEntrada) throw new ConflictException( - 'Este tipo de entrada ya fue asignado a este equipo.', + 'Este conector ya fue asignado a este equipo.', ); return this.create(equipo, tipoEntrada); - }, - ); - } - - create(equipo: Equipo, tipoEntrada: TipoEntrada) { - // Crear y guradar registro - return this.repository - .save(this.repository.create({ equipo, tipoEntrada })) - .then((equipoTipoEntrada) => ({ - message: `Se asignó el tipo de entrada: ${tipoEntrada.tipo_entrada}, al equipo con número de inventario: ${equipo.numero_inventario}.`, - equipoTipoEntrada, + }) + .then((_) => ({ + message: 'Se asignó correctamente el conector a este equipo.', })); } - delete(operador: Operador, id_equipo_tipo_entrada: number) { + create(equipo: Equipo, tipoEntrada: TipoEntrada): Promise { + return this.repository.save( + this.repository.create({ equipo, tipoEntrada }), + ); + } + + delete( + operador: Operador, + id_equipo_tipo_entrada: number, + ): Promise<{ message: string }> { return this.findById(id_equipo_tipo_entrada) .then((equipoTipoEntrada) => { // Validamos que el equipo pertenezca a la institución del operador @@ -71,36 +84,22 @@ export class EquipoTipoEntradaService { throw new ForbiddenException( 'No puedes modificar la información este equipo porque no pertenece a tu institución.', ); - // Eliminar registro + // Eliminamos registro return this.repository.remove(equipoTipoEntrada); }) .then((_) => ({ - message: 'Se eliminó correctamente el tipo de entrada de este equipo.', + message: 'Se eliminó correctamente el conector de este equipo.', })); } - findFullInfoAllByIdEquipo(id_equipo: number) { - return this.fullInformacionEquipoTipoEntradaView - .find({ where: { id_equipo } }) - .then((infoEquipoTipoEntradas) => { - const equipoTipoEntradas: EquipoTipoEntrada[] = []; - - for (let i = 0; i < infoEquipoTipoEntradas.length; i++) - equipoTipoEntradas.push( - this.repository.create({ - id_equipo_tipo_entrada: - infoEquipoTipoEntradas[i].id_equipo_tipo_entrada, - tipoEntrada: { - id_tipo_entrada: infoEquipoTipoEntradas[i].id_tipo_entrada, - tipo_entrada: infoEquipoTipoEntradas[i].tipo_entrada, - }, - }), - ); - return equipoTipoEntradas; - }); + findByEquipoTipoEntrada( + equipo: Equipo, + tipoEntrada: TipoEntrada, + ): Promise { + return this.repository.findOne({ where: { equipo, tipoEntrada } }); } - findById(id_equipo_tipo_entrada: number) { + findById(id_equipo_tipo_entrada: number): Promise { return this.informacionEquipoTipoEntradaView .findOne({ where: { id_equipo_tipo_entrada } }) .then((infoEquipoTipoEntrada) => { @@ -130,7 +129,24 @@ export class EquipoTipoEntradaService { }); } - findByEquipoTipoEntrada(equipo: Equipo, tipoEntrada: TipoEntrada) { - return this.repository.findOne({ where: { equipo, tipoEntrada } }); + findFullInfoAllByIdEquipo(id_equipo: number): Promise { + return this.fullInformacionEquipoTipoEntradaView + .find({ where: { id_equipo } }) + .then((infoEquipoTipoEntradas) => { + const equipoTipoEntradas: EquipoTipoEntrada[] = []; + + for (let i = 0; i < infoEquipoTipoEntradas.length; i++) + equipoTipoEntradas.push( + this.repository.create({ + id_equipo_tipo_entrada: + infoEquipoTipoEntradas[i].id_equipo_tipo_entrada, + tipoEntrada: { + id_tipo_entrada: infoEquipoTipoEntradas[i].id_tipo_entrada, + tipo_entrada: infoEquipoTipoEntradas[i].tipo_entrada, + }, + }), + ); + return equipoTipoEntradas; + }); } } diff --git a/src/multa/multa.service.ts b/src/multa/multa.service.ts index c9ed2b1..57a27d1 100644 --- a/src/multa/multa.service.ts +++ b/src/multa/multa.service.ts @@ -67,7 +67,7 @@ export class MultaService { // correctamente esa vez if (existeMulta) return; this.validacionMultaCancelacion(prestamo); - // Si no se mando un id_institucion_infraccion ni retraso saco error + // Si no se mando un id_institucion_infraccion ni retraso sacamos error if (!id_institucion_infraccion && !retraso) throw new ConflictException( 'No se mandó ningún motivo para multar a este alumno.', diff --git a/src/upload-file/upload-file.service.ts b/src/upload-file/upload-file.service.ts index 7181597..818da9b 100644 --- a/src/upload-file/upload-file.service.ts +++ b/src/upload-file/upload-file.service.ts @@ -301,10 +301,9 @@ export class UploadFileService { } await this.equipoTipoEntradaService .create(equipo, tipoEntrada) - .then((res) => { - equipo.tiposEntradas.push(res.equipoTipoEntrada); - mensajes.push(res.message); - }); + .then((equipoTipoEntrada) => + equipo.tiposEntradas.push(equipoTipoEntrada), + ); } for (let j = 0; j < programas.length; j++) { const programa =