fluig/compras_digital/datasets/ds_consultaSC.js
2026-03-01 17:27:48 -03:00

103 lines
3.7 KiB
JavaScript

function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
// Definir colunas que queremos no retorno
dataset.addColumn("C1_FILIAL");
dataset.addColumn("C1_NUM");
dataset.addColumn("C1_ITEM");
dataset.addColumn("C1_PRODUTO");
dataset.addColumn("C1_DESCRI");
dataset.addColumn("C1_QUANT");
dataset.addColumn("C1_VUNIT");
dataset.addColumn("C1_TOTAL");
dataset.addColumn("C1_DATPRF");
dataset.addColumn("C1_CC");
dataset.addColumn("C1_CONTA");
dataset.addColumn("C1_SOLICIT");
dataset.addColumn("C1_EMISSAO");
dataset.addColumn("C1_COTACAO");
dataset.addColumn("C1_PEDIDO");
dataset.addColumn("C1_ITEMPED");
dataset.addColumn("STATUS");
dataset.addColumn("data_consulta");
dataset.addColumn("hora_consulta");
dataset.addColumn("sucesso");
try {
// 🔎 Captura o número da SC passado como constraint
var numeroSC = null;
if (constraints != null) {
for (var i = 0; i < constraints.length; i++) {
if (constraints[i].fieldName == "numeroSCProtheus") {
numeroSC = constraints[i].initialValue;
}
}
}
if (!numeroSC) {
dataset.addRow(["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Erro: número SC não informado"]);
return dataset;
}
// ⚙️ Monta requisição para o Protheus
var data = {
companyId: "1",
serviceCode: "Postprod", // ajuste conforme seu serviço cadastrado
endpoint: "/rest/uf_mata110/" + numeroSC,
method: "get",
timeoutService: "10000",
headers: {
"Content-Type": "application/json"
}
};
var clientService = fluigAPI.getAuthorizeClientService();
var response = clientService.invoke(JSON.stringify(data));
if (response && response.getResult()) {
var result = JSON.parse(response.getResult());
if (result.sucesso && result.solicitacoes && result.solicitacoes.length > 0) {
var sc = result.solicitacoes[0]; // pega a primeira solicitação retornada
// ⚠️ Trata a cotação: ignora valores default
var cotacao = sc.C1_COTACAO || "";
if (cotacao == "000000" || cotacao == "000001") {
cotacao = "";
}
dataset.addRow([
sc.C1_FILIAL || "",
sc.C1_NUM || "",
sc.C1_ITEM || "",
sc.C1_PRODUTO || "",
sc.C1_DESCRI || "",
sc.C1_QUANT || "",
sc.C1_VUNIT || "",
sc.C1_TOTAL || "",
sc.C1_DATPRF || "",
sc.C1_CC || "",
sc.C1_CONTA || "",
sc.C1_SOLICIT || "",
sc.C1_EMISSAO || "",
cotacao,
sc.C1_PEDIDO || "",
sc.C1_ITEMPED || "",
sc.STATUS || "",
result.data_consulta || "",
result.hora_consulta || "",
"true"
]);
} else {
dataset.addRow(["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "false"]);
}
} else {
dataset.addRow(["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "false"]);
}
} catch (e) {
dataset.addRow(["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "Erro: " + e.message]);
}
return dataset;
}