2026-03-01 17:27:48 -03:00

158 lines
6.2 KiB
JavaScript

function onNotify(subject, receivers, template, params) {
// BLOQUEAR e-mails padrões do Fluig
var templatesPadrao = [
// Notificações de processo
"TPLPROCESS_NEW_STATE_TO_MANAGER",
"TPLPROCESS_NEW_STATE_TO_USER",
"TPLPROCESS_NEW_STATE_TO_GROUP",
// Notificações de tarefas atribuídas
"TPLTASK_ASSIGN_MANAGER",
"TPLTASK_ASSIGN_USER",
"TPLTASK_ASSIGN_GROUP",
"TPLTASK_NEW_ASSIGN"
];
// Se o template for padrão → BLOQUEAR
if (templatesPadrao.indexOf(template) >= 0) {
log.info("### [GINSENG][onNotify] BLOQUEANDO template padrão → " + template);
receivers.clear();
return;
}
// SOMENTE PARA O PROCESSO DE DESLIGAMENTO
var processo = params.get("WKDef");
if (processo != "desligamentoColaborador") {
return;
}
var state = params.get("WKCurrentState");
var numSolic = params.get("WKNumProces");
var linkSolic = params.get("SERVER_URL") +
"/portal/p/1/pageworkflowview?app_ecm_workflowview_detailsProcessInstanceID=" +
numSolic;
// CAMPOS QUE VOCÊ PRECISA
var nomeColab = hAPI.getCardValue("colabDesliga");
var cpf = hAPI.getCardValue("colabCpf");
var admissao = hAPI.getCardValue("colabadmissao");
var departamento = hAPI.getCardValue("departamento");
var cargo = hAPI.getCardValue("cargoColaborador");
var gestor = hAPI.getCardValue("requesterName");
var tipo = hAPI.getCardValue("tipodesligamento");
var motivo = hAPI.getCardValue("motivoDesligamento");
var aprov = hAPI.getCardValue("DesligamentoAprov");
var infoEstabilidades = ""
+ "<p><b>Trintídio CCT:</b> " + hAPI.getCardValue("trintidiocct") + "</p>"
+ "<p><b>Trintídio pós-férias:</b> " + hAPI.getCardValue("trintidioposferias") + "</p>"
+ "<p><b>Afastamento:</b> " + hAPI.getCardValue("trintidioposafastamento") + "</p>"
+ "<p><b>Pré-aposentadoria:</b> " + hAPI.getCardValue("preaposentadoria") + "</p>"
+ "<p><b>Acidentária:</b> " + hAPI.getCardValue("acidentaria") + "</p>"
+ "<p><b>Gestante/Lactante:</b> " + hAPI.getCardValue("gestante") + "</p>"
+ "<p><b>Sindical:</b> " + hAPI.getCardValue("sindical") + "</p>"
+ "<p><b>PCD:</b> " + hAPI.getCardValue("pcd") + "</p>"
+ "<p><b>Outras Estabilidades:</b> " + hAPI.getCardValue("outros") + "</p>";
// VARIÁVEIS DO TEMPLATE
var titulo = "";
var descricao = "";
var campos = "";
// ======================================================
// STATE 4 → ABERTURA
// ======================================================
if (state == 4) {
titulo = "Solicitação de desligamento aberta";
descricao = "Uma nova solicitação foi iniciada no sistema.";
campos =
"<p><b>Colaborador:</b> " + nomeColab + "</p>" +
"<p><b>CPF:</b> " + cpf + "</p>" +
"<p><b>Cargo:</b> " + cargo + "</p>" +
"<p><b>Departamento:</b> " + departamento + "</p>" +
"<p><b>Gestor responsável:</b> " + gestor + "</p>" +
"<p><b>Tipo de desligamento:</b> " + tipo + "</p>" +
"<p><b>Justificativa:</b> " + motivo + "</p>";
}
// ======================================================
// STATE 20 → APROVAÇÃO DO GESTOR
// ======================================================
if (state == 20) {
titulo = "Solicitação em etapa de aprovação";
descricao = "A solicitação avançou para a aprovação do gestor.";
campos =
"<p><b>Colaborador:</b> " + nomeColab + "</p>" +
"<p><b>CPF:</b> " + cpf + "</p>" +
"<p><b>Cargo:</b> " + cargo + "</p>" +
"<p><b>Resultado da aprovação:</b> " + aprov + "</p>";
}
// ======================================================
// STATE 22 → PREVISÃO E IMPEDITIVOS
// ======================================================
if (state == 22) {
titulo = "Etapa: Previsão e Impeditivos";
descricao = "O departamento de DP está preenchendo as previsões.";
campos =
"<p><b>Colaborador:</b> " + nomeColab + "</p>" +
infoEstabilidades;
}
// ======================================================
// STATE 24 → CONFORMIDADE
// ======================================================
if (state == 24) {
titulo = "Etapa de análise de conformidades";
descricao = "A área responsável está validando impedimentos.";
campos =
"<p><b>Colaborador:</b> " + nomeColab + "</p>" +
"<p><b>Possui impeditivos?</b> " + hAPI.getCardValue("impeditivosColab") + "</p>" +
"<p><b>Informações adicionais:</b> " + hAPI.getCardValue("InforConf") + "</p>";
}
// ======================================================
// STATE 5 → COMUNICAÇÃO DO DESLIGAMENTO
// ======================================================
if (state == 5) {
titulo = "Etapa de gestão e comunicação";
descricao = "A área está realizando comunicação e alinhamentos.";
campos =
"<p><b>Colaborador:</b> " + nomeColab + "</p>" +
"<p><b>Data exata do desligamento:</b> " + hAPI.getCardValue("dataExata") + "</p>" +
"<p><b>Detalhamento:</b> " + hAPI.getCardValue("detalheSolicitacao") + "</p>";
}
// ======================================================
// STATE 15 → INATIVAÇÃO DE PERFIS
// ======================================================
if (state == 15) {
titulo = "Etapa: Inativação de Acessos";
descricao = "A TI está desativando os perfis do colaborador.";
campos =
"<p><b>Colaborador:</b> " + nomeColab + "</p>" +
"<p><b>Considerações:</b> " + hAPI.getCardValue("consideracoes") + "</p>";
}
// PARAMETROS PARA O TEMPLATE
params.put("TEMPLATE_CUSTOM", "ginseng_notificacao");
params.put("TITULO", titulo);
params.put("DESCRICAO", descricao);
params.put("CAMPOS", campos);
params.put("LINK", linkSolic);
params.put("NUMSOL", numSolic);
// ASSUNTO PERSONALIZADO
subject.clear();
subject.add("📌 " + titulo + " - Solicitação Nº " + numSolic);
}