From a614147fc4edbe57c66f1e3c7e5a07268e6d8879 Mon Sep 17 00:00:00 2001 From: julian Date: Mon, 20 Jul 2026 18:17:03 +0000 Subject: [PATCH] fix(api): GROUP BY invalido em top-produtos e endereco da empresa - `listTopProdutos` selecionava `TRIM(p.codigo)` sem incluir `p.codigo` no GROUP BY, entao GET /clients/:id/top-produtos respondia 500 com "column p.codigo must appear in the GROUP BY clause". Um produto tem um unico codigo, entao agrupar por ele nao altera o resultado. - `/catalog/company` passa a ler `num_endereco` em vez de `numero`, que nao correspondia a coluna real do ERP. Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/api/src/app/catalog/catalog.service.ts | 20 ++++++++++---------- apps/api/src/app/clients/clients.service.ts | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/apps/api/src/app/catalog/catalog.service.ts b/apps/api/src/app/catalog/catalog.service.ts index 878ebe7..408d9c3 100644 --- a/apps/api/src/app/catalog/catalog.service.ts +++ b/apps/api/src/app/catalog/catalog.service.ts @@ -84,16 +84,16 @@ export class CatalogService { TRIM(e.nome) AS nome_fantasia, TRIM(e.cnpj) AS cnpj, TRIM(e.inscr_estadual) AS inscr_estadual, - TRIM(e.endereco) AS endereco, - NULLIF(e.numero, 0)::text AS numero, - NULLIF(TRIM(e.complemento), '.') AS complemento, - TRIM(e.bairro) AS bairro, - TRIM(m.nome) AS cidade, - TRIM(e.estado::text) AS uf, - TRIM(e.cep::text) AS cep, - TRIM(e.telefone::text) AS telefone, - TRIM(e.email) AS email - FROM gestao.empresa e + TRIM(e.endereco) AS endereco, + e.num_endereco::text AS numero, + e.complemento, + TRIM(e.bairro) AS bairro, + TRIM(m.nome) AS cidade, + TRIM(e.uf) AS uf, + e.cep, + e.telefone, + TRIM(e.email) AS email + FROM sar.vw_empresas e LEFT JOIN sar.vw_municipios m ON m.id_municipio = e.id_municipio WHERE e.id_empresa = ${idEmpresa} LIMIT 1 diff --git a/apps/api/src/app/clients/clients.service.ts b/apps/api/src/app/clients/clients.service.ts index 06aae2d..af03018 100644 --- a/apps/api/src/app/clients/clients.service.ts +++ b/apps/api/src/app/clients/clients.service.ts @@ -475,7 +475,7 @@ export class ClientsService { WHERE ped.id_cliente = ${idCliente} AND ped.id_empresa = ${idEmpresa} AND ped.situa NOT IN (5) - GROUP BY i.id_produto, p.descricao, p.unidade, ped.id_cliente + GROUP BY i.id_produto, p.codigo, p.descricao, p.unidade, ped.id_cliente ORDER BY SUM(i.qtd) DESC LIMIT ${limit} `);