Novo git da alteração
This commit is contained in:
@@ -1,61 +1,77 @@
|
||||
function defineStructure() {
|
||||
addColumn("codigo");
|
||||
addColumn("descricao");
|
||||
}
|
||||
|
||||
function onSync(lastSyncDate) {}
|
||||
|
||||
function createDataset(fields, constraints, sortFields) {
|
||||
var dataset = DatasetBuilder.newDataset();
|
||||
var dataSource = "/jdbc/Protheus12"; // Nome da conexão cadastrada no Fluig
|
||||
var ic = new javax.naming.InitialContext();
|
||||
var ds = ic.lookup(dataSource);
|
||||
var conn = ds.getConnection();
|
||||
var stmt = null;
|
||||
var rs = null;
|
||||
|
||||
dataset.addColumn("codigo");
|
||||
dataset.addColumn("descricao");
|
||||
dataset.addColumn("tipo");
|
||||
dataset.addColumn("medida");
|
||||
dataset.addColumn("armazem");
|
||||
dataset.addColumn("icms");
|
||||
dataset.addColumn("ipi");
|
||||
dataset.addColumn("contrato");
|
||||
dataset.addColumn("localizacao");
|
||||
dataset.addColumn("rastro");
|
||||
dataset.addColumn("bloqueado");
|
||||
dataset.addColumn("ultimo_preco");
|
||||
|
||||
|
||||
try {
|
||||
log.info("Iniciando execução do dataset...");
|
||||
var clientService = fluigAPI.getAuthorizeClientService();
|
||||
var data = {
|
||||
companyId: "1",
|
||||
serviceCode: "Postprod",
|
||||
endpoint: "/uf_mata010/",
|
||||
method: "get",
|
||||
timeoutService: "60000",
|
||||
params: {}
|
||||
};
|
||||
|
||||
var sql = "SELECT b1_cod, b1_desc FROM sb1010 WHERE LEFT(b1_cod, 4) IN ('0001','0008', '0002', '0003', '0007', '0006', '0009', '0010', '0011', '0014','0016')";
|
||||
log.info("Query SQL: " + sql);
|
||||
var vo = clientService.invoke(JSON.stringify(data));
|
||||
var retorno = vo.getResult();
|
||||
|
||||
stmt = conn.prepareStatement(sql);
|
||||
rs = stmt.executeQuery();
|
||||
if (retorno) {
|
||||
var objData = JSON.parse(retorno);
|
||||
var itens = objData["produtos"];
|
||||
|
||||
dataset.addColumn("codigo");
|
||||
dataset.addColumn("descricao");
|
||||
if (itens && itens.length > 0) {
|
||||
for (var i = 0; i < itens.length; i++) {
|
||||
var item = itens[i];
|
||||
|
||||
var encontrados = {}; // Usando um objeto para evitar duplicação
|
||||
// aplica filtro:
|
||||
var codigo = (item["B1_COD"] || "").trim();
|
||||
var bloqueado = (item["B1_MSBLQL"] || "").trim();
|
||||
|
||||
while (rs.next()) {
|
||||
var codigo = rs.getString("b1_cod");
|
||||
var descricao = rs.getString("b1_desc");
|
||||
// só adiciona se o código NÃO tiver 5 dígitos OU se bloqueado != "1"
|
||||
if (codigo.length !== 5 && bloqueado !== "1") {
|
||||
dataset.addRow([
|
||||
codigo,
|
||||
item["B1_DESC"],
|
||||
item["B1_TIPO"],
|
||||
item["B1_UM"],
|
||||
item["B1_LOCPAD"],
|
||||
item["B1_PICM"],
|
||||
item["B1_IPI"],
|
||||
item["B1_CONTRAT"],
|
||||
item["B1_LOCALIZ"],
|
||||
item["B1_RASTRO"],
|
||||
bloqueado,
|
||||
item["B1_UPRC"]
|
||||
|
||||
if (!encontrados[codigo]) { // Verifica se já foi adicionado
|
||||
encontrados[codigo] = true; // Marca como processado
|
||||
log.info("Registro encontrado: " + codigo + " - " + descricao);
|
||||
dataset.addRow([codigo, descricao]);
|
||||
]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
dataset.addRow(["Sem produtos retornados"]);
|
||||
}
|
||||
}
|
||||
|
||||
if (Object.keys(encontrados).length === 0) {
|
||||
log.info("Nenhum registro encontrado para a consulta.");
|
||||
} else {
|
||||
dataset.addRow(["Sem resposta da API"]);
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
log.error("Erro ao executar dataset: " + e.message);
|
||||
} finally {
|
||||
try {
|
||||
if (rs) rs.close();
|
||||
if (stmt) stmt.close();
|
||||
if (conn) conn.close();
|
||||
} catch (e) {
|
||||
log.error("Erro ao fechar recursos: " + e.message);
|
||||
}
|
||||
dataset = DatasetBuilder.newDataset();
|
||||
dataset.addColumn("ERRO");
|
||||
dataset.addRow([e.message]);
|
||||
}
|
||||
|
||||
return dataset;
|
||||
}
|
||||
|
||||
function onMobileSync(user) {}
|
||||
|
||||
Reference in New Issue
Block a user