170 lines
5.6 KiB
JavaScript
170 lines
5.6 KiB
JavaScript
function createDataset(fields, constraints, sortFields) {
|
|
var dataset = DatasetBuilder.newDataset();
|
|
|
|
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_APROV");
|
|
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");
|
|
dataset.addColumn("COTACOES_JSON");
|
|
dataset.addColumn("COTACAO_ERRO");
|
|
|
|
function emptyRow() {
|
|
return ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "false", "", ""];
|
|
}
|
|
|
|
function consultarCotacao(clientService, cotacao) {
|
|
var endpoints = [
|
|
"/UF_MATA130/" + cotacao,
|
|
"/rest/UF_MATA130/" + cotacao,
|
|
"/rest/uf_mata130/" + cotacao
|
|
];
|
|
|
|
var ultimoErro = "";
|
|
for (var i = 0; i < endpoints.length; i++) {
|
|
try {
|
|
var dataCot = {
|
|
companyId: "1",
|
|
serviceCode: "Postprod",
|
|
endpoint: endpoints[i],
|
|
method: "get",
|
|
timeoutService: "60000",
|
|
headers: {
|
|
"Content-Type": "application/json"
|
|
}
|
|
};
|
|
|
|
var responseCot = clientService.invoke(JSON.stringify(dataCot));
|
|
if (!responseCot || !responseCot.getResult()) {
|
|
ultimoErro = "Sem resposta ao consultar cotacao";
|
|
continue;
|
|
}
|
|
|
|
var resultCot = JSON.parse(responseCot.getResult());
|
|
if (resultCot && resultCot.sucesso && resultCot.cotacoes && resultCot.cotacoes.length > 0) {
|
|
return {
|
|
sucesso: true,
|
|
cotacoes: resultCot.cotacoes
|
|
};
|
|
}
|
|
|
|
if (resultCot && resultCot.message) {
|
|
ultimoErro = String(resultCot.message);
|
|
} else {
|
|
ultimoErro = "Cotacao sem itens retornados";
|
|
}
|
|
} catch (eCot) {
|
|
ultimoErro = String(eCot);
|
|
}
|
|
}
|
|
|
|
return {
|
|
sucesso: false,
|
|
erro: ultimoErro || "Falha ao consultar cotacao"
|
|
};
|
|
}
|
|
|
|
try {
|
|
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(emptyRow());
|
|
return dataset;
|
|
}
|
|
|
|
var data = {
|
|
companyId: "1",
|
|
serviceCode: "Postprod",
|
|
endpoint: "/UF_MATA110/" + numeroSC,
|
|
method: "get",
|
|
timeoutService: "60000",
|
|
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];
|
|
var cotacao = sc.C1_COTACAO || "";
|
|
if (cotacao == "000000" || cotacao == "000001") {
|
|
cotacao = "";
|
|
}
|
|
|
|
var cotacoesJson = "";
|
|
var cotacaoErro = "";
|
|
if (cotacao) {
|
|
var consultaCot = consultarCotacao(clientService, cotacao);
|
|
if (consultaCot.sucesso) {
|
|
cotacoesJson = JSON.stringify(consultaCot.cotacoes || []);
|
|
} else {
|
|
cotacaoErro = consultaCot.erro || "";
|
|
}
|
|
}
|
|
|
|
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 || "",
|
|
sc.C1_APROV || "",
|
|
cotacao,
|
|
sc.C1_PEDIDO || "",
|
|
sc.C1_ITEMPED || "",
|
|
sc.STATUS || "",
|
|
result.data_consulta || "",
|
|
result.hora_consulta || "",
|
|
"true",
|
|
cotacoesJson,
|
|
cotacaoErro
|
|
]);
|
|
} else {
|
|
dataset.addRow(emptyRow());
|
|
}
|
|
} else {
|
|
dataset.addRow(emptyRow());
|
|
}
|
|
} catch (e) {
|
|
dataset.addRow(emptyRow());
|
|
}
|
|
|
|
return dataset;
|
|
}
|