Atualiza criterios de pontuacao para V2
Backend: - CAJ retorno 20->15, CAJ_MP retorno 20->10, CAM atualidade 10->20, retorno 20->10 - CONS_ATIVO/HIST/FALECIDO continuidade 8a+ = 20 (simplificado) - CONS_FALECIDO agora pontua tempo (5 pts/ano, teto 50) - AVAL_COMIS_PREMIO e AVAL_COMIS_GP mudaram tipo para PAPEL - AVAL_COMIS_GP teto 100->80 - Novo bonus de recorrencia anual para comissoes (2-6 pts/ano) - PREMIACAO base 150->100, PREMIACAO_GP base 30->50, MENCAO base 10->30 - BOL_BPQ_INTERMEDIARIO base 50->30 (consolidado) - Orientacoes/Co-orientacoes/Bancas: tetos zerados (sem limite) - TipoAtuacao.RESULTADO renomeado para COMPETENCIA_RECONHECIMENTO Frontend: - Atualiza PONTOS_BASE e TETOS com novos valores V2 - Atualiza descricoes das formulas nos tooltips - Melhora exibicao de teto=0 como "sem limite" - Adiciona info de bonus de recorrencia nos tooltips
This commit is contained in:
@@ -4,7 +4,7 @@ import './ConsultorCard.css';
|
||||
const FORMULAS = {
|
||||
bloco_a: {
|
||||
titulo: 'Coordenacao CAPES',
|
||||
descricao: 'CA=200 | CAJ=150 | CAJ_MP=120 | CAM=100\nTempo: multiplicador por ano\nBonus atualidade + Retorno',
|
||||
descricao: 'CA=200 | CAJ=150 | CAJ_MP=120 | CAM=100\nTempo: multiplicador por ano\nBonus atualidade + Retorno (V2)',
|
||||
},
|
||||
bloco_b: {
|
||||
titulo: 'Coordenacao PPG',
|
||||
@@ -12,11 +12,11 @@ const FORMULAS = {
|
||||
},
|
||||
bloco_c: {
|
||||
titulo: 'Consultoria',
|
||||
descricao: 'CONS_ATIVO=150 | CONS_HIST=100 | CONS_FALECIDO=100\nTempo: 5 pts/ano (max 50)\nContinuidade 8a+=15 | Retorno=15',
|
||||
descricao: 'CONS_ATIVO=150 | CONS_HIST=100 | CONS_FALECIDO=100\nTempo: 5 pts/ano (max 50)\nContinuidade 8a+=20 | Retorno=15 (V2)',
|
||||
},
|
||||
bloco_d: {
|
||||
titulo: 'Premiacoes/Avaliacoes',
|
||||
descricao: 'PREMIACAO=150 | PREMIACAO_GP=30 | MENCAO=10\nAVAL_COMIS=30-50 | COORD_COMIS=50-60\nINSC_AUTOR=10 | INSC_INST=30',
|
||||
descricao: 'GP=100 | Premio=50 | Mencao=30\nAVAL_COMIS=30-50 | COORD_COMIS=50-60\nINSC_AUTOR=10 | INSC_INST=30 (V2)',
|
||||
},
|
||||
};
|
||||
|
||||
@@ -26,34 +26,37 @@ const PONTOS_BASE = {
|
||||
INSC_AUTOR: 10, INSC_INST: 30,
|
||||
AVAL_COMIS_PREMIO: 30, AVAL_COMIS_GP: 50,
|
||||
COORD_COMIS_PREMIO: 50, COORD_COMIS_GP: 60,
|
||||
PREMIACAO: 150, PREMIACAO_GP: 30, MENCAO: 10,
|
||||
BOL_BPQ_SUPERIOR: 30, BOL_BPQ_INTERMEDIARIO: 50,
|
||||
PREMIACAO: 100, PREMIACAO_GP: 50, MENCAO: 30,
|
||||
BOL_BPQ_SUPERIOR: 30, BOL_BPQ_INTERMEDIARIO: 30,
|
||||
EVENTO: 1, PROJ: 10,
|
||||
ORIENT_POS_DOC: 15, ORIENT_TESE: 10, ORIENT_DISS: 5,
|
||||
CO_ORIENT_POS_DOC: 7, CO_ORIENT_TESE: 5, CO_ORIENT_DISS: 3,
|
||||
MB_BANCA_POS_DOC: 3, MB_BANCA_TESE: 3, MB_BANCA_DISS: 2,
|
||||
};
|
||||
|
||||
// Teto oficial por código, conforme documento de critérios (seção 3.x)
|
||||
const TETOS = {
|
||||
// 3.3 Inscrições
|
||||
INSC_AUTOR: { teto: 20, doc: '3.3 Inscrições' },
|
||||
INSC_INST: { teto: 60, doc: '3.3 Inscrições' },
|
||||
// 3.4 Avaliação / Coordenação de Comissão
|
||||
AVAL_COMIS_PREMIO: { teto: 60, doc: '3.4 Avaliação/Comissão' },
|
||||
AVAL_COMIS_GP: { teto: 100, doc: '3.4 Avaliação/Comissão' },
|
||||
COORD_COMIS_PREMIO: { teto: 100, doc: '3.4 Avaliação/Comissão' },
|
||||
COORD_COMIS_GP: { teto: 120, doc: '3.4 Avaliação/Comissão' },
|
||||
// 3.6 Premiações
|
||||
PREMIACAO: { teto: 180, doc: '3.6 Premiações' },
|
||||
PREMIACAO_GP: { teto: 60, doc: '3.6 Premiações' },
|
||||
MENCAO: { teto: 20, doc: '3.6 Premiações' },
|
||||
// 3.7 Participações
|
||||
AVAL_COMIS_PREMIO: { teto: 60, doc: '3.4 Avaliação/Comissão', bonus: '+2/ano (max 15)' },
|
||||
AVAL_COMIS_GP: { teto: 80, doc: '3.4 Avaliação/Comissão', bonus: '+3/ano (max 20)' },
|
||||
COORD_COMIS_PREMIO: { teto: 100, doc: '3.4 Avaliação/Comissão', bonus: '+4/ano (max 20)' },
|
||||
COORD_COMIS_GP: { teto: 120, doc: '3.4 Avaliação/Comissão', bonus: '+6/ano (max 20)' },
|
||||
PREMIACAO: { teto: 180, doc: '3.6 Grande Prêmio' },
|
||||
PREMIACAO_GP: { teto: 60, doc: '3.6 Prêmio' },
|
||||
MENCAO: { teto: 20, doc: '3.6 Menção Honrosa' },
|
||||
EVENTO: { teto: 5, doc: '3.7 Participações' },
|
||||
PROJ: { teto: 40, doc: '3.7 Participações' },
|
||||
// 3.5 Bolsas CNPQ (nomes resumidos)
|
||||
BOL_BPQ_SUPERIOR: { teto: 60, doc: '3.5 Bolsas CNPQ' },
|
||||
BOL_BPQ_INTERMEDIARIO: { teto: 100, doc: '3.5 Bolsas CNPQ' },
|
||||
BOL_BPQ_INTERMEDIARIO: { teto: 60, doc: '3.5 Bolsas CNPQ' },
|
||||
ORIENT_POS_DOC: { teto: 0, doc: '3.8 Orientação (sem limite)' },
|
||||
ORIENT_TESE: { teto: 0, doc: '3.8 Orientação (sem limite)' },
|
||||
ORIENT_DISS: { teto: 0, doc: '3.8 Orientação (sem limite)' },
|
||||
CO_ORIENT_POS_DOC: { teto: 0, doc: '3.9 Co-Orientação (sem limite)' },
|
||||
CO_ORIENT_TESE: { teto: 0, doc: '3.9 Co-Orientação (sem limite)' },
|
||||
CO_ORIENT_DISS: { teto: 0, doc: '3.9 Co-Orientação (sem limite)' },
|
||||
MB_BANCA_POS_DOC: { teto: 0, doc: '3.10 Banca (sem limite)' },
|
||||
MB_BANCA_TESE: { teto: 0, doc: '3.10 Banca (sem limite)' },
|
||||
MB_BANCA_DISS: { teto: 0, doc: '3.10 Banca (sem limite)' },
|
||||
};
|
||||
|
||||
const ScoreItemWithTooltip = ({ value, label, formula, style }) => (
|
||||
@@ -313,7 +316,8 @@ const BlocoDetalhes = ({ titulo, bloco, cor }) => (
|
||||
const bonus = at.bonus || 0;
|
||||
const bruto = base + tempo + bonus;
|
||||
const meta = TETOS[at.codigo];
|
||||
const capped = bruto !== at.total;
|
||||
const hasTeto = meta && meta.teto > 0;
|
||||
const capped = hasTeto && bruto > meta.teto;
|
||||
const unidade = at.quantidade > 1 ? Math.round(base / at.quantidade) : null;
|
||||
|
||||
const partes = [];
|
||||
@@ -322,13 +326,11 @@ const BlocoDetalhes = ({ titulo, bloco, cor }) => (
|
||||
? `Base ${unidade} x ${at.quantidade} = ${base}`
|
||||
: `Base ${base}`
|
||||
);
|
||||
if (capped) {
|
||||
partes.push(`Bruto ${bruto}`);
|
||||
}
|
||||
if (tempo) partes.push(`Tempo ${tempo}`);
|
||||
if (bonus) partes.push(`Bônus ${bonus}`);
|
||||
if (meta) partes.push(`Teto ${meta.teto}`);
|
||||
partes.push(capped && meta ? `Total ${at.total} (teto)` : `Total ${at.total}`);
|
||||
if (hasTeto) partes.push(`Teto ${meta.teto}`);
|
||||
if (meta && meta.bonus) partes.push(meta.bonus);
|
||||
partes.push(capped ? `Total ${at.total} (teto)` : `Total ${at.total}`);
|
||||
return partes.join(" | ");
|
||||
})()}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user