Primeiro commit fluig

This commit is contained in:
2025-08-26 14:12:50 -03:00
commit 8b7a079235
726 changed files with 319231 additions and 0 deletions
@@ -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");
}