Não Entrega
Não Entrega
A funcionalidade de Não Entrega permite ao motorista registrar, durante a execução da rota, que uma entrega não pôde ser concluída.
Visão Geral
A funcionalidade de Não Entrega permite ao motorista registrar, durante a execução da rota, que uma entrega não pôde ser concluída. Ela é acionada a partir da tela de detalhe da carga, no lugar do fluxo normal de check-in e conclusão da entrega, quando o motorista chega ao destino mas não consegue efetivar a entrega ao cliente. Ao confirmar a não entrega, o aplicativo encerra essa tentativa de entrega e devolve o motorista à lista de cargas do dia, de onde ele segue para a próxima entrega da rota.
Pré-requisitos
A tela de não entrega não carrega os dados da entrega por conta própria: ela é aberta a partir da tela de detalhe da carga já com os dados da entrega, a data e a posição atual do motorista prontos. Isso significa que:
- A entrega precisa já estar identificada e carregada na tela de detalhe da carga antes de o motorista acionar a opção de não entrega.
- O motorista precisa conceder permissão de localização ao aplicativo (solicitada automaticamente pelo sistema, se ainda não concedida) para que a posição do momento da confirmação possa ser capturada.
- O motorista precisa ter uma sessão válida no aplicativo; sem ela, o registro da não entrega é rejeitado.
Fluxo Operacional
- Durante a execução da rota, o motorista abre o detalhe da carga e aciona a opção de registrar a não entrega.
- A tela de não entrega mostra a data da entrega, os dados da carga e um mapa com a localização de destino.
- O motorista informa, em um campo de texto obrigatório, o motivo pelo qual a entrega não pôde ser concluída.
- O motorista confirma a não entrega.
- Enquanto a confirmação está sendo processada, o botão de confirmação mostra um indicador de carregamento.
- Se a confirmação é aceita, o aplicativo exibe uma mensagem de sucesso e retorna o motorista diretamente para a lista de cargas.
- Se a confirmação falha por qualquer motivo, o aplicativo mostra uma mensagem de erro na própria tela e o motorista pode corrigir o que for necessário e tentar novamente.
Interface e Comportamentos
Tela de Registro de Não Entrega
No topo da tela de não entrega, o aplicativo exibe a data da entrega alinhada à direita; logo abaixo repete essa mesma data seguida da hora atual do dispositivo no momento em que a tela é desenhada, no formato hora:minuto com a letra “h” ao final. Abaixo da data, a tela mostra o cabeçalho com os dados da carga/entrega e um mapa com a localização de destino. Em seguida, sob o texto “Informe o motivo da não entrega”, há um campo de texto obrigatório com o rótulo “Descrição”, onde o motorista descreve por que a entrega não foi concluída; se o campo for deixado em branco, o aplicativo bloqueia o envio e exibe “Campo obrigatório” junto ao campo. O texto do motivo tem os espaços em branco do início e do fim removidos antes de ser enviado.
Botão “Confirmar Não Entrega”
Enquanto a confirmação da não entrega está sendo processada, o botão “Confirmar Não Entrega” exibe um indicador de carregamento no lugar do texto do botão. Quando a não entrega é confirmada com sucesso, o aplicativo exibe a mensagem “Confirmada a não entrega!” e retorna diretamente para a lista de cargas, fechando as telas abertas entre a lista de cargas e esta tela. Se a confirmação falhar, o aplicativo exibe a mensagem de erro correspondente em uma notificação na própria tela, sem sair dela.
Feedbacks ao Usuário
| Situação | Feedback | Texto exato |
|---|---|---|
| Campo de motivo deixado em branco ao tentar confirmar | Mensagem de validação junto ao campo | “Campo obrigatório” |
| Falha ao sincronizar evidências pendentes antes de confirmar a não entrega | Notificação de erro; a não entrega não é registrada | “Falha na sincronização” |
| Confirmação de não entrega aceita | Notificação de sucesso | “Confirmada a não entrega!” |
| Falha ao confirmar por erro de comunicação sem mensagem específica do servidor | Notificação de erro | “Não foi possível realizar a conexão!” |
| Falha ao confirmar por não conseguir obter a localização atual do motorista | Notificação de erro | “Falha ao obter localização” |
Quando o servidor recusa a confirmação com uma mensagem própria (por exemplo, uma regra de negócio violada), essa mensagem é exibida ao motorista tal como devolvida pelo servidor, no lugar das mensagens fixas acima.
Regras de Negócio
Antes de registrar a não entrega, o aplicativo reenvia ao servidor as evidências de entrega capturadas enquanto o dispositivo estava sem conexão. A não entrega só é registrada se esse reenvio for concluído com sucesso; se o reenvio falhar, o aplicativo não chega a registrar a não entrega e exibe “Falha na sincronização”.
Ao confirmar a não entrega, o status da entrega muda para “com falha” e o motivo digitado pelo motorista é registrado junto com a entrega. A confirmação, quando bem-sucedida, não devolve nenhum dado adicional da entrega ao aplicativo — apenas a confirmação de que a operação foi aceita.
Se a não entrega não puder ser confirmada por uma falha de comunicação com o servidor, o motorista vê a mensagem de erro devolvida pelo servidor; se o servidor não informar uma mensagem, o aplicativo exibe “Não foi possível realizar a conexão!”. Se a confirmação falhar por um problema local do aplicativo, e não por uma resposta do servidor — por exemplo, não conseguir obter a localização atual do motorista — o aplicativo exibe apenas o texto da falha, sem detalhes técnicos adicionais.
Comportamento Offline e Dados Locais
A mudança de status para “com falha” é aplicada e considerada concluída assim que gravada no aplicativo, independentemente de o envio ao servidor acontecer imediatamente; esse envio ocorre em seguida, automaticamente, e seu resultado não é comunicado ao motorista nesta tela. Se esse envio automático falhar (por exemplo, por falta de conexão no momento), a informação permanece pendente e é reenviada numa próxima sincronização, sem exigir nova ação do motorista nesta tela.
Geolocalização e Rastreamento
Ao confirmar a não entrega, o aplicativo registra a posição atual do motorista, solicitando permissão de localização ao sistema quando necessário, e associa essa posição ao registro da entrega. Se o aplicativo não conseguir obter a localização atual do motorista no momento da confirmação, a não entrega não é registrada e o motorista vê a mensagem “Falha ao obter localização”.
Troubleshooting
Não é possível confirmar a não entrega com o campo de motivo vazio
Cenário: o motorista tenta confirmar a não entrega sem preencher o campo de descrição do motivo.
Mensagem exibida: “Campo obrigatório”
O que fazer: preencher o campo com o motivo da não entrega antes de confirmar.
Não Entrega bloqueada por falha ao sincronizar evidências pendentes
Cenário: existem evidências de entrega (fotos, canhotos) capturadas offline em outras entregas e ainda não enviadas ao servidor; o reenvio delas falha antes de a não entrega poder ser registrada.
Mensagem exibida: “Falha na sincronização”
O que fazer: verificar a conexão do dispositivo com a internet e tentar novamente; se persistir, aguardar melhor sinal antes de tentar de novo.
Não Entrega falha porque o aplicativo não conseguiu obter a localização do motorista
Cenário: o motorista confirma a não entrega, mas o aplicativo não consegue determinar a posição atual do dispositivo.
Mensagem exibida: “Falha ao obter localização”
O que fazer: verificar se o serviço de localização do dispositivo está ativado e se a permissão de localização foi concedida ao aplicativo; tentar novamente em um local com melhor sinal de GPS.
Não Entrega falha por erro de comunicação com o servidor
Cenário: o motorista confirma a não entrega, mas o aplicativo não consegue concluir a comunicação com o servidor.
Mensagem exibida: “Não foi possível realizar a conexão!” — ou a mensagem específica devolvida pelo servidor descrevendo o problema, quando o servidor informar uma.
O que fazer: verificar a conexão com a internet e tentar confirmar novamente; se o servidor tiver recusado por uma regra de negócio específica, seguir a orientação da mensagem exibida.
Casos de Uso
Caso 1 — Motorista registra a não entrega com sucesso
O motorista chega ao endereço de uma entrega, mas o cliente está ausente. Ele abre a opção de não entrega, digita o motivo “Cliente ausente no endereço” e confirma. O aplicativo grava a não entrega com o status “com falha”, exibe “Confirmada a não entrega!” e retorna para a lista de cargas, de onde o motorista segue para a próxima entrega da rota.
Caso 2 — Motorista tenta confirmar sem informar o motivo
O motorista abre a tela de não entrega e toca em “Confirmar Não Entrega” sem preencher o campo de descrição. O aplicativo não envia a confirmação e exibe “Campo obrigatório” junto ao campo, mantendo o motorista na mesma tela até que o motivo seja informado.
Caso 3 — Sincronização de evidências pendentes impede a confirmação
O motorista capturou fotos de canhoto em uma entrega anterior sem conexão com a internet. Ao tentar confirmar uma não entrega em seguida, o aplicativo tenta primeiro reenviar essas evidências pendentes; como não há conexão disponível no momento, o reenvio falha e a não entrega não chega a ser registrada — o aplicativo exibe “Falha na sincronização”.
Caso 4 — Falha ao obter a localização impede a confirmação
O motorista preenche o motivo da não entrega e confirma, mas o dispositivo está com o serviço de localização desativado. O aplicativo não consegue capturar a posição atual, não registra a não entrega e exibe “Falha ao obter localização”.