2.8 KiB
2.8 KiB
US09 - Interface de Registo de Entregas
Como Voluntário ou Administrador do RefoodOne Quero um ecrã com botões grandes para cada beneficiário ativo e um popup de confirmação Para registar de forma rápida e tátil as entregas de cabazes em dispositivos tablet.
Descrição do Fluxo
O voluntário acede ao menu "Entregas". O ecrã apresenta uma grelha de botões táteis correspondentes a todos os beneficiários ativos. Ao tocar no botão de um beneficiário (ex: "#124"), abre-se um popup de confirmação exibindo os dados principais do beneficiário (Nome e Nº de Pessoas do Agregado). Ao clicar em "Confirmar", o sistema grava a entrega associando o turno ativo e a data corrente, e fecha o popup.
Critérios de Aceitação
1. Interface Gráfica (UI)
- Ecrã de Grelha (Grid):
- Apresenta botões organizados em grelha (vários por linha dependendo da resolução).
- Cada botão corresponde a um beneficiário ativo.
- O rótulo (label) do botão deve ser o número do beneficiário em destaque.
- Os botões devem ser dimensionados para facilitar o toque com o dedo (design tátil ideal para tablets).
- Popup de Confirmação (Modal):
- Disparado ao clicar no botão de um beneficiário.
- Deve mostrar em destaque:
- Nome do beneficiário
- Nº de pessoas do agregado familiar (do registo do beneficiário)
- Botões de Ação no popup:
- Confirmar (submete o registo de entrega, cor verde)
- Cancelar (fecha o popup sem registar, cor cinzenta)
2. Comportamento e Regras de Negócio
- Apenas beneficiários com estado Ativo devem ser exibidos na grelha.
- Prevenção de Duplicados (Desativação do Botão):
- Se um beneficiário já tiver uma entrega registada na data corrente (dia de hoje), o seu respetivo botão na grelha de entregas deve estar desativado (disabled).
- O botão desativado deve ter um aspeto visual distinto (ex: cor cinzenta ou verde-suave com um visto de "concluído") para indicar claramente que a entrega já foi efetuada no dia de hoje.
- Gravação Automática:
- Ao confirmar, o sistema regista a entrega na base de dados (
deliveries). - A data de entrega é preenchida pelo servidor com a data atual (no formato YYYY-MM-DD).
- O turno é determinado automaticamente pelo servidor com base no dia da semana e hora atual em que o registo está a ser submetido (se cair fora do horário de funcionamento de qualquer turno, associa-se o turno padrão ou mais próximo).
- Ao confirmar, o sistema regista a entrega na base de dados (
3. Integração de Dados / Segurança
- O ecrã deve carregar os dados dos beneficiários e turnos no servidor (
+page.server.ts). - A gravação deve ocorrer via SvelteKit Action (
POSTrequest) para garantir que a data e o turno sejam calculados e validados de forma segura no lado do servidor. - Apenas utilizadores autenticados podem aceder e registar entregas.