Páginas filhas
  • DDVENDAS-53374 - DT - Winthor-Venda - API de recálculo de CMV.

01. DADOS GERAIS

Produto:

TOTVS Distribuição e Varejo

Linha de Produto:

Linha Winthor

Segmento:

Distribuição

Módulo:8 - FERRAMENTAS DO SISTEMA
Função:801 - AUTORIZAÇÃO DE SERVIÇOS WEB
Requisito/Story/Issue:DDVENDAS-53373
DDVENDAS-54613
DDVENDAS-54767

02. SITUAÇÃO/REQUISITO

  • API de Reprocessamento do CMV
    • Como analista de sistema ou processo de retaguarda
    • Quero recalcular o CMV (Custo da Mercadoria Vendida) de um pedido via API
    • Para refletir alterações recentes no preço de venda e impostos, sem afetar dados históricos como comissões, taxas ou custo original.

  • Objetivo
    • Criar uma API que recalcule os campos VLCUSTOFIN e VLCUSTOREAL da tabela PCPEDI, com base exclusivamente nos dados atuais já registrados na própria PCPEDI, sem buscar dados em outras fontes (como cadastro de produtos, históricos, ou tabelas auxiliares).

  • Parâmetros de Entrada


ParâmetroTipoObrigatórioDescrição
NUMPEDNumberSimNúmero do pedido de venda a ser recalculado.
CODPRODNumberNãoCódigo do produto a ser recalculado. Se omitido, recalcula todos os produtos do pedido.
NUMSEQNumberNãoNúmero de sequência do item no pedido.
    • Se passar o CODPROD e o produto existir só uma vez na PCPPEDI com aquele NUMPED, o NUMSEQ NÃO é obrigatório. Mas, se houver mais de um CODPROD igual do mesmo pedido, o NUMSEQ é obrigatório, e se não for passado ou for inválido, a API deve retornar uma mensagem de erro alegando que existem dois produtos com mesmo código e o NUMSEQ não foi enviado ou não existe.



  • Regras de Negócio
    • O único escopo da API é recalcular os campos VLCUSTOFIN e VLCUSTOREAL da PCPEDI.
    • O comportamento da opção 15 da rotina 507 será modelado apenas para o cálculo de VLCUSTOFIN e VLCUSTOREAL.
    • A API não deve atualizar os seguintes campos, mesmo que a opção 15 da 507 o faça:
    • CUSTOFINEST
    • PERCOM
    • Qualquer outro campo derivado de percentuais externos


  • Cálculo de CMV
    • A fórmula de recálculo deve considerar:
      • PVENDA atual
      • Adição de impostos como ST
      • Adição de novos tributos como CBS, IBS, IS
        OBS: Os impostos CBS, IBS e IS ainda NÃO estão na rotina 507, mas já existem na PCPEDI. A API deve considerá-los na soma do recálculo do CMV.
      • Subtração de VLVERBACMV (quando houver)
      • Percentuais como comissão e taxas devem ser considerados se já estiverem preenchidos na PCPEDI, mas não devem ser recalculados ou buscados novamente.

03. SOLUÇÃO

  • Criado um novo end-point:
    • curl --location 'http://localhost:8082/winthor/venda/v0/pedido/cmv/recalculo' \
      --header 'Content-Type: application/json' \
      --header 'Cookie: suukie=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJQQ0FETUlOIiwibmJmIjoxNzU5ODYxNjQ3LCJpc3MiOiJXVEFVU0VSIiwiZXhwIjoxNzU5ODc2MDQ3LCJpYXQiOjE3NTk4NjE2NDcsImp0aSI6ImQ2ZTNhZGYyLWZiOGUtNDI2Yy05YWNhLTU2NTZlZTQ0Y2NkYyJ9.W3JkbIDVUN0hVHG3ilh5Fk_wdURXvicgYBD8GK3m56U' \
      --data '{     
      "numPed":4000000,     
      "codProd":1,     
      "numSeq":1 
      }'



Para utilizar esta API, certifique-se de que o seguinte componente esteja atualizado:

  • Serviço winthor-venda no WTA (Rotina 801). Versão mínima necessária:  0.37.31.31

Exemplo:
 

json de exemplo:

{    
"numPed":4000000,    
"codProd":1,    
"numSeq":1
}




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!