diff --git a/apps/web/src/routes/(dashboard)/licitacoes/empresas/+page.svelte b/apps/web/src/routes/(dashboard)/licitacoes/empresas/+page.svelte index 189872f..24c8b47 100644 --- a/apps/web/src/routes/(dashboard)/licitacoes/empresas/+page.svelte +++ b/apps/web/src/routes/(dashboard)/licitacoes/empresas/+page.svelte @@ -5,7 +5,6 @@ import { Building2, Phone, Mail, Plus, Users, Pencil, X } from "lucide-svelte"; import { resolve } from "$app/paths"; import { maskCNPJ, maskCEP, maskPhone, maskUF, onlyDigits } from "$lib/utils/masks"; - import "$lib/svelte-compat"; const client = useConvexClient(); const empresasQuery = useQuery(api.empresas.list, {}); @@ -76,13 +75,12 @@ let carregandoCnpj = $state(false); let erroCnpj = $state(""); - type ReceitaWsResponse = { - status?: string; - message?: string; - nome?: string; - fantasia?: string; - telefone?: string; + type BrasilApiCnpjResponse = { + razao_social?: string; + nome_fantasia?: string; email?: string; + ddd_telefone_1?: string; + telefone?: string; cep?: string; logradouro?: string; numero?: string; @@ -90,6 +88,7 @@ bairro?: string; municipio?: string; uf?: string; + message?: string; }; function handleEmpresaCnpjInput(event: Event) { @@ -105,21 +104,23 @@ carregandoCnpj = true; erroCnpj = ""; try { - const response = await fetch(`https://www.receitaws.com.br/v1/cnpj/${digits}`); - const data: ReceitaWsResponse = await response.json(); + const response = await fetch(`https://brasilapi.com.br/api/cnpj/v1/${digits}`); + const data: BrasilApiCnpjResponse = await response.json(); - if (data.status === "ERROR") { + if (!response.ok) { throw new Error(data.message || "CNPJ não encontrado."); } - if (data.nome && !empresaForm.razao_social) { - empresaForm.razao_social = data.nome; + if (data.razao_social && !empresaForm.razao_social) { + empresaForm.razao_social = data.razao_social; } - if (data.fantasia && !empresaForm.nome_fantasia) { - empresaForm.nome_fantasia = data.fantasia; + if (data.nome_fantasia && !empresaForm.nome_fantasia) { + empresaForm.nome_fantasia = data.nome_fantasia; } - if (data.telefone && !empresaForm.telefone) { - empresaForm.telefone = maskPhone(data.telefone); + + const telefoneFonte = data.ddd_telefone_1 ?? data.telefone; + if (telefoneFonte && !empresaForm.telefone) { + empresaForm.telefone = maskPhone(telefoneFonte); } if (data.email && !empresaForm.email) { empresaForm.email = data.email; @@ -463,8 +464,8 @@
| Razão social / Nome fantasia | CNPJ | +Razão social / Nome fantasia | Telefone | Ações | @@ -473,6 +474,7 @@|
|---|---|---|---|---|---|
| {empresa.cnpj} |
{empresa.razao_social}
@@ -481,7 +483,6 @@
{/if}
|
- {empresa.cnpj} |
|