# Base complementar: displayFields + validateForm (Grupo Felice)

## Objetivo
Registrar um padrao real de projeto para formularios Fluig com foco em:
- controle de visibilidade por atividade em `displayFields`
- validacoes condicionais e pai-filho em `validateForm`

Este material complementa os templates existentes, sem substitui-los.

## Arquivos desta base
- `templates/displayFields-base-felice.js`
- `templates/validateForm-base-felice.js`
- `examples/exemplo_03_base_displayfields_validateform_grupo_felice/events/displayFields.js`
- `examples/exemplo_03_base_displayfields_validateform_grupo_felice/events/validateForm.js`

## Regras de negocio cobertas
- Atividade inicial (0/4): preenchimento automatico de solicitante, data e hora
- Atividade 17 ("Aguardar"): exibe campo de nova data e exige negociacao
- Atividade 9 ("Cancelada"): trava botoes e pai-filho
- Atividade 20 ("Finalizada"): trava botoes e exibe tipo de oportunidade quando aplicavel
- Validacao de tabela pai-filho `contatosModelo`
- Validacao de tabela pai-filho `contatoNegociacao`
- Regras por opcao `GerarOportunidade` (`Sim`, `Nao`, `Aguardar`)

## Como aplicar no processo
1. Mapear IDs reais das atividades no seu `.process`.
2. Ajustar constantes de atividade no template.
3. Revisar nomes de campos (`nomeCliente`, `GerarOportunidade`, etc.).
4. Confirmar nome das tabelas pai-filho (`contatosModelo`, `contatoNegociacao`).
5. Validar mensagens de erro e textos para o padrao do cliente.

## Notas tecnicas
- `displayFields` roda server-side, mas manipulacao de tela deve ser feita via `customHTML.append(...)`.
- `validateForm` deve usar `throw` para bloquear avanco.
- Em scripts server-side do formulario, manter compatibilidade ES5 (Rhino).

