This commit is contained in:
Andrey Cunha
2026-03-16 18:24:24 -03:00
parent e712c300c6
commit b8a84962ce
28 changed files with 1278 additions and 1196 deletions
@@ -1,104 +0,0 @@
function defineStructure() {
}
function onSync(lastSyncDate) {
}
function createDataset(fields, constraints, sortFields) {
var ds = DatasetBuilder.newDataset();
ds.addColumn("codigo");
ds.addColumn("filial");
ds.addColumn("estabelecimento");
ds.addColumn("cep");
ds.addColumn("logradouro");
ds.addColumn("numero");
ds.addColumn("bairro");
ds.addColumn("cidade");
ds.addColumn("estado");
ds.addRow(new Array("010101","4494", "ESCRITÓRIO MATRIZ","57035-030","RUA DESPORTISTA HUMBERTO GUIMARAES","343","PONTA VERDE","MACEIÓ","AL"));
ds.addRow(new Array("010102","3546", "LJ BIG BOMPREÇO GRUTA","57052-000","AVENIDA FERNANDES LIMA","3700","GRUTA DE LOURDES","MACEIÓ","AL"));
ds.addRow(new Array("010103","4560", "LJ MACEIÓ SHOPPING TERREO","57031-532","AVENIDA GUSTAVO PAIVA","2900","MANGABEIRAS","MACEIÓ","AL"));
ds.addRow(new Array("010104","5699", "LJ MOREIRA LIMA","57020-000","RUA MOREIRA LIMA","93","CENTRO","MACEIÓ","AL"));
ds.addRow(new Array("010106","12522", "LJ MACEIÓ SHOPPING EXPANSÃO","57031-530","AVENIDA GUSTAVO PAIVA","2990","MANGABEIRAS","MACEIÓ","AL"));
ds.addRow(new Array("010107","12828", "LJ GBARBOSA S.MARIS","57036-550","AV ENG. PAULO BRANDÃO NOGUEIRA","S/N","JATIÚCA","MACEIÓ","AL"));
ds.addRow(new Array("010108","12838", "LJ RIO LARGO","57100-000","AV PRES GETULIO VARGAS","148","CENTRO","RIO LARGO","AL"));
ds.addRow(new Array("010109","21647", "QUIOSQUE CARAJÁS MANGABEIRAS","57037-901","AV COMENDADOR GUSTAVO PAIVA","S/N","MANGABEIRAS","MACEIÓ","AL"));
ds.addRow(new Array("010110","12817", "LJ SHOPPING PÁTIO","57073-470","AV MENINO MARCELO","3800","CIDADE UNIVERSITÁRIA","MACEIÓ","AL"));
ds.addRow(new Array("010111","12824", "QUIOSQUE GBARBOSA TABULEIRO","57061-110","AVENIDA MACEIÓ","S/N","TABULEIRO","MACEIÓ","AL"));
ds.addRow(new Array("010112","12823", "LJ PONTA VERDE","57035-330","RUA DEPUTADO JOSÉ LAGES","431","PONTA VERDE","MACEIÓ","AL"));
ds.addRow(new Array("010113","20858", "QUIOSQUE SUPER GIRO","57010-003","AVENIDA SIQUEIRA CAMPOS","1368","PRADO","MACEIÓ","AL"));
ds.addRow(new Array("010114","12820", "LJ ATACADÃO TABULEIRO","57082-160","AV DOUTOR DURVAL DE GOIS MONTEIRO","12650","TABULEIRO","MACEIÓ","AL"));
ds.addRow(new Array("010115","12830", "LJ LIVRAMENTO","57020-030","RUA DO LIVRAMENTO","24","CENTRO","MACEIÓ","AL"));
ds.addRow(new Array("010117","19103", "LJ UNICOMPRA PONTA VERDE","57035-060","RUA DURVAL GUIMARÃES","S/N","PONTA VERDE","MACEIÓ","AL"));
ds.addRow(new Array("010118","12826", "LJ ASSAÍ MANGABEIRAS","57037-532","AV COMENDADOR GUSTAVO PAIVA","3261","MANGABEIRAS","MACEIÓ","AL"));
ds.addRow(new Array("010119","12829", "LJ JACINTINHO","57041-000","RUA CLETO CAMPELO","2394","JACINTINHO","MACEIÓ","AL"));
ds.addRow(new Array("010120","12818", "LJ GBARBOSA SERRARIA","57046-000","AVENIDA MENINO MARCELO","9730","SERRARIA","MACEIÓ","AL"));
ds.addRow(new Array("010121","13427", "LJ SHOPPING CIDADE","57055-000","AVENIDA FERNANDES LIMA","679","FAROL","MACEIÓ","AL"));
ds.addRow(new Array("010124","14617", "LJ PARQUE SHOPPING","57038-000","AVENIDA GUSTAVO PAIVA","5945","CRUZ DAS ALMAS",",MACEIÓ","AL"));
ds.addRow(new Array("010126","14668", "LJ MIX MATHEUS ANTARES","57038-410","AVENIDA MENINO MARCELO","5300","ANTARES","MACEIÓ","AL"));
ds.addRow(new Array("010128","20006", "LJ SÃO SEBASTIÃO","43850-000","PRAÇA DOZE DE OUTUBRO","65","CENTRO","SÃO SEBASTIÃO DO PASSÉ","BA"));
ds.addRow(new Array("010130","20009", "LJ CANDEIAS BAIXO","43815-050","AVENIDA ANTONIO PATTERSON","196","TRIÂNGULO","CANDEIAS","BA"));
ds.addRow(new Array("010131","20005", "LJ CANDEIAS CIMA","43805-000","RUA 13 DE MAIO","147","CENTRO","CANDEIAS","BA"));
ds.addRow(new Array("010132","20056", "LJ SIMÕES FILHO","43700-000","AV LUÍS EDUARDO MAGALHÃES","109","CENTRO","SIMÕES FILHO","BA"));
ds.addRow(new Array("010133","20057", "LJ CONCEIÇÃO COITÉ","48730-000","RUA DR AMÂNCIO MOTA","30","CENTRO","CONCEIÃO DO COITÉ","BA"));
ds.addRow(new Array("010134","20441", "LJ LAGARTO","49400-000","AVENIDA LEANDRO MACIEL","36","CENTRO","LAGARTO","SE"));
ds.addRow(new Array("010135","20968", "HIB ITABAIANINHA","49290-000","PRAÇA OLÍMPIO CAMPOS","154","CENTRO","ITABAIANINHA","SE"));
ds.addRow(new Array("010136","20969", "HIB MARECHAL DEODORO","57160-000","RUA DR TAVARES BASTOS","03","CENTRO","MARECHAL DEODORO","AL"));
ds.addRow(new Array("010137","20970", "VD SÃO SEBASTIÃO","43850-000","PRAÇA DOZE DE OUTUBRO","116","CENTRO","SÃO SEBASTIÃO DO PASSÉ","BA"));
ds.addRow(new Array("010138","20986", "HIB OLINDINA","48470-000","AVENIDA ANTONIO MANGABEIRA","84","CENTRO","OLINDINA","BA"));
ds.addRow(new Array("010139","20989", "HIB QUEIMADAS","48860-000","PRAÇA CORONEL FRANCISCO LANTYER","21","CENTRO","QUEIMADAS","BA"));
ds.addRow(new Array("010140","20989", "HIB ENTRE RIOS","48180-000","AVENIDA JURACY MAGALHÃES","320","CENTRO","ENTRE RIOS","BA"));
ds.addRow(new Array("010141","20991", "HIB CAMPO ALEGRE","57250-000","RUA DO COMÉRCIO","49","CENTRO","CAMPO ALEGRE","AL"));
ds.addRow(new Array("010142","20992", "ER CONCEIÇÃO COITÉ","48730-000","RUA DR AMANCIO MOTA","35","CENTRO","CONCEIÇÃO DO COITÉ","BA"));
ds.addRow(new Array("010143","20993", "ER CANDEIAS","43815-010","AV ANTONIO PATTERSON","213","TRIANGULO","CANDEIAS","BA"));
ds.addRow(new Array("010144","20994", "ER SIMÕES FILHO","43700-000","AV LUÍS EDUARDO MAGALHÃES","109","CENTRO","SIMÕES FILHO","BA"));
ds.addRow(new Array("010145","20995", "ER LAGARTO","49400-000","AVENIDA LEANDRO MACIEL","36","CENTRO","LAGARTO","SE"));
ds.addRow(new Array("010146","20996", "ER ANTARES","57083-048","AV ANTONIO LISBOA DE AMORIM","220","ANTARES","MACEIÓ","AL"));
ds.addRow(new Array("010147","20997", "ER PITANGUINHA","57052-050","AVENIDA FERNANDES LIMA","840","PITANGUINHA","MACEIÓ","AL"));
ds.addRow(new Array("010148","20998", "CD TABULEIRO","57073-482","ESTRADA DA CODEAL","770","TABULEIRO","MACEIÓ","AL"));
ds.addRow(new Array("010149","20999", "HIB ESPLANADA","48370-000","PRAÇA LADISLAU CAVALCANTE","31","CENTRO","ESPLANADA","BA"));
ds.addRow(new Array("010150","21000", "HIB SANTALUZ","48880-000","RUA RIO BRANCO","96","CENTRO","SANTALUZ","BA"));
ds.addRow(new Array("010151","21001", "HIB RIO REAL","48330-000","PC SEN ANTONIO CARLOS MAGALHÃES","146","CENTRO","RIO REAL","BA"));
ds.addRow(new Array("010152","21007", "TÔ QUE TÔ MACEIÓ CENTRO","57020-220","AVENIDA MOREIRA LIMA","293","CENTRO","MACEIÓ","AL"));
ds.addRow(new Array("010153","21068", "LJ ATAKAREJO SIMÕES FILHO","43700-000","AV ENG ELMO SEREJO DE FARIAS","2073","CONJ HAB VIDA NOVA","SIMÕES FILHO","BA"));
ds.addRow(new Array("010154","21277", "LJ GBARBOSA SOCORRO","49160-000","AVENIDA 1","13","CONJ JOAO ALVES FILHO","NOSSA SENHORA DO SOCORRO","SE"));
ds.addRow(new Array("010155","21278", "ER SOCORRO","49140-000","AVENIDA COLETORA A","597","CONJ MARCOS FREIRE I","NOSSA SENHORA DO SOCORRO","SE"));
ds.addRow(new Array("010156","21495", "HIB BARRA DOS COQUEIROS","49140-000","AVENIDA OCEANICA","506","ANTONIO PEDRO","BARRA DOS COQUEIROS","SE"));
ds.addRow(new Array("010157","21296", "LJ SHOPPING PRÊMIO SOCORRO","49160-000","AVENIDA COLETORA A","S/N","CONJ MARCOS FREIRE I","NOSSA SENHORA DO SOCRRO","SE"));
ds.addRow(new Array("010159","21381", "LJ CAPIM GROSSO","44695-000","AV ACM","121","CENTRO","CAPIM-GROSSO","BA"));
ds.addRow(new Array("010160","21383", "ER CAPIM GROSSO","44695-000","AV ACM","121","CENTRO","CAPIM-GROSSO","BA"));
ds.addRow(new Array("010161","21375", "HIB IPIRÁ","44600-000","AVENIDA CESÁR CABRAL","15","CENTRO","IPIRÁ","BA"));
ds.addRow(new Array("010162","21624", "MIX MATEUS TRAPICHE","57010-000","AVENIDA SIQUEIRA CAMPOS","1295","PRADO","MACEIÓ","AL"));
ds.addRow(new Array("010163","22448", "ER CAMPO ALEGRE","57250-000","RUA DO COMÉRCIO","49","CENTRO","CAMPO ALEGRE","AL"));
ds.addRow(new Array("010164","23475", "MIX MATEUS TABULEIRO","57082-160","AV DOUTOR DURVAL DE GOIS MONTEIRO","9207","TABULEIRO","MACEIÓ","AL"));
ds.addRow(new Array("010165","22541", "ER RIO LARGO","57100-000","RUA JUDITH PAIVA","445","CENTRO","RIO LARGO","AL"));
ds.addRow(new Array("010166","AMG", "AMG SERRARIA","57046-000","AVENIDA MENINO MARCELO","S/N","SERRARIA","MACEIÓ","AL"));
ds.addRow(new Array("010167","23156", "SHOPPING CENTRO SUL","49400-000","AV CONTORNO BR","3795","SÃO JOSE","LAGARTO","SE"));
ds.addRow(new Array("030101","910173", "QDB PARQUE SHOPPING","57038-000","AVENIDA COMENDADOR GUSTAVO PAIVA","5945","CRUZ DAS ALMAS","MACEIÓ","AL"));
ds.addRow(new Array("030102","910291", "QDB MACEIO SHOPPING","57037-532","AVENIDA COMENDADOR GUSTAVO PAIVA","2900","MANGABEIRAS","MACEIÓ","AL"));
ds.addRow(new Array("070101","24452", "MATRIZ - ZEFERINO CORREIA","45000-520","RUA ZEFERINO CORREIA","17","CENTRO","VITORIA DA CONQUISTA","BA"));
ds.addRow(new Array("070102","24457", "HIB LIMA GUERRA","45000-390","AL. LIMA GUERRA","04","CENTRO","VITORIA DA CONQUISTA","BA"));
ds.addRow(new Array("070103","24451", "HIB CANDIDO SALES","24157-000","AL. RIO BRANCO","373","CENTRO","CÂNDIDO SALES","BA"));
ds.addRow(new Array("070104","24455", "LOJA SHOPPING CONQUISTA SUL","45055-900","AVENIDA JURACY MAGALHAES","3340","FELICIA","VITORIA DA CONQUISTA","BA"));
ds.addRow(new Array("070105","24447", " VD BARRA CHOCA","45120-000","AV GETULIO VARGAS","98","CENTRO","CHOCA","BA"));
ds.addRow(new Array("070106","24449", "LOJA BRASIL","45051-070","AV ITABUNA","2724","BRASIL","VITORIA DA CONQUISTA","BA"));
ds.addRow(new Array("070107","24450", "LOJA ASSAI FELICIA","45055-686","AV ANEL DE CONTORNO","S/N","FELICIA","VITORIA DA CONQUISTA","BA"));
ds.addRow(new Array("070108","24448", "LOJA SHOPPING CONQUISTA","45055-900","AV JURACY MAGALHAES","3340","FELICIA","VITORIA DA CONQUISTA","BA"));
ds.addRow(new Array("070109","24458", "VD CONDEUBA","46200-000","PC NOSSA SENHORA APARECIDA","08","CENTRO","CONDEÚBA","BA"));
ds.addRow(new Array("070111","24456", "LOJA PANVICON CENTER","45000-230","AVENIDA LAURO DE FREITAS","142","CENTRO","VITORIA DA CONQUISTA","BA"));
ds.addRow(new Array("070112","24454", "LOJA NOVE DE NOVEMBRO","45000-370","PC NOVE DE NOVEMBRO","10","CENTRO","VITORIA DA CONQUISTA","BA"));
ds.addRow(new Array("070113","24453", "LOJA UNIVERSIDADE","45031-000","AV OLIVIA FLORES","2500","UNIVERSIDADE","VITORIA DA CONQUISTA","BA"));
return ds;
}
function onMobileSync(user) {
}
@@ -1,113 +0,0 @@
function defineStructure() {
}
function onSync(lastSyncDate) {
}
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
// Definir as colunas
dataset.addColumn("codigoCentroCusto");
dataset.addColumn("centroCusto");
dataset.addColumn("gestorCentroCusto");
dataset.addColumn("emailGestor");
dataset.addColumn("id");
dataset.addColumn("idGestor"); // Aqui será armazenada a matrícula do gestor
// Lista dos centros de custo
var dados = [
["3546", "LJ HIPER FAROL - (CARREFOUR)", "3546 Ginseng", "3546@grupoginseng.com.br", "1"],
["4560", "LJ MACEIÓ SHOPPING TERREO", "4560 Ginseng", "4560@grupoginseng.com.br", "2"],
["5699", "LJ MOREIRA LIMA", "5699 Ginseng", "5699@grupoginseng.com.br", "3", "5699"],
["12522", "LJ MACEIÓ SHOPPING EXPANSÃO", "12522 Ginseng", "12522@grupoginseng.com.br", "4"],
["12817", "LJ SHOPPING PÁTIO", "12817 Ginseng", "12817@grupoginseng.com.br", "5"],
["12818", "LJ GBARBOSA SERRARIA", "12818 Ginseng", "12818@grupoginseng.com.br", "6"],
["12820", "LJ MÁRIO DE GUSMÃO(ATACADAO)", "12820 Ginseng", "12820@grupoginseng.com.br", "7"],
["12823", "LJ PONTA VERDE", "12823 Ginseng", "12823@grupoginseng.com.br", "8"],
["12824", "LJ GBARBOSA TABULEIRO", "12824 Ginseng", "12824@grupoginseng.com.br", "9"],
["12826", "LJ HIPER JATIÚCA (ASSAÍ)", "12826 Ginseng", "12826@grupoginseng.com.br", "10"],
["12828", "LJ GBARBOSA S.MARIS", "12828 Ginseng", "12828@grupoginseng.com.br", "11"],
["12829", "LJ JACINTINHO", "12829 Ginseng", "12829@grupoginseng.com.br", "12"],
["12830", "LJ LIVRAMENTO", "12830 Ginseng", "12830@grupoginseng.com.br", "13"],
["12838", "LJ RIO LARGO", "12838 Ginseng", "12838@grupoginseng.com.br", "14"],
["13427", "LJ SHOPPING CIDADE", "13427 Ginseng", "13427@grupoginseng.com.br", "15"],
["14617", "LJ PARQUE SHOPPING", "14617 Ginseng", "14617@grupoginseng.com.br", "16"],
["14668", "LJ HIPER ANTARES", "14668 Ginseng", "14668@grupoginseng.com.br", "17"],
["19103", "LJ UNICOMPRA PONTA VERDE", "19103 Ginseng", "19103@grupoginseng.com.br", "18"],
["20858", "LJ SUPER GIRO", "20858 Ginseng", "20858@grupoginseng.com.br", "19"],
["20969", "HIB MARECHAL DEODORO", "20969 Ginseng", "20969@grupoginseng.com.br", "20"],
["20991", "HIB CAMPO ALEGRE", "20991 Ginseng", "20991@grupoginseng.com.br", "21"],
["20996", "ER ANTARES", "20996 Ginseng", "20996@grupoginseng.com.br", "22"],
["20997", "ER PITANGUINHA", "20997 Ginseng", "20997@grupoginseng.com.br", "23"],
["20998", "CD SERRARIA", "20998 Ginseng", "20998@grupoginseng.com.br", "24"],
["21007", "TÔ QUE TÔ MACEIÓ CENTRO", "21007 Ginseng", "21007@grupoginseng.com.br", "25"],
["21624", "LJ MIX MATEUS", "21624 Ginseng", "21624@grupoginseng.com.br", "27"],
["21647", "LJ CARAJÁS", "21647 Ginseng", "21647@grupoginseng.com.br", "28"],
["22541", "ER RIO LARGO", "22541 Ginseng", "22541@grupoginseng.com.br", "29"],
["910173", "QDB PARQUE SHOPPING", "910173 Ginseng", "910173@grupoginseng.com.br", "30"],
["20441", "LJ LAGARTO", "20441 Ginseng", "20441@grupoginseng.com.br", "31"],
["20968", "HIB ITABAIANINHA", "20968 Ginseng", "20968@grupoginseng.com.br", "32"],
["20995", "ER LAGARTO", "20995 Ginseng", "20995@grupoginseng.com.br", "33"],
["21277", "LJ GBARBOSA SOCORRO", "21277 Ginseng", "21277@grupoginseng.com.br", "34"],
["21278", "ER SOCORRO", "21278 Ginseng", "21278@grupoginseng.com.br", "35"],
["21495", "HIB BARRA DOS COQUEIROS", "21495 Ginseng", "21495@grupoginseng.com.br", "36"],
["21296", "LJ SHOPPING PREMIO SOCORRO", "21296 Ginseng", "21296@grupoginseng.com.br", "37"],
["23475", "LJ MIX MATEUS TABULEIRO", "23475 Ginseng", "23475@grupoginseng.com.br", "38"],
["910291", "QDB MACEIO SHOPPING", "910291 Ginseng", "910291@grupoginseng.com.br", "39"],
["24711", "LJ GBARBOSA TABULEIRO", "24711 Ginseng", "24711@grupoginseng.com.br", "40"],
["23665", "LJ BOULEVARD SHOPPING", "23665 Ginseng", "23665@grupoginseng.com.br", "41"],
["23701", "LJ PRACA 9 DE NOVEMBRO", "23701 Ginseng", "23701@grupoginseng.com.br", "42"],
["23702", "LJ GALERIA PANVICON", "23702 Ginseng", "23702@grupoginseng.com.br", "43"],
["23704", "ER CONDEUBA", "23704 Ginseng", "23704@grupoginseng.com.br", "44"],
["23705", "QQ SHOPPING CONQUISTA", "23705 Ginseng", "23705@grupoginseng.com.br", "45"],
["23706", "LJ ASSAI VITORIA DA CONQUISTA", "23706 Ginseng", "23706@grupoginseng.com.br", "46"],
["23707", "LJ BAIRRO BRASIL", "23707 Ginseng", "23707@grupoginseng.com.br", "47"],
["23708", "HIB BARRA DO CHOCA", "23708 Ginseng", "23708@grupoginseng.com.br", "48"],
["23709", "LJ SHOPPING CONQUISTA SUL", "23709 Ginseng", "23709@grupoginseng.com.br", "49"],
["23711", "ER VITORIA DA CONQUISTA", "23711 Ginseng", "23711@grupoginseng.com.br", "50"],
["23712", "HIB CANDIDO SALES", "23712 Ginseng", "23712@grupoginseng.com.br", "51"],
["23713", "LJ RUA ZEFERINO CORREIA", "23713 Ginseng", "23713@grupoginseng.com.br", "52"]
];
// Buscar matrícula do gestor no dataset "colleague"
function getMatricula(gestorNome) {
var c1 = DatasetFactory.createConstraint("colleagueName", gestorNome, gestorNome, ConstraintType.MUST);
var dsUser = DatasetFactory.getDataset("colleague", ["colleagueId"], [c1], null);
return dsUser.rowsCount > 0 ? dsUser.getValue(0, "colleagueId") : "";
}
// Percorrer a lista e adicionar ao dataset
for (var i = 0; i < dados.length; i++) {
var matricula = "";
// 🔴 EXCEÇÃO MANUAL SOMENTE ESTE USUÁRIO
if (dados[i][2] === "23665 Ginseng") {
matricula = "23665";
} else {
// fluxo normal
matricula = getMatricula(dados[i][2]);
}
dataset.addRow([
dados[i][0], // codigoCentroCusto
dados[i][1], // centroCusto
dados[i][2], // gestorCentroCusto
dados[i][3], // emailGestor
dados[i][4], // id
matricula // idGestor
]);
}
return dataset;
}
function onMobileSync(user) {
}
@@ -0,0 +1,209 @@
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("PDV");
dataset.addColumn("LOJA");
dataset.addColumn("RESPONSAVEL_LOJA");
dataset.addColumn("REGIONAL");
dataset.addColumn("UF");
dataset.addColumn("CIDADE");
dataset.addColumn("STATUS");
dataset.addColumn("CANAL");
dataset.addColumn("ID");
dataset.addColumn("LOGIN_LOJA");
dataset.addColumn("COLLEAGUE_ID");
dataset.addColumn("USER_CREATE");
try {
var clientService = fluigAPI.getAuthorizeClientService();
var data = {
companyId: String(getValue("WKCompany") || "1"),
serviceCode: "GINSENG APITESTE", // ajuste para o codigo do servico cadastrado no Fluig
endpoint: "/base_pdvs",
method: "get",
timeoutService: "60000",
params: {}
};
var vo = clientService.invoke(JSON.stringify(data));
var statusHttp = vo ? String(vo.getHttpStatusResult() || "") : "";
var retorno = vo ? String(vo.getResult() || "") : "";
if (!retorno) {
dataset.addRow(["", "Sem resposta da API (HTTP " + statusHttp + ")", "", "", "", "", "", "", "", "", "", ""]);
return dataset;
}
var objData = JSON.parse(retorno);
var success = !!objData.success;
var itens = objData.data || [];
if (!success || !itens.length) {
var msg = trim(objData.message) || trim(objData.error) || "Sem lojas retornadas";
dataset.addRow(["", msg + " (HTTP " + statusHttp + ")", "", "", "", "", "", "", "", "", "", ""]);
return dataset;
}
var filtros = parseConstraints(constraints);
var colleagueCache = {};
for (var i = 0; i < itens.length; i++) {
var item = itens[i] || {};
var pdv = trim(item["PDV"]);
var loja = trim(item["PDV DESC"]);
var responsavel = trim(item["GESTAO"]) || trim(item["GESTAO"]);
var regional = trim(item["SUPERVISOR"]) || trim(item["SUPERVISOR"]);
var uf = trim(item["UF"]);
var cidade = trim(item["CIDADE"]);
var status = trim(item["STATUS"]);
var canal = trim(item["CANAL"]);
var id = trim(item["id"]);
var loginLoja = pdv ? (pdv + ".ginseng") : "";
var colleagueId = resolveColleagueIdByLogin(loginLoja);
var userCreate = getUserCreateStatus(loginLoja, colleagueCache);
if (filtros.onlyAtivo && status.toUpperCase() !== "ATIVO") {
continue;
}
if (filtros.pdv && pdv !== filtros.pdv) {
continue;
}
if (filtros.loja && normalize(loja).indexOf(normalize(filtros.loja)) === -1) {
continue;
}
if (filtros.termoLivre) {
var blob = normalize([
pdv,
loja,
responsavel,
regional,
uf,
cidade
].join(" "));
if (blob.indexOf(normalize(filtros.termoLivre)) === -1) {
continue;
}
}
dataset.addRow([
pdv,
loja,
responsavel,
regional,
uf,
cidade,
status,
canal,
id,
loginLoja,
colleagueId,
userCreate
]);
}
if (dataset.rowsCount === 0) {
dataset.addRow(["", "Sem lojas apos filtros (HTTP " + statusHttp + ")", "", "", "", "", "", "", "", "", "", ""]);
}
} catch (e) {
dataset = DatasetBuilder.newDataset();
dataset.addColumn("ERRO");
dataset.addRow([String(e)]);
}
return dataset;
}
function parseConstraints(constraints) {
var out = {
pdv: "",
loja: "",
onlyAtivo: true,
termoLivre: ""
};
if (!constraints) return out;
for (var i = 0; i < constraints.length; i++) {
var c = constraints[i];
if (!c || !c.fieldName) continue;
var name = String(c.fieldName);
var value = trim(c.initialValue);
if (name === "PDV" && value) out.pdv = value;
if (name === "LOJA" && value) out.loja = value;
if (name === "onlyAtivo" && value.toLowerCase() === "false") out.onlyAtivo = false;
// Zoom costuma enviar constraints variadas de busca; capturamos termo livre.
if (
value &&
name !== "onlyAtivo" &&
name !== "metadata#id" &&
name !== "metadata#active" &&
name !== "sqlLimit"
) {
var cleaned = cleanSearchValue(value);
if (cleaned && (!out.termoLivre || cleaned.length > out.termoLivre.length)) {
out.termoLivre = cleaned;
}
}
}
return out;
}
function trim(v) {
return String(v == null ? "" : v).trim();
}
function normalize(v) {
return trim(v).toLowerCase();
}
function cleanSearchValue(v) {
var s = trim(v);
// remove curingas comuns de busca do Zoom/like
s = s.replace(/[%*_]/g, "");
return trim(s);
}
function getUserCreateStatus(loginLoja, cache) {
var login = trim(loginLoja);
if (!login) return "NAO";
if (cache.hasOwnProperty(login)) return cache[login];
try {
var cLogin = DatasetFactory.createConstraint("login", login, login, ConstraintType.MUST);
var cActive = DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST);
var ds = DatasetFactory.getDataset("colleague", null, [cLogin, cActive], null);
var exists = !!(ds && ds.rowsCount > 0);
// fallback para ambientes onde o identificador esta em colleagueId
if (!exists) {
var cId = DatasetFactory.createConstraint("colleaguePK.colleagueId", login, login, ConstraintType.MUST);
ds = DatasetFactory.getDataset("colleague", null, [cId, cActive], null);
exists = !!(ds && ds.rowsCount > 0);
}
cache[login] = exists ? "OK" : "NAO";
return cache[login];
} catch (e) {
cache[login] = "NAO";
return "NAO";
}
}
function resolveColleagueIdByLogin(loginLoja) {
var login = trim(loginLoja);
if (!login) return "";
try {
var cLogin = DatasetFactory.createConstraint("login", login, login, ConstraintType.MUST);
var cActive = DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST);
var ds = DatasetFactory.getDataset("colleague", null, [cLogin, cActive], null);
if (ds && ds.rowsCount > 0) {
return trim(ds.getValue(0, "colleaguePK.colleagueId"));
}
} catch (e) {}
return "";
}
@@ -0,0 +1,267 @@
function defineStructure() {
addColumn("Code");
addColumn("Description");
addColumn("codigoDescricao");
addColumn("descricao");
addColumn("sku");
addColumn("id");
addColumn("brand");
addColumn("ncmId");
}
function onSync(lastSyncDate) {}
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("Code");
dataset.addColumn("Description");
dataset.addColumn("codigoDescricao");
dataset.addColumn("descricao");
dataset.addColumn("sku");
dataset.addColumn("id");
dataset.addColumn("brand");
dataset.addColumn("ncmId");
try {
var filtro = parseConstraints(constraints);
var clientService = fluigAPI.getAuthorizeClientService();
var data = {
companyId: String(getValue("WKCompany") || "1"),
serviceCode: "GINSENG APITESTE",
endpoint: "/dados_rgb_products",
method: "get",
timeoutService: "60000",
params: {}
};
var vo = clientService.invoke(JSON.stringify(data));
var statusHttp = vo ? String(vo.getHttpStatusResult() || "") : "";
var retorno = vo ? String(vo.getResult() || "") : "";
// Fallback: se o servico integrado estiver com endpoint/base incorreto, chama URL direta.
if (statusHttp !== "200" || !retorno) {
var direct = fetchDirect("https://api.grupoginseng.com.br/dados_rgb_products", 60000);
statusHttp = String(direct.status || statusHttp);
retorno = direct.body || retorno;
}
if (!retorno) {
addDiagRow(dataset, "Sem retorno da API (HTTP " + statusHttp + ")");
return dataset;
}
var obj = parseJsonSafe(retorno);
if (!obj) {
addDiagRow(dataset, "Falha no JSON da API (HTTP " + statusHttp + ")");
return dataset;
}
var itens = extractItems(obj);
if (!itens || !itens.length) {
addDiagRow(dataset, "API sem itens (HTTP " + statusHttp + ")");
return dataset;
}
var searchNorm = normalize(filtro.search);
var maxRows = filtro.maxRows;
for (var i = 0; i < itens.length; i++) {
var item = itens[i] || {};
if (item.discontinued === true) {
continue;
}
if (item.purchaseBlocked === true) {
continue;
}
var code = trim(item.sku);
var desc = trim(item.description);
var codigoDescricao = code + " - " + desc;
var brand = trim(item.brand);
var blob = normalize([code, desc, brand, trim(item.id)].join(" "));
if (searchNorm && searchNorm.length >= 2 && blob.indexOf(searchNorm) === -1) {
continue;
}
dataset.addRow([
code,
desc,
codigoDescricao,
desc,
code,
trim(item.id),
brand,
trim(item.ncmId)
]);
if (dataset.rowsCount >= maxRows) {
break;
}
}
if (dataset.rowsCount === 0) {
addDiagRow(dataset, "Sem produtos apos filtros (busca: " + filtro.search + ")");
}
} catch (e) {
addDiagRow(dataset, "Erro ao consultar API: " + e);
}
return dataset;
}
function onMobileSync(user) {}
function parseConstraints(constraints) {
var out = {
search: "",
maxRows: 200
};
if (!constraints) {
return out;
}
for (var i = 0; i < constraints.length; i++) {
var c = constraints[i];
if (!c || !c.fieldName) continue;
var name = String(c.fieldName);
var value = cleanSearchValue(c.initialValue);
if (name === "sqlLimit") {
var n = parseInt(value, 10);
if (!isNaN(n) && n > 0 && n <= 1000) {
out.maxRows = n;
}
continue;
}
if (
value &&
name !== "metadata#id" &&
name !== "metadata#active" &&
name !== "sqlLimit"
) {
if (!out.search || value.length > out.search.length) {
out.search = value;
}
}
}
return out;
}
function cleanSearchValue(v) {
var s = trim(v);
s = s.replace(/[%*_]/g, "");
// Evita que flags comuns do Fluig virem termo de busca
if (s === "true" || s === "false" || s === "on" || s === "off" || s === "1") {
return "";
}
return trim(s);
}
function normalize(v) {
return trim(v).toLowerCase();
}
function trim(v) {
return String(v == null ? "" : v).trim();
}
function parseJsonSafe(text) {
try {
return JSON.parse(text);
} catch (e) {
return null;
}
}
function extractItems(obj) {
if (!obj) return [];
if (obj instanceof Array) return obj;
if (obj.data && obj.data instanceof Array) return obj.data;
if (obj.content) {
if (obj.content instanceof Array) return obj.content;
if (typeof obj.content === "string") {
var parsedContent = parseJsonSafe(obj.content);
if (parsedContent && parsedContent.data && parsedContent.data instanceof Array) {
return parsedContent.data;
}
if (parsedContent && parsedContent instanceof Array) {
return parsedContent;
}
}
if (obj.content.data && obj.content.data instanceof Array) return obj.content.data;
}
if (obj.result) {
if (obj.result instanceof Array) return obj.result;
if (typeof obj.result === "string") {
var parsedResult = parseJsonSafe(obj.result);
if (parsedResult && parsedResult.data && parsedResult.data instanceof Array) {
return parsedResult.data;
}
}
}
return [];
}
function addDiagRow(dataset, msg) {
dataset.addRow([
"DEBUG",
String(msg),
String(msg),
String(msg),
"",
"",
"",
""
]);
}
function fetchDirect(url, timeoutMs) {
var conn = null;
var reader = null;
try {
var URL = java.net.URL;
var HttpURLConnection = java.net.HttpURLConnection;
var InputStreamReader = java.io.InputStreamReader;
var BufferedReader = java.io.BufferedReader;
var StringBuilder = java.lang.StringBuilder;
conn = new URL(url).openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(timeoutMs || 30000);
conn.setReadTimeout(timeoutMs || 30000);
conn.setRequestProperty("Accept", "application/json");
var status = conn.getResponseCode();
var stream = (status >= 200 && status < 300) ? conn.getInputStream() : conn.getErrorStream();
if (stream == null) {
return { status: status, body: "" };
}
reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
var sb = new StringBuilder();
var line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
return {
status: status,
body: String(sb.toString())
};
} catch (e) {
return { status: 0, body: "" };
} finally {
try { if (reader) reader.close(); } catch (e1) {}
try { if (conn) conn.disconnect(); } catch (e2) {}
}
}
@@ -1,61 +0,0 @@
function defineStructure() {
addColumn("codigo");
addColumn("descricao");
}
function onSync(lastSyncDate) {}
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
var dataSource = "/jdbc/ProtheusDS"; // 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 b1_cod, b1_desc FROM sb1010 WHERE LEN(b1_cod) = 5 ";
log.info("Query SQL: " + sql);
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
dataset.addColumn("codigo");
dataset.addColumn("descricao");
var encontrados = {}; // Usando um objeto para evitar duplicação
while (rs.next()) {
var codigo = rs.getString("b1_cod");
var descricao = rs.getString("b1_desc");
if (!encontrados[codigo]) { // Verifica se já foi adicionado
encontrados[codigo] = true; // Marca como processado
log.info("Registro encontrado: " + codigo + " - " + descricao);
dataset.addRow([codigo, descricao]);
}
}
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) {}