diff --git a/Transferência Ginseng/.vscode/servers.json b/Transferência Ginseng/.vscode/servers.json index e88a557..d5fb634 100644 --- a/Transferência Ginseng/.vscode/servers.json +++ b/Transferência Ginseng/.vscode/servers.json @@ -2,13 +2,13 @@ "version": "1.0.0", "configurations": [ { - "id": "edmoa4q9botmmtlvdz4bafosc5mqmr", - "name": "teste", + "id": "mkjw3cu0krommujt2hvyinvbjsfeaj", + "name": "Teste", "host": "comerciode188007.fluig.cloudtotvs.com.br", "ssl": true, "port": 443, "username": "andrey.cunha", - "password": "eyJpdiI6ImRjNGY4YzFkZmNiM2FhNDJiMGE3NDlmYjI5YjFkZjBhIiwic2FsdCI6IjU2MzUzZTcxOGZjZGRjZmUwZDI4MWYxZTllOWFlMDM3IiwidGV4dCI6IjU1NWQxZTE3YzUwYTQwYjNjMzAwYTc3M2VmNWQwODU1In0=", + "password": "eyJpdiI6ImNlN2IyOTIzNjljNDZmZDQwMTM5Njg2MTEyNjNlM2IyIiwic2FsdCI6ImM1ZDFjYzhiMTFiZGNjNDBhOTQzMGUwZGU0OWY5NmZmIiwidGV4dCI6ImY4M2FmZTUzNTkzYTBjNDc2OTQ3NDQ4NDc0ZGVlNmRiIn0=", "userCode": "andrey.cunha", "confirmExporting": false, "hasBrowser": false, diff --git a/Transferência Ginseng/datasets/ds_fiscal_invoice_by_keys.js b/Transferência Ginseng/datasets/ds_fiscal_invoice_by_keys.js new file mode 100644 index 0000000..ad4ffc2 --- /dev/null +++ b/Transferência Ginseng/datasets/ds_fiscal_invoice_by_keys.js @@ -0,0 +1,428 @@ +function defineStructure() { + addColumn("success"); + addColumn("message"); + addColumn("key"); + addColumn("invoiceNumber"); + addColumn("serie"); + addColumn("emissionDate"); + addColumn("operationDate"); + addColumn("supplierName"); + addColumn("documentValue"); + addColumn("totalItemsValue"); + addColumn("situation"); + addColumn("fiscalOperationDescription"); + addColumn("itemCount"); + addColumn("itensJson"); + addColumn("storeId"); + addColumn("invoiceId"); + addColumn("emitterEmployeeId"); + addColumn("updatedAt"); +} + +function onSync(lastSyncDate) {} + +function createDataset(fields, constraints, sortFields) { + var dataset = DatasetBuilder.newDataset(); + addDefaultColumns(dataset); + + try { + var key = normalizeDigits(getConstraintValue(constraints, "key")); + if (!key) { + addErrorRow(dataset, "Informe a chave da NFe."); + return dataset; + } + + if (!/^\d{44}$/.test(key)) { + addErrorRow(dataset, "A chave da NFe deve conter 44 digitos."); + return dataset; + } + + var auth = resolveAuth(constraints); + var diagnostics = []; + + var endpoints = [ + "/fiscal-invoices?key=" + key, + "fiscal-invoices?key=" + key, + "/fiscal/invoices?key=" + key, + "/fiscal/invoice?key=" + key, + "/invoice?key=" + key + ]; + + var apiObj = null; + var hitInfo = ""; + var lastApiMessage = ""; + + try { + var clientService = fluigAPI.getAuthorizeClientService(); + for (var i = 0; i < endpoints.length; i++) { + var endpoint = endpoints[i]; + var resp = invokeAuthorizedGet(clientService, endpoint, auth); + diagnostics.push(endpoint + " => HTTP " + trim(resp.status)); + var parsed = parseApiPayload(resp.body); + if (parsed && trim(parsed.message)) { + lastApiMessage = trim(parsed.message); + } + if (String(resp.status) === "200" && isApiSuccess(parsed)) { + apiObj = parsed; + hitInfo = endpoint; + break; + } + } + } catch (eService) { + diagnostics.push("authorizeClientService exception: " + eService); + } + + if (!apiObj) { + var directUrls = [ + "https://api.grupoginseng.com.br/fiscal-invoices?key=" + key, + "https://api.grupoginseng.com.br/fiscal/invoice?key=" + key + ]; + + for (var d = 0; d < directUrls.length; d++) { + var url = directUrls[d]; + var directResp = fetchDirect(url, 30000, auth); + diagnostics.push(url + " => HTTP " + trim(directResp.status)); + var parsedDirect = parseApiPayload(directResp.body); + if (parsedDirect && trim(parsedDirect.message)) { + lastApiMessage = trim(parsedDirect.message); + } + if (String(directResp.status) === "200" && isApiSuccess(parsedDirect)) { + apiObj = parsedDirect; + hitInfo = url; + break; + } + } + } + + if (!apiObj) { + var msg = "Falha ao consultar API da NFe. Tentativas: " + diagnostics.join(" | "); + if (lastApiMessage) { + msg += " | Ultima mensagem da API: " + lastApiMessage; + } + addErrorRow(dataset, msg); + return dataset; + } + + if (!apiObj.success || !apiObj.data) { + addErrorRow(dataset, trim(apiObj.message) || "NFe nao encontrada. Fonte: " + hitInfo); + return dataset; + } + + var dataNfe = apiObj.data || {}; + var itens = dataNfe.itens || []; + var itensJson = JSON.stringify(buildNfeItems(itens)); + + dataset.addRow([ + "true", + "OK (" + hitInfo + ")", + trim(dataNfe.key), + trim(dataNfe.invoiceNumber), + trim(dataNfe.serie), + formatIsoDate(dataNfe.emissionDate), + formatIsoDate(dataNfe.operationDate), + trim(dataNfe.supplierName), + trim(dataNfe.documentValue), + trim(dataNfe.totalItemsValue), + trim(dataNfe.situation), + trim(dataNfe.fiscalOperationDescription), + String(itens.length), + itensJson, + trim(dataNfe.storeId), + trim(dataNfe.invoiceId), + trim(dataNfe.emitterEmployeeId), + formatIsoDateTime(dataNfe.updatedAt) + ]); + } catch (e) { + addErrorRow(dataset, "Erro ao consultar a NFe: " + e); + } + + return dataset; +} + +function onMobileSync(user) {} + +function addDefaultColumns(dataset) { + dataset.addColumn("success"); + dataset.addColumn("message"); + dataset.addColumn("key"); + dataset.addColumn("invoiceNumber"); + dataset.addColumn("serie"); + dataset.addColumn("emissionDate"); + dataset.addColumn("operationDate"); + dataset.addColumn("supplierName"); + dataset.addColumn("documentValue"); + dataset.addColumn("totalItemsValue"); + dataset.addColumn("situation"); + dataset.addColumn("fiscalOperationDescription"); + dataset.addColumn("itemCount"); + dataset.addColumn("itensJson"); + dataset.addColumn("storeId"); + dataset.addColumn("invoiceId"); + dataset.addColumn("emitterEmployeeId"); + dataset.addColumn("updatedAt"); +} + +function addErrorRow(dataset, message) { + dataset.addRow([ + "false", + String(message || "Erro ao consultar NFe."), + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "0", + "[]", + "", + "", + "", + "" + ]); +} + +function getConstraintValue(constraints, fieldName) { + if (!constraints || !fieldName) return ""; + + for (var i = 0; i < constraints.length; i++) { + var c = constraints[i]; + if (!c || !c.fieldName) continue; + if (String(c.fieldName) === String(fieldName)) { + return c.initialValue; + } + } + return ""; +} + +function resolveAuth(constraints) { + var token = trim(getConstraintValue(constraints, "token")); + if (!token) { + try { + token = trim(java.lang.System.getenv("GINSENG_FISCAL_TOKEN")); + } catch (e1) {} + } + if (!token) { + // fallback informado durante homologacao + token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhcGlnaW5zZW5nIiwiZXhwIjoxNzg3NDQ4MDY3fQ.GJqcIJBkMIfp_q_KRzgGuAHWWo93j3FWo3TObKqlAwA"; + } + + var basicUser = trim(getConstraintValue(constraints, "basicUser")); + var basicPass = trim(getConstraintValue(constraints, "basicPass")); + + // Fallback operacional para homologacao, conforme credenciais validadas em teste manual. + if (!basicUser) basicUser = "fluig"; + if (!basicPass) basicPass = "Ginseng@"; + + return { + token: token, + basicUser: basicUser, + basicPass: basicPass + }; +} + +function invokeAuthorizedGet(clientService, endpoint, auth) { + var authHeader = resolveAuthHeader(auth); + var headers = { "Accept": "application/json" }; + if (authHeader) { + headers.Authorization = authHeader; + if (auth && auth.token) { + headers["x-access-token"] = auth.token; + } + } + + var data = { + companyId: String(getValue("WKCompany") || "1"), + serviceCode: "GINSENG APITESTE", + endpoint: endpoint, + method: "get", + timeoutService: "30000", + params: {}, + headers: headers + }; + + var vo = clientService.invoke(JSON.stringify(data)); + return { + status: vo ? String(vo.getHttpStatusResult() || "") : "", + body: vo ? String(vo.getResult() || "") : "" + }; +} + +function parseApiPayload(bodyText) { + var raw = trim(bodyText); + if (!raw) return null; + + var obj = parseJsonSafe(raw); + if (!obj) return null; + + if (typeof obj.success !== "undefined" || typeof obj.data !== "undefined") { + return obj; + } + + if (obj.content) { + if (typeof obj.content === "string") { + var c = parseJsonSafe(obj.content); + if (c) return c; + } else { + return obj.content; + } + } + + if (obj.result) { + if (typeof obj.result === "string") { + var r = parseJsonSafe(obj.result); + if (r) return r; + } else { + return obj.result; + } + } + + return obj; +} + +function isApiSuccess(obj) { + if (!obj || !obj.data) return false; + if (obj.success === true) return true; + if (String(obj.success).toLowerCase() === "true") return true; + return false; +} + +function fetchDirect(url, timeoutMs, auth) { + var conn = null; + var reader = null; + try { + var URL = java.net.URL; + 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 authHeader = resolveAuthHeader(auth); + if (authHeader) { + conn.setRequestProperty("Authorization", authHeader); + if (auth.token) conn.setRequestProperty("x-access-token", auth.token); + } + + 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: String(status), body: String(sb.toString()) }; + } catch (e) { + return { status: "", body: "" }; + } finally { + try { if (reader) reader.close(); } catch (e1) {} + try { if (conn) conn.disconnect(); } catch (e2) {} + } +} + +function resolveAuthHeader(auth) { + auth = auth || {}; + if (auth.basicUser && auth.basicPass) { + var raw = String(auth.basicUser) + ":" + String(auth.basicPass); + var bytes = new java.lang.String(raw).getBytes("UTF-8"); + var encoded = java.util.Base64.getEncoder().encodeToString(bytes); + return "Basic " + String(encoded); + } + if (auth.token) { + return "Bearer " + String(auth.token); + } + return ""; +} + +function buildNfeItems(items) { + var out = []; + if (!items || !(items instanceof Array)) return out; + + for (var i = 0; i < items.length; i++) { + var item = items[i] || {}; + out.push({ + productId: trim(item.productId), + quantity: toNumber(item.quantity || item.completeQuantity), + code: trim(item.code || item.sku || item.productCode || item.codigo) + }); + } + + return out; +} + +function toNumber(value) { + var text = trim(value).replace(",", "."); + var n = parseFloat(text); + return isNaN(n) ? 0 : n; +} + +function normalizeDigits(value) { + return String(value == null ? "" : value).replace(/\D/g, ""); +} + +function parseJsonSafe(text) { + try { + return JSON.parse(text); + } catch (e) { + return null; + } +} + +function trim(value) { + return String(value == null ? "" : value).trim(); +} + +function formatIsoDate(value) { + var text = trim(value); + if (!text) return ""; + + try { + var datePart = text.split("T")[0].split("-"); + if (datePart.length !== 3) { + return text; + } + return datePart[2] + "/" + datePart[1] + "/" + datePart[0]; + } catch (e) { + return text; + } +} + +function formatIsoDateTime(value) { + var text = trim(value); + if (!text) return ""; + + try { + var dt = text.split("T"); + if (dt.length < 1) return text; + + var datePart = dt[0].split("-"); + if (datePart.length !== 3) return text; + + var timePart = ""; + if (dt.length > 1) { + timePart = dt[1].replace("Z", ""); + var dotIndex = timePart.indexOf("."); + if (dotIndex >= 0) { + timePart = timePart.substring(0, dotIndex); + } + } + + var dateStr = datePart[2] + "/" + datePart[1] + "/" + datePart[0]; + if (!timePart) return dateStr; + + return dateStr + " " + timePart; + } catch (e) { + return text; + } +} diff --git a/Transferência Ginseng/datasets/ds_motoristas_grupo.js b/Transferência Ginseng/datasets/ds_motoristas_grupo.js new file mode 100644 index 0000000..4af247b --- /dev/null +++ b/Transferência Ginseng/datasets/ds_motoristas_grupo.js @@ -0,0 +1,301 @@ +function defineStructure() { + addColumn("LOGIN"); + addColumn("NOME"); + addColumn("EMAIL"); + addColumn("COLLEAGUE_ID"); + addColumn("GROUP_ID"); +} + +function onSync(lastSyncDate) {} +function onMobileSync(user) {} + +function createDataset(fields, constraints, sortFields) { + var dataset = DatasetBuilder.newDataset(); + dataset.addColumn("LOGIN"); + dataset.addColumn("NOME"); + dataset.addColumn("EMAIL"); + dataset.addColumn("COLLEAGUE_ID"); + dataset.addColumn("GROUP_ID"); + + try { + var cfg = parseConstraints(constraints); + var members = getMembersFromGroup(cfg.groupId); + var termo = normalize(cfg.termoLivre); + var added = 0; + + for (var i = 0; i < members.length; i++) { + var memberId = trim(members[i]); + if (!memberId) continue; + + var col = getColleagueById(memberId); + if (!col) continue; + + if (termo) { + var blob = normalize([ + col.LOGIN, + col.NOME, + col.EMAIL, + col.COLLEAGUE_ID + ].join(" ")); + if (blob.indexOf(termo) === -1) { + continue; + } + } + + dataset.addRow([ + col.LOGIN, + col.NOME, + col.EMAIL, + col.COLLEAGUE_ID, + cfg.groupId + ]); + added++; + } + + if (added === 0) { + // Mantem dataset vazio para o zoom nao exibir usuarios fora do grupo. + } + } catch (e) { + safeLogError("[ds_motoristas_grupo] Erro no createDataset: " + e); + dataset = DatasetBuilder.newDataset(); + dataset.addColumn("LOGIN"); + dataset.addColumn("NOME"); + dataset.addColumn("EMAIL"); + dataset.addColumn("COLLEAGUE_ID"); + dataset.addColumn("GROUP_ID"); + } + + return dataset; +} + +function parseConstraints(constraints) { + var out = { + groupId: "Motoristas", + termoLivre: "" + }; + + if (!constraints) return out; + + for (var i = 0; i < constraints.length; i++) { + var c = constraints[i]; + if (!c) continue; + + var field = getConstraintFieldName(c); + var value = getConstraintInitialValue(c); + if (!field) continue; + if (!value) continue; + + if ( + field === "GROUP_ID" || + field === "groupId" || + field === "group_id" || + field === "colleagueGroupPK.groupId" + ) { + out.groupId = value; + continue; + } + + if ( + field !== "metadata#id" && + field !== "metadata#active" && + field !== "sqlLimit" + ) { + var cleaned = cleanSearchValue(value); + if (cleaned && (!out.termoLivre || cleaned.length > out.termoLivre.length)) { + out.termoLivre = cleaned; + } + } + } + + return out; +} + +function getMembersFromGroup(groupId) { + var members = {}; + var out = []; + var gId = trim(groupId); + if (!gId) return out; + + var fieldOptions = [ + "colleagueGroupPK.groupId", + "groupId", + "group" + ]; + + var groupCandidates = [gId]; + var upper = gId.toUpperCase(); + var lower = gId.toLowerCase(); + if (groupCandidates.indexOf(upper) < 0) groupCandidates.push(upper); + if (groupCandidates.indexOf(lower) < 0) groupCandidates.push(lower); + + var ds = null; + for (var g = 0; g < groupCandidates.length; g++) { + for (var i = 0; i < fieldOptions.length; i++) { + try { + var cGroup = DatasetFactory.createConstraint(fieldOptions[i], groupCandidates[g], groupCandidates[g], ConstraintType.MUST); + ds = DatasetFactory.getDataset("colleagueGroup", null, [cGroup], null); + if (ds && ds.rowsCount > 0) { + break; + } + } catch (e) { + safeLogError("[ds_motoristas_grupo] Erro consultando colleagueGroup (" + fieldOptions[i] + "=" + groupCandidates[g] + "): " + e); + ds = null; + } + } + if (ds && ds.rowsCount > 0) { + break; + } + } + + if (!ds || ds.rowsCount === 0) { + // Fallback: alguns ambientes permitem filtrar direto no dataset colleague por groupId. + try { + var cGroupCol = DatasetFactory.createConstraint("groupId", gId, gId, ConstraintType.MUST); + ds = DatasetFactory.getDataset("colleague", null, [cGroupCol], null); + if (ds && ds.rowsCount > 0) { + for (var x = 0; x < ds.rowsCount; x++) { + var fallbackId = trim( + ds.getValue(x, "colleaguePK.colleagueId") || + ds.getValue(x, "colleagueId") || + ds.getValue(x, "login") + ); + if (!fallbackId) continue; + if (members[fallbackId]) continue; + members[fallbackId] = true; + out.push(fallbackId); + } + } + } catch (eFallback) { + safeLogError("[ds_motoristas_grupo] Erro no fallback por groupId no colleague: " + eFallback); + } + return out; + } + + for (var r = 0; r < ds.rowsCount; r++) { + var colleagueId = trim( + ds.getValue(r, "colleagueGroupPK.colleagueId") || + ds.getValue(r, "colleagueId") || + ds.getValue(r, "login") + ); + if (!colleagueId) continue; + if (members[colleagueId]) continue; + members[colleagueId] = true; + out.push(colleagueId); + } + + return out; +} + +function getColleagueById(colleagueId) { + var id = trim(colleagueId); + if (!id) return null; + + var fieldsToTry = ["colleaguePK.colleagueId", "colleagueId", "login"]; + var ds = null; + + // 1) Tenta buscando somente ativos com diferentes campos. + for (var i = 0; i < fieldsToTry.length; i++) { + ds = getColleagueDataset(id, fieldsToTry[i], true); + if (ds && ds.rowsCount > 0) { + break; + } + } + + // 2) Fallback sem constraint de ativo (alguns ambientes tratam "active" de forma diferente). + if (!ds || ds.rowsCount === 0) { + for (var j = 0; j < fieldsToTry.length; j++) { + ds = getColleagueDataset(id, fieldsToTry[j], false); + if (ds && ds.rowsCount > 0) { + break; + } + } + } + + if (!ds || ds.rowsCount === 0) return null; + + var row = pickActiveRow(ds); + if (row < 0) row = 0; + + var colleaguePkId = trim( + ds.getValue(row, "colleaguePK.colleagueId") || + ds.getValue(row, "colleagueId") || + ds.getValue(row, "login") + ); + if (!colleaguePkId) return null; + + return { + LOGIN: trim(ds.getValue(row, "login")), + NOME: trim(ds.getValue(row, "colleagueName")), + EMAIL: trim(ds.getValue(row, "mail")), + COLLEAGUE_ID: colleaguePkId + }; +} + +function getColleagueDataset(id, fieldName, onlyActive) { + try { + var constraints = [ + DatasetFactory.createConstraint(fieldName, id, id, ConstraintType.MUST) + ]; + + if (onlyActive) { + constraints.push(DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST)); + } + + return DatasetFactory.getDataset("colleague", null, constraints, null); + } catch (e) { + safeLogError("[ds_motoristas_grupo] Erro consultando colleague (" + fieldName + "=" + id + ", active=" + onlyActive + "): " + e); + return null; + } +} + +function pickActiveRow(ds) { + if (!ds || ds.rowsCount <= 0) return -1; + + for (var i = 0; i < ds.rowsCount; i++) { + var activeValue = trim(ds.getValue(i, "active") || ds.getValue(i, "colleaguePK.active")); + if (!activeValue) return i; + + var n = normalize(activeValue); + if (n === "true" || n === "1" || n === "yes" || n === "sim" || n === "y" || n === "s" || n === "t") { + return i; + } + } + + return -1; +} + +function getConstraintFieldName(constraint) { + try { + if (constraint.fieldName) return String(constraint.fieldName); + if (constraint._field) return String(constraint._field); + if (typeof constraint.getFieldName === "function") return String(constraint.getFieldName()); + } catch (e) {} + return ""; +} + +function getConstraintInitialValue(constraint) { + try { + if (constraint.initialValue != null) return trim(constraint.initialValue); + if (constraint._initialValue != null) return trim(constraint._initialValue); + if (typeof constraint.getInitialValue === "function") return trim(constraint.getInitialValue()); + } catch (e) {} + return ""; +} + +function trim(v) { + return String(v == null ? "" : v).trim(); +} + +function normalize(v) { + return trim(v).toLowerCase(); +} + +function cleanSearchValue(v) { + return trim(v).replace(/[%*_]/g, ""); +} + +function safeLogError(message) { + try { + log.error(String(message)); + } catch (e) {} +} diff --git a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/events/validateForm.js b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/events/validateForm.js index 8367d3a..9c04ff5 100644 --- a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/events/validateForm.js +++ b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/events/validateForm.js @@ -13,61 +13,91 @@ function validateForm(form) { switch (atividade) { case EMISSAO: - - // log.info("Abertura de Chamado CAERN - Área do Solicitante: " + form.getValue("areaSolicitante")); - // if (form.getValue("areaSolicitante") == "") { - // message += getMessage("Área do Solicitante", 2, form); - // hasErros = true; - // } - - log.info("Por favor, anexar a nota fiscal" + form.getValue("fnAnexo_Nfe")); - if (form.getValue("fnAnexo_Nfe") == "") { - message += getMessage("Nota Fiscal", 3, form); + log.info("Validando rastreabilidade da emissao da NFe"); + var chaveNfe = String(form.getValue("chaveNfe") || "").replace(/\D/g, ""); + if (chaveNfe == "") { + message += getMessage("Chave de acesso da NFe", 1, form); hasErros = true; } - - // var tabelaAnexos = form.getChildrenIndexes("tabelaAnexoOcorrencia") - - // if (tabelaAnexos.length > 0) { - - // for (var i = 0; i < tabelaAnexos.length; i++) { - - // if (form.getValue("fnAnexoOcorrencia" + "" + tabelaAnexos[i]) == null || form.getValue("fnAnexoOcorrencia" + "" + tabelaAnexos[i]) == "") { - // message += getMessage("Anexo " + tabelaAnexos[i], 1, form) - // hasErros = true; - // } - - // } - - // } else { - - // message += getMessage("A tabela de Anexos esta vazia", 0, form) - // hasErros = true; - - // } - - break; - + if (chaveNfe != "" && chaveNfe.length != 44) { + message += "Campo \"Chave de acesso da NFe\" deve conter 44 digitos.
"; + hasErros = true; + } + if (form.getValue("invoiceIdNfeConsulta") == "") { + message += "Consulte a chave da NFe antes de enviar esta etapa.
"; + hasErros = true; + } + var qtdDivergenciasNfe = parseInt(String(form.getValue("qtdDivergenciasNfe") || "0"), 10); + if (!isNaN(qtdDivergenciasNfe) && qtdDivergenciasNfe > 0) { + message += "Existem " + qtdDivergenciasNfe + " divergencia(s) entre a solicitacao e a NFe.
"; + hasErros = true; + } + if (form.getValue("usuarioEmissorNfe") == "") { + message += getMessage("Usuário emissor da NFe", 1, form); + hasErros = true; + } + if (form.getValue("dataEmissaoNfe") == "") { + message += getMessage("Data da emissão", 1, form); + hasErros = true; + } + break; + case COLETA: - log.info("Por favor, registre o momento da coleta" + form.getValue("fdAnexo_Coleta")); - if (form.getValue("fdAnexo_Coleta") == "") { - message += getMessage("Coleta", 3, form); - hasErros = true; - } + log.info("Validando dados da coleta"); + if (form.getValue("motoristaColetaNome") == "") { + message += getMessage("Motorista responsável pela coleta", 1, form); + hasErros = true; + } + if (form.getValue("dataColeta") == "") { + message += getMessage("Data da coleta", 1, form); + hasErros = true; + } + var tipoMotoristaEntregaColeta = String(form.getValue("tipoMotoristaEntrega") || ""); + if (tipoMotoristaEntregaColeta == "") { + message += getMessage("Quem vai fazer a entrega", 2, form); + hasErros = true; + } + if (tipoMotoristaEntregaColeta == "outro" && form.getValue("motoristaEntregaLogin") == "") { + message += getMessage("Selecionar outro motorista", 1, form); + hasErros = true; + } + if (tipoMotoristaEntregaColeta == "mesmo" && form.getValue("motoristaColetaLogin") == "") { + message += getMessage("Login do motorista da coleta", 1, form); + hasErros = true; + } + break; case ENTREGA: - log.info("Por favor, registre o momento da entrega" + form.getValue("fdAnexo_Entrega")); - if (form.getValue("fdAnexo_Entrega") == "") { - message += getMessage("Entrega", 3, form); - hasErros = true; - } + log.info("Validando dados da entrega"); + if (form.getValue("motoristaEntregaLogin") == "") { + message += getMessage("Motorista da entrega definido na coleta", 1, form); + hasErros = true; + } + if (form.getValue("motoristaEntregaNome") == "") { + message += getMessage("Motorista responsável pela entrega", 1, form); + hasErros = true; + } + if (form.getValue("dataEntrega") == "") { + message += getMessage("Data da entrega", 1, form); + hasErros = true; + } + break; case RECEBIMENTO: - log.info("Por favor, registre o recebimento do material" + form.getValue("fdAnexo_recebimento")); - if (form.getValue("fdAnexo_recebimento") == "") { - message += getMessage("Recebimento", 3, form); - hasErros = true; - } + log.info("Validando recebimento e conferencia dos itens"); + var validacaoItens = String(form.getValue("validacaoItens") || ""); + if (validacaoItens == "") { + message += getMessage("Validação do recebimento", 2, form); + hasErros = true; + } + if ( + (validacaoItens == "divergencia" || validacaoItens == "naoEntregue" || validacaoItens == "incorreto") && + form.getValue("justificativaDecisaoItens") == "" + ) { + message += getMessage("Descreva a divergência encontrada", 1, form); + hasErros = true; + } + break; default: break; } @@ -99,4 +129,5 @@ function getMessage(texto, tipo, form) { } else { return 'A quantidade existente de campos "' + texto + '" deve ser maior do que 0.' } -} \ No newline at end of file +} + diff --git a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/excel.js b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/excel.js index 4645a51..e1d8155 100644 --- a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/excel.js +++ b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/excel.js @@ -1,41 +1,102 @@ +var xlsxLoader = { + loading: false, + callbacks: [] +}; + function carregarItensDoExcel(fileInputId) { - const fileInput = document.getElementById(fileInputId); - const file = fileInput ? fileInput.files[0] : null; + var fileInput = document.getElementById(fileInputId); + var file = fileInput ? fileInput.files[0] : null; if (!file) { FLUIGC.toast({ title: 'Erro', message: 'Nenhum arquivo selecionado.', type: 'danger' }); return; } - if (typeof XLSX === "undefined") { - FLUIGC.toast({ title: 'Erro', message: 'Biblioteca XLSX nao carregada.', type: 'danger' }); + + showExcelLoading(); + ensureXlsxLibrary(function (err) { + if (err) { + hideExcelLoading(); + FLUIGC.toast({ title: 'Erro', message: 'Biblioteca XLSX indisponivel.', type: 'danger' }); + console.error("Erro ao carregar XLSX:", err); + return; + } + + processarArquivoExcel(file); + }); +} + +function ensureXlsxLibrary(callback) { + if (typeof XLSX !== "undefined") { + callback(); return; } - showExcelLoading(); + xlsxLoader.callbacks.push(callback); + if (xlsxLoader.loading) { + return; + } - const reader = new FileReader(); + xlsxLoader.loading = true; + loadXlsxScript(0); +} + +function loadXlsxScript(index) { + var urls = [ + "/portal/resources/js/xlsx.full.min.js", + "https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js" + ]; + + if (index >= urls.length) { + flushXlsxCallbacks(new Error("Biblioteca XLSX nao encontrada.")); + return; + } + + $.getScript(urls[index]) + .done(function () { + if (typeof XLSX === "undefined") { + loadXlsxScript(index + 1); + return; + } + flushXlsxCallbacks(); + }) + .fail(function () { + loadXlsxScript(index + 1); + }); +} + +function flushXlsxCallbacks(err) { + var callbacks = xlsxLoader.callbacks.splice(0, xlsxLoader.callbacks.length); + xlsxLoader.loading = false; + + for (var i = 0; i < callbacks.length; i++) { + callbacks[i](err); + } +} + +function processarArquivoExcel(file) { + var reader = new FileReader(); reader.onload = function (e) { // Permite o navegador renderizar o overlay antes de processar. setTimeout(function () { try { - const data = new Uint8Array(e.target.result); - const workbook = XLSX.read(data, { type: 'array' }); - const sheetName = workbook.SheetNames[0]; - const sheet = workbook.Sheets[sheetName]; - const linhas = XLSX.utils.sheet_to_json(sheet, { defval: "" }); + var data = new Uint8Array(e.target.result); + var workbook = XLSX.read(data, { type: 'array' }); + var sheetName = workbook.SheetNames[0]; + var sheet = workbook.Sheets[sheetName]; + var linhas = XLSX.utils.sheet_to_json(sheet, { defval: "" }); // Limpa a tabela (sem usar form) - const indices = $("input[id^='codigoItem___']").map(function () { + var indices = $("input[id^='codigoItem___']").map(function () { return $(this).attr("id").split("___")[1]; }).get(); $.each(indices, function (_, idx) { fnWdkRemoveChild(idx); }); - const linhasValidas = []; + var linhasValidas = []; $.each(linhas, function (_, item) { - const codigo = getCellByAliases(item, ["codigoItem", "codigo", "codItem", "sku", "code", "item"]); - const quantidade = getCellByAliases(item, ["quantidadeItem", "quantidade", "qtd", "qtde"]); - const descricao = getCellByAliases(item, ["descricao", "description", "desc"]); + 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"]); if (!codigo || !quantidade) { return; @@ -59,23 +120,33 @@ function carregarItensDoExcel(fileInputId) { // Adiciona os itens da planilha $.each(linhasValidas, function (_, item) { - const idx = wdkAddChild('tabelaItens'); - const zoomObj = window[`descricao___${idx}`]; + var idx = wdkAddChild('tabelaItens'); + var zoomObj = window["descricao___" + idx]; if (zoomObj && typeof zoomObj.setValue === "function") { zoomObj.setValue(item.codigo); } else { // Fallback visual caso o objeto zoom ainda nao esteja pronto no momento. - $(`#descricao___${idx}`).val(item.codigo); + $("#descricao___" + idx).val(item.codigo); } - $(`#quantidadeItem___${idx}`).val(item.quantidade); + $("#quantidadeItem___" + idx).val(item.quantidade); + $("#codigoProdutoItem___" + idx).val(item.codigo); - var descricaoFinal = item.descricao || buscarDescricaoProduto(item.codigo); + var produtoInfo = buscarProdutoPorCodigo(item.codigo); + if (produtoInfo.id) { + $("#productIdItem___" + idx).val(produtoInfo.id); + } + + var descricaoFinal = item.descricao || produtoInfo.descricao; if (descricaoFinal) { - $(`#codigoItem___${idx}`).val(descricaoFinal); + $("#codigoItem___" + idx).val(descricaoFinal); } }); + if (typeof processarConferenciaNfe === "function") { + processarConferenciaNfe(); + } + FLUIGC.toast({ title: 'Sucesso', message: linhasValidas.length + ' itens carregados com sucesso!', type: 'success' }); } catch (err) { FLUIGC.toast({ title: 'Erro', message: 'Falha ao processar Excel: ' + err.message, type: 'danger' }); @@ -118,36 +189,46 @@ function normalizeHeader(text) { .toLowerCase(); } -function buscarDescricaoProduto(codigo) { +function buscarProdutoPorCodigo(codigo) { try { if (typeof DatasetFactory === "undefined" || typeof ConstraintType === "undefined") { - return ""; + return { descricao: "", id: "" }; } var codigoTxt = String(codigo || "").trim(); - if (!codigoTxt) return ""; + if (!codigoTxt) return { descricao: "", id: "" }; var cCodigo = DatasetFactory.createConstraint("Code", codigoTxt, codigoTxt, ConstraintType.MUST); var ds = DatasetFactory.getDataset("ds_rgb_products", null, [cCodigo], null); if (!ds || !ds.values || !ds.values.length) { - return ""; + return { descricao: "", id: "" }; } for (var i = 0; i < ds.values.length; i++) { var row = ds.values[i] || {}; if (String(row.Code || "").trim() === codigoTxt) { - return String(row.descricao || row.Description || "").trim(); + return { + descricao: String(row.descricao || row.Description || "").trim(), + id: String(row.id || "").trim() + }; } } var first = ds.values[0] || {}; - return String(first.descricao || first.Description || "").trim(); + return { + descricao: String(first.descricao || first.Description || "").trim(), + id: String(first.id || "").trim() + }; } catch (e) { console.error("Erro ao buscar descricao por codigo:", e); - return ""; + return { descricao: "", id: "" }; } } +function buscarDescricaoProduto(codigo) { + return buscarProdutoPorCodigo(codigo).descricao; +} + function showExcelLoading() { var overlay = document.getElementById("excelLoadingOverlay"); if (overlay) { diff --git a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/script.js b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/script.js index ab886ab..519e775 100644 --- a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/script.js +++ b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/script.js @@ -26,13 +26,41 @@ $(document).ready(function () { $('#btnRemoverExcel').hide(); }); + $('#chaveNfe').on('input', function () { + var key = normalizeNfeKey($(this).val()); + $(this).val(key); + clearNfeConsultaFields(); + setNfeFeedback("", "hidden"); + }); + + $('#btnConsultarChaveNfe').on('click', function () { + consultarChaveNfe(); + }); + + $(document).on("change", "input[name='tipoMotoristaEntrega']", function () { + applyMotoristaEntregaMode($(this).val(), false); + }); + + $(document).on("change", "#motoristaEntregaSelecionado", function () { + applySelectedMotoristaEntregaOption(); + }); + + $(document).on("input", "input[name^='quantidadeItem___']", function () { + processarConferenciaNfe(); + }); + if ($("#formMode").val() == "VIEW") { showAndBlock(["all"]); + $("#btnConsultarChaveNfe").prop("disabled", true).hide(); } else { //show the right fields var activity = $("#activity").val(); var requestDate = getCurrentDate(); + if (String(activity) !== "6") { + $("#btnConsultarChaveNfe").prop("disabled", true).hide(); + } + $(".activity").hide(); $(".activity-" + activity).show(); @@ -51,10 +79,14 @@ $(document).ready(function () { updt_line(); } else if (activity == 6) { showAndBlock([0, 4]); - $("#userValidacaoCompras").val($("#currentUserName").val()); - $("#dataValidacaoCompras").val( - requestDate[0] + " - " + requestDate[1] - ); + if ($("#usuarioEmissorNfe").val() == "") { + $("#usuarioEmissorNfe").val($("#currentUserName").val()); + } + if ($("#dataEmissaoNfe").val() == "") { + $("#dataEmissaoNfe").val( + requestDate[0] + " - " + requestDate[1] + ); + } if ($("#justificativaDecisaoGestor").val() == "") { $(".justificativa-activity-4").hide(); @@ -66,6 +98,9 @@ $(document).ready(function () { $("#dataAprovCompras").val( requestDate[0] + " - " + requestDate[1] ); + $("#blocoTipoMotoristaEntrega, #blocoOutroMotoristaEntrega").hide(); + $("input[name='tipoMotoristaEntrega']").prop("disabled", true); + $("#motoristaEntregaSelecionado").prop("disabled", true); showAndBlock([0, 4, 6]); if ($("#justificativaDecisaoGestor").val() == "") { @@ -81,7 +116,21 @@ $(document).ready(function () { $("#dataRealizacaoCompras").val( requestDate[0] + " - " + requestDate[1] ); - showAndBlock([0, 4, 6, 57]); + if ($("#motoristaColetaNome").val() == "") { + $("#motoristaColetaNome").val($("#currentUserName").val()); + } + if ($("#motoristaColetaLogin").val() == "") { + $("#motoristaColetaLogin").val($("#currentUserId").val()); + } + if ($("#dataColeta").val() == "") { + $("#dataColeta").val(requestDate[0] + " " + requestDate[1]); + } + initMotoristaEntregaEscolha(); + $("#blocoTipoMotoristaEntrega").show(); + $("input[name='tipoMotoristaEntrega']").prop("disabled", false); + $("#motoristaEntregaSelecionado").prop("disabled", false); + // Mantem apenas etapas anteriores bloqueadas; card de coleta e entrega estao separados. + showAndBlock([0, 4, 6]); if ($("#justificativaDecisaoGestor").val() == "") { $(".justificativa-activity-4").hide(); @@ -111,9 +160,11 @@ $(document).ready(function () { $("input[name=validacaoItens]").on("change", function () { $(".justificativaDecisaoItens").hide(); + var validacaoItensSelecionada = $("input[name=validacaoItens]:checked").val(); if ( - $("input[name=validacaoItens]:checked").val() == "incorreto" || - $("input[name=validacaoItens]:checked").val() == "naoEntregue" + validacaoItensSelecionada == "divergencia" || + validacaoItensSelecionada == "incorreto" || + validacaoItensSelecionada == "naoEntregue" ) { $(".justificativaDecisaoItens").show(); } @@ -146,6 +197,7 @@ $(document).ready(function () { invisibleBtnUpload("fdAnexo_Coleta"); invisibleBtnUpload("fdAnexo_Entrega"); invisibleBtnUpload("fdAnexo_recebimento"); + processarConferenciaNfe(); // gerarTabelaCotacaoIndica("tabelaCotacaoIndica", "tabelaItens"); @@ -238,6 +290,589 @@ function getCurrentDate() { return currentDate; } +function initMotoristaEntregaEscolha() { + var escolha = String($("input[name='tipoMotoristaEntrega']:checked").val() || ""); + if (!escolha) { + var coletaLogin = String($("#motoristaColetaLogin").val() || "").trim(); + var entregaLogin = String($("#motoristaEntregaLogin").val() || "").trim(); + if (entregaLogin && coletaLogin && entregaLogin !== coletaLogin) { + escolha = "outro"; + } else { + escolha = $("#motoristaColetaNome").val() ? "mesmo" : "outro"; + } + $("input[name='tipoMotoristaEntrega'][value='" + escolha + "']").prop("checked", true); + } + applyMotoristaEntregaMode(escolha, true); +} + +function applyMotoristaEntregaMode(mode, keepValues) { + var escolha = String(mode || ""); + var blocoOutro = $("#blocoOutroMotoristaEntrega"); + if (!blocoOutro.length) return; + + if (escolha === "outro") { + blocoOutro.show(); + loadMotoristasEntregaSelect(false); + if (!keepValues) { + $("#motoristaEntregaNome").val(""); + $("#motoristaEntregaLogin").val(""); + clearZoomField("motoristaEntregaSelecionado"); + } else { + syncMotoristaEntregaSelectFromHidden(); + } + return; + } + + blocoOutro.hide(); + if (escolha === "mesmo") { + var coletaNome = String($("#motoristaColetaNome").val() || "").trim(); + var coletaLogin = String($("#motoristaColetaLogin").val() || "").trim(); + if (coletaNome) $("#motoristaEntregaNome").val(coletaNome); + if (coletaLogin) $("#motoristaEntregaLogin").val(coletaLogin); + } +} + +function clearZoomField(fieldId) { + try { + if (window[fieldId] && typeof window[fieldId].clear === "function") { + window[fieldId].clear(); + } + } catch (e) {} + + try { + if (window[fieldId] && typeof window[fieldId].setValue === "function") { + window[fieldId].setValue(""); + } + } catch (e2) {} + + $("#" + fieldId).val(""); +} + +var MOTORISTAS_GROUP_ID = "Motoristas"; +var motoristasEntregaCache = null; +var motoristasEntregaLoading = false; + +function loadMotoristasEntregaSelect(forceReload) { + var select = $("#motoristaEntregaSelecionado"); + if (!select.length) return; + + if (!forceReload && motoristasEntregaCache && motoristasEntregaCache.length) { + renderMotoristasEntregaOptions(motoristasEntregaCache); + return; + } + + if (motoristasEntregaLoading) return; + + motoristasEntregaLoading = true; + + var requestPayload = { + name: "ds_motoristas_grupo", + fields: null, + constraints: [{ + _field: "GROUP_ID", + _initialValue: MOTORISTAS_GROUP_ID, + _finalValue: MOTORISTAS_GROUP_ID, + _type: 1 + }], + order: null + }; + + $.ajax({ + type: "POST", + url: "/api/public/ecm/dataset/datasets/", + contentType: "application/json", + dataType: "json", + data: JSON.stringify(requestPayload) + }).done(function (response) { + var values = ((((response || {}).content || {}).values) || []); + motoristasEntregaCache = normalizeMotoristasEntregaRows(values); + renderMotoristasEntregaOptions(motoristasEntregaCache); + }).fail(function (xhr) { + console.error("Falha ao carregar motoristas do dataset:", xhr); + motoristasEntregaCache = []; + renderMotoristasEntregaOptions([]); + }).always(function () { + motoristasEntregaLoading = false; + }); +} + +function normalizeMotoristasEntregaRows(values) { + var out = []; + var map = {}; + + for (var i = 0; i < values.length; i++) { + var row = values[i] || {}; + var colleagueId = String(row.COLLEAGUE_ID || row.colleagueId || row.colleagueid || "").trim(); + if (!colleagueId) continue; + if (map[colleagueId]) continue; + map[colleagueId] = true; + + out.push({ + COLLEAGUE_ID: colleagueId, + NOME: String(row.NOME || row.colleagueName || row.nome || "").trim(), + LOGIN: String(row.LOGIN || row.login || "").trim(), + EMAIL: String(row.EMAIL || row.mail || row.email || "").trim() + }); + } + + out.sort(function (a, b) { + var aNome = (a.NOME || a.LOGIN || a.COLLEAGUE_ID).toLowerCase(); + var bNome = (b.NOME || b.LOGIN || b.COLLEAGUE_ID).toLowerCase(); + return aNome < bNome ? -1 : (aNome > bNome ? 1 : 0); + }); + + return out; +} + +function renderMotoristasEntregaOptions(rows) { + var select = $("#motoristaEntregaSelecionado"); + if (!select.length) return; + + var selectedValue = String($("#motoristaEntregaLogin").val() || select.val() || "").trim(); + + select.empty(); + select.append($("").val("").text("Selecione o motorista")); + + for (var i = 0; i < rows.length; i++) { + var row = rows[i]; + var nome = String(row.NOME || row.LOGIN || row.COLLEAGUE_ID); + var label = row.LOGIN ? (nome + " (" + row.LOGIN + ")") : nome; + var option = $("") + .val(row.COLLEAGUE_ID) + .text(label) + .attr("data-nome", nome) + .attr("data-login", String(row.LOGIN || "")); + select.append(option); + } + + if (selectedValue) { + select.val(selectedValue); + } + + if (!select.val()) { + // Limpa selecao visual quando o valor salvo nao existe mais no dataset. + select.val(""); + } + + applySelectedMotoristaEntregaOption(); +} + +function syncMotoristaEntregaSelectFromHidden() { + var select = $("#motoristaEntregaSelecionado"); + if (!select.length) return; + + var storedId = String($("#motoristaEntregaLogin").val() || "").trim(); + if (!storedId) { + select.val(""); + return; + } + + select.val(storedId); + if (select.val()) { + applySelectedMotoristaEntregaOption(); + } +} + +function applySelectedMotoristaEntregaOption() { + var select = $("#motoristaEntregaSelecionado"); + if (!select.length) return; + + var selectedId = String(select.val() || "").trim(); + if (!selectedId) { + if (String($("input[name='tipoMotoristaEntrega']:checked").val() || "") === "outro") { + $("#motoristaEntregaNome").val(""); + $("#motoristaEntregaLogin").val(""); + } + return; + } + + var option = select.find("option:selected"); + var nome = String(option.attr("data-nome") || option.text() || "").trim(); + + $("#motoristaEntregaLogin").val(selectedId); + $("#motoristaEntregaNome").val(nome); + $("#tipoMotoristaEntregaOutro").prop("checked", true); +} + +function normalizeNfeKey(value) { + return String(value == null ? "" : value).replace(/\D/g, "").substring(0, 44); +} + +function clearNfeConsultaFields() { + $("#numeroNfeConsulta").val(""); + $("#serieNfeConsulta").val(""); + $("#dataEmissaoApiNfe").val(""); + $("#situacaoNfeConsulta").val(""); + $("#fornecedorNfeConsulta").val(""); + $("#valorNfeConsulta").val(""); + $("#dataEntradaNfeConsulta").val(""); + $("#itensNfeConsulta").val(""); + $("#operacaoNfeConsulta").val(""); + $("#lojaNfeConsulta").val(""); + $("#invoiceIdNfeConsulta").val(""); + $("#storeIdNfeConsulta").val(""); + $("#itensNfeJson").val("[]"); + $("#qtdDivergenciasNfe").val("0"); + renderTabelaConferencia([], 0, 0, "Consulte a chave da NFe para gerar o confronto dos itens.", "info"); +} + +function setNfeFeedback(message, type) { + var feedback = $("#consultaNfeFeedback"); + if (!feedback.length) { + return; + } + + feedback.removeClass("alert-success alert-danger alert-info alert-warning"); + + if (!message || type === "hidden") { + feedback.hide().text(""); + return; + } + + if (type === "success") { + feedback.addClass("alert-success"); + } else if (type === "warning") { + feedback.addClass("alert-warning"); + } else if (type === "info") { + feedback.addClass("alert-info"); + } else { + feedback.addClass("alert-danger"); + } + + feedback.text(message).show(); +} + +function formatNfeCurrency(value) { + var textValue = String(value == null ? "" : value).trim(); + if (textValue === "") { + return ""; + } + + var numberValue = parseFloat(textValue.replace(",", ".")); + if (isNaN(numberValue)) { + return textValue; + } + + try { + return numberValue.toLocaleString("pt-BR", { style: "currency", currency: "BRL" }); + } catch (e) { + return textValue; + } +} + +function fillNfeConsultaFields(row) { + var emissionDate = String(row.emissionDate || ""); + + $("#numeroNfeConsulta").val(String(row.invoiceNumber || "")); + $("#serieNfeConsulta").val(String(row.serie || "")); + $("#dataEmissaoApiNfe").val(emissionDate); + $("#situacaoNfeConsulta").val(String(row.situation || "")); + $("#fornecedorNfeConsulta").val(String(row.supplierName || "")); + $("#valorNfeConsulta").val(formatNfeCurrency(row.documentValue)); + $("#dataEntradaNfeConsulta").val(String(row.updatedAt || "")); + $("#itensNfeConsulta").val(String(row.itemCount || "")); + $("#operacaoNfeConsulta").val(String(row.fiscalOperationDescription || "")); + $("#lojaNfeConsulta").val(String(row.storeId || "")); + $("#invoiceIdNfeConsulta").val(String(row.invoiceId || "")); + $("#storeIdNfeConsulta").val(String(row.storeId || "")); + $("#itensNfeJson").val(String(row.itensJson || "[]")); + + if (emissionDate) { + $("#dataEmissaoNfe").val(emissionDate); + } + + processarConferenciaNfe(); +} + +function processarConferenciaNfe() { + var nfeItems = parseItensNfeJson(); + if (nfeItems.length === 0) { + $("#qtdDivergenciasNfe").val("0"); + renderTabelaConferencia([], 0, 0, "Consulte a chave da NFe para gerar o confronto dos itens.", "info"); + return; + } + + var solicitacaoMap = buildSolicitacaoMap(); + var nfeMap = buildNfeMap(nfeItems); + var allKeys = mergeKeys(solicitacaoMap, nfeMap); + var rows = []; + var divergencias = 0; + + for (var i = 0; i < allKeys.length; i++) { + var key = allKeys[i]; + var req = solicitacaoMap[key] || { qty: 0, label: key }; + var nfe = nfeMap[key] || { qty: 0, label: key }; + + var status = "OK"; + if (req.qty === 0 && nfe.qty > 0) { + status = "Somente NFe"; + } else if (nfe.qty === 0 && req.qty > 0) { + status = "Somente solicitacao"; + } else if (Math.abs(req.qty - nfe.qty) > 0.00001) { + status = "Quantidade divergente"; + } + + if (status !== "OK") { + divergencias++; + } + + rows.push({ + key: req.label || nfe.label || key, + requestedQty: req.qty, + nfeQty: nfe.qty, + status: status + }); + } + + $("#qtdDivergenciasNfe").val(String(divergencias)); + + var resumo = "Conferencia finalizada: " + rows.length + " item(ns), " + divergencias + " divergencia(s)."; + var resumoType = divergencias > 0 ? "warning" : "success"; + renderTabelaConferencia(rows, rows.length, divergencias, resumo, resumoType); +} + +function parseItensNfeJson() { + var raw = String($("#itensNfeJson").val() || "[]"); + try { + var parsed = JSON.parse(raw); + return parsed instanceof Array ? parsed : []; + } catch (e) { + return []; + } +} + +function buildSolicitacaoMap() { + var out = {}; + $("input[name^='quantidadeItem___']").each(function () { + var name = $(this).attr("name") || ""; + var indice = name.split("___")[1]; + if (!indice) return; + + var qty = toFloatSafe($(this).val()); + if (qty <= 0) return; + + var productId = String($("#productIdItem___" + indice).val() || "").trim(); + var code = resolveSolicitacaoItemCode(indice, $(this)); + var descricao = String($("#codigoItem___" + indice).val() || "").trim(); + + var key = resolveConferenciaKey(productId, code, "ROW:" + indice); + var label = productId ? ("PID " + productId) : (code || descricao || ("Linha " + indice)); + + if (!out[key]) { + out[key] = { qty: 0, label: label }; + } + out[key].qty += qty; + }); + return out; +} + +function resolveSolicitacaoItemCode(indice, qtyInput) { + var code = String($("#codigoProdutoItem___" + indice).val() || "").trim(); + if (code) return normalizeCodigoComparacao(code); + + code = String($("#descricao___" + indice).val() || "").trim(); + if (code) return normalizeCodigoComparacao(code); + + var row = qtyInput && qtyInput.length ? qtyInput.closest("tr") : $(); + if (row.length) { + var byName = findFirstFilledValue(row.find("input[name='descricao___" + indice + "']")); + if (byName) return normalizeCodigoComparacao(byName); + + var anyDescricao = findFirstFilledValue(row.find("input[name^='descricao']")); + if (anyDescricao) return normalizeCodigoComparacao(anyDescricao); + + var byIdLike = findFirstFilledValue(row.find("input[id*='descricao']")); + if (byIdLike) return normalizeCodigoComparacao(byIdLike); + + var codigoCellInputs = row.find("td").eq(1).find("input,select,textarea"); + var fromCodigoCell = findFirstFilledValue(codigoCellInputs); + if (fromCodigoCell) return normalizeCodigoComparacao(fromCodigoCell); + + // Em modo bloqueado/view, o Zoom pode renderizar apenas texto em span/div. + var codigoCell = row.find("td").eq(1); + var zoomRendered = findFirstFilledText(codigoCell.find( + ".select2-selection__rendered, .select2-chosen, .zoom-value, .zoom-span, span, div" + )); + if (zoomRendered) return normalizeCodigoComparacao(zoomRendered); + + // Fallback final: texto bruto da célula. + var rawCellText = String(codigoCell.text() || "").trim(); + if (rawCellText) return normalizeCodigoComparacao(rawCellText); + } + + return ""; +} + +function findFirstFilledValue(elements) { + if (!elements || !elements.length) return ""; + + for (var i = 0; i < elements.length; i++) { + var $el = $(elements[i]); + var val = String($el.val() || "").trim(); + if (!val) { + val = String($el.attr("value") || "").trim(); + } + if (!val) { + val = String($el.attr("data-value") || "").trim(); + } + if (val) return val; + } + return ""; +} + +function findFirstFilledText(elements) { + if (!elements || !elements.length) return ""; + + for (var i = 0; i < elements.length; i++) { + var txt = String($(elements[i]).text() || "").trim(); + if (txt) return txt; + } + return ""; +} + +function normalizeCodigoComparacao(value) { + var raw = String(value || "").trim(); + if (!raw) return ""; + + // Zoom pode trazer "75655 - DESCRICAO"; para conferencia usamos o primeiro token. + var firstToken = raw.split(" - ")[0].split(" | ")[0].trim(); + return firstToken || raw; +} + +function buildNfeMap(items) { + var out = {}; + for (var i = 0; i < items.length; i++) { + var item = items[i] || {}; + var qty = toFloatSafe(item.quantity); + if (qty <= 0) continue; + + var productId = String(item.productId || "").trim(); + var code = String(item.code || "").trim(); + var key = resolveConferenciaKey(productId, code, "NFE:" + i); + var label = productId ? ("PID " + productId) : (code || ("Item NFe " + (i + 1))); + + if (!out[key]) { + out[key] = { qty: 0, label: label }; + } + out[key].qty += qty; + } + return out; +} + +function resolveConferenciaKey(productId, code, fallback) { + var pid = String(productId || "").trim(); + if (pid) { + return "ITEM:" + pid; + } + + var cod = String(code || "").trim(); + if (cod) { + return "ITEM:" + cod; + } + + return String(fallback || ""); +} + +function mergeKeys(a, b) { + var obj = {}; + for (var ka in a) obj[ka] = true; + for (var kb in b) obj[kb] = true; + return Object.keys(obj); +} + +function renderTabelaConferencia(rows, totalItens, divergencias, mensagem, tipo) { + var tbody = $("#tabelaConferenciaNfeBody"); + var resumo = $("#resumoConferenciaNfe"); + if (!tbody.length || !resumo.length) return; + + var html = ""; + if (!rows || rows.length === 0) { + html = "Sem conferencia."; + } else { + for (var i = 0; i < rows.length; i++) { + var row = rows[i]; + var rowClass = row.status === "OK" ? "" : " class='danger'"; + html += "" + + "" + escapeHtml(row.key) + "" + + "" + formatConferenciaNumero(row.requestedQty) + "" + + "" + formatConferenciaNumero(row.nfeQty) + "" + + "" + escapeHtml(row.status) + "" + + ""; + } + } + tbody.html(html); + + var typeClass = "alert-info"; + if (tipo === "success") typeClass = "alert-success"; + if (tipo === "warning") typeClass = "alert-warning"; + if (tipo === "danger" || tipo === "error") typeClass = "alert-danger"; + + resumo.removeClass("alert-info alert-success alert-warning alert-danger"); + resumo.addClass(typeClass); + resumo.text(mensagem || ("Conferencia: " + totalItens + " item(ns), " + divergencias + " divergencia(s).")); +} + +function toFloatSafe(value) { + var text = String(value == null ? "" : value).replace(",", ".").trim(); + var n = parseFloat(text); + return isNaN(n) ? 0 : n; +} + +function formatConferenciaNumero(value) { + var n = toFloatSafe(value); + return String(n).indexOf(".") >= 0 ? n.toFixed(2) : String(n); +} + +function escapeHtml(value) { + return String(value == null ? "" : value) + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/\"/g, """) + .replace(/'/g, "'"); +} + +function consultarChaveNfe() { + var key = normalizeNfeKey($("#chaveNfe").val()); + $("#chaveNfe").val(key); + clearNfeConsultaFields(); + + if (key.length !== 44) { + setNfeFeedback("Informe uma chave com 44 digitos para consultar.", "warning"); + return; + } + + setNfeFeedback("Consultando chave da NFe...", "info"); + + try { + var constraint = DatasetFactory.createConstraint("key", key, key, ConstraintType.MUST); + var dataset = DatasetFactory.getDataset("ds_fiscal_invoice_by_keys", null, [constraint], null); + + if (!dataset || !dataset.values || dataset.values.length === 0) { + setNfeFeedback("Nao foi possivel consultar a NFe no momento.", "error"); + return; + } + + var row = dataset.values[0] || {}; + var success = String(row.success || "").toLowerCase() === "true"; + + if (!success) { + setNfeFeedback(String(row.message || "NFe nao encontrada para a chave informada."), "error"); + return; + } + + fillNfeConsultaFields(row); + + if ($("#invoiceIdNfeConsulta").val() === "") { + setNfeFeedback("A consulta retornou sem identificador tecnico da NFe.", "error"); + return; + } + + setNfeFeedback("NFe localizada e vinculada a solicitacao.", "success"); + } catch (e) { + setNfeFeedback("Erro ao consultar chave da NFe: " + e, "error"); + } +} var beforeSendValidate = function (numState, nextState) { $(".errorValidate").removeClass("errorValidate"); if (numState == 0 || numState == 1) { @@ -288,16 +923,71 @@ var beforeSendValidate = function (numState, nextState) { } else if (numState == 4) { // } else if (numState == 6) { - // + var chaveNfe = normalizeNfeKey($("#chaveNfe").val()); + $("#chaveNfe").val(chaveNfe); + + if (chaveNfe == "") { + $("#chaveNfe").parent("div").addClass("errorValidate"); + throw "'Chave de acesso da NFe' e obrigatoria."; + } + + if (chaveNfe.length !== 44) { + $("#chaveNfe").parent("div").addClass("errorValidate"); + throw "'Chave de acesso da NFe' deve conter 44 digitos."; + } + + if ($("#invoiceIdNfeConsulta").val() == "") { + $("#chaveNfe").parent("div").addClass("errorValidate"); + throw "Consulte a chave da NFe antes de enviar a etapa."; + } + + var qtdDivergencias = parseInt($("#qtdDivergenciasNfe").val() || "0", 10); + if (!isNaN(qtdDivergencias) && qtdDivergencias > 0) { + throw "Existem " + qtdDivergencias + " divergencia(s) entre itens solicitados e itens da NFe."; + } + } else if (numState == 31) { + if ($("#motoristaColetaNome").val() == "") { + throw "'Motorista responsável pela coleta' é obrigatório."; + } + if ($("#dataColeta").val() == "") { + throw "'Data da coleta' é obrigatória."; + } + var tipoMotoristaEntrega31 = $("input[name='tipoMotoristaEntrega']:checked").val(); + if (!tipoMotoristaEntrega31) { + throw "Informe quem vai fazer a entrega (mesmo motorista da coleta ou outro)."; + } + if (tipoMotoristaEntrega31 === "mesmo") { + if ($("#motoristaColetaLogin").val() == "") { + throw "Nao foi encontrado login do motorista da coleta para enviar a etapa de entrega."; + } + $("#motoristaEntregaNome").val($("#motoristaColetaNome").val()); + $("#motoristaEntregaLogin").val($("#motoristaColetaLogin").val()); + } else if ($("#motoristaEntregaLogin").val() == "") { + throw "Selecione o outro motorista responsavel pela entrega."; + } + } else if (numState == 57) { + if ($("#motoristaEntregaLogin").val() == "") { + throw "Motorista da entrega nao definido. Configure na etapa de coleta."; + } + + if ($("#motoristaEntregaNome").val() == "") { + throw "'Motorista responsável pela entrega' é obrigatório."; + } + if ($("#dataEntrega").val() == "") { + var entregaNow = getCurrentDate(); + $("#dataEntrega").val(entregaNow[0] + " " + entregaNow[1]); + } + if ($("#dataEntrega").val() == "") { + throw "'Data da entrega' é obrigatória."; + } } else if (numState == 18) { - if ( - $("input[name='validacaoItens']:checked").val() == "" || - $("input[name='validacaoItens']:checked").val() == undefined - ) { - throw "'Consegue resolver?' é obrigatório."; + var validacaoItens = $("input[name='validacaoItens']:checked").val(); + if (validacaoItens == "" || validacaoItens == undefined) { + throw "'Validação do recebimento' é obrigatória."; } else if ( - $("input[name='validacaoItens']:checked").val() == "naoEntregue" || - $("input[name='validacaoItens']:checked").val() == "incorreto" + validacaoItens == "divergencia" || + validacaoItens == "naoEntregue" || + validacaoItens == "incorreto" ) { if ($("#justificativaDecisaoItens").val() == "") { $("#justificativaDecisaoItens") @@ -358,24 +1048,38 @@ function setSelectedZoomItem(selectedItem) { // } if (name_item == "centroCusto") { - $("#gestorNome").val(selectedItem["gestorCentroCusto"]); - $("#gestorEmail").val(selectedItem["emailGestor"]); - $("#gestor_cc").val(selectedItem["idGestor"]); + $("#gestorNome").val(selectedItem["RESPONSAVEL_LOJA"] || ""); + $("#gestorEmail").val(selectedItem["emailGestor"] || ""); + $("#gestor_cc").val(selectedItem["COLLEAGUE_ID"] || ""); } if (name_item == "estabelecimento") { - $("#gestorNomeE").val(selectedItem["gestorCentroCusto"]); - $("#gestorEmailE").val(selectedItem["emailGestor"]); - $("#gestor_cce").val(selectedItem["idGestor"]); + $("#gestorNomeE").val(selectedItem["RESPONSAVEL_LOJA"] || ""); + $("#gestorEmailE").val(selectedItem["emailGestor"] || ""); + $("#gestor_cce").val(selectedItem["COLLEAGUE_ID"] || ""); } if (name_item == "userSolicitante") { $("#emailSolicitante").val(selectedItem.mail); } + + if (name_item == "motoristaEntregaSelecionado") { + var motoristaNome = selectedItem["NOME"] || selectedItem["colleagueName"] || selectedItem["LOGIN"] || selectedItem["login"] || ""; + var motoristaColleagueId = selectedItem["COLLEAGUE_ID"] || selectedItem["colleaguePK.colleagueId"] || ""; + $("#motoristaEntregaNome").val(String(motoristaNome || "")); + $("#motoristaEntregaLogin").val(String(motoristaColleagueId || "")); + $("#tipoMotoristaEntregaOutro").prop("checked", true); + applyMotoristaEntregaMode("outro", true); + } if (name_item == "descricao") { var itemDescricao = selectedItem["descricao"] || selectedItem["Description"] || ""; + var itemCode = selectedItem["Code"] || selectedItem["sku"] || ""; + var itemProductId = selectedItem["id"] || selectedItem["productId"] || ""; $("#codigoItem" + "___" + indice).val(itemDescricao); + $("#codigoProdutoItem" + "___" + indice).val(itemCode); + $("#productIdItem" + "___" + indice).val(itemProductId); + processarConferenciaNfe(); } } @@ -396,17 +1100,32 @@ function removedZoomItem(removedItem) { $("#gestorNome").val(""); $("#gestorEmail").val(""); $("#gestor_cc").val(""); + } else if (name_item == "estabelecimento") { + $("#gestorNomeE").val(""); + $("#gestorEmailE").val(""); + $("#gestor_cce").val(""); + } else if (name_item == "motoristaEntregaSelecionado") { + if ($("input[name='tipoMotoristaEntrega']:checked").val() === "outro") { + $("#motoristaEntregaNome").val(""); + $("#motoristaEntregaLogin").val(""); + } } else if (~name_item.indexOf("___")) { var linha = name_item.split("___"); if (linha[0] == "descricao") { $("#codigoItem___" + linha[1]).val(""); + $("#codigoProdutoItem___" + linha[1]).val(""); + $("#productIdItem___" + linha[1]).val(""); $("#quantidadeItem___" + linha[1]).val(""); + processarConferenciaNfe(); } } if (name_item == "descricao") { $("#codigoItem" + "___" + indice).val(""); + $("#codigoProdutoItem" + "___" + indice).val(""); + $("#productIdItem" + "___" + indice).val(""); + processarConferenciaNfe(); } } @@ -425,6 +1144,7 @@ function updt_line() { function remove_row(element) { fnWdkRemoveChild(element); updt_line(); + processarConferenciaNfe(); } @@ -767,26 +1487,40 @@ function btnState(idInput, acao, btn){ */ function displayBtnFiles(){ try{ + var mode = getFormMode(); + var allowedInputs = getAllowedAttachmentInputs(); $('.componentAnexo').each(function(i, element) { let inputFile = $(element).find(".inputAnexo") + let inputId = inputFile.attr("id") || ""; + let normalizedInputId = inputId.indexOf("_") === 0 ? inputId.substring(1) : inputId; let btnUpFile = $(element).find(".btnUpFile"); let btnViewerFile = $(element).find(".btnViewerFile"); let btnDownloadFile = $(element).find(".btnDownloadFile"); + let canUploadHere = allowedInputs.indexOf(normalizedInputId) >= 0; - if(getFormMode() == "VIEW"){ + if(mode == "VIEW"){ btnUpFile.remove(); if(inputFile.val() != ""){ btnViewerFile.prop("disabled", false); btnViewerFile.show() + btnDownloadFile.prop("disabled", false); + btnDownloadFile.show() } } - if(getFormMode() == "MOD" && inputFile.val() != ""){ - btnUpFile.remove(); - // btnState(inputFile[0].id, "delete", "viewer") - btnViewerFile.prop("disabled", false); - btnViewerFile.show() - btnDownloadFile.prop("disabled", false); - btnDownloadFile.show() + if(mode == "MOD"){ + if(inputFile.val() != ""){ + if(canUploadHere){ + btnState(inputId, "delete", "viewer"); + } else { + btnUpFile.remove(); + btnViewerFile.prop("disabled", false); + btnViewerFile.show() + btnDownloadFile.prop("disabled", false); + btnDownloadFile.show() + } + } else if(!canUploadHere){ + btnUpFile.remove(); + } } }); }catch(e){ @@ -795,7 +1529,35 @@ function displayBtnFiles(){ } } +function getAllowedAttachmentInputs() { + var mode = getFormMode(); + var activity = String($("#activity").val() || ""); + + if (mode === "VIEW") { + return []; + } + + if (mode !== "MOD" && mode !== "ADD") { + return []; + } + + if (activity === "6") { + return ["fnAnexo_Nfe"]; + } + if (activity === "31") { + return ["fdAnexo_Coleta"]; + } + if (activity === "57") { + return ["fdAnexo_Entrega"]; + } + if (activity === "18") { + return ["fdAnexo_recebimento"]; + } + + return []; +} + /** * Remove o botão de upload/delete * @param {String} inputFile Parâmetro obrigatório, Id do campo @@ -804,7 +1566,11 @@ function displayBtnFiles(){ */ function invisibleBtnUpload(inputFile){ try{ - if(getFormMode() == "MOD" || getFormMode() == "VIEW"){ + var mode = getFormMode(); + var allowedInputs = getAllowedAttachmentInputs(); + var canUploadHere = allowedInputs.indexOf(inputFile) >= 0; + + if(mode == "VIEW" || ((mode == "MOD" || mode == "ADD") && !canUploadHere)){ if($(`#_${inputFile}`).length){ let btnUpFile = $(`#_${inputFile}`).parent().parent().find(".btnUpFile"); btnUpFile.remove(); @@ -925,3 +1691,4 @@ window.parent.$("#ecm-navigation-inputFile-clone").on('change', function () { carregarItensDoExcel("excelUpload"); } }); + diff --git a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/totvsflow_solicitacao_transferencia.html b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/totvsflow_solicitacao_transferencia.html index 11ae815..d1d5740 100644 --- a/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/totvsflow_solicitacao_transferencia.html +++ b/Transferência Ginseng/forms/totvsflow_solicitacao_transferencia/totvsflow_solicitacao_transferencia.html @@ -251,7 +251,9 @@ 'placeholder':'Selecione a filial de origem', 'fields':[ {'field':'PDV','label':'Loja'}, - {'field':'RESPONSAVEL_LOJA','label':'Gestor'} + {'field':'RESPONSAVEL_LOJA','label':'Gestor'}, + {'field':'LOGIN_LOJA','label':'Login','visible':'false'}, + {'field':'COLLEAGUE_ID','label':'Colleague','visible':'false'} ] }" /> @@ -264,7 +266,9 @@ 'placeholder':'Selecione a filial de destino', 'fields':[ {'field':'PDV','label':'Loja'}, - {'field':'RESPONSAVEL_LOJA','label':'Gestor'} + {'field':'RESPONSAVEL_LOJA','label':'Gestor'}, + {'field':'LOGIN_LOJA','label':'Login','visible':'false'}, + {'field':'COLLEAGUE_ID','label':'Colleague','visible':'false'} ] }" /> @@ -308,7 +312,8 @@ 'fields':[ {'field':'Code','label':'Codigo'}, {'field':'Description','label':'Descricao'}, - {'field':'descricao','label':'Descricao item'} + {'field':'descricao','label':'Descricao item'}, + {'field':'id','label':'ID','visible':'false'} ] }" /> @@ -317,6 +322,8 @@ + + + + +
+
+ +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+

Conferência da NFe x Solicitação

+
+ Consulte a chave da NFe para gerar o confronto dos itens. +
+
+ + + + + + + + + + + + + + +
Chave de comparaçãoQtd. solicitadaQtd. NFeStatus
Sem conferência.
+
+
+
+ -
- - - - - +
+

Validação do Recebimento

+
+
+ +
+ + +
+
+
+ +
+ +
+

Rastreabilidade de Motorista - Coleta

+
+
+ + +
+
+ + +
+
+
+
+ +
+ + +
+
+
+ +
+ +
+

Rastreabilidade de Motorista - Entrega

+
+
+ + +
+
+ + +
-
- - - - - -
- -
- - - - - -
- -
- - - - - -
@@ -386,17 +535,18 @@ + + + + + +
- - + diff --git a/Transferência Ginseng/workflow/.resources/Solicitação de transferência.ecm30.xml b/Transferência Ginseng/workflow/.resources/Solicitação de transferência.ecm30.xml index 340a6d9..1be2345 100644 --- a/Transferência Ginseng/workflow/.resources/Solicitação de transferência.ecm30.xml +++ b/Transferência Ginseng/workflow/.resources/Solicitação de transferência.ecm30.xml @@ -29,7 +29,7 @@ 1 Transferência Ginseng - 42 + 46 590 @@ -230,7 +230,7 @@ true true false - 1370 + 1170 270 0 0 @@ -282,8 +282,8 @@ true true false - 1520 - 490 + 1410 + 479 0 0 false @@ -318,7 +318,8 @@ false 0 - + Pool Grupo + <AssignmentController><Group>Motoristas</Group></AssignmentController> 1 false false @@ -333,7 +334,7 @@ true true false - 870 + 850 679 0 0 @@ -369,7 +370,8 @@ false 0 - + Campo Formulário + <AssignmentController><FormField>motoristaEntregaLogin</FormField></AssignmentController> 1 false true @@ -384,7 +386,7 @@ true false false - 1280 + 1100 679 0 0 @@ -446,7 +448,7 @@ 0 true - 1540 + 1430 250 false 1 @@ -456,56 +458,6 @@ false - - - 1 - Transferência Ginseng - 1 - 62 - - Validar Coleta - Validar Coleta - false - false - false - - 0 - true - 760 - 470 - false - 1 - 120 - 0 - 0 - - false - - - - 1 - Transferência Ginseng - 1 - 90 - - Validar Entrega - Validar Entrega - false - false - false - - 0 - true - 1040 - 655 - false - 1 - 120 - 0 - 0 - - false - 1 @@ -582,7 +534,7 @@ false false false - 1700 + 1610 284 0 0 @@ -652,7 +604,7 @@ 1 Transferência Ginseng 1 - 86 + 96 Fim Fim @@ -676,7 +628,7 @@ false false false - 980 + 770 510 0 0 @@ -694,53 +646,6 @@ false - - - 1 - Transferência Ginseng - 1 - 93 - - Fim - Fim - Atividade final do processo - 0 - false - 0 - - - 0 - false - true - false - 0 - 1 - 0 - 0 - false - - 0 - false - false - false - 1180 - 610 - 0 - 0 - false - false - 0 - 0 - false - - 6 - 60 - 0 - false - 0 - - false - @@ -748,10 +653,10 @@ 1 Transferência Ginseng 1 - 42 + 46 2 - true + hAPI.getCardValue("gestor_cce") != "" 4 <AssignmentController><FormField>gestor_cce</FormField></AssignmentController> Campo Formulário @@ -762,10 +667,10 @@ 1 Transferência Ginseng 2 - 42 + 46 2 - hAPI.getCardValue("estabelecimento") == "" + true 6 <AssignmentController><User>logistica</User></AssignmentController> Usuário @@ -776,7 +681,7 @@ 1 Transferência Ginseng 1 - 42 + 46 46 hAPI.getCardValue("validacaoItens") == "entregue" @@ -788,1496 +693,13 @@ 1 Transferência Ginseng 2 - 42 + 46 46 true 24 0 - - - 1 - Transferência Ginseng - 1 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "" - 86 - 0 - - - - 1 - Transferência Ginseng - 2 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ HIPER FAROL - (CARREFOUR)" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 3 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ MOREIRA LIMA" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 4 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ SHOPPING PÁTIO" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 5 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ MÁRIO DE GUSMÃO(ATACADAO)"|| hAPI.getCardValue("estabelecimento") == "LJ MÁRIO DE GUSMÃO(ATACADO)" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 6 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ GBARBOSA TABULEIRO" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 7 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ LIVRAMENTO" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 8 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ RIO LARGO" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 9 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ SHOPPING CIDADE" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 10 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ SUPER GIRO" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 11 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "HIB CAMPO ALEGRE" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 12 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "ER PITANGUINHA" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 13 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "TÔ QUE TÔ MACEIÓ CENTRO" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 14 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ MIX MATEUS" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 15 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "ER RIO LARGO" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 16 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "CD SERRARIA" - 31 - <AssignmentController><Group>Motoristas</Group></AssignmentController> - Pool Grupo - 0 - - - - 1 - Transferência Ginseng - 17 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "ESCRITÓRIO MATRIZ" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 18 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ MACEIÓ SHOPPING TERREO" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 19 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ MACEIÓ SHOPPING EXPANSÃO" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 20 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ GBARBOSA SERRARIA" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 21 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ PONTA VERDE" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 22 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ HIPER JATIÚCA (ASSAÍ)" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 23 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ GBARBOSA S.MARIS" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 24 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ JACINTINHO" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 25 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ PARQUE SHOPPING" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 26 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ HIPER ANTARES" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 27 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ UNICOMPRA PONTA VERDE" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 28 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "HIB MARECHAL DEODORO" - 31 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 29 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "ER ANTARES" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 30 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ CARAJÁS" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 31 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "QDB PARQUE SHOPPING" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 32 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "QDB MACEIO SHOPPING" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 33 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ LAGARTO" - 31 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 34 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "HIB ITABAIANINHA" - 31 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 35 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "ER LAGARTO" - 31 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 36 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ GBARBOSA SOCORRO" - 31 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 37 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "ER SOCORRO" - 31 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 38 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "HIB BARRA DOS COQUEIROS" - 31 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 39 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ SHOPPING PREMIO SOCORRO" - 31 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 40 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ BOULEVARD SHOPPING" - 31 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 41 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ PRACA 9 DE NOVEMBRO" - - 31 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 42 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ GALERIA PANVICON" - 31 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 43 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "ER CONDEUBA" - 31 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 44 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "QQ SHOPPING CONQUISTA" - 31 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 45 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ ASSAI VITORIA DA CONQUISTA" - 31 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 46 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ BAIRRO BRASIL" - 31 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 47 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "HIB BARRA DO CHOCA" - 31 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 48 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ SHOPPING CONQUISTA SUL" - 31 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 49 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "ER VITORIA DA CONQUISTA" - 31 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 50 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "HIB CANDIDO SALES" - 31 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 51 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ RUA ZEFERINO CORREIA" - 31 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 52 - 42 - 62 - - hAPI.getCardValue("estabelecimento") == "LJ MIX MATEUS TABULEIRO" - 31 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 1 - 42 - 90 - - hAPI.getCardValue("centroCusto") =="" - 93 - 0 - - - - 1 - Transferência Ginseng - 2 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ HIPER FAROL - (CARREFOUR)" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 3 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ MOREIRA LIMA" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 4 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ SHOPPING PÁTIO" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 5 - 42 - 90 - - hAPI.getCardValue("estabelecimento") == "LJ MÁRIO DE GUSMÃO(ATACADAO)"|| hAPI.getCardValue("estabelecimento") == "LJ MÁRIO DE GUSMÃO(ATACADO)" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 6 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ GBARBOSA TABULEIRO" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 7 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ LIVRAMENTO" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 8 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ RIO LARGO" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 9 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ SHOPPING CIDADE" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 10 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ SUPER GIRO" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 11 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "HIB CAMPO ALEGRE" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 12 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "ER PITANGUINHA" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 13 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "TÔ QUE TÔ MACEIÓ CENTRO" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 14 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ MIX MATEUS" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 15 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "ER RIO LARGO" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 16 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "CD SERRARIA" - 57 - <AssignmentController><Group>Motoristas</Group></AssignmentController> - Pool Grupo - 0 - - - - 1 - Transferência Ginseng - 17 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "ESCRITÓRIO MATRIZ" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 18 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ MACEIÓ SHOPPING TERREO" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 19 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ MACEIÓ SHOPPING EXPANSÃO" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 20 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ GBARBOSA SERRARIA" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 21 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ PONTA VERDE" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 22 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ HIPER JATIÚCA (ASSAÍ)" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 23 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ GBARBOSA S.MARIS" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 24 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ JACINTINHO" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 25 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ PARQUE SHOPPING" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 26 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ HIPER ANTARES" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 27 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ UNICOMPRA PONTA VERDE" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 28 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "HIB MARECHAL DEODORO" - 57 - <AssignmentController><User>001025</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 29 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "ER ANTARES" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 30 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ CARAJÁS" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 31 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "QDB PARQUE SHOPPING" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 32 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "QDB MACEIO SHOPPING" - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 33 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ LAGARTO" - 57 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 34 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "HIB ITABAIANINHA" - 57 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 35 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "ER LAGARTO" - 57 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 36 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "HIB ITABAIANINHA" - 57 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 37 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "ER LAGARTO" - 57 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 38 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ GBARBOSA SOCORRO" - 57 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 39 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "ER SOCORRO" - 57 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 40 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "HIB BARRA DOS COQUEIROS" - 57 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 41 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ SHOPPING PREMIO SOCORRO" - 57 - <AssignmentController><User>001217</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 42 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ BOULEVARD SHOPPING" - 57 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 43 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ PRACA 9 DE NOVEMBRO" - 57 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 44 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ GALERIA PANVICON" - 57 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 45 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "ER CONDEUBA" - 57 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 46 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "QQ SHOPPING CONQUISTA" - 57 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 47 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ ASSAI VITORIA DA CONQUISTA" - 57 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 48 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ BAIRRO BRASIL" - 57 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 49 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "HIB BARRA DO CHOCA" - 57 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 50 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ SHOPPING CONQUISTA SUL" - 57 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 51 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "ER VITORIA DA CONQUISTA" - 57 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 52 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "HIB CANDIDO SALES" - 57 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 53 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ RUA ZEFERINO CORREIA" - - 57 - <AssignmentController><User>motorista.ginseng</User></AssignmentController> - Usuário - 0 - - - - 1 - Transferência Ginseng - 54 - 42 - 90 - - hAPI.getCardValue("centroCusto") == "LJ MIX MATEUS TABULEIRO" - - 57 - <AssignmentController><User>001509</User></AssignmentController> - Usuário - 0 - @@ -2358,7 +780,7 @@ 1 41 - + Aprovado e emitir NFE false 4 6 @@ -2453,23 +875,6 @@ false 0 - - - 1 - Transferência Ginseng - 1 - 84 - - - false - 62 - 31 - - Alocar motorista - false - false - 0 - 1 @@ -2492,31 +897,14 @@ 1 Transferência Ginseng 1 - 87 + 95 - - false - 62 - 86 - - Processo finalizado - false - false - 0 - - - - 1 - Transferência Ginseng - 1 - 88 - - + Enviar para coleta false 6 - 62 + 31 - Emitida + Enviar para coleta false false 0 @@ -2526,28 +914,28 @@ 1 Transferência Ginseng 1 - 91 + 97 + + Cancelar Transferência + false + 6 + 96 + + Finalizar + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 98 false 31 - 90 - - - false - false - 0 - - - - 1 - Transferência Ginseng - 1 - 92 - - - false - 90 57 @@ -2555,23 +943,6 @@ false 0 - - - 1 - Transferência Ginseng - 1 - 94 - - - false - 90 - 93 - - Filial nao identificada - false - false - 0 - @@ -2665,7 +1036,7 @@ 1 Transferência Ginseng - 42 + 46 5 1 @@ -2676,7 +1047,7 @@ 1 Transferência Ginseng - 42 + 46 5 2 @@ -2687,7 +1058,7 @@ 1 Transferência Ginseng - 42 + 46 7 1 @@ -2698,18 +1069,18 @@ 1 Transferência Ginseng - 42 + 46 26 1 - 1422 - 528 + 1223 + 517 1 Transferência Ginseng - 42 + 46 61 1 @@ -2720,34 +1091,23 @@ 1 Transferência Ginseng - 42 - 84 - 1 - - 789 - 717 - - - - 1 - Transferência Ginseng - 42 + 46 85 1 - 1332 - 316 + 1149 + 308 1 Transferência Ginseng - 42 - 94 + 46 + 95 1 - 1068 - 627 + 543 + 717 @@ -2815,7 +1175,7 @@ 0 0 Transferência Ginseng - 42 + 46 4 approval title @@ -2825,7 +1185,7 @@ 0 0 Transferência Ginseng - 42 + 46 4 approval description @@ -2835,7 +1195,7 @@ 0 0 Transferência Ginseng - 42 + 46 4 approval highlight @@ -2845,7 +1205,7 @@ 0 0 Transferência Ginseng - 42 + 46 4 approval approve @@ -2855,7 +1215,7 @@ 0 0 Transferência Ginseng - 42 + 46 4 approval reject @@ -2865,7 +1225,7 @@ 0 0 Transferência Ginseng - 42 + 46 6 approval title @@ -2875,7 +1235,7 @@ 0 0 Transferência Ginseng - 42 + 46 6 approval description @@ -2885,7 +1245,7 @@ 0 0 Transferência Ginseng - 42 + 46 6 approval highlight @@ -2895,7 +1255,7 @@ 0 0 Transferência Ginseng - 42 + 46 6 approval approve @@ -2905,7 +1265,7 @@ 0 0 Transferência Ginseng - 42 + 46 6 approval reject @@ -2915,7 +1275,7 @@ 0 0 Transferência Ginseng - 42 + 46 24 approval title @@ -2925,7 +1285,7 @@ 0 0 Transferência Ginseng - 42 + 46 24 approval description @@ -2935,7 +1295,7 @@ 0 0 Transferência Ginseng - 42 + 46 24 approval highlight @@ -2945,7 +1305,7 @@ 0 0 Transferência Ginseng - 42 + 46 24 approval approve @@ -2955,7 +1315,7 @@ 0 0 Transferência Ginseng - 42 + 46 24 approval reject diff --git a/Transferência Ginseng/workflow/.resources/Solicitação de transferência.png b/Transferência Ginseng/workflow/.resources/Solicitação de transferência.png index 9b16221..b1b8e7b 100644 Binary files a/Transferência Ginseng/workflow/.resources/Solicitação de transferência.png and b/Transferência Ginseng/workflow/.resources/Solicitação de transferência.png differ diff --git a/Transferência Ginseng/workflow/.resources/Solicitação de transferência.processimage.svg b/Transferência Ginseng/workflow/.resources/Solicitação de transferência.processimage.svg index 3b406fe..2da3c39 100644 --- a/Transferência Ginseng/workflow/.resources/Solicitação de transferência.processimage.svg +++ b/Transferência Ginseng/workflow/.resources/Solicitação de transferência.processimage.svg @@ -1,2 +1,2 @@ -MotoristaAnalista de suprimentosLogisticaGerente de lojaSolicitação de TransferênciaValidarLojaAprovarTransferênciaEmitir NFEde TransfReceberProdutosVerificarproblemaColetarProdutoValidarprodutoEntregarProdutoValidarColetaValidarEntregaGestor IdentificadoLoja sem GestorAprovarReprovarReprovarCancelarAlocar motoristaValidar produtosrecebidosProcesso finalizadoEmitidaFilial nao identificada +MotoristaAnalista de suprimentosLogisticaGerente de lojaSolicitação de TransferênciaValidarLojaAprovarTransferênciaEmitir NFEde TransfReceberProdutosVerificarproblemaColetarProdutoValidarprodutoEntregarProdutoGestor IdentificadoLoja sem GestorAprovarReprovarReprovarCancelarValidar produtosrecebidosEnviar para coletaFinalizar diff --git a/Transferência Ginseng/workflow/.resources/teste3.ws.cache b/Transferência Ginseng/workflow/.resources/teste3.ws.cache new file mode 100644 index 0000000..42a479c --- /dev/null +++ b/Transferência Ginseng/workflow/.resources/teste3.ws.cache @@ -0,0 +1,792 @@ + + + + + volume + + + Default + + + + + mecanismoGrupo + + + + + Tecnologia e Comunicação + + + TIC + + + + + + + Compras Indiretos + + + ComprasIndiretos + + + + + + + Obras e manutenção + + + Manutencao + + + + + + + Aprovadores Compras Nvl 3 + + + AprovadoresComprasNvl3 + + + + + + + Motoristas + + + Motoristas + + + + + + + Requisitantes de Vaga + + + Requisitantesdevaga + + + + + + + Recrutamento + + + Recrutamento + + + + + + + TODOS-TODOS-DIADMISSAO + + + TODOS-TODOS-DIADMISSAO + + + + + + + ResponsavelDesligamento + + + ResponsavelDesligamento + + + + + + + GENTE & CULTURA + + + GENTE_CULTURA + + + + + + + LOJA AL + + + LOJA_AL + + + + + + + CD + + + CD + + + + + + + ESPAÇO DO REVENDEDOR AL + + + ESPACO_DO_REVENDEDOR_AL + + + + + + + FINANCEIRO + + + FINANCEIRO + + + + + + + OPERAÇÕES + + + OPERACOES + + + + + + + AMG AL + + + AMG_AL + + + + + + + REGIONAL ALAGOAS + + + REGIONAL_ALAGOAS + + + + + + + PREVENÇÃO DE PERDA + + + PREVENCAO_DE_PERDA + + + + + + + MARKETING, TREINAMENTO + + + MARKETING_TREINAMENTO + + + + + + + SECRETARIA EXECUTIVA + + + SECRETARIA_EXECUTIVA + + + + + + + DIRETORIA EXECUTIVA + + + DIRETORIA_EXECUTIVA + + + + + + + INFRAESTRUTURA + + + INFRAESTRUTURA + + + + + + + ESPAÇO DO REVENDEDOR BA + + + ESPACO_DO_REVENDEDOR_BA + + + + + + + BUSINESS INTELLIGENCE + + + BUSINESS_INTELLIGENCE + + + + + + + DEPARTAMENTO PESSOAL + + + DEPARTAMENTO_PESSOAL + + + + + + + LOJA BA + + + LOJA_BA + + + + + + + TREINAMENTO + + + TREINAMENTO + + + + + + + AMG BA + + + AMG_BA + + + + + + + MARKETING + + + MARKETING + + + + + + + COMPRAS + + + COMPRAS + + + + + + + AMG SE + + + AMG_SE + + + + + + + LOJA SE + + + LOJA_SE + + + + + + + ESPAÇO DO REVENDEDOR SE + + + ESPACO_DO_REVENDEDOR_SE + + + + + + + VENDAS IN COMPANY + + + VENDAS_IN_COMPANY + + + + + + + REGIONAL BAHIA + + + REGIONAL_BAHIA + + + + + + + CANAL LOJA 01 + + + CANAL_LOJA_01 + + + + + + + AUDITORIA + + + AUDITORIA + + + + + + + CANAL LOJA 02 + + + CANAL_LOJA_02 + + + + + + + PLANEJAMENTO DE DEMANDAS + + + PLANEJAMENTO_DE_DEMANDAS + + + + + + + PROJETOS + + + PROJETOS + + + + + + + COMPLIANCE + + + COMPLIANCE + + + + + + + ESCRITÓRIO - MATRIZ + + + ESCRITORIO_MATRIZ + + + + + + + ESCRITÓRIO - CONQUISTA + + + ESCRITORIO_CONQUISTA + + + + + + + REGIONAL SERGIPE + + + REGIONAL_SERGIPE + + + + + + + Transferencia + + + Transferencia + + + + + + + expediente + + + Default + + + Expediente BackOffice, Logística e Motorista + + + Expediente Escritório Matriz + + + Expediente Lojas + + + + + camposFormulario, documentoId = 590 + + + activity + + + centroCusto + + + chaveNfe + + + codigoItem + + + codigoProdutoItem + + + currentUserId + + + currentUsermail + + + currentUserName + + + dataAbertura + + + dataColeta + + + dataEmissaoApiNfe + + + dataEmissaoNfe + + + dataEntradaNfeConsulta + + + dataEntrega + + + descAnexo_Coleta + + + descAnexo_Entrega + + + descAnexo_Nfe + + + descAnexo_Recebimento + + + descricao + + + emailSolicitante + + + estabelecimento + + + excelUpload + + + fdAnexo_Coleta + + + fdAnexo_Entrega + + + fdAnexo_recebimento + + + fnAnexo_Nfe + + + formMode + + + fornecedorNfeConsulta + + + gestorEmail + + + gestorEmailE + + + gestorNome + + + gestorNomeE + + + gestor_cc + + + gestor_cce + + + invoiceIdNfeConsulta + + + itensNfeConsulta + + + itensNfeJson + + + justificativa + + + lojaNfeConsulta + + + motoristaColetaLogin + + + motoristaColetaNome + + + motoristaEntregaLogin + + + motoristaEntregaNome + + + motoristaEntregaSelecionado + + + numeroNfeConsulta + + + operacaoNfeConsulta + + + productIdItem + + + qtdDivergenciasNfe + + + quantidadeItem + + + requesterId + + + requesterMail + + + requesterName + + + serieNfeConsulta + + + situacaoNfeConsulta + + + storeIdNfeConsulta + + + tipoMotoristaEntrega + + + usuarioEmissorNfe + + + valorNfeConsulta + + + WKNumProces + + + + + mecanismo + + + + + Atribuição por Associação + + + Associado + + + + + + + Atribuição por Campo de Formulário + + + Campo Formulário + + + + + + + dpf_di_emp_filial_filtro + + + dpf_di_emp_filial_filtro + + + + + + + dpf_di_inicio_diadmissao + + + dpf_di_inicio_diadmissao + + + + + + + Atribuição por Executor de Atividade + + + Executor Atividade + + + + + + + Atribuição por Grupo + + + Grupo + + + + + + + Atribuição por Grupos do Colaborador + + + Grupos Colaborador + + + + + + + mecCustomAprov + + + mecCustomAprov + + + + + + + Atribuição por Papel + + + Papel + + + + + + + Atribuição para um Grupo + + + Pool Grupo + + + + + + + Atribuição para um Papel + + + Pool Papel + + + + + + + Atribuição por Usuário + + + Usuário + + + + + + + diff --git a/Transferência Ginseng/workflow/.resources/teste3.ws.cache.bkp b/Transferência Ginseng/workflow/.resources/teste3.ws.cache.bkp new file mode 100644 index 0000000..e69de29 diff --git a/Transferência Ginseng/workflow/diagrams/.project b/Transferência Ginseng/workflow/diagrams/.project new file mode 100644 index 0000000..d147ec9 --- /dev/null +++ b/Transferência Ginseng/workflow/diagrams/.project @@ -0,0 +1,11 @@ + + + diagrams + + + + + + + + diff --git a/Transferência Ginseng/workflow/diagrams/Solicitação de transferência.process b/Transferência Ginseng/workflow/diagrams/Solicitação de transferência.process index 248d9b3..9b00760 100644 --- a/Transferência Ginseng/workflow/diagrams/Solicitação de transferência.process +++ b/Transferência Ginseng/workflow/diagrams/Solicitação de transferência.process @@ -1,5 +1,5 @@ - + @@ -112,7 +112,7 @@ - + @@ -124,9 +124,9 @@ - + - + @@ -138,7 +138,7 @@ - + @@ -152,9 +152,9 @@ - + - + @@ -192,7 +192,7 @@ - + @@ -216,7 +216,7 @@ - + @@ -226,9 +226,9 @@ - + - + @@ -266,70 +266,12 @@ - - - - - - - - + + - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -3498,6 +3440,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3560,7 +3537,7 @@ - + @@ -3653,27 +3630,11 @@ - - - - - - - - - - - - - - - - - + @@ -3683,13 +3644,13 @@ - + - + - + - + @@ -3699,12 +3660,13 @@ + - + - + @@ -3715,11 +3677,11 @@ - + - + - + @@ -3730,37 +3692,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -3783,39 +3714,33 @@ - + - + - + - - + + - + - - - - - - - - - - + + + + \ No newline at end of file diff --git a/workflow/.resources/Solicitação de transferência.ecm30.xml b/workflow/.resources/Solicitação de transferência.ecm30.xml new file mode 100644 index 0000000..02197e4 --- /dev/null +++ b/workflow/.resources/Solicitação de transferência.ecm30.xml @@ -0,0 +1,2967 @@ + + + + 1 + Transferência Ginseng + + Transferência Ginseng + Este flow permite abertura de solicitação de transferências automatizadas, informando qual item será transferido e direcionado para as aprovações corretas. + true + false + Default + Transferência + Usuário + <AssignmentController><User>projetos</User></AssignmentController> + 0 + 0 + 0 + Default + false + + 1 + true + false + 172800 + 0 + true + + + + 1 + Transferência Ginseng + 42 + + + 590 + true + true + false + true + false + false + 0 + 2 + + false + false + true + + + + + 1 + Transferência Ginseng + 1 + 1 + + Solicitar transferência + Solicitar transferência + + 0 + false + 0 + + + 1 + true + false + false + 0 + 0 + 0 + 0 + false + + 0 + true + true + false + 100 + 83 + 0 + 0 + false + false + 0 + 0 + false + + 0 + 10 + 0 + false + 0 + 0 + 0 + 0 + + false + + + + 1 + Transferência Ginseng + 1 + 4 + + Aprovar Transferência + Aprovar Transferência + + 16200 + + false + 0 + + 1 + false + false + false + 0 + 0 + 0 + 0 + false + + 0 + true + true + false + 490 + 281 + 0 + 0 + false + false + 0 + 0 + false + Expediente Lojas + 0 + 80 + 0 + false + 0 + 0 + 0 + 0 + + false + 0 + + + + 1 + Transferência Ginseng + 1 + 6 + + Emitir NFE de Transf + Emitir NFE de Transf + + 57600 + + false + 0 + Pool Grupo + <AssignmentController><Group>CD</Group></AssignmentController> + 1 + false + false + false + 0 + 0 + 0 + 0 + false + + 0 + true + true + false + 490 + 490 + 0 + 0 + false + false + 0 + 0 + false + + 0 + 80 + 0 + false + 0 + 0 + 0 + 0 + + false + 0 + + + + 1 + Transferência Ginseng + 1 + 18 + + Receber Produtos + Receber Produtos + + 7200 + + false + 0 + Campo Formulário + <AssignmentController><FormField>gestor_cc</FormField></AssignmentController> + 1 + false + false + false + 0 + 0 + 0 + 0 + false + + 0 + true + true + false + 1370 + 270 + 0 + 0 + false + false + 0 + 0 + false + Expediente Lojas + 0 + 80 + 0 + false + 0 + 0 + 0 + 0 + + false + 0 + + + + 1 + Transferência Ginseng + 1 + 24 + + Verificar problema + Verificar problema + + 172800 + + false + 0 + Usuário + <AssignmentController><User>logistica</User></AssignmentController> + 1 + false + false + false + 0 + 0 + 0 + 0 + false + + 0 + true + true + false + 1520 + 490 + 0 + 0 + false + false + 0 + 0 + false + Expediente BackOffice, Logística e Motorista + 0 + 80 + 0 + false + 0 + 0 + 0 + 0 + + false + 0 + + + + 1 + Transferência Ginseng + 1 + 31 + + Coletar Produto + Coletar Produto + + 43200 + + false + 0 + + 1 + false + false + false + 0 + 0 + 0 + 0 + false + + 0 + true + true + false + 870 + 679 + 0 + 0 + false + false + 0 + 0 + false + Expediente BackOffice, Logística e Motorista + 0 + 80 + 0 + false + 0 + 0 + 0 + 0 + + false + 0 + + + + 1 + Transferência Ginseng + 1 + 57 + + Entregar Produto + Entregar Produto + + 57600 + + false + 0 + + 1 + false + true + false + 3600 + 3600 + 0 + 0 + false + + 0 + true + false + false + 1280 + 679 + 0 + 0 + false + false + 0 + 0 + false + Expediente BackOffice, Logística e Motorista + 0 + 80 + 0 + false + 0 + 0 + 0 + 0 + + false + 0 + + + + 1 + Transferência Ginseng + 1 + 2 + + Validar Loja + Validar Loja + false + false + false + + 0 + true + 250 + 47 + false + 1 + 120 + 0 + 0 + + false + + + + 1 + Transferência Ginseng + 1 + 46 + + Validar produto + Validar produto + false + false + false + + 0 + true + 1540 + 250 + false + 1 + 120 + 0 + 0 + + false + + + + 1 + Transferência Ginseng + 1 + 62 + + Validar Coleta + Validar Coleta + false + false + false + + 0 + true + 760 + 470 + false + 1 + 120 + 0 + 0 + + false + + + + 1 + Transferência Ginseng + 1 + 90 + + Validar Entrega + Validar Entrega + false + false + false + + 0 + true + 1040 + 655 + false + 1 + 120 + 0 + 0 + + false + + + + 1 + Transferência Ginseng + 1 + 39 + + Cancelado + Cancelado + Atividade final do processo + 0 + false + 0 + + + 0 + false + true + false + 0 + 1 + 0 + 0 + false + + 0 + false + true + false + 700 + 310 + 0 + 0 + false + false + 0 + 0 + false + + 6 + 65 + 0 + false + 0 + + false + + + + 1 + Transferência Ginseng + 1 + 52 + + Fim + Fim + Atividade final do processo + 0 + false + 0 + + + 0 + false + true + false + 0 + 1 + 0 + 0 + false + + 0 + false + false + false + 1700 + 284 + 0 + 0 + false + false + 0 + 0 + false + + 6 + 60 + 0 + false + 0 + + false + + + + 1 + Transferência Ginseng + 1 + 60 + + Fim com cancelamento de processo + Fim com cancelamento de processo + Atividade final do processo + 0 + false + 0 + + + 0 + false + true + false + 0 + 1 + 0 + 0 + false + + 0 + false + false + false + 1570 + 699 + 0 + 0 + false + false + 0 + 0 + false + + 6 + 65 + 0 + false + 0 + + false + + + + 1 + Transferência Ginseng + 1 + 86 + + Fim + Fim + Atividade final do processo + 0 + false + 0 + + + 0 + false + true + false + 0 + 1 + 0 + 0 + false + + 0 + false + false + false + 980 + 510 + 0 + 0 + false + false + 0 + 0 + false + + 6 + 60 + 0 + false + 0 + + false + + + + 1 + Transferência Ginseng + 1 + 93 + + Fim + Fim + Atividade final do processo + 0 + false + 0 + + + 0 + false + true + false + 0 + 1 + 0 + 0 + false + + 0 + false + false + false + 1180 + 610 + 0 + 0 + false + false + 0 + 0 + false + + 6 + 60 + 0 + false + 0 + + false + + + + + + 1 + Transferência Ginseng + 1 + 42 + 2 + + hAPI.getCardValue("estabelecimento") =! "" + 4 + <AssignmentController><FormField>gestor_cce</FormField></AssignmentController> + Campo Formulário + 0 + + + + 1 + Transferência Ginseng + 2 + 42 + 2 + + true + 6 + <AssignmentController><User>logistica</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 1 + 42 + 46 + + hAPI.getCardValue("validacaoItens") == "entregue" + 52 + 0 + + + + 1 + Transferência Ginseng + 2 + 42 + 46 + + true + 24 + 0 + + + + 1 + Transferência Ginseng + 1 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "" + 86 + 0 + + + + 1 + Transferência Ginseng + 2 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ HIPER FAROL - (CARREFOUR)" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 3 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ MOREIRA LIMA" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 4 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ SHOPPING PÁTIO" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 5 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ MÁRIO DE GUSMÃO(ATACADAO)"|| hAPI.getCardValue("estabelecimento") == "LJ MÁRIO DE GUSMÃO(ATACADO)" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 6 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ GBARBOSA TABULEIRO" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 7 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ LIVRAMENTO" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 8 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ RIO LARGO" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 9 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ SHOPPING CIDADE" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 10 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ SUPER GIRO" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 11 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "HIB CAMPO ALEGRE" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 12 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "ER PITANGUINHA" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 13 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "TÔ QUE TÔ MACEIÓ CENTRO" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 14 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ MIX MATEUS" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 15 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "ER RIO LARGO" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 16 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "CD SERRARIA" + 31 + <AssignmentController><Group>Motoristas</Group></AssignmentController> + Pool Grupo + 0 + + + + 1 + Transferência Ginseng + 17 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "ESCRITÓRIO MATRIZ" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 18 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ MACEIÓ SHOPPING TERREO" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 19 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ MACEIÓ SHOPPING EXPANSÃO" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 20 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ GBARBOSA SERRARIA" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 21 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ PONTA VERDE" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 22 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ HIPER JATIÚCA (ASSAÍ)" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 23 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ GBARBOSA S.MARIS" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 24 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ JACINTINHO" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 25 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ PARQUE SHOPPING" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 26 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ HIPER ANTARES" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 27 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ UNICOMPRA PONTA VERDE" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 28 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "HIB MARECHAL DEODORO" + 31 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 29 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "ER ANTARES" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 30 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ CARAJÁS" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 31 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "QDB PARQUE SHOPPING" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 32 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "QDB MACEIO SHOPPING" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 33 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ LAGARTO" + 31 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 34 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "HIB ITABAIANINHA" + 31 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 35 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "ER LAGARTO" + 31 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 36 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ GBARBOSA SOCORRO" + 31 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 37 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "ER SOCORRO" + 31 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 38 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "HIB BARRA DOS COQUEIROS" + 31 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 39 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ SHOPPING PREMIO SOCORRO" + 31 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 40 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ BOULEVARD SHOPPING" + 31 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 41 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ PRACA 9 DE NOVEMBRO" + + 31 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 42 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ GALERIA PANVICON" + 31 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 43 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "ER CONDEUBA" + 31 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 44 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "QQ SHOPPING CONQUISTA" + 31 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 45 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ ASSAI VITORIA DA CONQUISTA" + 31 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 46 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ BAIRRO BRASIL" + 31 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 47 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "HIB BARRA DO CHOCA" + 31 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 48 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ SHOPPING CONQUISTA SUL" + 31 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 49 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "ER VITORIA DA CONQUISTA" + 31 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 50 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "HIB CANDIDO SALES" + 31 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 51 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ RUA ZEFERINO CORREIA" + 31 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 52 + 42 + 62 + + hAPI.getCardValue("estabelecimento") == "LJ MIX MATEUS TABULEIRO" + 31 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 1 + 42 + 90 + + hAPI.getCardValue("centroCusto") =="" + 93 + 0 + + + + 1 + Transferência Ginseng + 2 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ HIPER FAROL - (CARREFOUR)" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 3 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ MOREIRA LIMA" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 4 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ SHOPPING PÁTIO" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 5 + 42 + 90 + + hAPI.getCardValue("estabelecimento") == "LJ MÁRIO DE GUSMÃO(ATACADAO)"|| hAPI.getCardValue("estabelecimento") == "LJ MÁRIO DE GUSMÃO(ATACADO)" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 6 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ GBARBOSA TABULEIRO" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 7 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ LIVRAMENTO" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 8 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ RIO LARGO" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 9 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ SHOPPING CIDADE" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 10 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ SUPER GIRO" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 11 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "HIB CAMPO ALEGRE" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 12 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "ER PITANGUINHA" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 13 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "TÔ QUE TÔ MACEIÓ CENTRO" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 14 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ MIX MATEUS" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 15 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "ER RIO LARGO" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 16 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "CD SERRARIA" + 57 + <AssignmentController><Group>Motoristas</Group></AssignmentController> + Pool Grupo + 0 + + + + 1 + Transferência Ginseng + 17 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "ESCRITÓRIO MATRIZ" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 18 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ MACEIÓ SHOPPING TERREO" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 19 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ MACEIÓ SHOPPING EXPANSÃO" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 20 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ GBARBOSA SERRARIA" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 21 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ PONTA VERDE" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 22 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ HIPER JATIÚCA (ASSAÍ)" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 23 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ GBARBOSA S.MARIS" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 24 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ JACINTINHO" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 25 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ PARQUE SHOPPING" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 26 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ HIPER ANTARES" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 27 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ UNICOMPRA PONTA VERDE" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 28 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "HIB MARECHAL DEODORO" + 57 + <AssignmentController><User>001025</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 29 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "ER ANTARES" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 30 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ CARAJÁS" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 31 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "QDB PARQUE SHOPPING" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 32 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "QDB MACEIO SHOPPING" + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 33 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ LAGARTO" + 57 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 34 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "HIB ITABAIANINHA" + 57 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 35 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "ER LAGARTO" + 57 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 36 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "HIB ITABAIANINHA" + 57 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 37 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "ER LAGARTO" + 57 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 38 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ GBARBOSA SOCORRO" + 57 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 39 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "ER SOCORRO" + 57 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 40 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "HIB BARRA DOS COQUEIROS" + 57 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 41 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ SHOPPING PREMIO SOCORRO" + 57 + <AssignmentController><User>001217</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 42 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ BOULEVARD SHOPPING" + 57 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 43 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ PRACA 9 DE NOVEMBRO" + 57 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 44 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ GALERIA PANVICON" + 57 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 45 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "ER CONDEUBA" + 57 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 46 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "QQ SHOPPING CONQUISTA" + 57 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 47 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ ASSAI VITORIA DA CONQUISTA" + 57 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 48 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ BAIRRO BRASIL" + 57 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 49 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "HIB BARRA DO CHOCA" + 57 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 50 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ SHOPPING CONQUISTA SUL" + 57 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 51 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "ER VITORIA DA CONQUISTA" + 57 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 52 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "HIB CANDIDO SALES" + 57 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 53 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ RUA ZEFERINO CORREIA" + + 57 + <AssignmentController><User>motorista.ginseng</User></AssignmentController> + Usuário + 0 + + + + 1 + Transferência Ginseng + 54 + 42 + 90 + + hAPI.getCardValue("centroCusto") == "LJ MIX MATEUS TABULEIRO" + + 57 + <AssignmentController><User>001509</User></AssignmentController> + Usuário + 0 + + + + + + 1 + Transferência Ginseng + 1 + 3 + + + false + 1 + 2 + + + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 5 + + + false + 2 + 4 + + Gestor Identificado + false + false + 0 + + + + + + + 1 + Transferência Ginseng + 1 + 7 + + + false + 2 + 6 + + Loja sem Gestor + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 26 + + + false + 24 + 18 + + + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 41 + + + false + 4 + 6 + + Aprovar + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 47 + + + false + 18 + 46 + + + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 48 + + + false + 46 + 24 + + Reprovar + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 53 + + + false + 4 + 39 + + Reprovar + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 61 + + + false + 57 + 60 + + Cancelar + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 82 + + + false + 46 + 52 + + + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 84 + + + false + 62 + 31 + + Alocar motorista + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 85 + + + false + 57 + 18 + + Validar produtos recebidos + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 87 + + + false + 62 + 86 + + Processo finalizado + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 88 + + + false + 6 + 62 + + Emitida + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 91 + + + false + 31 + 90 + + + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 92 + + + false + 90 + 57 + + + false + false + 0 + + + + 1 + Transferência Ginseng + 1 + 94 + + + false + 90 + 93 + + Filial nao identificada + false + false + 0 + + + + + + + + FFFFFF + 794 + 1791 + 20 + 20 + Solicitação de Transferência + 1 + 0 + + 1 + Transferência Ginseng + 1 + 1 + + + + 82b0b7 + 198 + 1761 + 50 + 218 + Gerente de loja + 2 + 1 + + 1 + Transferência Ginseng + 1 + 2 + + + + d0daae + 198 + 1761 + 50 + 416 + Logistica + 2 + 1 + + 1 + Transferência Ginseng + 1 + 3 + + + + d6e0d0 + 198 + 1761 + 50 + 20 + Analista de suprimentos + 2 + 1 + + 1 + Transferência Ginseng + 1 + 4 + + + + adc9ac + 200 + 1761 + 50 + 614 + Motorista + 2 + 1 + + 1 + Transferência Ginseng + 1 + 5 + + + + + + + + + 1 + Transferência Ginseng + 42 + 5 + 1 + + 342 + 100 + + + + 1 + Transferência Ginseng + 42 + 5 + 2 + + 342 + 326 + + + + 1 + Transferência Ginseng + 42 + 7 + 1 + + 279 + 527 + + + + 1 + Transferência Ginseng + 42 + 26 + 1 + + 1422 + 528 + + + + 1 + Transferência Ginseng + 42 + 61 + 1 + + 1552 + 717 + + + + 1 + Transferência Ginseng + 42 + 84 + 1 + + 789 + 717 + + + + 1 + Transferência Ginseng + 42 + 85 + 1 + + 1332 + 316 + + + + 1 + Transferência Ginseng + 42 + 94 + 1 + + 1068 + 627 + + + + + + + + 1 + Transferência Ginseng + anexo_lista1 + + Nome do arquivo + 1 + + + + 1 + Transferência Ginseng + centroCusto + + Filial Destino + 2 + + + + 1 + Transferência Ginseng + dataAbertura + + Data de abertura + 3 + + + + 1 + Transferência Ginseng + estabelecimento + + Filial Emitente + 4 + + + + 1 + Transferência Ginseng + justificativa + + Justificativa + 5 + + + + 1 + Transferência Ginseng + userSolicitante + + Solicitante + 6 + + + + + + + 0 + 0 + Transferência Ginseng + 42 + 4 + approval + title + Solicitação de compra + + + 0 + 0 + Transferência Ginseng + 42 + 4 + approval + description + + + + 0 + 0 + Transferência Ginseng + 42 + 4 + approval + highlight + Centro de Custo - Aprovar solicitação? + + + 0 + 0 + Transferência Ginseng + 42 + 4 + approval + approve + 6 + + + 0 + 0 + Transferência Ginseng + 42 + 4 + approval + reject + 39 + + + 0 + 0 + Transferência Ginseng + 42 + 6 + approval + title + Solicitação de transferência + + + 0 + 0 + Transferência Ginseng + 42 + 6 + approval + description + + + + 0 + 0 + Transferência Ginseng + 42 + 6 + approval + highlight + Transferência + + + 0 + 0 + Transferência Ginseng + 42 + 6 + approval + approve + + + + 0 + 0 + Transferência Ginseng + 42 + 6 + approval + reject + + + + 0 + 0 + Transferência Ginseng + 42 + 24 + approval + title + + + + 0 + 0 + Transferência Ginseng + 42 + 24 + approval + description + + + + 0 + 0 + Transferência Ginseng + 42 + 24 + approval + highlight + + + + 0 + 0 + Transferência Ginseng + 42 + 24 + approval + approve + + + + 0 + 0 + Transferência Ginseng + 42 + 24 + approval + reject + + + + + + \ No newline at end of file diff --git a/workflow/.resources/Solicitação de transferência.png b/workflow/.resources/Solicitação de transferência.png new file mode 100644 index 0000000..f17e62b Binary files /dev/null and b/workflow/.resources/Solicitação de transferência.png differ diff --git a/workflow/.resources/teste3.ws.cache b/workflow/.resources/teste3.ws.cache new file mode 100644 index 0000000..ce4054d --- /dev/null +++ b/workflow/.resources/teste3.ws.cache @@ -0,0 +1,711 @@ + + + + + volume + + + Default + + + + + mecanismoGrupo + + + + + Tecnologia e Comunicação + + + TIC + + + + + + + Compras Indiretos + + + ComprasIndiretos + + + + + + + Obras e manutenção + + + Manutencao + + + + + + + Aprovadores Compras Nvl 3 + + + AprovadoresComprasNvl3 + + + + + + + Motoristas + + + Motoristas + + + + + + + Requisitantes de Vaga + + + Requisitantesdevaga + + + + + + + Recrutamento + + + Recrutamento + + + + + + + TODOS-TODOS-DIADMISSAO + + + TODOS-TODOS-DIADMISSAO + + + + + + + ResponsavelDesligamento + + + ResponsavelDesligamento + + + + + + + GENTE & CULTURA + + + GENTE_CULTURA + + + + + + + LOJA AL + + + LOJA_AL + + + + + + + CD + + + CD + + + + + + + ESPAÇO DO REVENDEDOR AL + + + ESPACO_DO_REVENDEDOR_AL + + + + + + + FINANCEIRO + + + FINANCEIRO + + + + + + + OPERAÇÕES + + + OPERACOES + + + + + + + AMG AL + + + AMG_AL + + + + + + + REGIONAL ALAGOAS + + + REGIONAL_ALAGOAS + + + + + + + PREVENÇÃO DE PERDA + + + PREVENCAO_DE_PERDA + + + + + + + MARKETING, TREINAMENTO + + + MARKETING_TREINAMENTO + + + + + + + SECRETARIA EXECUTIVA + + + SECRETARIA_EXECUTIVA + + + + + + + DIRETORIA EXECUTIVA + + + DIRETORIA_EXECUTIVA + + + + + + + INFRAESTRUTURA + + + INFRAESTRUTURA + + + + + + + ESPAÇO DO REVENDEDOR BA + + + ESPACO_DO_REVENDEDOR_BA + + + + + + + BUSINESS INTELLIGENCE + + + BUSINESS_INTELLIGENCE + + + + + + + DEPARTAMENTO PESSOAL + + + DEPARTAMENTO_PESSOAL + + + + + + + LOJA BA + + + LOJA_BA + + + + + + + TREINAMENTO + + + TREINAMENTO + + + + + + + AMG BA + + + AMG_BA + + + + + + + MARKETING + + + MARKETING + + + + + + + COMPRAS + + + COMPRAS + + + + + + + AMG SE + + + AMG_SE + + + + + + + LOJA SE + + + LOJA_SE + + + + + + + ESPAÇO DO REVENDEDOR SE + + + ESPACO_DO_REVENDEDOR_SE + + + + + + + VENDAS IN COMPANY + + + VENDAS_IN_COMPANY + + + + + + + REGIONAL BAHIA + + + REGIONAL_BAHIA + + + + + + + CANAL LOJA 01 + + + CANAL_LOJA_01 + + + + + + + AUDITORIA + + + AUDITORIA + + + + + + + CANAL LOJA 02 + + + CANAL_LOJA_02 + + + + + + + PLANEJAMENTO DE DEMANDAS + + + PLANEJAMENTO_DE_DEMANDAS + + + + + + + PROJETOS + + + PROJETOS + + + + + + + COMPLIANCE + + + COMPLIANCE + + + + + + + ESCRITÓRIO - MATRIZ + + + ESCRITORIO_MATRIZ + + + + + + + ESCRITÓRIO - CONQUISTA + + + ESCRITORIO_CONQUISTA + + + + + + + REGIONAL SERGIPE + + + REGIONAL_SERGIPE + + + + + + + Transferencia + + + Transferencia + + + + + + + expediente + + + Default + + + Expediente BackOffice, Logística e Motorista + + + Expediente Escritório Matriz + + + Expediente Lojas + + + + + camposFormulario, documentoId = 590 + + + activity + + + centroCusto + + + codigoItem + + + currentUserId + + + currentUsermail + + + currentUserName + + + dataAbertura + + + descAnexo_Coleta + + + descAnexo_Entrega + + + descAnexo_Nfe + + + descAnexo_Recebimento + + + descricao + + + emailSolicitante + + + estabelecimento + + + excelUpload + + + fdAnexo_Coleta + + + fdAnexo_Entrega + + + fdAnexo_recebimento + + + fnAnexo_Nfe + + + formMode + + + gestorEmail + + + gestorEmailE + + + gestorNome + + + gestorNomeE + + + gestor_cc + + + gestor_cce + + + justificativa + + + quantidadeItem + + + requesterId + + + requesterMail + + + requesterName + + + WKNumProces + + + + + mecanismo + + + + + Atribuição por Associação + + + Associado + + + + + + + Atribuição por Campo de Formulário + + + Campo Formulário + + + + + + + dpf_di_emp_filial_filtro + + + dpf_di_emp_filial_filtro + + + + + + + dpf_di_inicio_diadmissao + + + dpf_di_inicio_diadmissao + + + + + + + Atribuição por Executor de Atividade + + + Executor Atividade + + + + + + + Atribuição por Grupo + + + Grupo + + + + + + + Atribuição por Grupos do Colaborador + + + Grupos Colaborador + + + + + + + mecCustomAprov + + + mecCustomAprov + + + + + + + Atribuição por Papel + + + Papel + + + + + + + Atribuição para um Grupo + + + Pool Grupo + + + + + + + Atribuição para um Papel + + + Pool Papel + + + + + + + Atribuição por Usuário + + + Usuário + + + + + + + diff --git a/workflow/.resources/teste3.ws.cache.bkp b/workflow/.resources/teste3.ws.cache.bkp new file mode 100644 index 0000000..c8ca446 --- /dev/null +++ b/workflow/.resources/teste3.ws.cache.bkp @@ -0,0 +1,155 @@ + + + + + volume + + + Default + + + + + expediente + + + Default + + + Expediente BackOffice, Logística e Motorista + + + Expediente Escritório Matriz + + + Expediente Lojas + + + + + mecanismo + + + + + Atribuição por Associação + + + Associado + + + + + + + Atribuição por Campo de Formulário + + + Campo Formulário + + + + + + + dpf_di_emp_filial_filtro + + + dpf_di_emp_filial_filtro + + + + + + + dpf_di_inicio_diadmissao + + + dpf_di_inicio_diadmissao + + + + + + + Atribuição por Executor de Atividade + + + Executor Atividade + + + + + + + Atribuição por Grupo + + + Grupo + + + + + + + Atribuição por Grupos do Colaborador + + + Grupos Colaborador + + + + + + + mecCustomAprov + + + mecCustomAprov + + + + + + + Atribuição por Papel + + + Papel + + + + + + + Atribuição para um Grupo + + + Pool Grupo + + + + + + + Atribuição para um Papel + + + Pool Papel + + + + + + + Atribuição por Usuário + + + Usuário + + + + + + +