equipos con una opción mas
This commit is contained in:
@@ -91,12 +91,17 @@ export class CarritoService {
|
||||
id_modulo?: string;
|
||||
id_tipo_carrito?: string;
|
||||
}) {
|
||||
const busqueda: {
|
||||
modulo?: Modulo | { institucion: Institucion };
|
||||
activo?: boolean;
|
||||
carrito?: FindOperator<string>;
|
||||
tipoCarrito?: TipoCarrito;
|
||||
} = {};
|
||||
const query = this.repository
|
||||
.createQueryBuilder('c')
|
||||
.innerJoinAndSelect('c.modulo', 'm')
|
||||
.innerJoinAndSelect('c.tipoCarrito', 'tc')
|
||||
.innerJoinAndSelect('m.institucion', 'i')
|
||||
.orderBy('i.institucion')
|
||||
.addOrderBy('m.modulo')
|
||||
.addOrderBy('tc.tipo_carrito')
|
||||
.addOrderBy('c.carrito')
|
||||
.skip((parseInt(filtros.pagina) - 1) * 25)
|
||||
.take(25);
|
||||
const institucion = filtros.id_institucion
|
||||
? await this.institucionService.findById(parseInt(filtros.id_institucion))
|
||||
: null;
|
||||
@@ -109,26 +114,25 @@ export class CarritoService {
|
||||
)
|
||||
: null;
|
||||
|
||||
if (filtros.activo === 'true') busqueda.activo = true;
|
||||
if (filtros.activo === 'false') busqueda.activo = false;
|
||||
if (filtros.carrito) busqueda.carrito = Like(`%${filtros.carrito}%`);
|
||||
if (tipoCarrito) busqueda.tipoCarrito = tipoCarrito;
|
||||
if (institucion) busqueda.modulo = { institucion };
|
||||
if (modulo) busqueda.modulo = modulo;
|
||||
return this.repository.findAndCount({
|
||||
join: {
|
||||
alias: 'c',
|
||||
innerJoinAndSelect: { m: 'c.modulo', i: 'm.institucion' },
|
||||
},
|
||||
where: busqueda,
|
||||
order: {
|
||||
modulo: 'ASC',
|
||||
tipoCarrito: 'ASC',
|
||||
carrito: 'ASC',
|
||||
},
|
||||
skip: (parseInt(filtros.pagina) - 1) * 25,
|
||||
take: 25,
|
||||
});
|
||||
if (filtros.activo === 'true') query.andWhere('c.activo = 1');
|
||||
if (filtros.activo === 'false') query.andWhere('c.activo = 0');
|
||||
if (filtros.carrito)
|
||||
query.andWhere('c.carrito LIKE :carrito', {
|
||||
carrito: `%${filtros.carrito}%`,
|
||||
});
|
||||
if (tipoCarrito)
|
||||
query.andWhere('tc.id_tipo_carrito = :id_tipo_carrito', {
|
||||
id_tipo_carrito: tipoCarrito.id_tipo_carrito,
|
||||
});
|
||||
if (institucion)
|
||||
query.andWhere('i.id_institucion = :id_institucion', {
|
||||
id_institucion: institucion.id_institucion,
|
||||
});
|
||||
if (modulo)
|
||||
query.andWhere('m.id_modulo = :id_modulo', {
|
||||
id_modulo: modulo.id_modulo,
|
||||
});
|
||||
return query.getManyAndCount();
|
||||
}
|
||||
|
||||
findById(id_carrito: number) {
|
||||
|
||||
@@ -12,6 +12,10 @@ export class EquiposDto {
|
||||
@IsOptional()
|
||||
equipo?: string;
|
||||
|
||||
@IsNumberString()
|
||||
@IsOptional()
|
||||
id_institucion?: string;
|
||||
|
||||
@IsNumberString()
|
||||
@IsOptional()
|
||||
id_modulo?: string;
|
||||
|
||||
@@ -60,6 +60,11 @@ export class EquipoController {
|
||||
name: 'equipo',
|
||||
type: 'string',
|
||||
})
|
||||
@ApiQuery({
|
||||
description: 'Id de la institución que se quiere usar como filtro.',
|
||||
name: 'id_institucion',
|
||||
type: 'string',
|
||||
})
|
||||
@ApiQuery({
|
||||
description: 'Id del tipo de carrito que se quiere usar como filtro.',
|
||||
name: 'id_tipo_carrito',
|
||||
|
||||
@@ -88,12 +88,16 @@ export class EquipoService {
|
||||
pagina: string;
|
||||
carrito?: string;
|
||||
equipo?: string;
|
||||
id_institucion?: string;
|
||||
id_modulo?: string;
|
||||
id_programa?: string;
|
||||
id_tipo_carrito?: string;
|
||||
id_tipo_entrada?: string;
|
||||
id_status?: string;
|
||||
}) {
|
||||
const institucion = filtros.id_institucion
|
||||
? await this.institucionService.findById(parseInt(filtros.id_institucion))
|
||||
: null;
|
||||
const modulo = filtros.id_modulo
|
||||
? await this.moduloService.findById(parseInt(filtros.id_modulo))
|
||||
: null;
|
||||
@@ -128,7 +132,7 @@ export class EquipoService {
|
||||
.innerJoinAndSelect('m.institucion', 'i')
|
||||
.orderBy('i.institucion')
|
||||
.addOrderBy('m.modulo')
|
||||
.addOrderBy('tc.id_tipo_carrito')
|
||||
.addOrderBy('tc.tipo_carrito')
|
||||
.addOrderBy('c.carrito')
|
||||
.addOrderBy('e.equipo')
|
||||
.take(15)
|
||||
@@ -139,9 +143,13 @@ export class EquipoService {
|
||||
carrito: `%${filtros.carrito}%`,
|
||||
});
|
||||
if (filtros.equipo)
|
||||
query.andWhere('equipo LIKE :equipo', {
|
||||
query.andWhere('e.equipo LIKE :equipo', {
|
||||
equipo: `%${filtros.equipo}%`,
|
||||
});
|
||||
if (institucion)
|
||||
query.andWhere('m.id_institucion = :id_institucion', {
|
||||
id_institucion: institucion.id_institucion,
|
||||
});
|
||||
if (modulo)
|
||||
query.andWhere('m.id_modulo = :id_modulo', {
|
||||
id_modulo: modulo.id_modulo,
|
||||
|
||||
@@ -52,7 +52,19 @@ export class ModuloService {
|
||||
findAllByIdInstitucion(id_institucion: number) {
|
||||
return this.institucionService
|
||||
.findById(id_institucion)
|
||||
.then((institucion) => this.repository.find({ institucion }));
|
||||
.then((institucion) =>
|
||||
this.repository
|
||||
.createQueryBuilder('m')
|
||||
.innerJoinAndSelect(
|
||||
'm.institucion',
|
||||
'i',
|
||||
'i.id_institucion = :id_institucion',
|
||||
{ id_institucion: institucion.id_institucion },
|
||||
)
|
||||
.orderBy('i.institucion')
|
||||
.orderBy('m.modulo')
|
||||
.getMany(),
|
||||
);
|
||||
}
|
||||
|
||||
findById(id_modulo: number) {
|
||||
|
||||
Reference in New Issue
Block a user