equipo motivo service final
This commit is contained in:
parent
323f30b748
commit
01220db339
@ -57,7 +57,7 @@ export class CarritoMotivoService {
|
|||||||
throw new ForbiddenException(
|
throw new ForbiddenException(
|
||||||
'No puedes acceder a esta información porque no le pertenece a tu institución.',
|
'No puedes acceder a esta información porque no le pertenece a tu institución.',
|
||||||
);
|
);
|
||||||
// Si se mandó página significa que quiere paginación
|
// Si se mandó página significa que requiere paginación
|
||||||
if (pagina) {
|
if (pagina) {
|
||||||
options.skip = (pagina - 1) * 25;
|
options.skip = (pagina - 1) * 25;
|
||||||
options.take = 25;
|
options.take = 25;
|
||||||
|
@ -132,7 +132,7 @@ export class CarritoService {
|
|||||||
if (modulo) busqueda.id_modulo = modulo.id_modulo;
|
if (modulo) busqueda.id_modulo = modulo.id_modulo;
|
||||||
if (tipoCarrito) busqueda.id_tipo_carrito = tipoCarrito.id_tipo_carrito;
|
if (tipoCarrito) busqueda.id_tipo_carrito = tipoCarrito.id_tipo_carrito;
|
||||||
options.where = busqueda;
|
options.where = busqueda;
|
||||||
// Si los filtros tienen el atributo página significa que quiere paginación
|
// Si los filtros tienen el atributo página significa que requiere paginación
|
||||||
if (filtros.pagina) {
|
if (filtros.pagina) {
|
||||||
options.skip = (parseInt(filtros.pagina) - 1) * 25;
|
options.skip = (parseInt(filtros.pagina) - 1) * 25;
|
||||||
options.take = 25;
|
options.take = 25;
|
||||||
|
6
src/equipo-motivo/dto/input/reporte.dto.ts
Normal file
6
src/equipo-motivo/dto/input/reporte.dto.ts
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import { IsNumberString } from 'class-validator';
|
||||||
|
|
||||||
|
export class ReporteDto {
|
||||||
|
@IsNumberString()
|
||||||
|
id_equipo: string;
|
||||||
|
}
|
@ -11,6 +11,7 @@ import { EquipoMotivoService } from './equipo-motivo.service';
|
|||||||
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
|
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
|
||||||
import { Operador } from '../operador/entity/operador.entity';
|
import { Operador } from '../operador/entity/operador.entity';
|
||||||
import { IdEquipoPaginaDto } from '../dto/input/id-equipo-pagina.dto';
|
import { IdEquipoPaginaDto } from '../dto/input/id-equipo-pagina.dto';
|
||||||
|
import { ReporteDto } from './dto/input/reporte.dto';
|
||||||
import { EquipoMotivoOutputDto } from './dto/output/equipo-motivo.dto';
|
import { EquipoMotivoOutputDto } from './dto/output/equipo-motivo.dto';
|
||||||
|
|
||||||
@Controller('equipo-motivo')
|
@Controller('equipo-motivo')
|
||||||
@ -44,30 +45,31 @@ export class EquipoMotivoController {
|
|||||||
|
|
||||||
this.validarUsuarioService.validarAdminOperador(operador);
|
this.validarUsuarioService.validarAdminOperador(operador);
|
||||||
return this.equipoMotivoService.findAllByIdEquipo(
|
return this.equipoMotivoService.findAllByIdEquipo(
|
||||||
|
operador,
|
||||||
parseInt(query.id_equipo),
|
parseInt(query.id_equipo),
|
||||||
parseInt(query.pagina),
|
parseInt(query.pagina),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Serealize(EquipoMotivoOutputDto)
|
@Serealize(EquipoMotivoOutputDto)
|
||||||
// @Get('reporte')
|
@Get('reporte')
|
||||||
// @UseGuards(AuthGuard('jwt'))
|
@UseGuards(AuthGuard('jwt'))
|
||||||
// @ApiOperation({
|
@ApiOperation({
|
||||||
// description: 'Reporte de todos los cambios de status de un equipo.',
|
description: 'Reporte de todos los cambios de status de un equipo.',
|
||||||
// })
|
})
|
||||||
// @ApiBearerAuth('jwt')
|
@ApiBearerAuth('jwt')
|
||||||
// @ApiQuery({
|
@ApiQuery({
|
||||||
// description: 'Id del equipo.',
|
description: 'Id del equipo.',
|
||||||
// name: 'id_equipo',
|
name: 'id_equipo',
|
||||||
// type: 'string',
|
type: 'string',
|
||||||
// })
|
})
|
||||||
// reporte(@Request() req, @Query() query: IdEquipoPaginaDto) {
|
reporte(@Request() req, @Query() query: ReporteDto) {
|
||||||
// const admin: Operador = req.user.operador;
|
const admin: Operador = req.user.operador;
|
||||||
|
|
||||||
// this.validarUsuarioService.validarAdmin(admin);
|
this.validarUsuarioService.validarAdmin(admin);
|
||||||
// return this.equipoMotivoService.findAllByIdEquipo(
|
return this.equipoMotivoService.findAllByIdEquipo(
|
||||||
// parseInt(query.id_equipo),
|
admin,
|
||||||
// parseInt(query.pagina),
|
parseInt(query.id_equipo),
|
||||||
// );
|
);
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,14 +5,10 @@ import { EquipoMotivoController } from './equipo-motivo.controller';
|
|||||||
import { EquipoMotivoService } from './equipo-motivo.service';
|
import { EquipoMotivoService } from './equipo-motivo.service';
|
||||||
import { EquipoMotivo } from './entity/equipo-motivo.entity';
|
import { EquipoMotivo } from './entity/equipo-motivo.entity';
|
||||||
import { EquipoModule } from '../equipo/equipo.module';
|
import { EquipoModule } from '../equipo/equipo.module';
|
||||||
import { OperadorModule } from '../operador/operador.module';
|
|
||||||
import { StatusModule } from '../status/status.module';
|
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
forwardRef(() => EquipoModule),
|
forwardRef(() => EquipoModule),
|
||||||
OperadorModule,
|
|
||||||
StatusModule,
|
|
||||||
PassportModule.register({ defaultStrategy: 'jwt' }),
|
PassportModule.register({ defaultStrategy: 'jwt' }),
|
||||||
TypeOrmModule.forFeature([EquipoMotivo]),
|
TypeOrmModule.forFeature([EquipoMotivo]),
|
||||||
],
|
],
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
import * as moment from 'moment';
|
import * as moment from 'moment';
|
||||||
import { forwardRef, Inject, Injectable } from '@nestjs/common';
|
import {
|
||||||
|
ForbiddenException,
|
||||||
|
forwardRef,
|
||||||
|
Inject,
|
||||||
|
Injectable,
|
||||||
|
} from '@nestjs/common';
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { Repository } from 'typeorm';
|
import { FindManyOptions, Repository } from 'typeorm';
|
||||||
import { Equipo } from '../equipo/entity/equipo.entity';
|
import { Equipo } from '../equipo/entity/equipo.entity';
|
||||||
import { EquipoMotivo } from './entity/equipo-motivo.entity';
|
import { EquipoMotivo } from './entity/equipo-motivo.entity';
|
||||||
import { Operador } from '../operador/entity/operador.entity';
|
import { Operador } from '../operador/entity/operador.entity';
|
||||||
import { Status } from '../status/entity/status.entity';
|
import { Status } from '../status/entity/status.entity';
|
||||||
import { EquipoService } from '../equipo/equipo.service';
|
import { EquipoService } from '../equipo/equipo.service';
|
||||||
import { OperadorService } from '../operador/operador.service';
|
|
||||||
import { StatusService } from '../status/status.service';
|
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class EquipoMotivoService {
|
export class EquipoMotivoService {
|
||||||
@ -17,8 +20,6 @@ export class EquipoMotivoService {
|
|||||||
private repository: Repository<EquipoMotivo>,
|
private repository: Repository<EquipoMotivo>,
|
||||||
@Inject(forwardRef(() => EquipoService))
|
@Inject(forwardRef(() => EquipoService))
|
||||||
private equipoService: EquipoService,
|
private equipoService: EquipoService,
|
||||||
private operadorService: OperadorService,
|
|
||||||
private statusService: StatusService,
|
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async create(
|
async create(
|
||||||
@ -26,28 +27,40 @@ export class EquipoMotivoService {
|
|||||||
operador: Operador,
|
operador: Operador,
|
||||||
status: Status,
|
status: Status,
|
||||||
motivo: string,
|
motivo: string,
|
||||||
) {
|
): Promise<EquipoMotivo> {
|
||||||
const ahora = moment();
|
// Cramos y guardamos registro
|
||||||
|
|
||||||
// Creo registro y lo guardo
|
|
||||||
return this.repository.save(
|
return this.repository.save(
|
||||||
this.repository.create({
|
this.repository.create({
|
||||||
equipo,
|
fecha_creacion: moment().toDate(),
|
||||||
fecha_creacion: ahora.toDate(),
|
|
||||||
motivo,
|
motivo,
|
||||||
|
equipo,
|
||||||
operador,
|
operador,
|
||||||
status,
|
status,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
findAllByIdEquipo(id_equipo: number, pagina: number) {
|
async findAllByIdEquipo(
|
||||||
return this.equipoService.findById(id_equipo).then((equipo) =>
|
operador: Operador,
|
||||||
this.repository.findAndCount({
|
id_equipo: number,
|
||||||
where: { equipo },
|
pagina?: number,
|
||||||
skip: (pagina - 1) * 25,
|
): Promise<EquipoMotivo[] | [EquipoMotivo[], number]> {
|
||||||
take: 25,
|
const equipo = await this.equipoService.findById(id_equipo);
|
||||||
}),
|
const options: FindManyOptions<EquipoMotivo> = { where: { equipo } };
|
||||||
);
|
|
||||||
|
// Validamos que el equipo pertenezca a la institución del operador
|
||||||
|
if (
|
||||||
|
equipo.carrito.modulo.institucion.id_institucion !=
|
||||||
|
operador.institucion.id_institucion
|
||||||
|
)
|
||||||
|
throw new ForbiddenException(
|
||||||
|
'No puedes acceder a esta información porque no le pertenece a tu institución.',
|
||||||
|
);
|
||||||
|
// Si se mandó página significa que quiere paginación
|
||||||
|
if (pagina) {
|
||||||
|
options.skip = (pagina - 1) * 25;
|
||||||
|
options.take = 25;
|
||||||
|
return this.repository.findAndCount(options);
|
||||||
|
} else return this.repository.find(options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user