Primeiro commit fluig
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
function servicetask70(attempt, message) {
|
||||
log.info("🚀 Iniciando servicetask70");
|
||||
|
||||
var fornecedores = {};
|
||||
var qtdItens = hAPI.getChildrenIndexes("tabelaItens");
|
||||
log.info("📦 Total de itens na tabela: " + qtdItens.length);
|
||||
|
||||
for (var i = 0; i < qtdItens.length; i++) {
|
||||
var index = qtdItens[i];
|
||||
log.info("🔄 Processando item índice: " + index);
|
||||
|
||||
var fornecedor = String(hAPI.getCardValue("fornecedorIndica___" + index)).trim();
|
||||
|
||||
if (!fornecedor) {
|
||||
log.warn("⚠️ Item ignorado: fornecedor vazio no índice [" + index + "]");
|
||||
continue; // Pula para o próximo item
|
||||
}
|
||||
|
||||
var item = {
|
||||
"produto": String(hAPI.getCardValue("itemCompraIndica___"+index)).trim(),
|
||||
"qtdVen": Number(hAPI.getCardValue("quantidadeIndica___"+ index)),
|
||||
"preco": Number(hAPI.getCardValue("precoIndica___" +index))
|
||||
};
|
||||
|
||||
log.info("📌 Item coletado para fornecedor [" + fornecedor + "]: " + JSON.stringify(item));
|
||||
|
||||
// 🔍 Garante que o fornecedor tenha um array antes de adicionar itens
|
||||
if (!(fornecedor in fornecedores)) {
|
||||
fornecedores[fornecedor] = [];
|
||||
log.info("➕ Novo fornecedor adicionado: " + fornecedor);
|
||||
}
|
||||
|
||||
// 🔄 Adiciona o item ao fornecedor correspondente
|
||||
fornecedores[fornecedor].push(item);
|
||||
log.info("📌 Item adicionado ao fornecedor [" + fornecedor + "]: " + JSON.stringify(item));
|
||||
}
|
||||
|
||||
log.dir(fornecedores);
|
||||
|
||||
var numBase = String(getValue("WKNumProces"));
|
||||
log.info("📄 Número base do processo: " + numBase);
|
||||
|
||||
var contador = 0;
|
||||
|
||||
for (var fornecedor in fornecedores) {
|
||||
var numeroPedido = numBase + (contador > 0 ? String.fromCharCode(65 + contador - 1) : "");
|
||||
log.info("📝 Gerando pedido [" + numeroPedido + "] para fornecedor [" + fornecedor + "]");
|
||||
|
||||
var payload = {
|
||||
"filial": String(hAPI.getCardValue("estabelecimento")),
|
||||
"numero": numeroPedido,
|
||||
"emissao": String(hAPI.getCardValue("dataAbertura")),
|
||||
"fornece": fornecedor,
|
||||
"loja": "01",
|
||||
"contato": String(hAPI.getCardValue("userValidacaoCompras")),
|
||||
"filialent": String(hAPI.getCardValue("estabelecimento")),
|
||||
"tipofrete": "C",
|
||||
"frete": 0,
|
||||
"cond": String(hAPI.getCardValue("condPagamentoIndica___"+ index)),
|
||||
"itens": fornecedores[fornecedor]
|
||||
};
|
||||
|
||||
log.info("📦 Payload montado para envio:");
|
||||
log.dir(payload);
|
||||
|
||||
var data1 = {
|
||||
companyId: '1',
|
||||
serviceCode: 'Integrador Pedido de compra',
|
||||
endpoint: 'http://187.72.204.233:8089/rest/pedido/',
|
||||
method: 'post',
|
||||
timeoutService: '1000000',
|
||||
params: payload,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
};
|
||||
|
||||
log.info("📡 Enviando requisição para o Protheus...");
|
||||
log.dir(data1);
|
||||
|
||||
try {
|
||||
var clientService = fluigAPI.getAuthorizeClientService();
|
||||
var response = clientService.invoke(JSON.stringify(data1));
|
||||
|
||||
log.info("📬 Resposta da API Protheus:");
|
||||
log.dir(response);
|
||||
|
||||
if (response && response.getResult()) {
|
||||
log.info("✅ Pedido [" + numeroPedido + "] enviado com sucesso para [" + fornecedor + "]");
|
||||
log.info("📬 Resposta: " + response.getResult());
|
||||
} else {
|
||||
log.warn("⚠️ API Protheus não retornou dados para fornecedor [" + fornecedor + "]");
|
||||
}
|
||||
} catch (e) {
|
||||
log.error("❌ Erro ao enviar pedido [" + numeroPedido + "] para fornecedor [" + fornecedor + "]: " + e.message);
|
||||
}
|
||||
|
||||
contador++;
|
||||
}
|
||||
|
||||
log.info("🏁 Finalização da servicetask70");
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
function servicetask70(attempt, message) {
|
||||
log.info("🚀 Iniciando servicetask70");
|
||||
|
||||
var fornecedores = {};
|
||||
var qtdItens = hAPI.getChildrenIndexes("tabelaItens");
|
||||
log.info("📦 Total de itens na tabela: " + qtdItens.length);
|
||||
|
||||
for (var i = 0; i < qtdItens.length; i++) {
|
||||
var index = qtdItens[i];
|
||||
log.info("🔄 Processando item índice: " + index);
|
||||
|
||||
var fornecedor = String(hAPI.getCardValue("fornecedorIndica___" + index)).trim();
|
||||
|
||||
if (!fornecedor) {
|
||||
log.warn("⚠️ Item ignorado: fornecedor vazio no índice [" + index + "]");
|
||||
continue; // Pula para o próximo item
|
||||
}
|
||||
|
||||
var item = {
|
||||
"produto": String(hAPI.getCardValue("itemCompraIndica___"+index)).trim(),
|
||||
"qtdVen": Number(hAPI.getCardValue("quantidadeIndica___"+ index)),
|
||||
"preco": Number(hAPI.getCardValue("precoIndica___" +index))
|
||||
};
|
||||
|
||||
log.info("📌 Item coletado para fornecedor [" + fornecedor + "]: " + JSON.stringify(item));
|
||||
|
||||
// 🔍 Garante que o fornecedor tenha um array antes de adicionar itens
|
||||
if (!(fornecedor in fornecedores)) {
|
||||
fornecedores[fornecedor] = [];
|
||||
log.info("➕ Novo fornecedor adicionado: " + fornecedor);
|
||||
}
|
||||
|
||||
// 🔄 Adiciona o item ao fornecedor correspondente
|
||||
fornecedores[fornecedor].push(item);
|
||||
log.info("📌 Item adicionado ao fornecedor [" + fornecedor + "]: " + JSON.stringify(item));
|
||||
}
|
||||
|
||||
log.dir(fornecedores);
|
||||
|
||||
var numBase = String(getValue("WKNumProces"));
|
||||
log.info("📄 Número base do processo: " + numBase);
|
||||
|
||||
var contador = 0;
|
||||
|
||||
for (var fornecedor in fornecedores) {
|
||||
var numeroPedido = numBase + (contador > 0 ? String.fromCharCode(65 + contador - 1) : "");
|
||||
log.info("📝 Gerando pedido [" + numeroPedido + "] para fornecedor [" + fornecedor + "]");
|
||||
|
||||
var payload = {
|
||||
"filial": String(hAPI.getCardValue("estabelecimento")),
|
||||
"numero": numeroPedido,
|
||||
"emissao": String(hAPI.getCardValue("dataAbertura")),
|
||||
"fornece": fornecedor,
|
||||
"loja": "01",
|
||||
"contato": String(hAPI.getCardValue("userValidacaoCompras")),
|
||||
"filialent": String(hAPI.getCardValue("estabelecimento")),
|
||||
"tipofrete": "C",
|
||||
"frete": 0,
|
||||
"cond": String(hAPI.getCardValue("condPagamentoIndica___"+ index)),
|
||||
"itens": fornecedores[fornecedor]
|
||||
};
|
||||
|
||||
log.info("📦 Payload montado para envio:");
|
||||
log.dir(payload);
|
||||
|
||||
var data1 = {
|
||||
companyId: '1',
|
||||
serviceCode: 'Integrador Pedido de compra',
|
||||
endpoint: 'http://187.72.204.233:8089/rest/pedido/',
|
||||
method: 'post',
|
||||
timeoutService: '1000000',
|
||||
params: payload,
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
};
|
||||
|
||||
log.info("📡 Enviando requisição para o Protheus...");
|
||||
log.dir(data1);
|
||||
|
||||
try {
|
||||
var clientService = fluigAPI.getAuthorizeClientService();
|
||||
var response = clientService.invoke(JSON.stringify(data1));
|
||||
|
||||
log.info("📬 Resposta da API Protheus:");
|
||||
log.dir(response);
|
||||
|
||||
if (response && response.getResult()) {
|
||||
log.info("✅ Pedido [" + numeroPedido + "] enviado com sucesso para [" + fornecedor + "]");
|
||||
log.info("📬 Resposta: " + response.getResult());
|
||||
} else {
|
||||
log.warn("⚠️ API Protheus não retornou dados para fornecedor [" + fornecedor + "]");
|
||||
}
|
||||
} catch (e) {
|
||||
log.error("❌ Erro ao enviar pedido [" + numeroPedido + "] para fornecedor [" + fornecedor + "]: " + e.message);
|
||||
}
|
||||
|
||||
contador++;
|
||||
}
|
||||
|
||||
log.info("🏁 Finalização da servicetask70");
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* Configura o prazo das atividades com base no SLA definido
|
||||
*
|
||||
* @param {string} colleagueId Matrícula do Usuário
|
||||
*/
|
||||
function afterTaskCreate(colleagueId) {
|
||||
log.info("Brunote - ### Iniciando execução da função afterTaskCreate ###");
|
||||
var proximaAtividade = getValue("WKNextState");
|
||||
var atividades = getValue("WKNumState");
|
||||
|
||||
log.info("Brunote - Valor de proximaAtividade: " + proximaAtividade);
|
||||
log.info("Brunote - Valor de atividades (WKNumState): " + atividades);
|
||||
|
||||
// Definição dos SLAs com horas fixas e minutos sempre 00
|
||||
var slas = {
|
||||
"Rádio Parada": 1,
|
||||
"Câmera Parada": 2,
|
||||
"Organização do Rack": 3,
|
||||
"Formatar Computador": 4,
|
||||
"Email sem acesso": 5,
|
||||
"Internet sem funcionar": 6,
|
||||
"Adquirir internet": 7,
|
||||
"Resgatar Imagens": 8
|
||||
};
|
||||
|
||||
log.info("Brunote - Objeto SLAs carregado com sucesso.");
|
||||
|
||||
// Verifica se a atividade é relevante para o SLA
|
||||
if (atividades != 5) {
|
||||
log.info("Brunote - Atividade não corresponde a 5. Função encerrada.");
|
||||
return;
|
||||
}
|
||||
|
||||
log.info("Brunote - Atividade corresponde a 5. Continuando processamento...");
|
||||
|
||||
// Obtendo o motivo do chamado do formulário
|
||||
var motivodochamado = hAPI.getCardValue("motivodochamado");
|
||||
log.info("Brunote - Motivo do chamado obtido: " + motivodochamado);
|
||||
|
||||
// Obtendo a hora baseada no SLA (default 1 hora se não houver correspondência)
|
||||
var hours = slas[motivodochamado] || 1; // Se não encontrar no objeto, assume 1 hora
|
||||
var minutes = 0; // Minutos sempre 00
|
||||
|
||||
log.info("Brunote - SLA definido com base no motivo do chamado: " + hours + " hora(s)");
|
||||
|
||||
// Obtendo o momento exato da execução da função
|
||||
var now = new Date();
|
||||
var dateString = now.toISOString(); // Formato ISO: "YYYY-MM-DDTHH:mm:ss.sssZ"
|
||||
log.info("Brunote - Data atual capturada (dateString): " + dateString);
|
||||
|
||||
try {
|
||||
var dateFormat = new java.text.SimpleDateFormat("yyyy-MM-dd");
|
||||
var dueDate = dateFormat.parse(dateString.substring(0, 10)); // Obtém apenas a data (YYYY-MM-DD)
|
||||
log.info("Brunote - Data limite extraída: " + dueDate);
|
||||
|
||||
var dueTimeInSeconds = ((hours * 60) + minutes) * 60; // Converte tempo para segundos
|
||||
log.info("Brunote - Tempo limite calculado em segundos: " + dueTimeInSeconds);
|
||||
|
||||
// Definição do prazo da tarefa no Fluig
|
||||
log.info("Brunote - Definindo prazo da tarefa no Fluig...");
|
||||
hAPI.setDueDate(getValue("WKNumProces"), 0, colleagueId, dueDate, dueTimeInSeconds);
|
||||
log.info("Brunote - Prazo configurado com sucesso para o processo " + getValue("WKNumProces"));
|
||||
|
||||
} catch (err) {
|
||||
log.error("Brunote - Erro ao configurar Prazo de Conclusão. Detalhes: " + err);
|
||||
}
|
||||
|
||||
log.info("Brunote - ### Finalizando execução da função afterTaskCreate ###");
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
function beforeTaskSave(colleagueId,nextSequenceId,userList){
|
||||
// Captura o ID do usuário logado
|
||||
var usuarioLogado = getValue("WKUser");
|
||||
|
||||
// Busca os dados do dataset "colleague"
|
||||
var c1 = DatasetFactory.createConstraint("colleagueId", usuarioLogado, usuarioLogado, ConstraintType.MUST);
|
||||
var dataset = DatasetFactory.getDataset("colleague", null, [c1], null);
|
||||
|
||||
if (dataset && dataset.rowsCount > 0) {
|
||||
// Obter informações do usuário logado
|
||||
var nome = dataset.getValue(0, "colleagueName");
|
||||
var email = dataset.getValue(0, "mail");
|
||||
|
||||
// Preenche os campos do formulário
|
||||
hAPI.setCardValue("nome", nome);
|
||||
hAPI.setCardValue("email", email);
|
||||
} else {
|
||||
log.error("Erro ao buscar os dados do dataset 'colleague'.");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user