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ário | Perfil | Comprova |
|---|---|---|---|
| 1 | Acesso por perfil | view / edit / sem grupo | Permissões |
| 2 | Consulta no calendário | view | Filtros (limite ≤ 2 meses) + leitura de status |
| 2-A | Filtro por centro de custo com tripulante embarcado pelo sistema | view | Centro de custo pelo RM e pelo último Embarque/Troca de CC |
| 3 | Incluir embarque | edit | Ciclo 42+42 |
| 4 | Hotel antes do embarque | edit | Hotel na véspera = 1º dia de embarque |
| 5 | Desembarque ≤18:00 × ≥18:01 | edit | Regra do horário |
| 6 | Curso em folga e Troca de CC | edit | Ações de Folga/Embarcado |
| 6-A | ASO com o marítimo embarcado | edit | ASO no Embarcado/Dobra/Hotel, sem folha |
| 6-B | Curso com o marítimo embarcado | edit | Curso no Embarcado/Dobra/Hotel, sem folha |
| 6-C | Curso e Desembarque no mesmo dia | edit | Ações pelo status de base; célula "Embarcado · Curso" com contador |
| 6-D | ASO e Embarque no mesmo dia | edit | Ações do Disponível depois do ASO |
| 7 | Evento Geral com Valor | edit | Eventos do RM / Valor |
| 8 | "Meses anteriores" | edit | Ações pré-período |
| 9 | Detalhe da célula | view / edit | Consulta de evento |
| 10 | Férias/Afastamento do RM | view / edit | Importação do RM |
| 11 | Regra 42+42 / dobra | edit | Dobra ao exceder 42 |
| 12 | Regra Sindimar | edit | Folga indenizada |
| 13 | Validações do servidor | edit | Duplicidade + datas futuras |
| 14 | Administração de períodos | edit | Período único |
| 15 | Sem período aberto | edit | Bloqueio de inclusão |
| 16 | Processar Folha (TXT + e-mails) | edit + DP | TXT (códigos, 537/0537) e alertas >42 dias |
| 17 | Editar um evento lançado | edit | Alteração no período aberto; campos por tipo; recálculo; auditoria |
| 18 | Excluir um evento lançado | edit | Exclusão com confirmação; travas do servidor; "Período fechado" |
| 19 | Aviso do Ciclo Marítimo | view / edit | Texto do hotel no porto de embarque |
| 20 | Vários dias de hotel antes do embarque | edit | Todo 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 nocontrole_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_querypublicado 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_maritimopublicados, 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:
- Entre como usuário só-view e abra o widget.
- 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 "+".
- Saia e entre como usuário edit: os botões aparecem e as células elegíveis exibem o "+".
- (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".
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:
- No card Filtros de Pesquisa, informe um intervalo maior que 2 meses e clique em Buscar.
- Corrija para um intervalo ≤ 2 meses.
- (Opcional) Selecione um Nome do Marítimo e/ou um Centro de Custo pelos zooms (RM).
- Clique em Buscar.
- Leia a legenda acima da grade e identifique as pills no calendário.
- 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.



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:
- 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.
- Confira a linha do marítimo. Clique no rótulo Embarcado do dia do embarque e confira o Centro de custo no detalhe.
- Mude a Data Final para o dia anterior ao embarque (com a Data Inicial até 2 meses antes) e clique em Buscar.
- Volte ao período do passo 1, selecione o Centro de Custo A (VINLAND) e clique em Buscar.
- Selecione o Nome do Marítimo do tripulante e o Centro de Custo B e clique em Buscar.
- (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.


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:
- Clique no "+" de uma célula Disponível.
- Em Ação, escolha Embarque.
- Preencha Porto de Embarque (zoom), Centro de Custo (zoom) e Quantidade de dias de embarque (≥ 1).
- 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.

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:
- Clique no "+" de uma célula Disponível e escolha a ação Hotel; inclua uma observação e salve.
- Observe a pill Hotel no dia.
- No dia seguinte ao hotel, inclua um Embarque (Cenário 3) com N dias.
- 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.

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:
- Clique no "+" de uma célula Embarcado e escolha Desembarque.
- Informe um horário até 18:00 (ex.:
14:00) e salve; observe o calendário. - Repita em outro embarque com horário a partir de 18:01 (ex.:
19:30). - 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.

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:
- Clique no "+" de uma célula Folga e abra a lista Ação: as opções são Embarque (reembarque em folga) e Curso.
- Escolha Curso — observe o aviso "O curso gera impacto na folha de pagamento." — e salve.
- Clique no "+" de uma célula Embarcado e escolha Troca de Centro de Custo; selecione o novo CC no zoom e salve.
- 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.


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:
- 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.
- 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."
- Preencha a Observação (ex.: "ASO periódico a bordo") e salve.
- Clique no rótulo da pill do dia e leia o detalhe "Eventos do dia".
- (Opcional) Repita os passos 1 e 2 numa célula Dobra ou Hotel: o ASO também aparece, sem a opção de folha.
- (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".



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:
- 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."
- Preencha a Observação (ex.: "NR 33") e salve.
- (Opcional) Repita o passo 1 numa célula Dobra ou Hotel: o aviso é o mesmo.
- (Regressão) Clique no "+" de uma célula Folga e escolha Curso: o aviso continua "O curso gera impacto na folha de pagamento."
- 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.

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:
- Clique no "+" da célula Embarcado, escolha Curso, preencha a Observação (ex.: "NR 33") e salve.
- 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á.
- Clique no "+" de novo e abra a lista Ação: as opções continuam Desembarque, Troca de Centro de Custo, Curso e ASO.
- Escolha Desembarque, informe o horário 19:30 e salve.
- 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.
- Clique no nome do status e leia o detalhe "Eventos do dia".
- 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).


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:
- Clique no "+" da célula Disponível, escolha ASO, marque ou não "Gerar folha de pagamento" e salve.
- Observe a célula: "Disponível · ASO", com o "+".
- Clique no "+" e abra a lista Ação: as opções continuam Hotel, Embarque, ASO, Curso e Geral.
- 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:
- Clique no "+" e escolha a ação Geral.
- No zoom Evento de folha (RM), selecione um evento que exige valor — ex.: Prêmio (328).
- Confirme que o campo Valor apareceu; preencha-o.
- (Opcional) Selecione um evento sem valor e confirme que o campo some.
- 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).


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:
- Clique no "+" de uma célula em data anterior ao período aberto.
- Abra a lista Ação.
- 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:
- Clique no nome do status (sublinhado, com o ícone 👁) de uma célula com evento.
- 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).
- (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").
- 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.

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:
- Filtre o período que contém os dias de férias/afastamento e clique em Buscar.
- Observe as pills Férias (amarelo) e Afastamento (vermelho).
- (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.

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:
- Registre um embarque de 50 dias (Cenário 3 com quantidade de dias = 50).
- 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.

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:
- Registre um embarque, um desembarque que gere folga e, em seguida, um reembarque.
- 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:
- 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.
- 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.
- Observe a recusa e feche o modal; clique em Buscar para recarregar.
- 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.


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:
- Acesse Configurar períodos (ViewMode) ou o EditMode.
- Clique em Novo período, informe Data inicial/final e (opcional) marque "Abrir período"; salve.
- Crie um segundo período que se sobreponha ao primeiro e tente salvar.
- 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.


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:
- Com todos os períodos fechados, volte ao calendário e faça uma busca.
- Observe o topo da tela e as células.
- 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:
- No topo do ViewMode, clique em Processar Folha — abre a tela de início do processo BPM.
- 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.
- Aguarde as atividades automáticas: Geração do TXT (cria o
.zipno GED, ex.:movimento_folha_2026-06.txt.zip) e Envio ao DP (e-mail "Movimento da Folha - Controle Marítimo (…)" com anexo). - 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.
- 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:
- Clique no nome do status da célula do embarque para abrir "Eventos do dia": o evento traz os botões Editar e Excluir.
- 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.
- Altere a quantidade de dias (ex.: de 42 para 45) e a observação; clique em Salvar.
- 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.
- 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.
- (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.
- (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.



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:
- 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?").
- Clique em Cancelar: nada muda.
- 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).
- 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.
- Abra o detalhe do evento de período fechado: no lugar dos botões aparece "Período fechado".
- (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.
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:
- Abra a página do Controle Marítimo.
- Leia o aviso azul Ciclo Marítimo, logo abaixo do banner do período.
- (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.
- (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.


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:
- Clique no "+" do 1º dia (01/10), escolha a ação Hotel, inclua uma observação e salve.
- 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.
- No 4º dia (04/10), inclua um Embarque (Cenário 3) com N dias.
- Clique no "+" de um dos dias de hotel (ex.: 02/10) e abra a lista Ação. Feche o modal sem salvar.
- (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.