Pular para o conteúdo principal

Roteiro de cenários de teste manual (demonstração ao cliente)

Esta página é um roteiro passo a passo para apresentar o Controle Marítimo ao cliente, exercitando as principais regras do processo. Cada cenário traz objetivo, pré-condições, passos, resultado esperado e a regra/seção da spec que ele comprova.

Execute os cenários na ordem — alguns reaproveitam dados criados nos anteriores (ex.: o embarque do Cenário 3 alimenta o detalhe do Cenário 9, e os lançamentos da demonstração inteira aparecem no TXT do Cenário 16).

Resumo dos cenários​

#CenárioPerfilComprova
1Acesso por perfilview / edit / sem grupoPermissões
2Consulta no calendárioviewFiltros (limite ≤ 2 meses) + leitura de status
2-AFiltro por centro de custo com tripulante embarcado pelo sistemaviewCentro de custo pelo RM e pelo último Embarque/Troca de CC
3Incluir embarqueeditCiclo 42+42
4Hotel antes do embarqueeditHotel na véspera = 1º dia de embarque
5Desembarque ≤18:00 × ≥18:01editRegra do horário
6Curso em folga e Troca de CCeditAções de Folga/Embarcado
6-AASO com o marítimo embarcadoeditASO no Embarcado/Dobra/Hotel, sem folha
6-BCurso com o marítimo embarcadoeditCurso no Embarcado/Dobra/Hotel, sem folha
6-CCurso e Desembarque no mesmo diaeditAções pelo status de base; célula "Embarcado · Curso" com contador
6-DASO e Embarque no mesmo diaeditAções do Disponível depois do ASO
7Evento Geral com ValoreditEventos do RM / Valor
8"Meses anteriores"editAções pré-período
9Detalhe da célulaview / editConsulta de evento
10Férias/Afastamento do RMview / editImportação do RM
11Regra 42+42 / dobraeditDobra ao exceder 42
12Regra SindimareditFolga indenizada
13Validações do servidoreditDuplicidade + datas futuras
14Administração de períodoseditPeríodo único
15Sem período abertoeditBloqueio de inclusão
16Processar Folha (TXT + e-mails)edit + DPTXT (códigos, 537/0537) e alertas >42 dias
17Editar um evento lançadoeditAlteração no período aberto; campos por tipo; recálculo; auditoria
18Excluir um evento lançadoeditExclusão com confirmação; travas do servidor; "Período fechado"
19Aviso do Ciclo Marítimoview / editTexto do hotel no porto de embarque
20Vários dias de hotel antes do embarqueeditTodo dia de hotel conta como embarque

Preparação do ambiente​

Antes de começar, garanta:

  • Um usuário no grupo controle_maritimo_view (só consulta) e um no controle_maritimo_edit (inclusão + administração) — ver Acesso e permissões.
  • Opcional: um usuário sem nenhum dos grupos, para o teste de bloqueio (Cenário 1).
  • No RM: ao menos um marítimo de exemplo, um centro de custo e um porto, além de dias de férias/afastamento lançados (Cenário 10).
  • Um período de contabilização aberto que cubra as datas usadas na demonstração (criado no Cenário 14 ou previamente) — ver Administração de períodos.
  • Lista de eventos limpa para o marítimo de exemplo, para os status pintarem de forma previsível.
  • Para o Cenário 2-A: dataset ds_maritimo_centro_custo_query publicado e, no RM, um marítimo com centro de custo diferente do navio em que será embarcado pelo sistema — ver Datasets.
  • Para o Cenário 16: fluxo da folha implantado — processos publicados, datasets ds_folha_movimento_query/ds_pasta_controle_maritimo publicados, templates de e-mail cadastrados e sessão de e-mail do servidor configurada — ver Workflows e templates.

Cenário 1 — Acesso por perfil​

Objetivo: mostrar que a interface muda conforme o grupo do usuário.

Pré-condições: usuários dos três tipos (view, edit, sem grupo).

Passos:

  1. Entre como usuário só-view e abra o widget.
  2. Observe que não há os botões "Processar Folha" / "Configurar períodos" e que as células do calendário não têm "+".
  3. Saia e entre como usuário edit: os botões aparecem e as células elegíveis exibem o "+".
  4. (Opcional) Entre como usuário sem grupo.

Resultado esperado: os perfis view e edit veem a mesma consulta, mas só o edit tem ações de escrita. O usuário sem grupo vê a tela de bloqueio "Acesso restrito".

Tela de bloqueio de acesso "Acesso restrito"

Spec: MIT098 §Resumo (perfis). Detalhes em Acesso e permissões.


Cenário 2 — Consulta no calendário​

Objetivo: demonstrar filtros, o limite de 2 meses e a leitura dos status.

Pré-condições: perfil view (ou edit); marítimos com eventos lançados no período.

Passos:

  1. No card Filtros de Pesquisa, informe um intervalo maior que 2 meses e clique em Buscar.
  2. Corrija para um intervalo ≤ 2 meses.
  3. (Opcional) Selecione um Nome do Marítimo e/ou um Centro de Custo pelos zooms (RM).
  4. Clique em Buscar.
  5. Leia a legenda acima da grade e identifique as pills no calendário.
  6. Clique em Limpar para voltar ao estado inicial.

Resultado esperado: o intervalo acima do limite é recusado com "O período pode ser de no máximo 2 meses." (a consulta não dispara); com o período válido, o calendário monta com as pills coloridas; o filtro por centro de custo traz os marítimos do centro de custo no RM e os embarcados nele pelo sistema (Cenário 2-A); Limpar zera marítimo/centro de custo e descarrega a grade.

Filtro com intervalo acima de 2 meses recusado

Card de filtros de pesquisa

Zoom de Centro de Custo a partir do RM

Spec: MIT098 §Interface (filtros, período obrigatório de até 2 meses), §Integrações (zoom RM). Detalhes em Filtros e busca e Calendário — leitura de status.


Cenário 2-A — Filtro por centro de custo com tripulante embarcado pelo sistema​

:::info Alteração de 05/10/2026 Cenário incluído com a alteração do filtro por centro de custo (item 10 do relatório do cliente): além dos marítimos cadastrados no centro de custo no RM, o filtro passou a trazer os marítimos cujo último Embarque ou Troca de Centro de Custo lançado no sistema, até a Data Final do período, foi nesse centro de custo. É uma extensão acordada: a MIT041 (página 2, regra 3) diz "conforme cadastro no RM". O sistema não altera o cadastro do RM. :::

Objetivo: mostrar que o filtro por centro de custo traz o tripulante embarcado no navio pelo sistema, mesmo com outro centro de custo no RM, e que o vínculo respeita a Data Final do período.

Pré-condições: perfil view (ou edit); um marítimo cadastrado no RM no centro de custo A (ex.: VINLAND) e embarcado pelo sistema no centro de custo B (ex.: PACIFIC ZIRCON) numa data ≤ hoje, lançado como no Cenário 3 (se ainda não houver, faça este cenário depois do Cenário 3). Anote a data do embarque.

Passos:

  1. No card Filtros de Pesquisa, selecione o Centro de Custo B (PACIFIC ZIRCON) e um período que contenha a data do embarque; clique em Buscar.
  2. Confira a linha do marítimo. Clique no rótulo Embarcado do dia do embarque e confira o Centro de custo no detalhe.
  3. Mude a Data Final para o dia anterior ao embarque (com a Data Inicial até 2 meses antes) e clique em Buscar.
  4. Volte ao período do passo 1, selecione o Centro de Custo A (VINLAND) e clique em Buscar.
  5. Selecione o Nome do Marítimo do tripulante e o Centro de Custo B e clique em Buscar.
  6. (Opcional, perfil edit) Lance um Desembarque para o marítimo e repita o passo 1.

Resultado esperado:

  • No passo 1, o marítimo aparece junto dos marítimos cadastrados no RM no centro de custo B, em ordem alfabética, com o embarque no calendário.
  • No passo 3, ele não aparece: o embarque é posterior à Data Final.
  • No passo 4, ele continua aparecendo, pelo cadastro do RM no centro de custo A.
  • No passo 5, só ele aparece.
  • No passo 6, ele continua no centro de custo B: o Desembarque não desfaz o vínculo; só um novo Embarque ou Troca de Centro de Custo em outro centro de custo o muda.
  • O cadastro do marítimo no RM continua com o centro de custo A.

Card de filtros com o centro de custo PACIFIC ZIRCON selecionado

Calendário filtrado por PACIFIC ZIRCON: Bruno Almeida, cadastrado em VINLAND no RM e embarcado no PACIFIC ZIRCON pelo sistema em 10/09, aparece com o embarque, junto de Diego Ramos e Felipe Nunes

Spec: MIT098 §Interface (filtros) e §Integrações (INT3); MIT041 página 2 (regra 3), com a extensão acordada em 05/10/2026. Detalhes em Filtros e busca.


Cenário 3 — Incluir embarque​

Objetivo: registrar um embarque e ver o ciclo pintar Embarcado/Folga.

Pré-condições: perfil edit; período aberto; célula Disponível em data ≤ hoje.

Passos:

  1. Clique no "+" de uma célula Disponível.
  2. Em Ação, escolha Embarque.
  3. Preencha Porto de Embarque (zoom), Centro de Custo (zoom) e Quantidade de dias de embarque (≥ 1).
  4. Clique em Salvar.

Resultado esperado: toast "Evento incluído com sucesso."; o calendário recarrega pintando Embarcado a partir do dia e a previsão de folga correspondente.

Modal de inclusão — ação Embarque

Spec: MIT098 §Interface (ações por status), §Resumo (ciclo 42+42). Detalhes em Inclusão de evento.


Cenário 4 — Hotel antes do embarque​

Objetivo: mostrar que o hotel na véspera do embarque conta como o 1º dia de embarque. Para vários dias de hotel antes do embarque, veja o Cenário 20.

Pré-condições: perfil edit; período aberto; célula Disponível em data ≤ hoje (use outro marítimo, ou dias livres do mesmo).

Passos:

  1. Clique no "+" de uma célula Disponível e escolha a ação Hotel; inclua uma observação e salve.
  2. Observe a pill Hotel no dia.
  3. No dia seguinte ao hotel, inclua um Embarque (Cenário 3) com N dias.
  4. Observe a corrida de embarque resultante.

Resultado esperado: o hotel encadeia como 1º dia da corrida — a contagem dos N dias de embarque começa no dia do hotel, e a previsão de folga considera o hotel como dia embarcado. Enquanto o embarque ainda não foi lançado, o dia de hotel pinta sozinho, sem gerar previsão de folga.

Modal de inclusão — ação Hotel

Spec: MIT098 §Resumo ("o dia de hotel será contabilizado como o primeiro dia de embarque"), §Interface (inclusão de Hotel). Detalhes em Inclusão de evento e no Glossário.


Cenário 5 — Desembarque ≤18:00 × ≥18:01​

Objetivo: demonstrar o efeito do horário do desembarque na 1ª folga.

Pré-condições: perfil edit; período aberto; célula Embarcado.

Passos:

  1. Clique no "+" de uma célula Embarcado e escolha Desembarque.
  2. Informe um horário até 18:00 (ex.: 14:00) e salve; observe o calendário.
  3. Repita em outro embarque com horário a partir de 18:01 (ex.: 19:30).
  4. Abra o detalhe de cada célula para conferir o horário registrado.

Resultado esperado: com horário ≤ 18:00 o próprio dia já conta como 1º dia de folga; com ≥ 18:01 o dia ainda conta como embarcado e a folga começa no dia seguinte.

Modal de inclusão — ação Desembarque

Spec: MIT098 §Resumo (desembarque). Regra detalhada no Glossário de status e regras.


Cenário 6 — Curso em folga e Troca de CC​

Objetivo: exercitar as ações dos status Folga e Embarcado além do desembarque.

Pré-condições: perfil edit; período aberto; uma célula Folga (ex.: a folga gerada pelo desembarque ≤18:00 do Cenário 5) e uma célula Embarcado.

Passos:

  1. Clique no "+" de uma célula Folga e abra a lista Ação: as opções são Embarque (reembarque em folga) e Curso.
  2. Escolha Curso — observe o aviso "O curso gera impacto na folha de pagamento." — e salve.
  3. Clique no "+" de uma célula Embarcado e escolha Troca de Centro de Custo; selecione o novo CC no zoom e salve.
  4. Abra o detalhe das duas células.

Resultado esperado: o curso pinta sobre o dia de folga e vira evento de folha ("curso em folga" — código 0527/0536 conforme o sindicato, conferido no Cenário 16); a troca de CC registra o novo centro de custo no dia (visível no detalhe), sem evento de folha próprio.

Modal de inclusão — Curso em dia de Folga, com o aviso de impacto na folha

Modal de inclusão — Troca de Centro de Custo com o zoom do RM preenchido

Spec: MIT098 §Interface ("Status Folga em datas passadas", "Inclusão do status Curso em dia de Folga", "Status Embarcado"). Detalhes em Inclusão de evento.


Cenário 6-A — ASO com o marítimo embarcado​

:::info Alteração de 05/10/2026 Cenário incluído com a alteração que passou a oferecer o ASO nos dias Embarcado, Dobra e Hotel, sem gerar pagamento em folha (MIT041, página 14; regra confirmada com o cliente em 05/10/2026). Antes dela, o ASO não aparecia entre as ações desses dias. :::

Objetivo: mostrar que o ASO pode ser lançado com o marítimo embarcado e que, nesses dias, ele não gera pagamento em folha.

Pré-condições: perfil edit; período aberto; uma célula Embarcado em data ≤ hoje (ex.: um dia do embarque do Cenário 3) e uma célula Disponível em data ≤ hoje. Opcional: uma célula Dobra (Cenário 11) ou Hotel (Cenário 4).

Passos:

  1. Clique no "+" de uma célula Embarcado e abra a lista Ação: as opções são Desembarque, Troca de Centro de Custo, Curso e ASO.
  2. Escolha ASO. Confira que a opção "Gerar folha de pagamento" não aparece e que o modal avisa "Com o marítimo embarcado (Embarcado, Dobra ou Hotel), o ASO não gera pagamento em folha."
  3. Preencha a Observação (ex.: "ASO periódico a bordo") e salve.
  4. Clique no rótulo da pill do dia e leia o detalhe "Eventos do dia".
  5. (Opcional) Repita os passos 1 e 2 numa célula Dobra ou Hotel: o ASO também aparece, sem a opção de folha.
  6. (Regressão) Clique no "+" de uma célula Disponível e escolha ASO: a opção "Gerar folha de pagamento" continua aparecendo.

Resultado esperado:

  • O toast "Evento incluído com sucesso." aparece; o dia passa a mostrar ASO e os dias vizinhos continuam Embarcado: o embarque não é interrompido e a contagem de 42 dias (e de dobra) não muda.
  • O detalhe mostra a Observação e Gera pagamento em folha: Não.
  • No TXT do Cenário 16, esse ASO não gera linha 339/340.
  • Na célula Disponível, o ASO continua com a escolha "Gerar folha de pagamento".

Lista Ação de uma célula Embarcado, com o ASO entre as opções

Modal do ASO num dia Embarcado, sem a opção "Gerar folha de pagamento" e com o aviso

Detalhe "Eventos do dia" do ASO lançado no embarque: Gera pagamento em folha "Não"

Spec: MIT098 §Interface ("Status Embarcado"), página 14 da MIT041 v3.0. Detalhes em Inclusão de evento.


Cenário 6-B — Curso com o marítimo embarcado​

:::info Alteração de 05/10/2026 Cenário incluído com a correção que deixou de gerar folha para o Curso lançado nos dias Embarcado, Dobra e Hotel (MIT041, páginas 14 e 22). Antes dela, todo curso gerava o evento 0527/0536 no TXT, mesmo com o marítimo embarcado. :::

Objetivo: mostrar que o Curso lançado com o marítimo embarcado não gera pagamento em folha, e que o curso em folga continua gerando.

Pré-condições: perfil edit; período aberto; uma célula Embarcado em data ≤ hoje (ex.: um dia do embarque do Cenário 3) e uma célula Folga em data ≤ hoje (ex.: a do Cenário 6). Opcional: uma célula Dobra (Cenário 11) ou Hotel (Cenário 4).

Passos:

  1. Clique no "+" de uma célula Embarcado e escolha Curso. Confira o aviso "Com o marítimo embarcado (Embarcado, Dobra ou Hotel), o curso não gera pagamento em folha."
  2. Preencha a Observação (ex.: "NR 33") e salve.
  3. (Opcional) Repita o passo 1 numa célula Dobra ou Hotel: o aviso é o mesmo.
  4. (Regressão) Clique no "+" de uma célula Folga e escolha Curso: o aviso continua "O curso gera impacto na folha de pagamento."
  5. No Cenário 16, confira as linhas 0527/0536 do TXT.

Resultado esperado:

  • O toast "Evento incluído com sucesso." aparece e o dia passa a mostrar Curso; os dias vizinhos continuam Embarcado.
  • No TXT do Cenário 16, o curso do passo 2 não gera linha 0527/0536; o curso em folga (Cenário 6) continua gerando.
  • O curso em meses anteriores (Cenário 8) continua gerando 0537.

Modal do Curso num dia Embarcado, com o aviso de que não gera pagamento em folha

Spec: MIT098 §Interface ("Status Embarcado") e §Fluxo txt (tabela de eventos: 0527/0536 "curso em dia de folga ou disponível"), páginas 14 e 22 da MIT041 v3.0. Detalhes em Inclusão de evento.


Cenário 6-C — Curso e Desembarque no mesmo dia​

:::info Alteração de 05/10/2026 Cenário incluído com a correção do item 9 do relatório do cliente (divergência D4): um dia que já tem Curso, ASO, Geral ou Troca de CC lançado continua oferecendo as ações do seu status de base (MIT041, páginas 8 e 14). Antes dela, depois de lançar um desses eventos o "+" sumia da célula, e o Desembarque do mesmo dia só podia ser lançado antes do Curso. :::

Objetivo: mostrar que vários eventos podem ser lançados no mesmo dia, em qualquer ordem, e como a célula indica isso.

Pré-condições: perfil edit; período aberto; uma célula Embarcado em data ≤ hoje, sem desembarque lançado (ex.: um dia do embarque do Cenário 3 ainda não encerrado, ou um novo embarque).

Passos:

  1. Clique no "+" da célula Embarcado, escolha Curso, preencha a Observação (ex.: "NR 33") e salve.
  2. Observe a célula: o rótulo passou a "Embarcado · Curso" (cor do Curso), o nome do status está sublinhado com o ícone 👁, e o "+" continua lá.
  3. Clique no "+" de novo e abra a lista Ação: as opções continuam Desembarque, Troca de Centro de Custo, Curso e ASO.
  4. Escolha Desembarque, informe o horário 19:30 e salve.
  5. Observe a célula: "Embarcado · Curso" com o contador "+1"; passe o mouse no contador e leia "Mais 1 evento neste dia". O dia seguinte passou a Folga.
  6. Clique no nome do status e leia o detalhe "Eventos do dia".
  7. Clique no "+" do mesmo dia e abra a lista Ação.

Resultado esperado:

  • Os dois toasts "Evento incluído com sucesso." aparecem; nenhum lançamento é recusado.
  • O detalhe lista dois eventos: o Curso (com a Observação) e o Desembarque (com o horário 19:30), cada um com Registrado por.
  • No passo 7, a lista traz só Troca de Centro de Custo, Curso e ASO: o Desembarque já lançado não é oferecido de novo, e Embarque e Hotel não cabem num dia com Desembarque.
  • A contagem do embarque não muda: o dia do desembarque às 19:30 conta como embarcado, e a folga começa no dia seguinte (Cenário 5).

Linha do calendário com o dia "Embarcado · Curso" e o contador "+1"

Lista Ação de um dia "Embarcado · Curso": Desembarque, Troca de Centro de Custo, Curso e ASO

Detalhe "Eventos do dia" com o Curso e o Desembarque

Spec: MIT098 §Interface ("Status Embarcado"), páginas 8 e 14 da MIT041 v3.0. Detalhes em Inclusão de evento e Calendário — leitura de status.


Cenário 6-D — ASO e Embarque no mesmo dia​

:::info Alteração de 05/10/2026 Mesma correção do Cenário 6-C, vista a partir do status Disponível: antes dela, um dia Disponível com ASO lançado deixava de oferecer o Embarque. :::

Objetivo: mostrar que o ASO lançado num dia Disponível não impede o Embarque (nem o Hotel) no mesmo dia.

Pré-condições: perfil edit; período aberto; uma célula Disponível em data ≤ hoje.

Passos:

  1. Clique no "+" da célula Disponível, escolha ASO, marque ou não "Gerar folha de pagamento" e salve.
  2. Observe a célula: "Disponível · ASO", com o "+".
  3. Clique no "+" e abra a lista Ação: as opções continuam Hotel, Embarque, ASO, Curso e Geral.
  4. Escolha Embarque, preencha Porto, Centro de Custo e Quantidade de dias (ex.: 30) e salve.

Resultado esperado: o embarque é gravado; o dia passa a "Embarcado · ASO" com o contador "+1", e os dias seguintes ficam Embarcado. O detalhe lista o ASO e o Embarque. O "+" desse dia passa a oferecer Desembarque, Troca de Centro de Custo, Curso e ASO (sem Embarque nem Hotel, já que o Embarque foi lançado).

Spec: MIT098 §Interface ("Status Disponível na data atual"), páginas 12 e 14 da MIT041 v3.0. Detalhes em Inclusão de evento.


Cenário 7 — Evento Geral com Valor​

Objetivo: mostrar a lista de eventos do RM e o campo Valor condicional.

Pré-condições: perfil edit; período aberto; célula em data ≤ hoje.

Passos:

  1. Clique no "+" e escolha a ação Geral.
  2. No zoom Evento de folha (RM), selecione um evento que exige valor — ex.: Prêmio (328).
  3. Confirme que o campo Valor apareceu; preencha-o.
  4. (Opcional) Selecione um evento sem valor e confirme que o campo some.
  5. Salve.

Resultado esperado: o campo Valor só aparece para os eventos 328/366/422/539; salvar sem valor nesses casos exibe "Informe o valor para este evento.". A lista de eventos exclui os de tratamento próprio (dobras, folgas indenizadas, meses anteriores).

Modal Geral com evento do RM que exige Valor

Modal exibindo mensagem de erro de validação

Spec: MIT098 §Fluxo txt (códigos do RM). Detalhes em Inclusão de evento e no Glossário.


Cenário 8 — "Meses anteriores"​

Objetivo: mostrar que datas anteriores ao período aberto só aceitam ASO/Curso/Geral.

Pré-condições: perfil edit; período aberto; célula em mês anterior ao período aberto.

Passos:

  1. Clique no "+" de uma célula em data anterior ao período aberto.
  2. Abra a lista Ação.
  3. Lance um ASO (marque "Gerar folha de pagamento") e/ou um Curso — eles serão conferidos no TXT do Cenário 16.

Resultado esperado: as únicas ações oferecidas são ASO, Curso e Geral — independentemente do status da célula. ASO exibe "Gerar folha de pagamento"; Curso avisa "O curso gera impacto na folha de pagamento.". Na geração da folha, esses lançamentos entram como eventos de "Meses Anteriores" (ASO → 537, Curso → 0537).

Spec: MIT098 §Interface ("Status em datas anteriores ao período em aberto"), §Fluxo txt (códigos 537/0537). Detalhes em Inclusão de evento.


Cenário 9 — Detalhe da célula​

Objetivo: consultar o que foi gravado num dia.

Pré-condições: célula com evento lançado (ex.: o embarque do Cenário 3).

Passos:

  1. Clique no nome do status (sublinhado, com o ícone 👁) de uma célula com evento.
  2. Leia, no modal "Eventos do dia", os campos preenchidos (porto, centro de custo, dias, horário, evento RM, valor, gera pagamento em folha, observação, Registrado por com data e hora e, se o evento já foi alterado, Alterado por).
  3. (Opcional) Abra também o detalhe de um ASO e o do Geral do Cenário 7, e o do dia com dois eventos do Cenário 6-C (célula com o contador "+1").
  4. Clique em Fechar.

Resultado esperado: o detalhe mostra apenas os campos preenchidos do evento; num dia com vários eventos, lista todos, um item por evento. No perfil de edição, com período aberto, cada evento do período traz Editar e Excluir (Cenários 17 e 18); no perfil de visualização, não. O Valor aparece só no Geral com Prêmio (328), Diária de viagem exterior (366), Prêmio inspeção (422) ou Gratificação especial (539), em reais (ex.: R$ 1.500,00); ASO, Curso, Embarque e os demais eventos não mostram Valor. ASO e Geral mostram Gera pagamento em folha: Sim/Não. Funciona para os dois perfis.

Detalhe da célula com os campos do evento

Spec: MIT098 §Interface (detalhe). Detalhes em Detalhe da célula e Férias/Afastamento.


Cenário 10 — Férias/Afastamento do RM​

Objetivo: mostrar que férias e afastamento são importados e não editáveis.

Pré-condições: marítimo com férias e/ou afastamento lançados no RM, dentro do período filtrado.

Passos:

  1. Filtre o período que contém os dias de férias/afastamento e clique em Buscar.
  2. Observe as pills Férias (amarelo) e Afastamento (vermelho).
  3. (Perfil edit) Confirme que essas células não têm "+".

Resultado esperado: os dias aparecem importados do RM, sem ação de inclusão ("Não há ações disponíveis para este dia"); a correção é feita no RM.

Calendário com dias de Férias e Afastamento importados do RM

Spec: MIT098 §Resumo (importação do RM). Detalhes em Detalhe da célula e Férias/Afastamento.


Cenário 11 — Regra 42+42 / dobra​

Objetivo: comprovar a dobra ao exceder 42 dias embarcados.

Pré-condições: perfil edit; período aberto.

Passos:

  1. Registre um embarque de 50 dias (Cenário 3 com quantidade de dias = 50).
  2. Observe a sequência de pills ao longo dos dias.

Resultado esperado: os primeiros 42 dias ficam Embarcado; os 8 dias seguintes viram Dobra; a folga prevista é limitada a 42 dias.

Calendário "rico" com Embarcado, Dobra e Folga

Spec: MIT098 §Resumo (exemplo "embarque de 50 dias"). Regra no Glossário.


Cenário 12 — Regra Sindimar (folga indenizada)​

Objetivo: demonstrar o reembarque antes do fim da folga.

Pré-condições: perfil edit; período aberto; marítimo do sindicato aplicável (0011).

Passos:

  1. Registre um embarque, um desembarque que gere folga e, em seguida, um reembarque.
  2. Compare dois casos: reembarque com ≤ 7 dias de terra e com > 7 dias.

Resultado esperado: com ≤ 7 dias de terra, os dias contam como embarcados (continuidade, sem zerar o ciclo); com > 7 dias (ex.: folga de 8 dias), os 2 primeiros dias do novo embarque viram folga indenizada (evento de folha, sem pill própria).

Spec: MIT098 §Resumo (Sindimar / exemplos 10+5+30 e 10+8). Regra no Glossário.


Cenário 13 — Validações do servidor (duplicidade e datas futuras)​

Objetivo: mostrar que as regras valem também na gravação (servidor), não só na tela.

Pré-condições: perfil edit; período aberto; o desembarque ≥ 18:01 do Cenário 5 já lançado (o dia segue pintado como Embarcado/Dobra). Para a duplicidade chegar ao servidor são necessárias duas sessões (dois navegadores ou dois usuários do perfil edit) com o calendário aberto no mesmo período.

Passos:

  1. Na sessão A, no dia do desembarque ≥ 18:01 do Cenário 5, clique no "+": desde 05/10/2026 a lista Ação já não oferece outro Desembarque (nem Embarque ou Hotel) num dia que tem Desembarque lançado; só Troca de Centro de Custo, Curso e ASO. Feche o modal.
  2. Na sessão B, com o calendário carregado antes do desembarque da sessão A (tela desatualizada), clique no "+" do mesmo dia: a célula ainda aparece Embarcado sem o desembarque, e a lista oferece Desembarque. Escolha-o, informe um horário e salve.
  3. Observe a recusa e feche o modal; clique em Buscar para recarregar.
  4. Clique no "+" de uma célula em data futura e abra a lista Ação.

Resultado esperado: na tela atualizada, a duplicidade é evitada antes do envio (a ação não é oferecida). Na tela desatualizada, ela é recusada pelo servidor com "Já existe um evento deste tipo para o marítimo neste dia." — o modal permanece aberto exibindo a mensagem, sem gravar nada; depois de recarregar, a célula mostra o contador de eventos e deixa de oferecer o Desembarque. Em datas futuras, a única ação disponível é Observação (o futuro exibe apenas previsões), no mês atual ou nos seguintes e em qualquer status; os eventos com efeito são lançados no dia em que acontecem ou depois, enquanto o período estiver aberto.

Recusa do servidor por duplicidade (tela desatualizada), com o modal aberto exibindo a mensagem

Modal em data futura oferecendo apenas Observação

Spec: MIT098 §Resumo (status registrados apenas quando efetivamente ocorrem; datas futuras = previsões). Detalhes em Inclusão de evento.


Cenário 14 — Administração de períodos​

Objetivo: criar e alternar períodos de contabilização.

Pré-condições: perfil edit.

Passos:

  1. Acesse Configurar períodos (ViewMode) ou o EditMode.
  2. Clique em Novo período, informe Data inicial/final e (opcional) marque "Abrir período"; salve.
  3. Crie um segundo período que se sobreponha ao primeiro e tente salvar.
  4. Clique numa linha para abrir outro período e observe o badge "Aberto" mudar.

Resultado esperado: período criado com toast de sucesso; a sobreposição é recusada ("O período se sobrepõe a um período existente."); só pode haver um período aberto — abrir um fecha o anterior.

Administração de períodos

Modal "Novo período"

Spec: MIT098 §Pré cadastro de Períodos. Detalhes em Administração de períodos.


Cenário 15 — Sem período aberto​

Objetivo: mostrar que a inclusão fica bloqueada sem período aberto.

Pré-condições: perfil edit; nenhum período aberto (feche todos no Cenário 14).

Passos:

  1. Com todos os períodos fechados, volte ao calendário e faça uma busca.
  2. Observe o topo da tela e as células.
  3. Reabra o período ao final (o Cenário 16 usa lançamentos do período).

Resultado esperado: o banner de período fica amarelo (sem período aberto) e o botão "+" não aparece em nenhuma célula — a inclusão fica indisponível até reabrir um período.

Spec: MIT098 §Pré cadastro de Períodos / §Interface. Detalhes em Administração de períodos e Inclusão de evento.


Cenário 16 — Processar Folha (TXT + e-mails)​

Objetivo: consolidar os lançamentos da demonstração no TXT de importação do RM e ver os e-mails do fluxo.

Pré-condições: fluxo da folha implantado (ver Preparação); perfil edit para o botão; usuário apto a movimentar o processo (grupo do Departamento Pessoal no Fluig, conforme a publicação); período aberto; os eventos dos cenários anteriores gravados. Se os Cenários 17 e 18 forem executados depois deste, gere o TXT de novo ao final.

Passos:

  1. No topo do ViewMode, clique em Processar Folha — abre a tela de início do processo BPM.
  2. Preencha Período — Data inicial/final com o período regular de contabilização que contenha a data de hoje (os lançamentos de "meses anteriores" do Cenário 8 foram gravados hoje — é a data de gravação que os direciona para esta folha) e a Data de pagamento; envie o fluxo.
  3. Aguarde as atividades automáticas: Geração do TXT (cria o .zip no GED, ex.: movimento_folha_2026-06.txt.zip) e Envio ao DP (e-mail "Movimento da Folha - Controle Marítimo (…)" com anexo).
  4. Abra o TXT e confira as linhas no layout chapa;dataPagamento;código;00:00;referência;valor;0,00;N;N:
    • 0307/0331 — dias de dobra (Cenários 11/12), conforme o sindicato;
    • 0705/0333 — folga indenizada (Cenário 12);
    • 0527/0536 — curso em folga (Cenário 6); o curso do Cenário 6-B, lançado com o marítimo embarcado, não gera linha;
    • 339/340 — ASO com pagamento (o ASO do Cenário 6-A, lançado com o marítimo embarcado, não gera linha);
    • código escolhido no Geral (ex.: 328 com o valor preenchido — Cenário 7);
    • 537/0537 — os lançamentos de "meses anteriores" do Cenário 8 (ASO → 537, Curso → 0537), incluídos automaticamente, sem ampliar o período informado;
    • eventos excluídos (Cenário 18) não geram linha, e eventos alterados (Cenário 17) saem com os valores atuais.
  5. Observe a etapa Alerta > 42 dias: se algum marítimo estiver há mais de 42 dias embarcado até hoje (ex.: o embarque de 50 dias do Cenário 11, se ainda "a bordo") ou em folga há mais de 42 dias, chega o e-mail "Alerta - Limite de 42 dias (Controle Marítimo)" com tripulante e data-limite; sem ocorrências, a etapa não envia e-mail.

Resultado esperado: documento .zip criado na pasta do GED; e-mail do movimento com o TXT anexo; linhas do TXT com os códigos e valores dos lançamentos da demonstração (incluindo os "meses anteriores" identificados automaticamente); alerta de 42 dias apenas quando há ocorrência.

:::note Ambiente de homologação O destinatário dos e-mails está fixado (mock) e a pasta do GED é a 277 — ajustes previstos para produção. Ver Workflows e templates. :::

Spec: MIT098 §Fluxo de envio do arquivo txt (período regular + data de pagamento, "Meses Anteriores" automáticos, tabela de códigos, layout do movimento) e §Resumo (e-mail de alerta >42 dias).


Cenário 17 — Editar um evento lançado​

Objetivo: corrigir um evento já gravado sem excluí-lo, e ver o ciclo recalculado e a auditoria.

Pré-condições: perfil edit; período aberto; um Embarque do período aberto gravado (ex.: o do Cenário 3). Para o passo 6, um Embarque que tenha um Desembarque dentro dele (Cenário 5).

Passos:

  1. Clique no nome do status da célula do embarque para abrir "Eventos do dia": o evento traz os botões Editar e Excluir.
  2. Clique em Editar. O detalhe fecha e abre "Editar evento — Nome (data)": a lista Ação vem travada em Embarque, os campos (porto, centro de custo, quantidade de dias, observação) vêm preenchidos, e o modal avisa que data e tipo não mudam e que a alteração recalcula folgas, dobras e folgas indenizadas.
  3. Altere a quantidade de dias (ex.: de 42 para 45) e a observação; clique em Salvar.
  4. Observe o toast "Evento alterado com sucesso." e o calendário recarregado: os dias Embarcado/Dobra e a folga prevista mudam conforme a nova quantidade.
  5. Reabra "Eventos do dia": os novos valores aparecem e surge a linha "Alterado por" com a sua matrícula, data e hora; "Registrado por" continua com quem incluiu.
  6. (Trava do servidor) Num Embarque que tem um Desembarque dentro dele, tente reduzir a quantidade de dias para antes do desembarque e salve: o servidor recusa com "A nova quantidade de dias deixaria o desembarque de dd/mm/aaaa fora do embarque. Exclua ou ajuste o desembarque antes."; o modal continua aberto com a mensagem.
  7. (Opcional) Abra o detalhe de um ASO de meses anteriores (Cenário 8) e edite a observação: enquanto o período em que ele foi gravado estiver aberto, ele é editável.

Resultado esperado: só os campos do tipo são editáveis; data, tipo e tripulante ficam travados; o ciclo é recalculado após salvar; o detalhe registra quem alterou e quando; o servidor recusa alterações que deixariam o ciclo inconsistente.

Detalhe "Eventos do dia" com os botões Editar e Excluir

Modal "Editar evento" de um Embarque com a ação travada e os campos preenchidos

Detalhe de um evento já alterado, com "Registrado por" e "Alterado por"

Spec: MIT041 p.2 — Objetivo ("inclusão e atualização dos status"), Regra 1 (perfil de edição "incluir e atualizar") e Regra 2 ("inclusão ou alteração de status apenas durante os períodos que estiverem em aberto"); p.17 (período aberto "para edição"). Detalhes em Inclusão de evento — Editar ou excluir um evento.


Cenário 18 — Excluir um evento lançado​

Objetivo: desfazer um lançamento feito por engano (dia ou tipo errados) e mostrar as travas.

Pré-condições: perfil edit; período aberto; um Curso lançado num dia Disponível (lance um agora, se não houver); o Embarque com Desembarque do Cenário 5; um evento com data anterior ao período aberto (ex.: um Hotel de um período já fechado), se houver.

Passos:

  1. Abra "Eventos do dia" do Curso e clique em Excluir. O detalhe fecha e aparece a confirmação "Excluir evento" com o resumo ("Excluir Curso de Nome em dd/mm/aaaa?").
  2. Clique em Cancelar: nada muda.
  3. Repita e confirme em Excluir: toast "Evento excluído com sucesso."; a célula volta ao status do ciclo e o nome do status deixa de ser link (não há mais evento no dia).
  4. Abra "Eventos do dia" do Embarque do Cenário 5 (que tem o Desembarque dentro) e clique em Excluir: a confirmação traz o aviso "A exclusão recalcula folgas, dobras e folgas indenizadas a partir desta data."; ao confirmar, o servidor recusa com "Exclua antes os eventos lançados dentro deste embarque: Desembarque de dd/mm/aaaa." e nada muda.
  5. Abra o detalhe do evento de período fechado: no lugar dos botões aparece "Período fechado".
  6. (Opcional) Entre como usuário só-view e abra um detalhe: sem botões.

Resultado esperado: a exclusão exige confirmação; o evento excluído some do calendário e do TXT da folha, mas fica guardado como excluído (quem e quando); o mesmo tipo pode ser lançado de novo no mesmo dia; o servidor bloqueia a exclusão de um Embarque que ainda tem eventos dentro dele; eventos de período fechado e o perfil de visualização não têm ações.

Confirmação "Excluir evento" com o resumo do evento e o aviso de recálculo

Spec: MIT041 p.2 Regra 2 (modificações só em período aberto; "impedir qualquer modificação em períodos já fechados ou pagos"). Detalhes em Inclusão de evento — Editar ou excluir um evento.


Cenário 19 — Aviso do Ciclo Marítimo​

:::info Alteração de 05/10/2026 Cenário incluído com a troca do texto do aviso pedida pelo cliente (item 15 do relatório). O aviso dizia "Hotel apenas no primeiro dia de embarque", o que dava a entender que só um dia de hotel era aceito. O sistema já permitia lançar vários dias de hotel antes do Embarque e conta cada um deles como dia embarcado (Cenário 20). Só o texto mudou; o cálculo não. :::

Objetivo: conferir o texto do aviso fixo Ciclo Marítimo, no topo da tela.

Pré-condições: perfil view ou edit.

Passos:

  1. Abra a página do Controle Marítimo.
  2. Leia o aviso azul Ciclo Marítimo, logo abaixo do banner do período.
  3. (Opcional) No card do calendário, clique no ícone de ajuda ao lado do título e leia o item Hotel em "O que é cada ação". Feche a ajuda.
  4. (Opcional) Passe o mouse no ícone de informação da pill Hotel na legenda.

Resultado esperado:

  • O aviso traz exatamente: "Ciclo Marítimo: 42 dias embarcado + 42 dias de folga. Hotel no porto de embarque contabiliza como embarque, independente da quantidade de dias. Dobra quando excede 42 dias embarcado no período de contabilização."
  • A ajuda descreve o Hotel como "Hospedagem no porto de embarque, antes do embarque. Contabiliza como embarque, independente da quantidade de dias: os dias de hotel seguidos, até o dia anterior ao Embarque, são os primeiros dias do embarque e entram na quantidade de dias informada."
  • O tooltip do Hotel na legenda diz "Hospedagem no porto de embarque; contabiliza como embarque, independente da quantidade de dias."
  • Nenhum texto da tela diz que o hotel vale só no primeiro dia de embarque.

Visão geral do ViewMode com o aviso do Ciclo Marítimo

Ajuda da widget com o item Hotel

Spec: MIT041 p.3, regra 9 ("O dia de hotel será contabilizado como o primeiro dia de embarque"), com o texto do aviso pedido pelo cliente (item 15 do relatório). Detalhes em Calendário — leitura de status e no Glossário.


Cenário 20 — Vários dias de hotel antes do embarque​

Objetivo: mostrar que o sistema aceita mais de um dia de hotel antes do Embarque, conta cada um deles como dia embarcado, como diz o aviso do Cenário 19, e que os dias de hotel seguidos entram na quantidade de dias informada no Embarque (decisão do cliente de 06/10/2026, item 15 do relatório, opção A).

Pré-condições: perfil edit; período aberto; um marítimo com quatro dias Disponível seguidos em datas ≤ hoje (ex.: 01/10 a 04/10), sem eventos lançados neles (use outro marítimo, ou dias livres do mesmo).

Passos:

  1. Clique no "+" do 1º dia (01/10), escolha a ação Hotel, inclua uma observação e salve.
  2. Repita no 2º dia (02/10) e no 3º dia (03/10). Depois de um dia de hotel, o dia seguinte continua Disponível e oferece o Hotel de novo.
  3. No 4º dia (04/10), inclua um Embarque (Cenário 3) com N dias.
  4. Clique no "+" de um dos dias de hotel (ex.: 02/10) e abra a lista Ação. Feche o modal sem salvar.
  5. (Opcional) Clique no rótulo Hotel de um desses dias para abrir "Eventos do dia".

Resultado esperado:

  • Os três dias mostram a pill Hotel, e o embarque segue a partir do 4º dia com a pill Embarcado.
  • A contagem dos N dias começa no 1º dia de hotel: com N = 42, o embarque previsto vai de 01/10 a 11/11, sem dobra, e a folga prevista começa em 12/11. Os dias de hotel não somam aos N dias.
  • Se houver um dia em casa entre o hotel e o Embarque (ex.: hotel em 01/10 e 02/10, nada em 03/10, Embarque em 04/10), os dois dias de hotel continuam com a pill Hotel, mas o embarque conta os N dias a partir de 04/10, sem folga indenizada e sem dobra por causa do hotel (divergência D7).
  • O "+" de cada dia de hotel oferece as ações do marítimo embarcado: Desembarque, Troca de Centro de Custo, Curso e ASO (Curso e ASO sem gerar folha, como nos Cenários 6-A e 6-B). Nenhum dia de hotel oferece Hotel ou Embarque de novo.
  • "Eventos do dia" lista o Hotel daquele dia, com quem o registrou.

Spec: MIT041 p.3, regra 9 (dia de hotel contabilizado como embarque), p.5 (status Disponível permite incluir hotel) e p.6 (inclusão de Hotel, antes do embarque), com o texto do aviso pedido pelo cliente (item 15 do relatório). Detalhes em Inclusão de evento e no Glossário.


Encerramento​

Ao concluir os cenários, o cliente terá visto: controle de acesso por perfil, consulta com os três filtros (e o limite de 2 meses), inclusão de eventos (embarque, hotel encadeado e vários dias de hotel, desembarque com corte das 18:00, curso em folga, troca de CC, ASO e curso com o marítimo embarcado, vários eventos no mesmo dia, Geral com Valor, meses anteriores), edição e exclusão de eventos (com as travas do servidor e a auditoria), detalhe e dados do RM, as regras de cálculo (42+42, dobra, Sindimar), as validações do servidor, a administração de períodos e o fluxo completo da folha (TXT com os códigos do RM + e-mails). Para reforçar qualquer regra, consulte o Glossário de status e regras.