Expedição
3 funções do TermoPortal para expedição.
// 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_expedicao | GET /expedicao | Lista as entregas (expedições) do ERP |
buscar_auto_complete_expedicao | GET /expedicao/autocomplete | Lista transportadoras ou vendedores das entregas |
buscar_pelo_id_expedicao | GET /expedicao/{id} | Busca uma entrega pelo id do ERP |
buscar_paginador_expedicao
GET/expedicao Exige credencial
Lista as entregas (expedições) do ERP
Exige a permissão ver no módulo Pedidos do perfil de quem chama (administrador e master têm tudo). Consulta na hora a API de logística da Termotubos (notas expedidas pelo Tiny). Quem não é colaborador interno precisa informar unidade_id de uma unidade da sessão e só vê as entregas do CNPJ dela, sem dados do vendedor; colaborador interno pode omitir e ver todas. Filtros: situacao (todas, aguardando, transito, entregue, atrasada; padrão todas), busca (texto), inicio e fim (AAAA-MM-DD, data de emissão), transportadora (CNPJ) e vendedor (id do vendedor no Tiny). 50 entregas por página; pagina começa em 1. A resposta traz itens, pagina, total_paginas, total_registros, a contagem por situação e um resumo (notas de hoje, entregues no mês, próxima entrega). Até 60 chamadas por minuto por pessoa.
function buscar_paginador_expedicao(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarPaginadorExpedicao = {},
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaExpedicoes>import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_expedicao } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_expedicao(credencial_de_acesso, { pagina: 1 });Argumentos
Nome
Tipo
Retorno: Promise<tipos.PaginaExpedicoes> · Rust: Result<tipos::PaginaExpedicoes, ErroAoChamarServico> · veja PaginaExpedicoes.
buscar_auto_complete_expedicao
GET/expedicao/autocomplete Exige credencial
Lista transportadoras ou vendedores das entregas
Exige a permissão ver no módulo Pedidos do perfil de quem chama (administrador e master têm tudo). Opções para os filtros da tela de entregas, tiradas da API de logística (no máximo 50, da mais usada para a menos usada): tipo transportadora ou vendedor (vendedor só para colaborador interno). Cada opção traz valor (CNPJ da transportadora ou id do vendedor), rotulo e a quantidade de entregas. Quem não é colaborador interno precisa informar unidade_id de uma unidade da sessão. Lista inteira, sem paginação.
function buscar_auto_complete_expedicao(
credencial_de_acesso: CredencialDeAcesso,
parametros: ParametrosDeBuscarAutoCompleteExpedicao,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.OpcaoDeFiltro>>import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_expedicao } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_auto_complete_expedicao(credencial_de_acesso, { tipo });Argumentos
Nome
Tipo
Retorno: Promise<Array<tipos.OpcaoDeFiltro>> · Rust: Result<Vec<tipos::OpcaoDeFiltro>, ErroAoChamarServico>
buscar_pelo_id_expedicao
GET/expedicao/{id} Exige credencial
Busca uma entrega pelo id do ERP
Exige a permissão ver no módulo Pedidos do perfil de quem chama (administrador e master têm tudo). Consulta a entrega na API de logística (nota, transportadora, previsão, rastreio, ocorrência). Quem não é colaborador interno só abre entregas do CNPJ das próprias unidades (as outras respondem 404) e não recebe os dados do vendedor.
function buscar_pelo_id_expedicao(
credencial_de_acesso: CredencialDeAcesso,
id: number,
opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.ExpedicaoTermotubos>import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_expedicao } from "termo_core/portal";
const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_expedicao(credencial_de_acesso, id);Argumentos
Nome
Tipo
Retorno: Promise<tipos.ExpedicaoTermotubos> · Rust: Result<tipos::ExpedicaoTermotubos, ErroAoChamarServico> · veja ExpedicaoTermotubos.
Tipos
Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.
ContagemExpedicoes
import type { ContagemExpedicoes } from "termo_core/portal";
export interface ContagemExpedicoes {
aguardando: number;
atrasadas: number;
entregues: number;
todas: number;
transito: number;
}ExpedicaoTermotubos
import type { ExpedicaoTermotubos } from "termo_core/portal";
export interface ExpedicaoTermotubos {
atualizado_em?: string | null;
cep?: string | null;
cidade?: string | null;
cliente?: string | null;
cliente_documento?: string | null;
codigo_rastreio?: string | null;
emissao?: string | null;
entrega?: string | null;
envio?: string | null;
frete?: number | null;
id: number;
link_rastreio?: string | null;
nota_fiscal?: number | null;
nota_tiny_id?: number | null;
ocorrencia?: string | null;
peso_kg?: number | null;
previsao?: string | null;
situacao?: string | null;
situacao_id?: number | null;
transportadora?: string | null;
transportadora_documento?: string | null;
uf?: string | null;
valor_mercadorias?: number | null;
valor_nota?: number | null;
vendedor?: string | null;
vendedor_tiny_id?: number | null;
volumes?: number | null;
}OpcaoDeFiltro
import type { OpcaoDeFiltro } from "termo_core/portal";
export interface OpcaoDeFiltro {
entregas: number;
rotulo: string;
valor: string;
}PaginaExpedicoes
import type { PaginaExpedicoes } from "termo_core/portal";
export interface PaginaExpedicoes {
contagens: ContagemExpedicoes;
itens: Array<ExpedicaoTermotubos>;
pagina: number;
resumo: ResumoExpedicoes;
total_paginas: number;
total_registros: number;
}ResumoExpedicoes
import type { ResumoExpedicoes } from "termo_core/portal";
export interface ResumoExpedicoes {
entregues_no_mes: number;
notas_hoje: number;
proxima_entrega?: string | null;
}