| Produto: | TOTVS Varejo PDV Omni |
|---|---|
| Linha de Produto: | |
| Segmento: |
|
| Módulo: |
|
| Função: | Resgate de Pedido - Mobile |
| País: | Brasil |
| Ticket: | |
| Requisito/Story/Issue (informe o requisito relacionado) : |
No módulo PDV Android (versão 4.2.83.0), foi identificado um bloqueio operacional no fluxo de resgate de pedidos. Ao resgatar um pedido salvo para finalizar a venda, o operador não tinha a opção de "Abandonar Recebimento".
Isso obrigava o usuário a finalizar a venda forçadamente ou reiniciar a aplicação caso quisesse desistir do resgate, gerando inconsistências e uma experiência ruim. O objetivo é implementar o botão de abandonar o recebimento, permitindo o cancelamento do fluxo atual sem perder o pedido original.

Visão Negocial Foi incluído o botão "Abandonar Recebimento" (acessível via menu de opções) na tela de pagamento/finalização do Android.
O comportamento esperado agora é:
Ao clicar em "Abandonar Recebimento", o sistema pede uma confirmação ("Tem certeza que deseja abandonar...?").
Se confirmado, o usuário retorna à tela inicial ou lista de pedidos.
O pedido resgatado volta ao seu estado de "Salvo" original, sem alterações.
Permissões: O botão respeita a validação de perfil de usuário. Se o usuário não tiver permissão para abandonar, a opção não será executada ou visível (conforme regra de UI).
Além disso, para melhorar a organização do código e facilitar essa implementação, houve uma reestruturação interna na lógica de controle do carrinho.
Visão Técnica A solução envolveu tanto alterações de interface (ViewModel) quanto de arquitetura (Refatoração para AppService):
Refatoração (Backend/Logic):
Criada a classe Atendimento/CarrinhoAppService.
Migração de responsabilidades: Os métodos SalvarCarrinhoAsync, AbandonarRecebimentoAsync e FinalizaSalvarCarrinhoAsync, que antes residiam na CarrinhoViewModel, foram movidos para este novo serviço. Isso centraliza as regras de negócio do carrinho.
Android (PagamentoViewModel):
Adicionado o menu de opções na tela de pagamento.
Implementada a chamada ao novo método AbandonarRecebimentoAsync (via CarrinhoAppService) quando a opção é selecionada pelo usuário.
Permissões: Segue a mesma regra do módulo Desktop
Abrangência: A funcionalidade cobre todos os tipos de pedido (Retira, Retira Posterior, Entrega e pedidos vindos da Retaguarda/ERP).