Unidade

7 funções do TermoPortal para unidade.

// npm install termo_core --save-exact
import * as portal from "termo_core/portal";
// ou: import { portal } from "termo_core";
FunçãoRotaO que faz
buscar_paginador_unidadeGET /unidadeLista as unidades paginadas
criar_unidadePOST /unidadeCadastra uma unidade ou pede uma nova unidade
buscar_auto_complete_unidadeGET /unidade/autocompleteLista básica de unidades para seleção
buscar_pelo_filtro_unidadeGET /unidade/filtroBusca unidades por filtro
buscar_pelo_id_unidadeGET /unidade/{id}Busca uma unidade pelo id
atualizar_pelo_id_unidadePATCH /unidade/{id}Atualiza uma unidade
deletar_pelo_id_unidadeDELETE /unidade/{id}Exclui uma unidade

buscar_paginador_unidade

GET/unidade Exige credencial

Lista as unidades paginadas

Exige só uma sessão válida (qualquer pessoa logada no portal). Colaborador interno vê todas, em ordem alfabética. Cliente recebe numa página só as unidades da própria sessão (tamanho igual à quantidade). Para colaborador interno: 50 itens por página (fixo), pagina começa em 1. A resposta traz itens, total, pagina e tamanho.

function buscar_paginador_unidade(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPaginadorUnidade = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaUnidade>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_unidade } from "termo_core/portal";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_unidade(credencial_de_acesso, { pagina: 1 });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PaginaUnidade> · Rust: Result<tipos::PaginaUnidade, ErroAoChamarServico> · veja PaginaUnidade.

criar_unidade

POST/unidade Exige credencial

Cadastra uma unidade ou pede uma nova unidade

Exige só uma sessão válida (qualquer pessoa logada no portal). Unidade cliente (unidade) do portal. Colaborador interno com a permissão administrativa usuarios.gerenciar cadastra qualquer unidade; cliente só pede uma nova unidade, que nasce pendente, ligada a ele e sem matriz ou limite (no máximo 3 pedidos em análise). cnpj (CNPJ ou CPF válido) é único; razao_social obrigatória até 150 caracteres; email_comercial obrigatório e válido; telefone_comercial com 10 ou 11 dígitos; status ativo, pendente ou inativo; limite_faturamento zero ou mais; aviso_limite_percentual de 1 a 100; matriz_id precisa ser uma unidade que não é filial. Com tiny, confere antes se o documento tem conta no Tiny. Até 20 chamadas por minuto por pessoa. tiny.verificado_por_pessoa_id (uuid, opcional) registra quem conferiu o cadastro no Tiny. Campos: nome_fantasia até 150 caracteres; inscricao_estadual até 30 caracteres; inscricao_municipal até 30 caracteres; site é o endereço do site (URL válida); responsavel_principal até 150 caracteres; contato_financeiro até 150 caracteres; contato_compras até 150 caracteres.

function criar_unidade(
  credencial_de_acesso: CredencialDeAcesso,
  corpo_da_requisicao: tipos.UnidadeCriar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Unidade>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { criar_unidade } from "termo_core/portal";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await criar_unidade(credencial_de_acesso, corpo_da_requisicao);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.Unidade> · Rust: Result<tipos::Unidade, ErroAoChamarServico> · veja Unidade.

buscar_auto_complete_unidade

GET/unidade/autocomplete Exige credencial

Lista básica de unidades para seleção

Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve id, razão social e CNPJ, em ordem alfabética. busca procura na razão social ou no CNPJ; status filtra. Cliente recebe só as unidades da própria sessão. tamanho tem padrão 10 e vai de 1 a 50; pagina começa em 1. A resposta traz itens, total, pagina e tamanho.

function buscar_auto_complete_unidade(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarAutoCompleteUnidade = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaUnidadeAutoComplete>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_unidade } from "termo_core/portal";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_auto_complete_unidade(credencial_de_acesso, { busca: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PaginaUnidadeAutoComplete> · Rust: Result<tipos::PaginaUnidadeAutoComplete, ErroAoChamarServico> · veja PaginaUnidadeAutoComplete.

buscar_pelo_filtro_unidade

GET/unidade/filtro Exige credencial

Busca unidades por filtro

Exige só uma sessão válida (qualquer pessoa logada no portal). Devolve as unidades não excluídas que casam com o filtro, até 50 por página (pagina, a partir de 1, padrão 1), em ordem alfabética. Cliente só recebe as unidades da própria sessão. razao_social procura o trecho na razão social ou no nome fantasia; cnpj procura os dígitos; status, matriz_id e cliente_id são exatos.

function buscar_pelo_filtro_unidade(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPeloFiltroUnidade = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.Unidade>>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_unidade } from "termo_core/portal";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_filtro_unidade(credencial_de_acesso, { razao_social: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<Array<tipos.Unidade>> · Rust: Result<Vec<tipos::Unidade>, ErroAoChamarServico>

buscar_pelo_id_unidade

GET/unidade/{id} Exige credencial

Busca uma unidade pelo id

Exige só uma sessão válida (qualquer pessoa logada no portal). Unidade excluída, ou fora da sessão, responde 404. Traz filiais, pessoas vinculadas, matriz e uso do limite de faturamento.

function buscar_pelo_id_unidade(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Unidade>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_unidade } from "termo_core/portal";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_unidade(credencial_de_acesso, id);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.Unidade> · Rust: Result<tipos::Unidade, ErroAoChamarServico> · veja Unidade.

atualizar_pelo_id_unidade

PATCH/unidade/{id} Exige credencial

Atualiza uma unidade

Exige só uma sessão válida (qualquer pessoa logada no portal). Exige também a permissão editar no módulo Configuracoes. Só colaborador interno muda matriz_id, status, limite_faturamento, aviso_limite_percentual e cliente_id (envie null em matriz_id, limite_faturamento ou cliente_id para apagar). cliente_id vincula a unidade a um cliente, que passa a ver a unidade no portal. Uma unidade com filiais não vira filial e não pode ser matriz de si mesma. Unidade fora da sessão responde 404; o CNPJ não muda. Atualização parcial: campo ausente mantém o valor atual. Campos: razao_social até 150 caracteres; nome_fantasia até 150 caracteres; inscricao_estadual até 30 caracteres; inscricao_municipal até 30 caracteres; telefone_comercial com 10 ou 11 dígitos; email_comercial precisa ser válido; site é o endereço do site (URL válida); responsavel_principal até 150 caracteres; contato_financeiro até 150 caracteres; contato_compras até 150 caracteres.

function atualizar_pelo_id_unidade(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  corpo_da_requisicao: tipos.UnidadeAtualizar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Unidade>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { atualizar_pelo_id_unidade } from "termo_core/portal";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await atualizar_pelo_id_unidade(credencial_de_acesso, id, corpo_da_requisicao);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.Unidade> · Rust: Result<tipos::Unidade, ErroAoChamarServico> · veja Unidade.

deletar_pelo_id_unidade

DELETE/unidade/{id} Exige credencial

Exclui uma unidade

Exige só uma sessão válida (qualquer pessoa logada no portal). Exige também a permissão excluir no módulo Configuracoes. Recusa unidade com filiais. Unidade fora da sessão responde 404. A exclusão é lógica: o registro some das leituras, mas a linha não é apagada.

function deletar_pelo_id_unidade(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { deletar_pelo_id_unidade } from "termo_core/portal";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
await deletar_pelo_id_unidade(credencial_de_acesso, id);

Argumentos

Nome

Tipo

Retorno: Promise<void> · Rust: Result<(), ErroAoChamarServico> · sem corpo na resposta.

Tipos

Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.

PaginaUnidade

import type { PaginaUnidade } from "termo_core/portal";

export interface PaginaUnidade {
  itens: Array<PaginaUnidadeItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaUnidadeAutoComplete

import type { PaginaUnidadeAutoComplete } from "termo_core/portal";

export interface PaginaUnidadeAutoComplete {
  itens: Array<PaginaUnidadeAutoCompleteItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaUnidadeAutoCompleteItensItem

import type { PaginaUnidadeAutoCompleteItensItem } from "termo_core/portal";

export interface PaginaUnidadeAutoCompleteItensItem {
  cnpj: string;
  id: string;
  razao_social: string;
}

PaginaUnidadeItensItem

import type { PaginaUnidadeItensItem } from "termo_core/portal";

export interface PaginaUnidadeItensItem {
  atualizado_em: string;
  aviso_limite_percentual: number;
  cliente_email?: string | null;
  cliente_id?: string | null;
  cliente_nome?: string | null;
  cnpj: string;
  contato_compras?: string | null;
  contato_financeiro?: string | null;
  criado_em: string;
  email_comercial?: string | null;
  filiais: Array<UnidadeReferencia>;
  id: string;
  inscricao_estadual?: string | null;
  inscricao_municipal?: string | null;
  limite_faturamento?: number | null;
  limite_usado: number;
  matriz_id?: string | null;
  matriz_razao_social?: string | null;
  nome_fantasia?: string | null;
  razao_social: string;
  responsavel_principal?: string | null;
  site?: string | null;
  status: string;
  telefone_comercial?: string | null;
}

Unidade

import type { Unidade } from "termo_core/portal";

export interface Unidade {
  atualizado_em: string;
  aviso_limite_percentual: number;
  cliente_email?: string | null;
  cliente_id?: string | null;
  cliente_nome?: string | null;
  cnpj: string;
  contato_compras?: string | null;
  contato_financeiro?: string | null;
  criado_em: string;
  email_comercial?: string | null;
  filiais: Array<UnidadeReferencia>;
  id: string;
  inscricao_estadual?: string | null;
  inscricao_municipal?: string | null;
  limite_faturamento?: number | null;
  limite_usado: number;
  matriz_id?: string | null;
  matriz_razao_social?: string | null;
  nome_fantasia?: string | null;
  razao_social: string;
  responsavel_principal?: string | null;
  site?: string | null;
  status: string;
  telefone_comercial?: string | null;
}

UnidadeAtualizar

import type { UnidadeAtualizar } from "termo_core/portal";

export interface UnidadeAtualizar {
  aviso_limite_percentual?: number | null;
  cliente_id?: string | null;
  contato_compras?: string | null;
  contato_financeiro?: string | null;
  email_comercial?: string | null;
  inscricao_estadual?: string | null;
  inscricao_municipal?: string | null;
  limite_faturamento?: number | null;
  matriz_id?: string | null;
  nome_fantasia?: string | null;
  razao_social?: string | null;
  responsavel_principal?: string | null;
  site?: string | null;
  status?: string | null;
  telefone_comercial?: string | null;
}

UnidadeCriar

import type { UnidadeCriar } from "termo_core/portal";

export interface UnidadeCriar {
  aviso_limite_percentual?: number | null;
  cnpj: string;
  contato_compras?: string | null;
  contato_financeiro?: string | null;
  email_comercial: string;
  inscricao_estadual?: string | null;
  inscricao_municipal?: string | null;
  limite_faturamento?: number | null;
  matriz_id?: string | null;
  nome_fantasia?: string | null;
  razao_social: string;
  responsavel_principal?: string | null;
  site?: string | null;
  status?: string | null;
  telefone_comercial?: string | null;
  tiny?: UnidadeCriarTiny | null;
}

UnidadeCriarTiny

import type { UnidadeCriarTiny } from "termo_core/portal";

export type UnidadeCriarTiny = Record<string, unknown>;

UnidadeReferencia

import type { UnidadeReferencia } from "termo_core/portal";

export interface UnidadeReferencia {
  cnpj: string;
  id: string;
  razao_social: string;
}

Nesta página