feat(web): clientes e catálogo funcionando com dados do ERP

- clients.ts, catalog.ts: corrige bug res.ok/res.json() — apiFetch retorna JSON direto
- catalog.service.ts: corrige nomes de coluna da vw_produtos (descr_det, lista_pauta,
  remove preco_com_ipi inexistente)
- CatalogPage.tsx: nova tela — código, descrição, grupo, marca, preço, estoque
- router.tsx: adiciona rota /catalogo

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-29 14:46:25 +00:00
parent 24408ecd83
commit 1f8a9d872a
5 changed files with 148 additions and 20 deletions

View File

@@ -28,16 +28,15 @@ interface ProdutoRow {
marca: string | null;
ativo: number;
qtd_estoque: string | null;
lista_parauta: number | null;
lista_pauta: number | null;
referencia: string | null;
descricao_detalhada: string | null;
descr_det: string | null;
vl_preco2: string | null;
vl_preco3: string | null;
aliq_ipi: string | null;
peso_liquido: string | null;
qtd_volume: string | null;
lote_mul_venda: number | null;
preco_com_ipi: string | null;
preco_promocional: string | null;
}
@@ -72,16 +71,15 @@ export class CatalogService {
p.marca,
p.ativo,
e.qtd_estoque::text,
p.lista_parauta,
p.lista_pauta,
p.referencia,
p.descricao_detalhada,
p.descr_det,
p.vl_preco2::text,
p.vl_preco3::text,
p.aliq_ipi::text,
p.peso_liquido::text,
p.qtd_volume::text,
p.lote_mul_venda,
p.preco_com_ipi::text,
p.preco_promocional::text
FROM vw_produtos p
LEFT JOIN vw_estoque e ON e.id_erp = p.id_erp AND e.id_empresa = ${idEmpresa}
@@ -114,7 +112,7 @@ export class CatalogService {
marca: p.marca,
ativo: Number(p.ativo),
qtdEstoque: p.qtd_estoque,
listaParauta: p.lista_parauta !== null ? Number(p.lista_parauta) : null,
listaParauta: p.lista_pauta !== null ? Number(p.lista_pauta) : null,
}));
return { data, total, page, limit };
@@ -139,16 +137,15 @@ export class CatalogService {
p.marca,
p.ativo,
e.qtd_estoque::text,
p.lista_parauta,
p.lista_pauta,
p.referencia,
p.descricao_detalhada,
p.descr_det,
p.vl_preco2::text,
p.vl_preco3::text,
p.aliq_ipi::text,
p.peso_liquido::text,
p.qtd_volume::text,
p.lote_mul_venda,
p.preco_com_ipi::text,
p.preco_promocional::text
FROM vw_produtos p
LEFT JOIN vw_estoque e ON e.id_erp = p.id_erp AND e.id_empresa = ${idEmpresa}
@@ -172,16 +169,16 @@ export class CatalogService {
marca: p.marca,
ativo: Number(p.ativo),
qtdEstoque: p.qtd_estoque,
listaParauta: p.lista_parauta !== null ? Number(p.lista_parauta) : null,
listaParauta: p.lista_pauta !== null ? Number(p.lista_pauta) : null,
referencia: p.referencia,
descricaoDetalhada: p.descricao_detalhada,
descricaoDetalhada: p.descr_det,
vlPreco2: p.vl_preco2,
vlPreco3: p.vl_preco3,
aliqIpi: p.aliq_ipi,
pesoLiquido: p.peso_liquido,
qtdVolume: p.qtd_volume,
loteMulVenda: p.lote_mul_venda !== null ? Number(p.lote_mul_venda) : null,
precoComIpi: p.preco_com_ipi,
precoComIpi: null,
precoPromocional: p.preco_promocional,
};
}