Pedido venda

3 funções do TermoPortal para pedido venda.

// 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_pedido_vendaGET /pedido_vendaLista os pedidos de venda do ERP
buscar_pelo_filtro_pedido_vendaGET /pedido_venda/filtroAcha o pedido de venda de uma entrega
buscar_pelo_id_pedido_vendaGET /pedido_venda/{id}Busca um pedido de venda do ERP pelo id

buscar_paginador_pedido_venda

GET/pedido_venda Exige credencial

Lista os pedidos de venda 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 os pedidos de venda do Tiny pela API da Termotubos. Quem não é colaborador interno precisa informar unidade_id de uma unidade da sessão e só vê os pedidos do CNPJ dela, sem vendedor, canal e observações internas; colaborador interno pode omitir e ver todos. Filtros: situacao (todos, aberto, aprovado, faturado, pronto, enviado, entregue, cancelado; padrão todos), busca (texto), inicio e fim (AAAA-MM-DD) e vendedor (id no Tiny). 50 pedidos 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 (pedidos de hoje e do mês). Até 60 chamadas por minuto por pessoa.

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

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

Argumentos

Nome

Tipo

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

buscar_pelo_filtro_pedido_venda

GET/pedido_venda/filtro Exige credencial

Acha o pedido de venda de uma entrega

Exige a permissão ver no módulo Pedidos do perfil de quem chama (administrador e master têm tudo). Procura no Tiny o pedido de venda que gerou a entrega expedicao_id (id da entrega na API de logística) e devolve o id do pedido, para abrir em GET /pedido_venda/{id}. Quem não é colaborador interno só acha pedidos das próprias unidades.

function buscar_pelo_filtro_pedido_venda(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPeloFiltroPedidoVenda,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PedidoDaEntrega>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_pedido_venda } from "termo_core/portal";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_filtro_pedido_venda(credencial_de_acesso, { expedicao_id });

Argumentos

Nome

Tipo

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

buscar_pelo_id_pedido_venda

GET/pedido_venda/{id} Exige credencial

Busca um pedido de venda do ERP pelo id

Exige a permissão ver no módulo Pedidos do perfil de quem chama (administrador e master têm tudo). Consulta o pedido no Tiny com itens, valores, pagamento e rastreio, mais a entrega ligada a ele quando houver. Quem não é colaborador interno só abre pedidos do CNPJ das próprias unidades (os outros respondem 404) e não recebe vendedor, canal e observações internas.

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

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

Argumentos

Nome

Tipo

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

Tipos

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

ContagemPedidosVenda

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

export interface ContagemPedidosVenda {
  aberto: number;
  aprovado: number;
  cancelado: number;
  entregue: number;
  enviado: number;
  faturado: number;
  pronto: number;
  todos: 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;
}

ItemPedidoVenda

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

export interface ItemPedidoVenda {
  descricao?: string | null;
  preco_unitario?: number | null;
  quantidade?: number | null;
  sku?: string | null;
}

PaginaPedidosVenda

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

export interface PaginaPedidosVenda {
  contagens: ContagemPedidosVenda;
  itens: Array<PedidoVendaTermotubos>;
  pagina: number;
  resumo: ResumoPedidosVenda;
  total_paginas: number;
  total_registros: number;
}

PedidoDaEntrega

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

export interface PedidoDaEntrega {
  id: number;
}

PedidoVendaDetalhe

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

export type PedidoVendaDetalhe = PedidoVendaTermotubos & PedidoVendaDetalheParte2;

PedidoVendaDetalheParte2

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

export interface PedidoVendaDetalheParte2 {
  entrega?: ExpedicaoTermotubos | null;
}

PedidoVendaTermotubos

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

export interface PedidoVendaTermotubos {
  canal?: string | null;
  cidade?: string | null;
  cliente?: string | null;
  cliente_documento?: string | null;
  cliente_tiny_id?: number | null;
  codigo_rastreio?: string | null;
  data?: string | null;
  desconto?: number | null;
  entregue_em?: string | null;
  enviado_em?: string | null;
  faturado_em?: string | null;
  forma_envio?: string | null;
  frete?: number | null;
  id: number;
  itens: Array<ItemPedidoVenda>;
  link_rastreio?: string | null;
  marcadores: Array<string>;
  nota_tiny_id?: number | null;
  numero?: number | null;
  numero_no_canal?: string | null;
  observacoes?: string | null;
  observacoes_internas?: string | null;
  outros?: number | null;
  pagamento?: string | null;
  previsao?: string | null;
  situacao_id?: number | null;
  transportadora?: string | null;
  uf?: string | null;
  valor?: number | null;
  valor_produtos?: number | null;
  vendedor?: string | null;
  vendedor_tiny_id?: number | null;
}

ResumoPedidosVenda

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

export interface ResumoPedidosVenda {
  pedidos_hoje: number;
  pedidos_no_mes: number;
}

Nesta página