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");
|
||||
}
|
||||
Reference in New Issue
Block a user