# Sistema de Comissões - Detalhes Técnicos ## Tabela: comissao_anual - professor_id, ano_matricula, comissao_tipo (percentual/valor_fixo), comissao_valor, ano_fim_beneficio, ativo - UNIQUE: (professor_id, ano_matricula, ativo) ## Lógica de Resolução (ComissaoAnualModel::resolverComissao) 1. Buscar comissao_anual WHERE professor_id AND ano_matricula = X AND ativo = 1 2. Se ano_atual <= ano_fim_beneficio -> usa essa comissão 3. Se ano_atual > ano_fim_beneficio -> tenta ano_matricula + 1 (recursivo, max 20) 4. Se não encontra -> retorna null (fallback para professores.comissao_tipo/valor) ## Cálculo (FinanceiroController::apiCalcularComissoes) - valorBaseAula = valorMensal / 4 - fatorProporcional = duracaoReal / 60 - valorAulaProporcional = valorBaseAula * fatorProporcional - Se percentual: comissao = valorAulaProporcional * (comissao_valor / 100) - Se valor_fixo: comissao = comissao_valor ## Migrations - 2026-02-27-100000: Criar comissao_anual + coluna matriculas.ano_matricula - 2026-02-27-110000: Migrar dados de professor_comissoes para comissao_anual ## Arquivos Chave - app/Models/ComissaoAnualModel.php - app/Controllers/FinanceiroController.php (apiCalcularComissoes ~linha 142) - app/Controllers/ProfessorController.php (getComissoes, criarComissao, editarComissao, excluirComissao) - app/Views/direcao/professores.php (UI da aba comissão + JS)