Files
2026-05-31 20:22:50 +01:00

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).

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 (POST request) 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.