carrito motivo service final
This commit is contained in:
@@ -45,29 +45,31 @@ export class CarritoMotivoController {
|
||||
|
||||
this.validarUsuarioService.validarAdminOperador(operador);
|
||||
return this.carritoMotivoService.findAllByIdCarrito(
|
||||
operador,
|
||||
parseInt(query.id_carrito),
|
||||
parseInt(query.pagina),
|
||||
);
|
||||
}
|
||||
|
||||
// @Serealize(CarritoMotivoOutputDto)
|
||||
// @Get('reporte')
|
||||
// @UseGuards(AuthGuard('jwt'))
|
||||
// @ApiOperation({
|
||||
// description: 'Reporte de los cambios de status de un carrito.',
|
||||
// })
|
||||
// @ApiBearerAuth('jwt')
|
||||
// @ApiQuery({
|
||||
// description: 'Id del carrito.',
|
||||
// name: 'id_carrito',
|
||||
// type: 'string',
|
||||
// })
|
||||
// reporte(@Request() req, @Query() query: CarritoDto) {
|
||||
// const operador: Operador = req.user.operador;
|
||||
@Serealize(CarritoMotivoOutputDto)
|
||||
@Get('reporte')
|
||||
@UseGuards(AuthGuard('jwt'))
|
||||
@ApiOperation({
|
||||
description: 'Reporte de todos los cambios de status de un carrito.',
|
||||
})
|
||||
@ApiBearerAuth('jwt')
|
||||
@ApiQuery({
|
||||
description: 'Id del carrito.',
|
||||
name: 'id_carrito',
|
||||
type: 'string',
|
||||
})
|
||||
reporte(@Request() req, @Query() query: CarritoDto) {
|
||||
const admin: Operador = req.user.operador;
|
||||
|
||||
// this.validarUsuarioService.validarAdminOperador(operador);
|
||||
// return this.carritoMotivoService.findAllByIdCarrito(
|
||||
// parseInt(query.id_carrito),
|
||||
// );
|
||||
// }
|
||||
this.validarUsuarioService.validarAdmin(admin);
|
||||
return this.carritoMotivoService.findAllByIdCarrito(
|
||||
admin,
|
||||
parseInt(query.id_carrito),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,8 +10,8 @@ import { StatusModule } from '../status/status.module';
|
||||
@Module({
|
||||
imports: [
|
||||
forwardRef(() => CarritoModule),
|
||||
StatusModule,
|
||||
PassportModule.register({ defaultStrategy: 'jwt' }),
|
||||
StatusModule,
|
||||
TypeOrmModule.forFeature([CarritoMotivo]),
|
||||
],
|
||||
controllers: [CarritoMotivoController],
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
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 { Repository } from 'typeorm';
|
||||
import { FindManyOptions, Repository } from 'typeorm';
|
||||
import { Carrito } from '../carrito/entity/carrito.entity';
|
||||
import { CarritoMotivo } from './entity/carrito-motivo.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
@@ -22,27 +27,40 @@ export class CarritoMotivoService {
|
||||
status: boolean,
|
||||
motivo: string,
|
||||
laboratorioMovil: boolean,
|
||||
) {
|
||||
// Creo y gurado registro
|
||||
): Promise<CarritoMotivo> {
|
||||
// Cramos y guardamos registro
|
||||
return this.repository.save(
|
||||
this.repository.create({
|
||||
carrito,
|
||||
fecha_creacion: moment().toDate(),
|
||||
motivo,
|
||||
operador,
|
||||
status,
|
||||
laboratorioMovil,
|
||||
motivo,
|
||||
status,
|
||||
carrito,
|
||||
operador,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
findAllByIdCarrito(id_carrito: number, pagina: number) {
|
||||
return this.carritoService.findById(id_carrito).then((carrito) =>
|
||||
this.repository.findAndCount({
|
||||
where: { carrito },
|
||||
skip: (pagina - 1) * 25,
|
||||
take: 25,
|
||||
}),
|
||||
);
|
||||
async findAllByIdCarrito(
|
||||
operador: Operador,
|
||||
id_carrito: number,
|
||||
pagina?: number,
|
||||
): Promise<CarritoMotivo[] | [CarritoMotivo[], number]> {
|
||||
const carrito = await this.carritoService.findById(id_carrito);
|
||||
const options: FindManyOptions<CarritoMotivo> = { where: { carrito } };
|
||||
|
||||
if (
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user