Cliente
5 funções do TermoIntranetAPI para cliente.
// npm install termo_core --save-exact
import * as intranet from "termo_core/intranet";
// ou: import { intranet } from "termo_core";| Função | Rota | O que faz |
|---|---|---|
buscar_paginador_cliente | GET /cliente | Lista clientes com paginação por cursor |
buscar_auto_complete_cliente | GET /cliente/autocomplete | Lista básica para seleção |
buscar_pelo_filtro_cliente | GET /cliente/filtro | Busca por filtro |
buscar_total_cliente | GET /cliente/total | Total de registros do paginador |
buscar_pelo_id_cliente | GET /cliente/{id} | Busca pelo id |
buscar_paginador_cliente
GET/cliente Exige credencial
Lista clientes com paginação por cursor
Exige qualquer permissão da área clientes. Ordena do id mais novo para o mais antigo (os clientes da intranet não têm índice por nome), sempre 50 itens por página. Só clientes ativos do cadastro da intranet, só leitura. Sem cursor vem a primeira página; para a seguinte, envie em cursor o proximo_cursor recebido (nulo na última página). O total de registros não vem aqui: está em GET /cliente/total, para a lista não esperar o count(*).
function buscar_paginador_cliente(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarPaginadorCliente = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaClienteResumoI64>import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_cliente } from "termo_core/intranet";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_cliente(credencial_de_acesso, { cursor: 1 });Argumentos
Nome
Tipo
Retorno: Promise<tipos.PaginaClienteResumoI64> · Rust: Result<tipos::PaginaClienteResumoI64, ErroAoChamarServico> · veja PaginaClienteResumoI64.
buscar_auto_complete_cliente
GET/cliente/autocomplete Exige credencial
Lista básica para seleção
Exige qualquer permissão da área clientes. Devolve só id, nome e CPF/CNPJ, do id mais novo para o mais antigo, para escolher um cliente ativo. busca procura por trecho do nome, do nome fantasia ou dos dígitos do CPF/CNPJ. Paginação por cursor: tamanho tem padrão 10 e máximo 100, e para a página seguinte envie em cursor o proximo_cursor recebido.
function buscar_auto_complete_cliente(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarAutoCompleteCliente = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaClienteAutoCompleteI64>import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_cliente } from "termo_core/intranet";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_auto_complete_cliente(credencial_de_acesso, { busca: "..." });Argumentos
Nome
Tipo
Retorno: Promise<tipos.PaginaClienteAutoCompleteI64> · Rust: Result<tipos::PaginaClienteAutoCompleteI64, ErroAoChamarServico> · veja PaginaClienteAutoCompleteI64.
buscar_pelo_filtro_cliente
GET/cliente/filtro Exige credencial
Busca por filtro
Exige qualquer permissão da área clientes. Aceita nome, cpf_cnpj, email, cidade, uf e vendedor; informe ao menos um. Devolve no máximo 100 registros.
function buscar_pelo_filtro_cliente(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarPeloFiltroCliente = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.ClienteResumo>>import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_cliente } from "termo_core/intranet";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_filtro_cliente(credencial_de_acesso, { nome: "..." });Argumentos
Nome
Tipo
Retorno: Promise<Array<tipos.ClienteResumo>> · Rust: Result<Vec<tipos::ClienteResumo>, ErroAoChamarServico>
buscar_total_cliente
GET/cliente/total Exige credencial
Total de registros do paginador
Exige qualquer permissão da área clientes. Devolve só o count(*) com os mesmos filtros de GET /cliente, para o frontend montar o paginador sem atrasar a lista: a tela pede a primeira página e o total em paralelo. Conta os mesmos clientes ativos do cadastro da intranet que a listagem devolve.
function buscar_total_cliente(
credencial_de_acesso: CredencialDeAcesso,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Total>import { CredencialDeAcesso } from "termo_core";
import { buscar_total_cliente } from "termo_core/intranet";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_total_cliente(credencial_de_acesso);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Total> · Rust: Result<tipos::Total, ErroAoChamarServico> · veja Total.
buscar_pelo_id_cliente
GET/cliente/{id} Exige credencial
Busca pelo id
Exige qualquer permissão da área clientes. Devolve o cliente ativo completo, com tipos, pessoas de contato e atividades.
function buscar_pelo_id_cliente(
credencial_de_acesso: CredencialDeAcesso,
id: number,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Cliente>import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_cliente } from "termo_core/intranet";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_cliente(credencial_de_acesso, id);Argumentos
Nome
Tipo
Retorno: Promise<tipos.Cliente> · Rust: Result<tipos::Cliente, ErroAoChamarServico> · veja Cliente.
Tipos
Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.
Atividade
import type { Atividade } from "termo_core/intranet";
export interface Atividade {
cnae?: string | null;
nome?: string | null;
principal: boolean;
}Cliente
import type { Cliente } from "termo_core/intranet";
export interface Cliente {
atividades: Array<Atividade>;
atualizado_no_tiny_em?: string | null;
bairro?: string | null;
celular?: string | null;
cep?: string | null;
cidade?: string | null;
codigo?: string | null;
complemento?: string | null;
cpf_cnpj?: string | null;
criado_no_tiny_em?: string | null;
email?: string | null;
email_nota_fiscal?: string | null;
id: number;
id_tiny?: number | null;
inscricao_estadual?: string | null;
limite_credito?: number | null;
logradouro?: string | null;
nome?: string | null;
nome_fantasia?: string | null;
numero?: string | null;
observacao?: string | null;
pessoas_contato: Array<PessoaContato>;
site?: string | null;
situacao?: string | null;
telefone?: string | null;
tipo_pessoa?: string | null;
tipos: Array<string>;
uf?: string | null;
ultima_compra_em?: string | null;
ultima_compra_numero?: number | null;
ultima_compra_valor?: number | null;
vendedor?: string | null;
}ClienteResumo
import type { ClienteResumo } from "termo_core/intranet";
export interface ClienteResumo {
celular?: string | null;
cidade?: string | null;
codigo?: string | null;
cpf_cnpj?: string | null;
email?: string | null;
id: number;
id_tiny?: number | null;
nome?: string | null;
nome_fantasia?: string | null;
situacao?: string | null;
telefone?: string | null;
tipo_pessoa?: string | null;
uf?: string | null;
vendedor?: string | null;
}PaginaClienteAutoCompleteI64
import type { PaginaClienteAutoCompleteI64 } from "termo_core/intranet";
export interface PaginaClienteAutoCompleteI64 {
itens: Array<PaginaClienteAutoCompleteI64ItensItem>;
proximo_cursor?: number;
tamanho: number;
}PaginaClienteAutoCompleteI64ItensItem
import type { PaginaClienteAutoCompleteI64ItensItem } from "termo_core/intranet";
export interface PaginaClienteAutoCompleteI64ItensItem {
cpf_cnpj?: string | null;
id: number;
nome?: string | null;
}PaginaClienteResumoI64
import type { PaginaClienteResumoI64 } from "termo_core/intranet";
export interface PaginaClienteResumoI64 {
itens: Array<PaginaClienteResumoI64ItensItem>;
proximo_cursor?: number;
tamanho: number;
}PaginaClienteResumoI64ItensItem
import type { PaginaClienteResumoI64ItensItem } from "termo_core/intranet";
export interface PaginaClienteResumoI64ItensItem {
celular?: string | null;
cidade?: string | null;
codigo?: string | null;
cpf_cnpj?: string | null;
email?: string | null;
id: number;
id_tiny?: number | null;
nome?: string | null;
nome_fantasia?: string | null;
situacao?: string | null;
telefone?: string | null;
tipo_pessoa?: string | null;
uf?: string | null;
vendedor?: string | null;
}PessoaContato
import type { PessoaContato } from "termo_core/intranet";
export interface PessoaContato {
departamento?: string | null;
email?: string | null;
id: number;
marketing: boolean;
nome?: string | null;
ramal?: string | null;
telefone?: string | null;
}Total
import type { Total } from "termo_core/intranet";
export interface Total {
total: number;
}