This commit is contained in:
Cunha 2026-03-27 08:13:35 -03:00
parent c2720400bb
commit fb2bec0fd5
15 changed files with 3143 additions and 76 deletions

View File

@ -1,3 +1,4 @@
{
"totvsLanguageServer.welcomePage": false
"totvsLanguageServer.welcomePage": false,
"totvsLanguageServer.editor.linter.includes": "C:\\25-04-14-P12-SMARTCLIENT_BUILD 20.3.2.12_WINDOWS_X64\\include"
}

View File

@ -18,7 +18,7 @@ function createDataset(fields, constraints, sortFields) {
var clientService = fluigAPI.getAuthorizeClientService();
var data = {
companyId: String(getValue("WKCompany") || "1"),
serviceCode: "GINSENG APITESTE", // ajuste para o codigo do servico cadastrado no Fluig
serviceCode: "GINSENG API", // ajuste para o codigo do servico cadastrado no Fluig
endpoint: "/base_pdvs",
method: "get",
timeoutService: "60000",

View File

@ -236,7 +236,7 @@ function invokeAuthorizedGet(clientService, endpoint, auth) {
var data = {
companyId: String(getValue("WKCompany") || "1"),
serviceCode: "GINSENG APITESTE",
serviceCode: "GinsengAPI2",
endpoint: endpoint,
method: "get",
timeoutService: "30000",

View File

@ -6,10 +6,16 @@ function defineStructure() {
addColumn("sku");
addColumn("brand");
addColumn("ncmId");
addColumn("categoria");
}
function onSync(lastSyncDate) {}
var GB_TOKEN_URL = "https://api.grupoboticario.com.br/global/v2/jwt-token/token";
var GB_STRATEGICS_URL = "https://api.grupoboticario.com.br/global/v1/franchising/gb-stores-data/product/classification/strategics";
var DEFAULT_GB_CLIENT_ID = "88ymKwAUNfu06sD85i0RiokCxWGSkFBkx9ytgI5y1ZKxX3OQ";
var DEFAULT_GB_CLIENT_SECRET = "YDFz43qAzL6ApNIKVCxu3dAmS9GWOqJbcc2aPnFDkmEaBXexSpsHGfcItg56i2dE";
function createDataset(fields, constraints, sortFields) {
var dataset = DatasetBuilder.newDataset();
dataset.addColumn("Code");
@ -19,6 +25,7 @@ function createDataset(fields, constraints, sortFields) {
dataset.addColumn("sku");
dataset.addColumn("brand");
dataset.addColumn("ncmId");
dataset.addColumn("categoria");
try {
var filtro = parseConstraints(constraints);
@ -62,6 +69,8 @@ function createDataset(fields, constraints, sortFields) {
var searchNorm = normalize(filtro.search);
var maxRows = filtro.maxRows;
var categoryMap = null;
var categoryDiag = "";
for (var i = 0; i < itens.length; i++) {
var item = itens[i] || {};
@ -77,7 +86,17 @@ function createDataset(fields, constraints, sortFields) {
var desc = trim(item.description);
var codigoDescricao = code + " - " + desc;
var brand = trim(item.brand);
var blob = normalize([code, desc, brand, trim(item.id)].join(" "));
var categoria = trim(item.strategicDescription || item.strategic_description || item.categoria);
if (!categoria) {
if (categoryMap == null) {
var categorization = loadStrategicCategoryMap(constraints, 30000);
categoryMap = categorization.map || {};
categoryDiag = categorization.diag || "";
}
var strategicId = resolveStrategicId(item, code);
categoria = resolveCategory(categoryMap, strategicId);
}
var blob = normalize([code, desc, brand, trim(item.id), categoria].join(" "));
if (searchNorm && searchNorm.length >= 2 && blob.indexOf(searchNorm) === -1) {
continue;
@ -90,7 +109,8 @@ function createDataset(fields, constraints, sortFields) {
desc,
code,
brand,
trim(item.ncmId)
trim(item.ncmId),
categoria
]);
if (dataset.rowsCount >= maxRows) {
@ -99,7 +119,8 @@ function createDataset(fields, constraints, sortFields) {
}
if (dataset.rowsCount === 0) {
addDiagRow(dataset, "Sem produtos apos filtros (busca: " + filtro.search + ")");
var suffix = categoryDiag ? " | Categoria: " + categoryDiag : "";
addDiagRow(dataset, "Sem produtos apos filtros (busca: " + filtro.search + ")" + suffix);
}
} catch (e) {
@ -126,9 +147,10 @@ function parseConstraints(constraints) {
if (!c || !c.fieldName) continue;
var name = String(c.fieldName);
var lowerName = name.toLowerCase();
var value = cleanSearchValue(c.initialValue);
if (name === "sqlLimit") {
if (lowerName === "sqllimit") {
var n = parseInt(value, 10);
if (!isNaN(n) && n > 0 && n <= 1000) {
out.maxRows = n;
@ -138,9 +160,13 @@ function parseConstraints(constraints) {
if (
value &&
name !== "metadata#id" &&
name !== "metadata#active" &&
name !== "sqlLimit"
lowerName !== "metadata#id" &&
lowerName !== "metadata#active" &&
lowerName !== "sqllimit" &&
lowerName !== "gbclientid" &&
lowerName !== "gbclientsecret" &&
lowerName !== "clientid" &&
lowerName !== "clientsecret"
) {
if (!out.search || value.length > out.search.length) {
out.search = value;
@ -209,6 +235,205 @@ function extractItems(obj) {
return [];
}
function getConstraintValue(constraints, fieldName) {
if (!constraints || !fieldName) return "";
var target = String(fieldName).toLowerCase();
for (var i = 0; i < constraints.length; i++) {
var c = constraints[i];
if (!c || !c.fieldName) continue;
if (String(c.fieldName).toLowerCase() === target) {
return c.initialValue;
}
}
return "";
}
function resolveGbCredentials(constraints) {
var clientId = trim(getConstraintValue(constraints, "gbClientId"));
if (!clientId) clientId = trim(getConstraintValue(constraints, "clientId"));
if (!clientId) {
try { clientId = trim(java.lang.System.getenv("GB_CLIENT_ID")); } catch (e1) {}
}
if (!clientId) clientId = DEFAULT_GB_CLIENT_ID;
var clientSecret = trim(getConstraintValue(constraints, "gbClientSecret"));
if (!clientSecret) clientSecret = trim(getConstraintValue(constraints, "clientSecret"));
if (!clientSecret) {
try { clientSecret = trim(java.lang.System.getenv("GB_CLIENT_SECRET")); } catch (e2) {}
}
if (!clientSecret) clientSecret = DEFAULT_GB_CLIENT_SECRET;
return {
clientId: clientId,
clientSecret: clientSecret
};
}
function loadStrategicCategoryMap(constraints, timeoutMs) {
var out = { map: {}, diag: "" };
var creds = resolveGbCredentials(constraints);
if (!creds.clientId || !creds.clientSecret) {
out.diag = "credenciais ausentes";
return out;
}
var tokenResp = requestGbToken(creds, timeoutMs || 30000);
if (!tokenResp.token) {
out.diag = tokenResp.diag || "falha ao obter token";
return out;
}
var strategicsResp = requestStrategics(tokenResp.token, timeoutMs || 30000);
var strategics = strategicsResp.items || [];
if (!strategics.length) {
out.diag = strategicsResp.diag || "sem classificacoes";
return out;
}
for (var i = 0; i < strategics.length; i++) {
var item = strategics[i] || {};
var id = trim(item.strategicId || item.strategicID || item.id || item.code);
var descricao = trim(item.description || item.descricao || item.category || item.name);
if (!id || !descricao) continue;
out.map[id] = descricao;
}
if (!hasOwnKeys(out.map)) {
out.diag = "classificacoes sem strategicId/description";
}
return out;
}
function requestGbToken(creds, timeoutMs) {
var timeout = timeoutMs || 30000;
var body = "client_id=" + urlEncode(creds.clientId) +
"&client_secret=" + urlEncode(creds.clientSecret);
var attempts = [
{
name: "post-query-body",
method: "POST",
url: GB_TOKEN_URL + "?grant_type=client_credentials",
headers: {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded"
},
body: body
}
];
var trace = [];
for (var i = 0; i < attempts.length; i++) {
var attempt = attempts[i];
var resp = httpRequest(attempt.url, attempt.method, attempt.headers, attempt.body, timeout);
trace.push(attempt.name + ":" + trim(resp.status));
var parsed = normalizeApiBody(resp.body);
var token = trim(parsed && (parsed.access_token || parsed.accessToken || parsed.token));
if (token) {
return { token: token, diag: "token ok (" + attempt.name + ")" };
}
}
return { token: "", diag: "token falhou [" + trace.join(" | ") + "]" };
}
function requestStrategics(accessToken, timeoutMs) {
var resp = httpRequest(
GB_STRATEGICS_URL,
"GET",
{
"Accept": "application/json",
"Authorization": "Bearer " + trim(accessToken)
},
"",
timeoutMs || 30000
);
var parsed = normalizeApiBody(resp.body);
var items = extractItems(parsed);
if ((!items || !items.length) && parsed && parsed.items instanceof Array) {
items = parsed.items;
}
if ((!items || !items.length) && parsed && parsed.strategics instanceof Array) {
items = parsed.strategics;
}
if (!items || !items.length) {
return { items: [], diag: "strategics HTTP " + trim(resp.status) };
}
return { items: items, diag: "ok" };
}
function resolveStrategicId(item, fallbackCode) {
var candidates = [
item && item.strategicId,
item && item.strategicID,
item && item.classificationStrategicId,
item && item.productStrategicId,
item && item.estrategicId,
item && item.strategyId,
item && item.code,
fallbackCode
];
for (var i = 0; i < candidates.length; i++) {
var value = trim(candidates[i]);
if (value) return value;
}
return "";
}
function resolveCategory(map, strategicId) {
var id = trim(strategicId);
if (!id || !map) return "";
if (map.hasOwnProperty(id)) {
return trim(map[id]);
}
var asInt = parseInt(id, 10);
if (!isNaN(asInt)) {
var normalized = String(asInt);
if (map.hasOwnProperty(normalized)) {
return trim(map[normalized]);
}
}
return "";
}
function normalizeApiBody(text) {
var obj = parseJsonSafe(text);
if (!obj) return null;
if (obj.content && typeof obj.content === "string") {
var parsedContent = parseJsonSafe(obj.content);
if (parsedContent) return parsedContent;
}
if (obj.result && typeof obj.result === "string") {
var parsedResult = parseJsonSafe(obj.result);
if (parsedResult) return parsedResult;
}
return obj;
}
function hasOwnKeys(obj) {
for (var k in obj) {
if (obj.hasOwnProperty(k)) return true;
}
return false;
}
function urlEncode(value) {
return String(java.net.URLEncoder.encode(String(value || ""), "UTF-8"));
}
function addDiagRow(dataset, msg) {
dataset.addRow([
"DEBUG",
@ -223,23 +448,53 @@ function addDiagRow(dataset, msg) {
}
function fetchDirect(url, timeoutMs) {
return httpRequest(
url,
"GET",
{ "Accept": "application/json" },
"",
timeoutMs || 30000
);
}
function httpRequest(url, method, headers, body, timeoutMs) {
var conn = null;
var reader = null;
var writer = null;
try {
var URL = java.net.URL;
var HttpURLConnection = java.net.HttpURLConnection;
var InputStreamReader = java.io.InputStreamReader;
var BufferedReader = java.io.BufferedReader;
var OutputStreamWriter = java.io.OutputStreamWriter;
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 httpMethod = String(method || "GET").toUpperCase();
var timeout = timeoutMs || 30000;
var payload = body == null ? "" : String(body);
var status = conn.getResponseCode();
var stream = (status >= 200 && status < 300) ? conn.getInputStream() : conn.getErrorStream();
conn = new URL(url).openConnection();
conn.setRequestMethod(httpMethod);
conn.setConnectTimeout(timeout);
conn.setReadTimeout(timeout);
if (headers) {
for (var h in headers) {
if (!headers.hasOwnProperty(h)) continue;
if (headers[h] == null || headers[h] === "") continue;
conn.setRequestProperty(String(h), String(headers[h]));
}
}
if (payload && (httpMethod === "POST" || httpMethod === "PUT" || httpMethod === "PATCH")) {
conn.setDoOutput(true);
writer = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
writer.write(payload);
writer.flush();
}
var statusCode = conn.getResponseCode();
var status = String(statusCode);
var stream = (statusCode >= 200 && statusCode < 300) ? conn.getInputStream() : conn.getErrorStream();
if (stream == null) {
return { status: status, body: "" };
}
@ -251,14 +506,12 @@ function fetchDirect(url, timeoutMs) {
sb.append(line);
}
return {
status: status,
body: String(sb.toString())
};
return { status: status, body: String(sb.toString()) };
} catch (e) {
return { status: 0, body: "" };
return { status: "", body: "" };
} finally {
try { if (reader) reader.close(); } catch (e1) {}
try { if (conn) conn.disconnect(); } catch (e2) {}
try { if (writer) writer.close(); } catch (e1) {}
try { if (reader) reader.close(); } catch (e2) {}
try { if (conn) conn.disconnect(); } catch (e3) {}
}
}

View File

@ -0,0 +1,517 @@
function defineStructure() {
addColumn("Code");
addColumn("Description");
addColumn("codigoDescricao");
addColumn("descricao");
addColumn("sku");
addColumn("brand");
addColumn("ncmId");
addColumn("categoria");
}
function onSync(lastSyncDate) {}
var GB_TOKEN_URL = "https://api.grupoboticario.com.br/global/v2/jwt-token/token";
var GB_STRATEGICS_URL = "https://api.grupoboticario.com.br/global/v1/franchising/gb-stores-data/product/classification/strategics";
var DEFAULT_GB_CLIENT_ID = "88ymKwAUNfu06sD85i0RiokCxWGSkFBkx9ytgI5y1ZKxX3OQ";
var DEFAULT_GB_CLIENT_SECRET = "YDFz43qAzL6ApNIKVCxu3dAmS9GWOqJbcc2aPnFDkmEaBXexSpsHGfcItg56i2dE";
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("brand");
dataset.addColumn("ncmId");
dataset.addColumn("categoria");
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;
var categoryMap = null;
var categoryDiag = "";
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 categoria = trim(item.strategicDescription || item.strategic_description || item.categoria);
if (!categoria) {
if (categoryMap == null) {
var categorization = loadStrategicCategoryMap(constraints, 30000);
categoryMap = categorization.map || {};
categoryDiag = categorization.diag || "";
}
var strategicId = resolveStrategicId(item, code);
categoria = resolveCategory(categoryMap, strategicId);
}
var blob = normalize([code, desc, brand, trim(item.id), categoria].join(" "));
if (searchNorm && searchNorm.length >= 2 && blob.indexOf(searchNorm) === -1) {
continue;
}
dataset.addRow([
code,
desc,
codigoDescricao,
desc,
code,
brand,
trim(item.ncmId),
categoria
]);
if (maxRows > 0 && dataset.rowsCount >= maxRows) {
break;
}
}
if (dataset.rowsCount === 0) {
var suffix = categoryDiag ? " | Categoria: " + categoryDiag : "";
addDiagRow(dataset, "Sem produtos apos filtros (busca: " + filtro.search + ")" + suffix);
}
} catch (e) {
addDiagRow(dataset, "Erro ao consultar API: " + e);
}
return dataset;
}
function onMobileSync(user) {}
function parseConstraints(constraints) {
var out = {
search: "",
maxRows: 0
};
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 lowerName = name.toLowerCase();
var value = cleanSearchValue(c.initialValue);
if (lowerName === "sqllimit") {
var n = parseInt(trim(c.initialValue), 10);
if (!isNaN(n) && n > 0) {
out.maxRows = n;
}
continue;
}
if (
value &&
lowerName !== "metadata#id" &&
lowerName !== "metadata#active" &&
lowerName !== "sqllimit" &&
lowerName !== "gbclientid" &&
lowerName !== "gbclientsecret" &&
lowerName !== "clientid" &&
lowerName !== "clientsecret"
) {
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 getConstraintValue(constraints, fieldName) {
if (!constraints || !fieldName) return "";
var target = String(fieldName).toLowerCase();
for (var i = 0; i < constraints.length; i++) {
var c = constraints[i];
if (!c || !c.fieldName) continue;
if (String(c.fieldName).toLowerCase() === target) {
return c.initialValue;
}
}
return "";
}
function resolveGbCredentials(constraints) {
var clientId = trim(getConstraintValue(constraints, "gbClientId"));
if (!clientId) clientId = trim(getConstraintValue(constraints, "clientId"));
if (!clientId) {
try { clientId = trim(java.lang.System.getenv("GB_CLIENT_ID")); } catch (e1) {}
}
if (!clientId) clientId = DEFAULT_GB_CLIENT_ID;
var clientSecret = trim(getConstraintValue(constraints, "gbClientSecret"));
if (!clientSecret) clientSecret = trim(getConstraintValue(constraints, "clientSecret"));
if (!clientSecret) {
try { clientSecret = trim(java.lang.System.getenv("GB_CLIENT_SECRET")); } catch (e2) {}
}
if (!clientSecret) clientSecret = DEFAULT_GB_CLIENT_SECRET;
return {
clientId: clientId,
clientSecret: clientSecret
};
}
function loadStrategicCategoryMap(constraints, timeoutMs) {
var out = { map: {}, diag: "" };
var creds = resolveGbCredentials(constraints);
if (!creds.clientId || !creds.clientSecret) {
out.diag = "credenciais ausentes";
return out;
}
var tokenResp = requestGbToken(creds, timeoutMs || 30000);
if (!tokenResp.token) {
out.diag = tokenResp.diag || "falha ao obter token";
return out;
}
var strategicsResp = requestStrategics(tokenResp.token, timeoutMs || 30000);
var strategics = strategicsResp.items || [];
if (!strategics.length) {
out.diag = strategicsResp.diag || "sem classificacoes";
return out;
}
for (var i = 0; i < strategics.length; i++) {
var item = strategics[i] || {};
var id = trim(item.strategicId || item.strategicID || item.id || item.code);
var descricao = trim(item.description || item.descricao || item.category || item.name);
if (!id || !descricao) continue;
out.map[id] = descricao;
}
if (!hasOwnKeys(out.map)) {
out.diag = "classificacoes sem strategicId/description";
}
return out;
}
function requestGbToken(creds, timeoutMs) {
var timeout = timeoutMs || 30000;
var body = "client_id=" + urlEncode(creds.clientId) +
"&client_secret=" + urlEncode(creds.clientSecret);
var attempts = [
{
name: "post-query-body",
method: "POST",
url: GB_TOKEN_URL + "?grant_type=client_credentials",
headers: {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded"
},
body: body
}
];
var trace = [];
for (var i = 0; i < attempts.length; i++) {
var attempt = attempts[i];
var resp = httpRequest(attempt.url, attempt.method, attempt.headers, attempt.body, timeout);
trace.push(attempt.name + ":" + trim(resp.status));
var parsed = normalizeApiBody(resp.body);
var token = trim(parsed && (parsed.access_token || parsed.accessToken || parsed.token));
if (token) {
return { token: token, diag: "token ok (" + attempt.name + ")" };
}
}
return { token: "", diag: "token falhou [" + trace.join(" | ") + "]" };
}
function requestStrategics(accessToken, timeoutMs) {
var resp = httpRequest(
GB_STRATEGICS_URL,
"GET",
{
"Accept": "application/json",
"Authorization": "Bearer " + trim(accessToken)
},
"",
timeoutMs || 30000
);
var parsed = normalizeApiBody(resp.body);
var items = extractItems(parsed);
if ((!items || !items.length) && parsed && parsed.items instanceof Array) {
items = parsed.items;
}
if ((!items || !items.length) && parsed && parsed.strategics instanceof Array) {
items = parsed.strategics;
}
if (!items || !items.length) {
return { items: [], diag: "strategics HTTP " + trim(resp.status) };
}
return { items: items, diag: "ok" };
}
function resolveStrategicId(item, fallbackCode) {
var candidates = [
item && item.strategicId,
item && item.strategicID,
item && item.classificationStrategicId,
item && item.productStrategicId,
item && item.estrategicId,
item && item.strategyId,
item && item.code,
fallbackCode
];
for (var i = 0; i < candidates.length; i++) {
var value = trim(candidates[i]);
if (value) return value;
}
return "";
}
function resolveCategory(map, strategicId) {
var id = trim(strategicId);
if (!id || !map) return "";
if (map.hasOwnProperty(id)) {
return trim(map[id]);
}
var asInt = parseInt(id, 10);
if (!isNaN(asInt)) {
var normalized = String(asInt);
if (map.hasOwnProperty(normalized)) {
return trim(map[normalized]);
}
}
return "";
}
function normalizeApiBody(text) {
var obj = parseJsonSafe(text);
if (!obj) return null;
if (obj.content && typeof obj.content === "string") {
var parsedContent = parseJsonSafe(obj.content);
if (parsedContent) return parsedContent;
}
if (obj.result && typeof obj.result === "string") {
var parsedResult = parseJsonSafe(obj.result);
if (parsedResult) return parsedResult;
}
return obj;
}
function hasOwnKeys(obj) {
for (var k in obj) {
if (obj.hasOwnProperty(k)) return true;
}
return false;
}
function urlEncode(value) {
return String(java.net.URLEncoder.encode(String(value || ""), "UTF-8"));
}
function addDiagRow(dataset, msg) {
dataset.addRow([
"DEBUG",
String(msg),
String(msg),
String(msg),
"",
"",
"",
""
]);
}
function fetchDirect(url, timeoutMs) {
return httpRequest(
url,
"GET",
{ "Accept": "application/json" },
"",
timeoutMs || 30000
);
}
function httpRequest(url, method, headers, body, timeoutMs) {
var conn = null;
var reader = null;
var writer = null;
try {
var URL = java.net.URL;
var InputStreamReader = java.io.InputStreamReader;
var BufferedReader = java.io.BufferedReader;
var OutputStreamWriter = java.io.OutputStreamWriter;
var StringBuilder = java.lang.StringBuilder;
var httpMethod = String(method || "GET").toUpperCase();
var timeout = timeoutMs || 30000;
var payload = body == null ? "" : String(body);
conn = new URL(url).openConnection();
conn.setRequestMethod(httpMethod);
conn.setConnectTimeout(timeout);
conn.setReadTimeout(timeout);
if (headers) {
for (var h in headers) {
if (!headers.hasOwnProperty(h)) continue;
if (headers[h] == null || headers[h] === "") continue;
conn.setRequestProperty(String(h), String(headers[h]));
}
}
if (payload && (httpMethod === "POST" || httpMethod === "PUT" || httpMethod === "PATCH")) {
conn.setDoOutput(true);
writer = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
writer.write(payload);
writer.flush();
}
var statusCode = conn.getResponseCode();
var status = String(statusCode);
var stream = (statusCode >= 200 && statusCode < 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: "", body: "" };
} finally {
try { if (writer) writer.close(); } catch (e1) {}
try { if (reader) reader.close(); } catch (e2) {}
try { if (conn) conn.disconnect(); } catch (e3) {}
}
}

View File

@ -97,6 +97,7 @@ function processarArquivoExcel(file) {
var codigo = getCellByAliases(item, ["codigoItem", "codigo", "codItem", "sku", "code", "item"]);
var quantidade = getCellByAliases(item, ["quantidadeItem", "quantidade", "qtd", "qtde"]);
var descricao = getCellByAliases(item, ["descricao", "description", "desc"]);
var categoria = getCellByAliases(item, ["categoria", "category"]);
if (!codigo || !quantidade) {
return;
@ -105,7 +106,8 @@ function processarArquivoExcel(file) {
linhasValidas.push({
codigo: String(codigo).trim(),
quantidade: String(quantidade).trim(),
descricao: String(descricao || "").trim()
descricao: String(descricao || "").trim(),
categoria: String(categoria || "").trim()
});
});
@ -141,6 +143,11 @@ function processarArquivoExcel(file) {
if (descricaoFinal) {
$("#codigoItem___" + idx).val(descricaoFinal);
}
var categoriaFinal = item.categoria || produtoInfo.categoria;
if (categoriaFinal) {
$("#categoriaItem___" + idx).val(categoriaFinal);
}
});
if (typeof processarConferenciaNfe === "function") {
@ -192,16 +199,16 @@ function normalizeHeader(text) {
function buscarProdutoPorCodigo(codigo) {
try {
if (typeof DatasetFactory === "undefined" || typeof ConstraintType === "undefined") {
return { descricao: "", id: "" };
return { descricao: "", id: "", categoria: "" };
}
var codigoTxt = String(codigo || "").trim();
if (!codigoTxt) return { descricao: "", id: "" };
if (!codigoTxt) return { descricao: "", id: "", categoria: "" };
var cCodigo = DatasetFactory.createConstraint("Code", codigoTxt, codigoTxt, ConstraintType.MUST);
var ds = DatasetFactory.getDataset("ds_rgb_products", null, [cCodigo], null);
var ds = DatasetFactory.getDataset("ds_rgb_products_v2", null, [cCodigo], null);
if (!ds || !ds.values || !ds.values.length) {
return { descricao: "", id: "" };
return { descricao: "", id: "", categoria: "" };
}
for (var i = 0; i < ds.values.length; i++) {
@ -209,7 +216,8 @@ function buscarProdutoPorCodigo(codigo) {
if (String(row.Code || "").trim() === codigoTxt) {
return {
descricao: String(row.descricao || row.Description || "").trim(),
id: String(row.id || "").trim()
id: String(row.id || "").trim(),
categoria: String(row.categoria || row.strategicDescription || "").trim()
};
}
}
@ -217,11 +225,12 @@ function buscarProdutoPorCodigo(codigo) {
var first = ds.values[0] || {};
return {
descricao: String(first.descricao || first.Description || "").trim(),
id: String(first.id || "").trim()
id: String(first.id || "").trim(),
categoria: String(first.categoria || first.strategicDescription || "").trim()
};
} catch (e) {
console.error("Erro ao buscar descricao por codigo:", e);
return { descricao: "", id: "" };
return { descricao: "", id: "", categoria: "" };
}
}

View File

@ -49,13 +49,15 @@ $(document).ready(function () {
processarConferenciaNfe();
});
var activity = String($("#activity").val() || "");
applyTransferStatus(activity);
if ($("#formMode").val() == "VIEW") {
showAndBlock(["all"]);
$("#btnConsultarChaveNfe").prop("disabled", true).hide();
updateConferenciaNfeVisibility($("#activity").val());
updateConferenciaNfeVisibility(activity);
} else {
//show the right fields
var activity = $("#activity").val();
var requestDate = getCurrentDate();
if (String(activity) !== "6") {
@ -209,6 +211,40 @@ $(document).ready(function () {
});
function applyTransferStatus(activity) {
var current = String(activity || "");
var pills = $("#transferStatus .status-pill");
if (!pills.length) return;
pills.removeClass("is-active is-done");
var activeOrder = -1;
pills.each(function () {
var pill = $(this);
var activities = String(pill.attr("data-activities") || "").split(",");
for (var i = 0; i < activities.length; i++) {
if ($.trim(activities[i]) === current) {
pill.addClass("is-active");
var order = parseInt(pill.attr("data-order"), 10);
if (!isNaN(order)) {
activeOrder = order;
}
break;
}
}
});
if (activeOrder < 0) return;
pills.each(function () {
var pill = $(this);
var order = parseInt(pill.attr("data-order"), 10);
if (!isNaN(order) && order < activeOrder) {
pill.addClass("is-done");
}
});
}
function resolveFormModeFallback() {
var mode = ($("#formMode").val() || "").toUpperCase();
if (mode) return mode;
@ -1312,9 +1348,11 @@ function setSelectedZoomItem(selectedItem) {
var itemDescricao = selectedItem["descricao"] || selectedItem["Description"] || "";
var itemCode = selectedItem["Code"] || selectedItem["sku"] || "";
var itemProductId = selectedItem["id"] || selectedItem["productId"] || "";
var itemCategoria = selectedItem["categoria"] || selectedItem["strategicDescription"] || "";
$("#codigoItem" + "___" + indice).val(itemDescricao);
$("#codigoProdutoItem" + "___" + indice).val(itemCode);
$("#productIdItem" + "___" + indice).val(itemProductId);
$("#categoriaItem" + "___" + indice).val(itemCategoria);
processarConferenciaNfe();
}
@ -1355,6 +1393,7 @@ function removedZoomItem(removedItem) {
$("#codigoItem___" + linha[1]).val("");
$("#codigoProdutoItem___" + linha[1]).val("");
$("#productIdItem___" + linha[1]).val("");
$("#categoriaItem___" + linha[1]).val("");
$("#quantidadeItem___" + linha[1]).val("");
processarConferenciaNfe();
}
@ -1364,6 +1403,7 @@ function removedZoomItem(removedItem) {
$("#codigoItem" + "___" + indice).val("");
$("#codigoProdutoItem" + "___" + indice).val("");
$("#productIdItem" + "___" + indice).val("");
$("#categoriaItem" + "___" + indice).val("");
processarConferenciaNfe();
}
}

View File

@ -25,13 +25,40 @@
}
.status-pill {
background: #e9f4ff;
color: #0d5b91;
border: 1px solid #c3def6;
background: #eef2f6;
color: #5f7080;
border: 1px solid #d3dde7;
padding: 6px 12px;
border-radius: 999px;
font-size: 11px;
font-weight: 600;
transition: all .2s ease;
}
.status-pill.is-done {
background: #e8f7ed;
color: #1f6e3e;
border-color: #b8e3c4;
}
.status-pill.is-active {
background: #e8f2ff;
color: #0e56a2;
border-color: #8fb8e8;
box-shadow: 0 0 0 2px rgba(31, 110, 169, 0.12);
}
.status-pill.status-pill--problem.is-active {
background: #ffecec;
color: #a12f2f;
border-color: #efb1b1;
box-shadow: 0 0 0 2px rgba(199, 58, 58, 0.12);
}
.status-pill.status-pill--problem.is-done {
background: #fff4e6;
color: #8a5c12;
border-color: #f2d3a2;
}
.transfer-main-title {
@ -216,11 +243,15 @@
<div class="fluig-style-guide">
<form name="form" role="form">
<div class="container-fluid transfer-shell">
<div class="transfer-status">
<span class="status-pill">Solicitação</span>
<span class="status-pill">Coleta</span>
<span class="status-pill">Entrega</span>
<span class="status-pill">Recebimento</span>
<div class="transfer-status" id="transferStatus">
<span class="status-pill" data-order="1" data-activities="0,1">Solicitação</span>
<span class="status-pill" data-order="2" data-activities="4">Aprovação</span>
<span class="status-pill" data-order="3" data-activities="6">Emissão NFe</span>
<span class="status-pill" data-order="4" data-activities="31">Coleta</span>
<span class="status-pill" data-order="5" data-activities="57">Entrega</span>
<span class="status-pill" data-order="6" data-activities="18">Recebimento</span>
<span class="status-pill status-pill--problem" data-order="7" data-activities="24">Verificar Problema</span>
<span class="status-pill" data-order="8" data-activities="101">Finalizada</span>
</div>
<h1 class="transfer-main-title">Formulário de Transferência de Mercadorias</h1>
@ -310,6 +341,7 @@
<th style="width:34%;">Código do item</th>
<th style="width:18%;">Quantidade</th>
<th>Descrição</th>
<th style="width:18%;">Categoria</th>
<th style="width:70px;"></th>
</tr>
</thead>
@ -319,11 +351,12 @@
<td>
<input type="zoom" class="form-control transfer-input" name="descricao" data-zoom="{
'displayKey':'Code',
'datasetId':'ds_rgb_products',
'datasetId':'ds_rgb_products_v2',
'maximumSelectionLength':'1',
'fields':[
{'field':'Code','label':'Codigo'},
{'field':'Description','label':'Descricao'},
{'field':'categoria','label':'Categoria'},
{'field':'descricao','label':'Descricao item'},
{'field':'id','label':'ID','visible':'false'}
]
@ -337,6 +370,9 @@
<input type="hidden" name="productIdItem" />
<input type="hidden" name="codigoProdutoItem" />
</td>
<td>
<input type="text" class="form-control transfer-input" name="categoriaItem" readonly />
</td>
<td>
<button type="button" class="btn btn-default hideButton" onclick="remove_row(this)">
<i class="fluigicon fluigicon-trash"></i>

View File

@ -0,0 +1,839 @@
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_481" class="java.beans.XMLDecoder">
<object class="java.util.HashMap">
<void method="put">
<string>mecanismoGrupo</string>
<object class="java.util.ArrayList">
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Tecnologia e Comunicação</string>
</void>
<void property="groupId">
<string>TIC</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Compras Indiretos</string>
</void>
<void property="groupId">
<string>ComprasIndiretos</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Obras e manutenção</string>
</void>
<void property="groupId">
<string>Manutencao</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Aprovadores Compras Nvl 3</string>
</void>
<void property="groupId">
<string>AprovadoresComprasNvl3</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Motoristas</string>
</void>
<void property="groupId">
<string>Motoristas</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Requisitantes de Vaga</string>
</void>
<void property="groupId">
<string>Requisitantesdevaga</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Recrutamento</string>
</void>
<void property="groupId">
<string>Recrutamento</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>TODOS-TODOS-DIADMISSAO</string>
</void>
<void property="groupId">
<string>TODOS-TODOS-DIADMISSAO</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>ResponsavelDesligamento</string>
</void>
<void property="groupId">
<string>ResponsavelDesligamento</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>GENTE &amp; CULTURA</string>
</void>
<void property="groupId">
<string>GENTE_CULTURA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>LOJA AL</string>
</void>
<void property="groupId">
<string>LOJA_AL</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>CD</string>
</void>
<void property="groupId">
<string>CD</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>ESPAÇO DO REVENDEDOR AL</string>
</void>
<void property="groupId">
<string>ESPACO_DO_REVENDEDOR_AL</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>FINANCEIRO</string>
</void>
<void property="groupId">
<string>FINANCEIRO</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>OPERAÇÕES</string>
</void>
<void property="groupId">
<string>OPERACOES</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>AMG AL</string>
</void>
<void property="groupId">
<string>AMG_AL</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>REGIONAL ALAGOAS</string>
</void>
<void property="groupId">
<string>REGIONAL_ALAGOAS</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>PREVENÇÃO DE PERDA</string>
</void>
<void property="groupId">
<string>PREVENCAO_DE_PERDA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>MARKETING, TREINAMENTO</string>
</void>
<void property="groupId">
<string>MARKETING_TREINAMENTO</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>SECRETARIA EXECUTIVA</string>
</void>
<void property="groupId">
<string>SECRETARIA_EXECUTIVA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>DIRETORIA EXECUTIVA</string>
</void>
<void property="groupId">
<string>DIRETORIA_EXECUTIVA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>INFRAESTRUTURA</string>
</void>
<void property="groupId">
<string>INFRAESTRUTURA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>ESPAÇO DO REVENDEDOR BA</string>
</void>
<void property="groupId">
<string>ESPACO_DO_REVENDEDOR_BA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>BUSINESS INTELLIGENCE</string>
</void>
<void property="groupId">
<string>BUSINESS_INTELLIGENCE</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>DEPARTAMENTO PESSOAL</string>
</void>
<void property="groupId">
<string>DEPARTAMENTO_PESSOAL</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>LOJA BA</string>
</void>
<void property="groupId">
<string>LOJA_BA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>TREINAMENTO</string>
</void>
<void property="groupId">
<string>TREINAMENTO</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>AMG BA</string>
</void>
<void property="groupId">
<string>AMG_BA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>MARKETING</string>
</void>
<void property="groupId">
<string>MARKETING</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>COMPRAS</string>
</void>
<void property="groupId">
<string>COMPRAS</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>AMG SE</string>
</void>
<void property="groupId">
<string>AMG_SE</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>LOJA SE</string>
</void>
<void property="groupId">
<string>LOJA_SE</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>ESPAÇO DO REVENDEDOR SE</string>
</void>
<void property="groupId">
<string>ESPACO_DO_REVENDEDOR_SE</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>VENDAS IN COMPANY</string>
</void>
<void property="groupId">
<string>VENDAS_IN_COMPANY</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>REGIONAL BAHIA</string>
</void>
<void property="groupId">
<string>REGIONAL_BAHIA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>CANAL LOJA 01</string>
</void>
<void property="groupId">
<string>CANAL_LOJA_01</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>AUDITORIA</string>
</void>
<void property="groupId">
<string>AUDITORIA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>CANAL LOJA 02</string>
</void>
<void property="groupId">
<string>CANAL_LOJA_02</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>PLANEJAMENTO DE DEMANDAS</string>
</void>
<void property="groupId">
<string>PLANEJAMENTO_DE_DEMANDAS</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>PROJETOS</string>
</void>
<void property="groupId">
<string>PROJETOS</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>COMPLIANCE</string>
</void>
<void property="groupId">
<string>COMPLIANCE</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>ESCRITÓRIO - MATRIZ</string>
</void>
<void property="groupId">
<string>ESCRITORIO_MATRIZ</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>ESCRITÓRIO - CONQUISTA</string>
</void>
<void property="groupId">
<string>ESCRITORIO_CONQUISTA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>REGIONAL SERGIPE</string>
</void>
<void property="groupId">
<string>REGIONAL_SERGIPE</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Transferencia</string>
</void>
<void property="groupId">
<string>Transferencia</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Fiscal</string>
</void>
<void property="groupId">
<string>Fiscal</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>motoristaAL</string>
</void>
<void property="groupId">
<string>motoristaAL</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>motoristaBA</string>
</void>
<void property="groupId">
<string>motoristaBA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>motoristaSE</string>
</void>
<void property="groupId">
<string>motoristaSE</string>
</void>
</object>
</void>
</object>
</void>
<void method="put">
<string>expediente</string>
<array class="java.lang.String" length="4">
<void index="0">
<string>Default</string>
</void>
<void index="1">
<string>Expediente BackOffice, Logística e Motorista</string>
</void>
<void index="2">
<string>Expediente Escritório Matriz</string>
</void>
<void index="3">
<string>Expediente Lojas</string>
</void>
</array>
</void>
<void method="put">
<string>camposFormulario, documentoId = 590</string>
<array class="java.lang.String" length="64">
<void index="0">
<string>activity</string>
</void>
<void index="1">
<string>categoriaItem</string>
</void>
<void index="2">
<string>centroCusto</string>
</void>
<void index="3">
<string>chaveNfe</string>
</void>
<void index="4">
<string>codigoItem</string>
</void>
<void index="5">
<string>codigoProdutoItem</string>
</void>
<void index="6">
<string>currentUserId</string>
</void>
<void index="7">
<string>currentUsermail</string>
</void>
<void index="8">
<string>currentUserName</string>
</void>
<void index="9">
<string>dataAbertura</string>
</void>
<void index="10">
<string>dataColeta</string>
</void>
<void index="11">
<string>dataEmissaoApiNfe</string>
</void>
<void index="12">
<string>dataEmissaoNfe</string>
</void>
<void index="13">
<string>dataEntradaNfeConsulta</string>
</void>
<void index="14">
<string>dataEntrega</string>
</void>
<void index="15">
<string>dataValidacaoGestor</string>
</void>
<void index="16">
<string>descricao</string>
</void>
<void index="17">
<string>emailSolicitante</string>
</void>
<void index="18">
<string>estabelecimento</string>
</void>
<void index="19">
<string>excelUpload</string>
</void>
<void index="20">
<string>fdAnexo_Coleta</string>
</void>
<void index="21">
<string>fdAnexo_Entrega</string>
</void>
<void index="22">
<string>fdAnexo_recebimento</string>
</void>
<void index="23">
<string>fnAnexo_Nfe</string>
</void>
<void index="24">
<string>formMode</string>
</void>
<void index="25">
<string>fornecedorNfeConsulta</string>
</void>
<void index="26">
<string>gestorEmail</string>
</void>
<void index="27">
<string>gestorEmailE</string>
</void>
<void index="28">
<string>gestorNome</string>
</void>
<void index="29">
<string>gestorNomeE</string>
</void>
<void index="30">
<string>gestor_cc</string>
</void>
<void index="31">
<string>gestor_cce</string>
</void>
<void index="32">
<string>invoiceIdNfeConsulta</string>
</void>
<void index="33">
<string>itensNfeConsulta</string>
</void>
<void index="34">
<string>itensNfeJson</string>
</void>
<void index="35">
<string>justificativa</string>
</void>
<void index="36">
<string>justificativaDecisaoGestor</string>
</void>
<void index="37">
<string>justificativaDecisaoItens</string>
</void>
<void index="38">
<string>lojaNfeConsulta</string>
</void>
<void index="39">
<string>motoristaColetaLogin</string>
</void>
<void index="40">
<string>motoristaColetaNome</string>
</void>
<void index="41">
<string>motoristaEntregaLogin</string>
</void>
<void index="42">
<string>motoristaEntregaNome</string>
</void>
<void index="43">
<string>motoristaEntregaSelecionado</string>
</void>
<void index="44">
<string>nomerecebedor</string>
</void>
<void index="45">
<string>numeroNfeConsulta</string>
</void>
<void index="46">
<string>operacaoNfeConsulta</string>
</void>
<void index="47">
<string>productIdItem</string>
</void>
<void index="48">
<string>qtdDivergenciasNfe</string>
</void>
<void index="49">
<string>quantidadeItem</string>
</void>
<void index="50">
<string>requesterId</string>
</void>
<void index="51">
<string>requesterMail</string>
</void>
<void index="52">
<string>requesterName</string>
</void>
<void index="53">
<string>serieNfeConsulta</string>
</void>
<void index="54">
<string>situacaoNfeConsulta</string>
</void>
<void index="55">
<string>storeIdNfeConsulta</string>
</void>
<void index="56">
<string>tipoMotoristaEntrega</string>
</void>
<void index="57">
<string>ufDestino</string>
</void>
<void index="58">
<string>ufOrigem</string>
</void>
<void index="59">
<string>userValidacaoGestor</string>
</void>
<void index="60">
<string>usuarioEmissorNfe</string>
</void>
<void index="61">
<string>validacaoItens</string>
</void>
<void index="62">
<string>valorNfeConsulta</string>
</void>
<void index="63">
<string>WKNumProces</string>
</void>
</array>
</void>
<void method="put">
<string>mecanismo</string>
<array class="[Ljava.lang.Object;" length="12">
<void index="0">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Associação</string>
</void>
<void index="1">
<string>Associado</string>
</void>
</array>
</void>
<void index="1">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Campo de Formulário</string>
</void>
<void index="1">
<string>Campo Formulário</string>
</void>
</array>
</void>
<void index="2">
<array class="java.lang.Object" length="2">
<void index="0">
<string>dpf_di_emp_filial_filtro</string>
</void>
<void index="1">
<string>dpf_di_emp_filial_filtro</string>
</void>
</array>
</void>
<void index="3">
<array class="java.lang.Object" length="2">
<void index="0">
<string>dpf_di_inicio_diadmissao</string>
</void>
<void index="1">
<string>dpf_di_inicio_diadmissao</string>
</void>
</array>
</void>
<void index="4">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Executor de Atividade</string>
</void>
<void index="1">
<string>Executor Atividade</string>
</void>
</array>
</void>
<void index="5">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Grupo</string>
</void>
<void index="1">
<string>Grupo</string>
</void>
</array>
</void>
<void index="6">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Grupos do Colaborador</string>
</void>
<void index="1">
<string>Grupos Colaborador</string>
</void>
</array>
</void>
<void index="7">
<array class="java.lang.Object" length="2">
<void index="0">
<string>mecCustomAprov</string>
</void>
<void index="1">
<string>mecCustomAprov</string>
</void>
</array>
</void>
<void index="8">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Papel</string>
</void>
<void index="1">
<string>Papel</string>
</void>
</array>
</void>
<void index="9">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição para um Grupo</string>
</void>
<void index="1">
<string>Pool Grupo</string>
</void>
</array>
</void>
<void index="10">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição para um Papel</string>
</void>
<void index="1">
<string>Pool Papel</string>
</void>
</array>
</void>
<void index="11">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Usuário</string>
</void>
<void index="1">
<string>Usuário</string>
</void>
</array>
</void>
</array>
</void>
</object>
</java>

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,7 @@
<processDefinitionVersionPK>
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<version>65</version>
<version>46</version>
</processDefinitionVersionPK>
<versionDescription></versionDescription>
<formId>590</formId>
@ -826,7 +826,7 @@
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<expressionOrder>1</expressionOrder>
<version>65</version>
<version>46</version>
<sequence>2</sequence>
</conditionProcessStatePK>
<condition>hAPI.getCardValue(&quot;gestor_cce&quot;) != &quot;&quot;</condition>
@ -840,7 +840,7 @@
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<expressionOrder>2</expressionOrder>
<version>65</version>
<version>46</version>
<sequence>2</sequence>
</conditionProcessStatePK>
<condition>true</condition>
@ -854,7 +854,7 @@
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<expressionOrder>1</expressionOrder>
<version>65</version>
<version>46</version>
<sequence>46</sequence>
</conditionProcessStatePK>
<condition>hAPI.getCardValue(&quot;validacaoItens&quot;) == &quot;entregue&quot; &amp;&amp; hAPI.getCardValue(&quot;dataEntradaNfeConsulta&quot;) != &quot;&quot;</condition>
@ -866,7 +866,7 @@
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<expressionOrder>2</expressionOrder>
<version>65</version>
<version>46</version>
<sequence>46</sequence>
</conditionProcessStatePK>
<condition>true</condition>
@ -878,7 +878,7 @@
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<expressionOrder>1</expressionOrder>
<version>65</version>
<version>46</version>
<sequence>107</sequence>
</conditionProcessStatePK>
<condition>hAPI.getCardValue(&quot;ufOrigem&quot;) == &quot;AL&quot;</condition>
@ -892,7 +892,7 @@
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<expressionOrder>2</expressionOrder>
<version>65</version>
<version>46</version>
<sequence>107</sequence>
</conditionProcessStatePK>
<condition>hAPI.getCardValue(&quot;ufOrigem&quot;) == &quot;BA&quot;</condition>
@ -906,7 +906,7 @@
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<expressionOrder>3</expressionOrder>
<version>65</version>
<version>46</version>
<sequence>107</sequence>
</conditionProcessStatePK>
<condition>hAPI.getCardValue(&quot;ufOrigem&quot;) == &quot;SE&quot;</condition>
@ -920,7 +920,7 @@
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<expressionOrder>4</expressionOrder>
<version>65</version>
<version>46</version>
<sequence>107</sequence>
</conditionProcessStatePK>
<condition>hAPI.getCardValue(&quot;ufOrigem&quot;) == &quot;&quot;</condition>
@ -1640,7 +1640,7 @@ function onlyDigits(value) {
<processLinkBendPK>
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<version>65</version>
<version>46</version>
<linkSequence>5</linkSequence>
<bendSequence>1</bendSequence>
</processLinkBendPK>
@ -1651,7 +1651,7 @@ function onlyDigits(value) {
<processLinkBendPK>
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<version>65</version>
<version>46</version>
<linkSequence>5</linkSequence>
<bendSequence>2</bendSequence>
</processLinkBendPK>
@ -1662,7 +1662,7 @@ function onlyDigits(value) {
<processLinkBendPK>
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<version>65</version>
<version>46</version>
<linkSequence>7</linkSequence>
<bendSequence>1</bendSequence>
</processLinkBendPK>
@ -1673,7 +1673,7 @@ function onlyDigits(value) {
<processLinkBendPK>
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<version>65</version>
<version>46</version>
<linkSequence>26</linkSequence>
<bendSequence>1</bendSequence>
</processLinkBendPK>
@ -1684,7 +1684,7 @@ function onlyDigits(value) {
<processLinkBendPK>
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<version>65</version>
<version>46</version>
<linkSequence>61</linkSequence>
<bendSequence>1</bendSequence>
</processLinkBendPK>
@ -1695,7 +1695,7 @@ function onlyDigits(value) {
<processLinkBendPK>
<companyId>1</companyId>
<processId>Transferência Ginseng</processId>
<version>65</version>
<version>46</version>
<linkSequence>85</linkSequence>
<bendSequence>1</bendSequence>
</processLinkBendPK>
@ -1780,7 +1780,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>4</stateSequence>
<appKey>approval</appKey>
<appField>title</appField>
@ -1790,7 +1790,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>4</stateSequence>
<appKey>approval</appKey>
<appField>description</appField>
@ -1800,7 +1800,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>4</stateSequence>
<appKey>approval</appKey>
<appField>highlight</appField>
@ -1810,7 +1810,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>4</stateSequence>
<appKey>approval</appKey>
<appField>approve</appField>
@ -1820,7 +1820,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>4</stateSequence>
<appKey>approval</appKey>
<appField>reject</appField>
@ -1830,7 +1830,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>6</stateSequence>
<appKey>approval</appKey>
<appField>title</appField>
@ -1840,7 +1840,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>6</stateSequence>
<appKey>approval</appKey>
<appField>description</appField>
@ -1850,7 +1850,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>6</stateSequence>
<appKey>approval</appKey>
<appField>highlight</appField>
@ -1860,7 +1860,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>6</stateSequence>
<appKey>approval</appKey>
<appField>approve</appField>
@ -1870,7 +1870,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>6</stateSequence>
<appKey>approval</appKey>
<appField>reject</appField>
@ -1880,7 +1880,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>24</stateSequence>
<appKey>approval</appKey>
<appField>title</appField>
@ -1890,7 +1890,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>24</stateSequence>
<appKey>approval</appKey>
<appField>description</appField>
@ -1900,7 +1900,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>24</stateSequence>
<appKey>approval</appKey>
<appField>highlight</appField>
@ -1910,7 +1910,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>24</stateSequence>
<appKey>approval</appKey>
<appField>approve</appField>
@ -1920,7 +1920,7 @@ function onlyDigits(value) {
<id>0</id>
<tenantId>0</tenantId>
<processId>Transferência Ginseng</processId>
<processVersion>65</processVersion>
<processVersion>46</processVersion>
<stateSequence>24</stateSequence>
<appKey>approval</appKey>
<appField>reject</appField>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 55 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -4405,7 +4405,7 @@
<bpmn2:BpmnEndEvent extendedFields="&lt;list/&gt;" id="endcancel39" incoming="flow53" name="Cancelado" notificaRequisitante="true" signalId="0" type="65"/>
<bpmn2:BpmnGateway condition="&lt;list&gt;&#10; &lt;org.eclipse.bpmn2.impl.ConditionImpl&gt;&#10; &lt;order&gt;1&lt;/order&gt;&#10; &lt;expression&gt;hAPI.getCardValue(&amp;quot;validacaoItens&amp;quot;) == &amp;quot;entregue&amp;quot; &amp;amp;&amp;amp; hAPI.getCardValue(&amp;quot;dataEntradaNfeConsulta&amp;quot;) != &amp;quot;&amp;quot;&lt;/expression&gt;&#10; &lt;targetTask&gt;servicetask99&lt;/targetTask&gt;&#10; &lt;conditionType&gt;0&lt;/conditionType&gt;&#10; &lt;/org.eclipse.bpmn2.impl.ConditionImpl&gt;&#10; &lt;org.eclipse.bpmn2.impl.ConditionImpl&gt;&#10; &lt;order&gt;2&lt;/order&gt;&#10; &lt;expression&gt;true&lt;/expression&gt;&#10; &lt;targetTask&gt;task24&lt;/targetTask&gt;&#10; &lt;conditionType&gt;0&lt;/conditionType&gt;&#10; &lt;/org.eclipse.bpmn2.impl.ConditionImpl&gt;&#10;&lt;/list&gt;" extendedFields="&lt;list/&gt;" id="exclusivegateway46" incoming="flow47" name="Validar produto" outgoing="flow48 flow100" type="120"/>
<bpmn2:BpmnTask authNotify="true" esforcoCalculo="0" executionAttempts="0" expediente="Expediente BackOffice, Log&#237;stica e Motorista" extendedFields="&lt;list/&gt;" frequency="0" id="task57" incoming="flow98" loopType="0" managerAssignmentControllerString="&lt;org.eclipse.bpmn2.impl.AssignmentControllerFormField&gt;&#10; &lt;formField&gt;motoristaEntregaLogin&lt;/formField&gt;&#10; &lt;mechanismName&gt;Campo Formul&#225;rio&lt;/mechanismName&gt;&#10;&lt;/org.eclipse.bpmn2.impl.AssignmentControllerFormField&gt;" managerMechanism="Campo Formul&#225;rio" name="Entregar Produto" outgoing="flow61 flow85" prazoConclusao="960.0" selecionaColaboradores="1" type="80"/>
<bpmn2:BpmnProcess author="" cardIndex="590" category="Transfer&#234;ncia" complementsLevel="1" deadlineTime="2880.0" descriptorFields="&lt;list&gt;&#10; &lt;org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;id&gt;centroCusto&lt;/id&gt;&#10; &lt;label&gt;Filial Destino&lt;/label&gt;&#10; &lt;cardIndex&gt;590 - Solicitacao_transferencia&lt;/cardIndex&gt;&#10; &lt;/org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;id&gt;dataAbertura&lt;/id&gt;&#10; &lt;label&gt;Data de abertura&lt;/label&gt;&#10; &lt;cardIndex&gt;590 - Solicitacao_transferencia&lt;/cardIndex&gt;&#10; &lt;/org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;id&gt;dataEmissaoNfe&lt;/id&gt;&#10; &lt;label&gt;dataEmissaoNfe&lt;/label&gt;&#10; &lt;cardIndex&gt;590 - Solicitacao_transferencia&lt;/cardIndex&gt;&#10; &lt;/org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;id&gt;estabelecimento&lt;/id&gt;&#10; &lt;label&gt;Filial Emitente&lt;/label&gt;&#10; &lt;cardIndex&gt;590 - Solicitacao_transferencia&lt;/cardIndex&gt;&#10; &lt;/org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;id&gt;justificativa&lt;/id&gt;&#10; &lt;label&gt;Justificativa&lt;/label&gt;&#10; &lt;cardIndex&gt;590 - Solicitacao_transferencia&lt;/cardIndex&gt;&#10; &lt;/org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;id&gt;requesterName&lt;/id&gt;&#10; &lt;label&gt;requesterName&lt;/label&gt;&#10; &lt;cardIndex&gt;590 - Solicitacao_transferencia&lt;/cardIndex&gt;&#10; &lt;/org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10;&lt;/list&gt;" expedient="Default" extendedFields="&lt;list/&gt;" formSource="server" id="Transfer&#234;ncia Ginseng" instruction="Este flow permite abertura de solicita&#231;&#227;o de transfer&#234;ncias automatizadas, informando qual item ser&#225; transferido e direcionado para as aprova&#231;&#245;es corretas." keyWord="" managerAssignmentController="&lt;org.eclipse.bpmn2.impl.AssignmentControllerGroup&gt;&#10; &lt;groupId&gt;CD&lt;/groupId&gt;&#10; &lt;mechanismName&gt;Grupo&lt;/mechanismName&gt;&#10;&lt;/org.eclipse.bpmn2.impl.AssignmentControllerGroup&gt;" managerMechanism="Grupo" mobileReady="true" name="Transfer&#234;ncia Ginseng" notifyRequisitionerComplements="true" notifyResponsibleComplements="true" serverId="teste3" updateAttachment="true" version="65" volume="Default"/>
<bpmn2:BpmnProcess author="" cardIndex="590" category="Transfer&#234;ncia" complementsLevel="1" deadlineTime="2880.0" descriptorFields="&lt;list&gt;&#10; &lt;org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;id&gt;centroCusto&lt;/id&gt;&#10; &lt;label&gt;Filial Destino&lt;/label&gt;&#10; &lt;cardIndex&gt;590 - Solicitacao_transferencia&lt;/cardIndex&gt;&#10; &lt;/org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;id&gt;dataAbertura&lt;/id&gt;&#10; &lt;label&gt;Data de abertura&lt;/label&gt;&#10; &lt;cardIndex&gt;590 - Solicitacao_transferencia&lt;/cardIndex&gt;&#10; &lt;/org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;id&gt;dataEmissaoNfe&lt;/id&gt;&#10; &lt;label&gt;dataEmissaoNfe&lt;/label&gt;&#10; &lt;cardIndex&gt;590 - Solicitacao_transferencia&lt;/cardIndex&gt;&#10; &lt;/org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;id&gt;estabelecimento&lt;/id&gt;&#10; &lt;label&gt;Filial Emitente&lt;/label&gt;&#10; &lt;cardIndex&gt;590 - Solicitacao_transferencia&lt;/cardIndex&gt;&#10; &lt;/org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;id&gt;justificativa&lt;/id&gt;&#10; &lt;label&gt;Justificativa&lt;/label&gt;&#10; &lt;cardIndex&gt;590 - Solicitacao_transferencia&lt;/cardIndex&gt;&#10; &lt;/org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10; &lt;id&gt;requesterName&lt;/id&gt;&#10; &lt;label&gt;requesterName&lt;/label&gt;&#10; &lt;cardIndex&gt;590 - Solicitacao_transferencia&lt;/cardIndex&gt;&#10; &lt;/org.eclipse.bpmn2.impl.BpmnProcessFormField&gt;&#10;&lt;/list&gt;" expedient="Default" extendedFields="&lt;list/&gt;" formSource="server" id="Transfer&#234;ncia Ginseng" instruction="Este flow permite abertura de solicita&#231;&#227;o de transfer&#234;ncias automatizadas, informando qual item ser&#225; transferido e direcionado para as aprova&#231;&#245;es corretas." keyWord="" managerAssignmentController="&lt;org.eclipse.bpmn2.impl.AssignmentControllerGroup&gt;&#10; &lt;groupId&gt;CD&lt;/groupId&gt;&#10; &lt;mechanismName&gt;Grupo&lt;/mechanismName&gt;&#10;&lt;/org.eclipse.bpmn2.impl.AssignmentControllerGroup&gt;" managerMechanism="Grupo" mobileReady="true" name="Transfer&#234;ncia Ginseng" notifyRequisitionerComplements="true" notifyResponsibleComplements="true" serverId="Producao" updateAttachment="true" version="46" volume="Default"/>
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="&lt;list/&gt;" id="flow3" name="" sourceRef="startevent1" targetRef="exclusivegateway2"/>
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="&lt;list/&gt;" id="flow5" movementAccessLinkDescription="" movementDescription="" movementTitle="" name="Gestor Identificado" sourceRef="exclusivegateway2" targetRef="task4"/>
<bpmn2:SequenceFlow atividadeFluxo="" atividadeRetorno="" extendedFields="&lt;list/&gt;" id="flow7" name="Loja sem Gestor" sourceRef="exclusivegateway2" targetRef="task6"/>