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) <noreply@anthropic.com>
This commit is contained in:
2026-07-20 18:17:03 +00:00
parent 26857643fb
commit a614147fc4
2 changed files with 11 additions and 11 deletions

View File

@@ -85,15 +85,15 @@ export class CatalogService {
TRIM(e.cnpj) AS cnpj, TRIM(e.cnpj) AS cnpj,
TRIM(e.inscr_estadual) AS inscr_estadual, TRIM(e.inscr_estadual) AS inscr_estadual,
TRIM(e.endereco) AS endereco, TRIM(e.endereco) AS endereco,
NULLIF(e.numero, 0)::text AS numero, e.num_endereco::text AS numero,
NULLIF(TRIM(e.complemento), '.') AS complemento, e.complemento,
TRIM(e.bairro) AS bairro, TRIM(e.bairro) AS bairro,
TRIM(m.nome) AS cidade, TRIM(m.nome) AS cidade,
TRIM(e.estado::text) AS uf, TRIM(e.uf) AS uf,
TRIM(e.cep::text) AS cep, e.cep,
TRIM(e.telefone::text) AS telefone, e.telefone,
TRIM(e.email) AS email TRIM(e.email) AS email
FROM gestao.empresa e FROM sar.vw_empresas e
LEFT JOIN sar.vw_municipios m ON m.id_municipio = e.id_municipio LEFT JOIN sar.vw_municipios m ON m.id_municipio = e.id_municipio
WHERE e.id_empresa = ${idEmpresa} WHERE e.id_empresa = ${idEmpresa}
LIMIT 1 LIMIT 1

View File

@@ -475,7 +475,7 @@ export class ClientsService {
WHERE ped.id_cliente = ${idCliente} WHERE ped.id_cliente = ${idCliente}
AND ped.id_empresa = ${idEmpresa} AND ped.id_empresa = ${idEmpresa}
AND ped.situa NOT IN (5) 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 ORDER BY SUM(i.qtd) DESC
LIMIT ${limit} LIMIT ${limit}
`); `);