...
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.
Foram identificados dois problemas
Ajustamos a regra que define quando um pedido resgatado pode ser editado ou não. Com essa correção, o PDV agora:
Se o pedido resgatado pode ser editado:
O operador consegue acessar a tela de itens com o botão Pagar habilitado.
É possível voltar para a tela de itens tanto pelo botão Voltar quanto pela tecla ESC.
Se o pedido resgatado não pode ser editado:
O sistema já abre direto a tela de formas de pagamento.
Os botões Voltar e a tecla ESC ficam desabilitados, garantindo que o fluxo fique na finalização do pagamento.
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.
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.
Foi removida a negação (!) da variável BloquearAlteracaoCondicaoPagamento na composição da propriedade PermiteEdicaoPedido.
PermiteEdicaoPedido estiver definido como false, a ação de voltar (tecla ESC ou botão Voltar) não execute nenhuma operação.PermiteEdicaoPedidoA propriedade PermiteEdicaoPedido é a responsável por definir se um pedido resgatado no PDV pode ou não ser editado.
Ela é composta por duas verificações principais:
...
BloqueiaEdicaoPedido
Controla se o pedido pode ser alterado ou não.
O valor depende do parâmetro 180 (Permite incluir itens no recebimento de pedido no PDV?).
Se o parâmetro estiver habilitado → a edição é permitida.
Se estiver desabilitado → a edição é bloqueada.
BloquearAlteracaoCondicaoPagamento
...
Essa regra bloqueia a edição em situações específicas relacionadas à forma de pagamento.
Ela pode ser true em dois cenários:
DesktopPagamentoViewModel...
Integração com Retaguarda: quando o pedido veio de outro sistema (origem retaguarda) e está na situação RECEBIDO.
...
...
...
Caso nenhuma dessas condições seja atendida, a variável retorna false, ou seja, não bloqueia a edição.
...
Quando o operador opta por continuar comprando clicar no botão Continuar Comprando em um pedido resgatado que pode editado e que já tenha a forma de pagamento escolhida, os pagamentos existentes são descartados, sendo necessário incluir manualmente um novo pagamento no momento de finalizar o pedido.
Independentemente do cenário, o botão Abandonar Recebimento permanece disponível, permitindo ao operador sair do pedido e resgatar outro.
A situação ocorrida na versão 4.0 foi possível devido a configuração dos parâmetros (que estavam diferentes nas versões 4.1 e 4.2), que permitia a edição do pedido, porém o comportamento do botão voltar continuava errado e somente foi percebido depois da correção.