fluig/compras_digital/datasets/dsPostPedidoCompra.js
Andrey Cunha a71f963e37 att
2026-05-11 21:54:49 -03:00

87 lines
2.8 KiB
JavaScript

function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
criarEstrutura(dataset);
try {
log.info("🚀 Iniciando dsPostPedidoCompra");
// Captura os parâmetros via constraints
var estabelecimento = trim(getParametro(constraints, "estabelecimento"));
var numeroPedido = trim(getParametro(constraints, "numeroPedido"));
var dataAbertura = trim(getParametro(constraints, "dataAbertura"));
var fornecedor = trim(getParametro(constraints, "fornecedor"));
var condPagamento = trim(getParametro(constraints, "condPagamentoIndica"));
var userCompras = trim(getParametro(constraints, "userValidacaoCompras"));
// Monta o payload
var payload = {
"C7_FILIAL": estabelecimento,
"C7_NUM": numeroPedido,
"C7_EMISSAO": dataAbertura,
"C7_FORNECE": fornecedor,
"C7_LOJA": "01",
"C7_COND": condPagamento,
"C7_CONTATO": userCompras,
"C7_FILENT": estabelecimento,
"C7_TPFRETE": "C",
"C7_FRETE": "0",
"C7_ITENS": [fornecedor] // você pode ajustar isso para ser um array com objetos, se necessário
};
log.info("📤 Payload: " + JSON.stringify(payload));
// Monta a chamada para o serviço
var data = {
companyId: "01",
serviceCode: "Integrador Pedido de compra",
endpoint: "/REST/PEDIDO/",
method: "post",
timeoutService: "100",
params: payload,
headers: {
'Content-Type': 'application/json'
}
};
var clientService = fluigAPI.getAuthorizeClientService();
var response = clientService.invoke(JSON.stringify(data));
var result = response.getResult();
log.info("✅ Retorno da API: " + result);
if (!result || result.indexOf("ERRO") !== -1) {
throw result || "Erro desconhecido na integração.";
}
dataset.addRow(["SUCESSO", result]);
} catch (e) {
var erro = "❌ Erro: " + e.message;
log.error("[dsPostPedidoCompra] " + erro);
dataset.addRow(["FALHA", erro]);
}
return dataset;
}
function criarEstrutura(dataset) {
dataset.addColumn("STATUS");
dataset.addColumn("RETORNO");
}
function getParametro(constraints, campo) {
if (!constraints) return "";
var campoUpper = String(campo || "").trim().toUpperCase();
for (var i = 0; i < constraints.length; i++) {
var c = constraints[i];
if (String(c.fieldName || "").trim().toUpperCase() === campoUpper) {
return String(c.initialValue || "");
}
}
return "";
}
function trim(valor) {
return String(valor == null ? "" : valor).trim();
}