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ção | Rota | O que faz |
|---|---|---|
buscar_paginador_unidade | GET /unidade | Lista as unidades paginadas |
criar_unidade | POST /unidade | Cadastra uma unidade ou pede uma nova unidade |
buscar_auto_complete_unidade | GET /unidade/autocomplete | Lista básica de unidades para seleção |
buscar_pelo_filtro_unidade | GET /unidade/filtro | Busca unidades por filtro |
buscar_pelo_id_unidade | GET /unidade/{id} | Busca uma unidade pelo id |
atualizar_pelo_id_unidade | PATCH /unidade/{id} | Atualiza uma unidade |
deletar_pelo_id_unidade | DELETE /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>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>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>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>>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>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>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>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;
}