Páginas filhas
  • DDVENDAS-55877 - DT - API Recálculo de Tributos Mantendo Preço de Venda


01. DADOS GERAIS

Produto:

TOTVS Distribuição e Varejo

Linha de Produto:

Linha Winthor

Segmento:

Distribuição

Módulo:

Vendas

Função:Integrações
País:Brasil
Requisito/Story/Issue (informe o requisito relacionado) :DDVENDAS-55877


02. SITUAÇÃO/REQUISITO

Havia a necessidade de recalcular os tributos de um item do pedido de venda (devido a alterações de vigência, figura tributária) garantindo que o preço de venda final (PVENDA) negociado com o cliente permanecesse inalterado.
O sistema precisava ajustar as bases de cálculo e valores de impostos (IPI, ST, FECP, etc.) "de trás para frente", mantendo o valor total do item e preservando as proporções de descontos (Preço de Tabela - PTABELA) e conta corrente (Base RCA - PBASERCA).

03. SOLUÇÃO

Foi desenvolvida uma nova API no serviço winthor-venda (/winthor/venda/v0/pedido/item/recalculoTributos) capaz de recalcular bases, alíquotas e valores de impostos de um item específico sem alterar seu preço final.

O fluxo de execução da solução compreende:

  1. Cálculo Reverso: O sistema utiliza o preço de venda atual como alvo para encontrar o novo preço base sem impostos.

  2. Cálculo de Tributos: Aplica-se a tributação vigente (Desonerações, IPI, ST, Partilha, FECP, CBS, IBS, IS) sobre o novo preço base.

  3. Persistência (Update): Atualiza os campos fiscais na tabela PCPEDI mantendo o PVENDA original.

  4. Ajuste de Referências: Recalcula proporcionalmente os impostos para o PTABELA e PBASERCA, garantindo a integridade de descontos e comissões/flex.

  5. Recálculo de Custos e Totais: Atualiza o CMV do item e permite controlar, via parâmetro, o recálculo dos totalizadores do cabeçalho do pedido (PCPEDC).


Rotinas e Dependências Para a utilização correta da funcionalidade, o ambiente deve possuir as seguintes atualizações:

  • Rotina: 801 - Atualização de Serviços (WinThor Anywhere).

    • Serviço: winthor-venda - Versão 0.38.28.13 ou superior.

A funcionalidade é executada via chamada de API (REST). Siga os passos abaixo para atualização e uso:

1. Atualização do Serviço

  • Acesse a rotina 801 no WinThor Anywhere (WTA).

  • Localize e atualize o serviço winthor-venda para a versão indicada.

2. Consumo da API

Realize uma requisição POST para o endpoint de recálculo:

URL:

http://{URL-WTA}:{PORTA-WTA}/winthor/venda/v0/pedido/item/recalculoTributos

Parâmetros da Requisição (Query Params):

ParâmetroTipoObrigatórioDescrição
numeroPedidoNumberSimNúmero do pedido de venda (NUMPED).
codigoProdutoNumberSimCódigo do produto (CODPROD).
numeroSequencialNumberSimSequencial do item no pedido (NUMSEQ).
ignorarRecalculoCabecalhoBooleanNão

Define se o cabeçalho (PCPEDC) será recalculado.

false (Padrão): Recalcula o cabeçalho.

true: Mantém os totais do cabeçalho inalterados (útil para correção de itens isolados em vendas futuras/assistidas).

acaoStringNão

Ação a ser executada.

MANTER_PRECO_VENDA (Padrão).

Outros valores: REPASSAR_PRECO_VENDA, QUEBRAR_PEDIDO, CORTAR_ITEM.


Bash

curl --location --request POST 'http://localhost:8080/winthor/venda/v0/pedido/item/recalculoTributos?numeroPedido=19072&codigoProduto=106&numeroSequencial=2&ignorarRecalculoCabecalho=false' \
--header 'Authorization: Bearer {TOKEN}'

Comportamento Esperado:

  • Sucesso (200 OK): O retorno JSON confirmará: "mensagem": "Recálculo dos tributos executado com sucesso".

  • PVENDA: Permanecerá inalterado.

  • Impostos (ST, IPI): Serão atualizados na tabela PCPEDI conforme a regra fiscal vigente (Rotina 514/574/271).

  • Cabeçalho (PCPEDC): Se ignorarRecalculoCabecalho for false (padrão), o valor total do pedido será atualizado. Se for true, o totalizador será mantido.


Observações:

  • Esta API é utilizada internamente pelas rotinas de recálculo de pedidos (como na rotina 820) para garantir integridade fiscal sem afetar o acordo comercial com o cliente.

  • O recálculo respeita a parametrização de Usa Tributação por UF (Parâmetro 1092) e Utiliza Tributação Endereço de Entrega (Parâmetro 3922).

  • Validação de Inconsistências: A API valida a existência do pedido e a integridade dos dados, retornando mensagens de erro (400/404) caso o pedido não seja encontrado ou os parâmetros estejam incorretos.


04. DEMAIS INFORMAÇÕES


Importante!

As versões estarão disponíveis para download no CCW. 

https://centraldecontrole.pcinformatica.com.br/


Mantenha suas rotinas sempre atualizadas!