2025-08-26 14:12:50 -03:00

97 lines
3.3 KiB
JavaScript

function defineStructure() {
dataset.addColumn("codigo");
dataset.addColumn("descricao");
dataset.addColumn("CNPJ");
dataset.addColumn("ENDERECO");
dataset.addColumn("COMPLEMENTO");
dataset.addColumn("BAIRRO");
dataset.addColumn("CIDADE");
dataset.addColumn("ESTADO");
dataset.addColumn("CEP");
dataset.addColumn("CODIGO MUNICIPIO");
dataset.addColumn("BPCS");
dataset.addColumn("LOJA");
}
function onSync(lastSyncDate) {}
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
var dataSource = "/jdbc/ProtheusP12"; // 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;
try {
log.info("Iniciando execução do dataset...");
var sql = "SELECT M0_CODFIL, M0_FILIAL, M0_CGC, M0_ENDENT, M0_COMPENT, M0_BAIRENT, M0_CIDENT, M0_ESTENT, M0_CEPENT, M0_CODMUN, M0_TEL_PO, * from SYS_COMPANY WHERE M0_CODFIL LIKE '0101%' OR M0_CODFIL LIKE'03%' AND D_E_L_E_T_= ''";
log.info("Query SQL: " + sql);
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
dataset.addColumn("CODIGO");
dataset.addColumn("DESCRICAO");
dataset.addColumn("CNPJ");
dataset.addColumn("ENDERECO");
dataset.addColumn("COMPLEMENTO");
dataset.addColumn("BAIRRO");
dataset.addColumn("CIDADE");
dataset.addColumn("ESTADO");
dataset.addColumn("CEP");
dataset.addColumn("CODIGO MUNICIPIO");
dataset.addColumn("BPCS");
dataset.addColumn("LOJA");
var encontrados = {}; // Usando um objeto para evitar duplicação
while (rs.next()) {
var codigo = rs.getString("M0_CODFIL");
var descricao = rs.getString("M0_FILIAL");
var cnpj = rs.getString("M0_CGC");
var endereco = rs.getString("M0_ENDENT");
var complemento = rs.getString("M0_COMPENT");
var bairro = rs.getString("M0_BAIRENT");
var cidade = rs.getString("M0_CIDENT");
var estado = rs.getString("M0_ESTENT");
var cep = rs.getString("M0_CEPENT");
var ibge = rs.getString("M0_CODMUN");
var bpcs = rs.getString("M0_TEL_PO");
// aqui monta a coluna nova
var loja = (bpcs ? bpcs.trim() : "") + "-" + (descricao ? descricao.trim() : "");
if (!encontrados[codigo]) { // Verifica se já foi adicionado
encontrados[codigo] = true; // Marca como processado
log.info("Registro encontrado: " + codigo + " - " + descricao);
dataset.addRow([codigo, descricao,cnpj,endereco,complemento,bairro,cidade,estado,cep,ibge, bpcs, loja]);
}
}
if (Object.keys(encontrados).length === 0) {
log.info("Nenhum registro encontrado para a consulta.");
}
} 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);
}
}
return dataset;
}
function onMobileSync(user) {}