Novo git da alteração

This commit is contained in:
2026-03-01 17:27:48 -03:00
parent 8b7a079235
commit 9ec8d6e70b
366 changed files with 50299 additions and 27325 deletions
+59 -43
View File
@@ -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) {}