att
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
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");
|
||||
|
||||
try {
|
||||
var clientService = fluigAPI.getAuthorizeClientService();
|
||||
var data = {
|
||||
companyId: String(getValue("WKCompany") || "1"),
|
||||
serviceCode: "GINSENG API",
|
||||
endpoint: "/base_pdvs",
|
||||
method: "get",
|
||||
timeoutService: "60000",
|
||||
params: {}
|
||||
};
|
||||
|
||||
var vo = clientService.invoke(JSON.stringify(data));
|
||||
var response = String(vo.getResult() || "");
|
||||
var obj = JSON.parse(response);
|
||||
var list = (obj && obj.data && obj.data.length) ? obj.data : [];
|
||||
|
||||
if (!list.length) {
|
||||
dataset.addRow(["", "Sem lojas retornadas", "", "", "", "", "", "", "", "", ""]);
|
||||
return dataset;
|
||||
}
|
||||
|
||||
var filter = getSearchFilter(constraints);
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
var item = list[i] || {};
|
||||
var pdv = clean(item.PDV);
|
||||
var loja = clean(item["PDV DESC"] || item.DESCRICAO);
|
||||
var responsavel = clean(item.GESTAO);
|
||||
var regional = clean(item.SUPERVISOR || item["REGIAO 2"] || item.REGIAO);
|
||||
var uf = clean(item.UF || item["UF 2"]);
|
||||
var cidade = clean(item.CIDADE);
|
||||
var status = clean(item.STATUS);
|
||||
var canal = clean(item.CANAL);
|
||||
var id = clean(item.id);
|
||||
var loginLoja = pdv ? (pdv + ".ginseng") : "";
|
||||
var colleagueId = resolveColleagueId(loginLoja);
|
||||
|
||||
if (!matchesFilter(filter, [pdv, loja, responsavel, regional, uf, cidade, status, canal, loginLoja, colleagueId])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
dataset.addRow([
|
||||
pdv,
|
||||
loja,
|
||||
responsavel,
|
||||
regional,
|
||||
uf,
|
||||
cidade,
|
||||
status,
|
||||
canal,
|
||||
id,
|
||||
loginLoja,
|
||||
colleagueId
|
||||
]);
|
||||
}
|
||||
} catch (e) {
|
||||
dataset = DatasetBuilder.newDataset();
|
||||
dataset.addColumn("ERRO");
|
||||
dataset.addRow([String(e)]);
|
||||
}
|
||||
|
||||
return dataset;
|
||||
}
|
||||
|
||||
function resolveColleagueId(login) {
|
||||
try {
|
||||
var c1 = DatasetFactory.createConstraint("login", login, login, ConstraintType.MUST);
|
||||
var c2 = DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST);
|
||||
var ds = DatasetFactory.getDataset("colleague", null, [c1, c2], null);
|
||||
if (ds && ds.rowsCount > 0) {
|
||||
return clean(ds.getValue(0, "colleaguePK.colleagueId"));
|
||||
}
|
||||
} catch (e) {}
|
||||
return "";
|
||||
}
|
||||
|
||||
function getSearchFilter(constraints) {
|
||||
if (!constraints || !constraints.length) return "";
|
||||
for (var i = 0; i < constraints.length; i++) {
|
||||
var c = constraints[i];
|
||||
var field = String(c.fieldName || "").toUpperCase();
|
||||
if (field === "SEARCH" || field === "LOJA" || field === "PDV") {
|
||||
return normalizeSearch(c.initialValue);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
function matchesFilter(filter, values) {
|
||||
if (!filter) return true;
|
||||
for (var i = 0; i < values.length; i++) {
|
||||
if (normalizeSearch(values[i]).indexOf(filter) > -1) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function normalizeSearch(text) {
|
||||
var t = clean(text).toUpperCase();
|
||||
t = t.replace(/[%*_]/g, "");
|
||||
return t;
|
||||
}
|
||||
|
||||
function clean(value) {
|
||||
return String(value || "").trim();
|
||||
}
|
||||
Reference in New Issue
Block a user