Atualizações em data-consult e products

This commit is contained in:
joelson brito
2025-11-10 12:39:31 -03:00
parent b8630adf92
commit 054cc2f3bb
8 changed files with 396 additions and 150 deletions

View File

@@ -83,6 +83,20 @@ export class DataConsultController {
return this.dataConsultService.customers(filter);
}
@UseGuards(JwtAuthGuard)
@ApiBearerAuth()
@Get('products/codauxiliar/:codauxiliar')
@ApiOperation({ summary: 'Busca produtos por código auxiliar (EAN)' })
@ApiParam({ name: 'codauxiliar', description: 'Código auxiliar (EAN) do produto' })
@ApiResponse({
status: 200,
description: 'Lista de produtos encontrados por código auxiliar',
type: [ProductDto],
})
async productsByCodauxiliar(@Param('codauxiliar') codauxiliar: string): Promise<ProductDto[]> {
return this.dataConsultService.productsByCodauxiliar(codauxiliar);
}
@UseGuards(JwtAuthGuard)
@ApiBearerAuth()
@Get('products/:filter')

View File

@@ -126,6 +126,17 @@ export class DataConsultRepository {
return results.map((result) => new ProductDto(result));
}
async findProductsByCodauxiliar(codauxiliar: string): Promise<ProductDto[]> {
const sql = `
SELECT PCPRODUT.CODPROD as "id",
PCPRODUT.CODPROD || ' - ' || PCPRODUT.DESCRICAO || ' ( ' || PCPRODUT.CODFAB || ' )' as "description"
FROM PCPRODUT
WHERE REGEXP_REPLACE(PCPRODUT.CODAUXILIAR, '[^0-9]', '') = REGEXP_REPLACE(:codauxiliar, '[^0-9]', '')
`;
const results = await this.dataSource.query(sql, [codauxiliar]);
return results.map((result) => new ProductDto(result));
}
async findAllProducts(): Promise<ProductDto[]> {
const sql = `
SELECT PCPRODUT.CODPROD as "id",

View File

@@ -227,6 +227,23 @@ export class DataConsultService {
}
}
async productsByCodauxiliar(codauxiliar: string): Promise<ProductDto[]> {
this.logger.log(`Buscando produtos por codauxiliar: ${codauxiliar}`);
try {
if (!codauxiliar || typeof codauxiliar !== 'string') {
throw new HttpException('Código auxiliar inválido', HttpStatus.BAD_REQUEST);
}
const products = await this.repository.findProductsByCodauxiliar(codauxiliar);
return products.map((product) => new ProductDto(product));
} catch (error) {
this.logger.error('Erro ao buscar produtos por codauxiliar', error);
throw new HttpException(
'Erro ao buscar produtos por codauxiliar',
HttpStatus.INTERNAL_SERVER_ERROR,
);
}
}
async getAllProducts(): Promise<ProductDto[]> {
this.logger.log('Buscando todos os produtos');
try {