103 lines
3.7 KiB
JavaScript
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;
|
|
}
|