01. DADOS GERAIS

Produto:

TOTVS Varejo Franquias e Redes

Linha de Produto:

Franquias e Redes

Segmento:

Varejo

Módulo:

PDV OMNISHOP - DESK

Função:RESGATE DE PEDIDO
País:Brasil
Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :

02. SITUAÇÃO/REQUISITO

Ao resgatar um pedido no PDV Omni que não possui forma de pagamento associada, o sistema permite remover a tela de seleção de forma de pagamento utilizando a tecla ESC. Entretanto, o botão Pagar permanece desabilitado, obrigando o operador a abandonar o pedido e resgatá-lo novamente.

Esse comportamento foi identificado nas versões 4.1 e 4.2 do sistema. Na versão 4.0, o menu lateral de pagamento não é carregado e o botão Pagar já vem habilitado, permitindo a continuidade da operação.

03. SOLUÇÃO

Visão Negocial

Foi identificado que o problema acontecia porque o PDV entendia, em algumas situações, que o pedido não poderia ser editado durante o resgate. Isso fazia com que os botões da tela de pagamento ficassem desabilitados, impedindo a continuidade do processo.

Ajustamos a regra que define quando um pedido resgatado pode ser editado ou não. Com essa correção, o PDV agora:

Esse ajuste garante que o comportamento do sistema seja consistente com a configuração definida, evitando que o operador precise abandonar e resgatar o pedido novamente.

Visão Técnica

A análise apontou que o problema estava relacionado à propriedade PermiteEdicaoPedido, localizada na classe DesktopPagamentoViewModel, que era avaliada incorretamente devido à forma como a variável BloquearAlteracaoCondicaoPagamento era tratada.

Ajuste realizado

04. DEMAIS INFORMAÇÕES

Como o PermiteEdicaoPedido funciona

A propriedade PermiteEdicaoPedido define se um pedido resgatado pode ou não ser editado. Ela é formada por duas partes que precisam estar verdadeiras ao mesmo tempo:

  1. Uma verificação que impede a edição em casos muito específicos de resgate.

  2. Uma regra que considera as condições de pagamento e integração do pedido.

    1) Bloqueio de edição no resgate

    O sistema considera três fatores juntos:

    Quando essas três condições acontecem ao mesmo tempo, a edição é bloqueada.
    Em qualquer outro cenário, essa parte não impede a edição.


    2) Alteração de condição de pagamento

    Além disso, existe a propriedade BloquearAlteracaoCondicaoPagamento, que pode bloquear ou liberar a edição dependendo de algumas situações. Ela fica ativa (true) em dois casos:

    Se nenhum desses cenários acontece, essa regra fica inativa (false).

    3) Resultado final

    Combinando as duas partes, temos:

    Condições para o PermiteEdicaoPedido

    Parâmetros / SituaçãoResultadoExplicação
    Parâmetro 180 = desligado + Tipo = Pedido + Resgate = true❌ Não permite ediçãoTriplo-bloqueio ativo → sempre bloqueia a edição, independente dos outros fatores.
    Parâmetro 180 = ligado + Parâmetro 282 = ligado + Tipo = Pedido + Modo ≠ PedidoVenda✅ Permite ediçãoCenário de “Preço por condição de pagamento” → edição liberada.
    Integração com Retaguarda ativa (PDVSync = true, Origem = Retaguarda, Situação = RECEBIDO)✅ Permite ediçãoPedido vindo da retaguarda com status RECEBIDO libera a edição.
    Parâmetro 180 = ligado, mas Parâmetro 282 = desligado e sem Retaguarda❌ Não permite ediçãoNão há bloqueio inicial, mas também não há regra que libere a edição.
    Parâmetro 180 = desligado (independente dos demais)❌ Não permite ediçãoQuando o triplo-bloqueio se confirma, a edição sempre é barrada.


Além disso: