This commit is contained in:
2026-04-15 14:40:55 -03:00
parent 3f085c11db
commit 83d8335180
71 changed files with 16697 additions and 6261 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 10 KiB

@@ -109,6 +109,9 @@
<string>valor</string>
</void>
<void index="32">
<string>autorizador_responsavel</string>
</void>
<void index="33">
<string>WKNumProces</string>
</void>
</array>
@@ -121,6 +121,9 @@
<string>valor</string>
</void>
<void index="36">
<string>autorizador_responsavel</string>
</void>
<void index="37">
<string>WKNumProces</string>
</void>
</array>
@@ -0,0 +1,155 @@
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_481" class="java.beans.XMLDecoder">
<object class="java.util.HashMap">
<void method="put">
<string>volume</string>
<array class="java.lang.String" length="1">
<void index="0">
<string>Default</string>
</void>
</array>
</void>
<void method="put">
<string>expediente</string>
<array class="java.lang.String" length="4">
<void index="0">
<string>Default</string>
</void>
<void index="1">
<string>Expediente BackOffice, Logística e Motorista</string>
</void>
<void index="2">
<string>Expediente Escritório Matriz</string>
</void>
<void index="3">
<string>Expediente Lojas</string>
</void>
</array>
</void>
<void method="put">
<string>mecanismo</string>
<array class="[Ljava.lang.Object;" length="12">
<void index="0">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Associação</string>
</void>
<void index="1">
<string>Associado</string>
</void>
</array>
</void>
<void index="1">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Campo de Formulário</string>
</void>
<void index="1">
<string>Campo Formulário</string>
</void>
</array>
</void>
<void index="2">
<array class="java.lang.Object" length="2">
<void index="0">
<string>dpf_di_emp_filial_filtro</string>
</void>
<void index="1">
<string>dpf_di_emp_filial_filtro</string>
</void>
</array>
</void>
<void index="3">
<array class="java.lang.Object" length="2">
<void index="0">
<string>dpf_di_inicio_diadmissao</string>
</void>
<void index="1">
<string>dpf_di_inicio_diadmissao</string>
</void>
</array>
</void>
<void index="4">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Executor de Atividade</string>
</void>
<void index="1">
<string>Executor Atividade</string>
</void>
</array>
</void>
<void index="5">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Grupo</string>
</void>
<void index="1">
<string>Grupo</string>
</void>
</array>
</void>
<void index="6">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Grupos do Colaborador</string>
</void>
<void index="1">
<string>Grupos Colaborador</string>
</void>
</array>
</void>
<void index="7">
<array class="java.lang.Object" length="2">
<void index="0">
<string>mecCustomAprov</string>
</void>
<void index="1">
<string>mecCustomAprov</string>
</void>
</array>
</void>
<void index="8">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Papel</string>
</void>
<void index="1">
<string>Papel</string>
</void>
</array>
</void>
<void index="9">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição para um Grupo</string>
</void>
<void index="1">
<string>Pool Grupo</string>
</void>
</array>
</void>
<void index="10">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição para um Papel</string>
</void>
<void index="1">
<string>Pool Papel</string>
</void>
</array>
</void>
<void index="11">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Usuário</string>
</void>
<void index="1">
<string>Usuário</string>
</void>
</array>
</void>
</array>
</void>
</object>
</java>
@@ -0,0 +1,155 @@
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_481" class="java.beans.XMLDecoder">
<object class="java.util.HashMap">
<void method="put">
<string>volume</string>
<array class="java.lang.String" length="1">
<void index="0">
<string>Default</string>
</void>
</array>
</void>
<void method="put">
<string>expediente</string>
<array class="java.lang.String" length="4">
<void index="0">
<string>Default</string>
</void>
<void index="1">
<string>Expediente BackOffice, Logística e Motorista</string>
</void>
<void index="2">
<string>Expediente Escritório Matriz</string>
</void>
<void index="3">
<string>Expediente Lojas</string>
</void>
</array>
</void>
<void method="put">
<string>mecanismo</string>
<array class="[Ljava.lang.Object;" length="12">
<void index="0">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Associação</string>
</void>
<void index="1">
<string>Associado</string>
</void>
</array>
</void>
<void index="1">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Campo de Formulário</string>
</void>
<void index="1">
<string>Campo Formulário</string>
</void>
</array>
</void>
<void index="2">
<array class="java.lang.Object" length="2">
<void index="0">
<string>dpf_di_emp_filial_filtro</string>
</void>
<void index="1">
<string>dpf_di_emp_filial_filtro</string>
</void>
</array>
</void>
<void index="3">
<array class="java.lang.Object" length="2">
<void index="0">
<string>dpf_di_inicio_diadmissao</string>
</void>
<void index="1">
<string>dpf_di_inicio_diadmissao</string>
</void>
</array>
</void>
<void index="4">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Executor de Atividade</string>
</void>
<void index="1">
<string>Executor Atividade</string>
</void>
</array>
</void>
<void index="5">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Grupo</string>
</void>
<void index="1">
<string>Grupo</string>
</void>
</array>
</void>
<void index="6">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Grupos do Colaborador</string>
</void>
<void index="1">
<string>Grupos Colaborador</string>
</void>
</array>
</void>
<void index="7">
<array class="java.lang.Object" length="2">
<void index="0">
<string>mecCustomAprov</string>
</void>
<void index="1">
<string>mecCustomAprov</string>
</void>
</array>
</void>
<void index="8">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Papel</string>
</void>
<void index="1">
<string>Papel</string>
</void>
</array>
</void>
<void index="9">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição para um Grupo</string>
</void>
<void index="1">
<string>Pool Grupo</string>
</void>
</array>
</void>
<void index="10">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição para um Papel</string>
</void>
<void index="1">
<string>Pool Papel</string>
</void>
</array>
</void>
<void index="11">
<array class="java.lang.Object" length="2">
<void index="0">
<string>Atribuição por Usuário</string>
</void>
<void index="1">
<string>Usuário</string>
</void>
</array>
</void>
</array>
</void>
</object>
</java>
@@ -0,0 +1,182 @@
function servicetask15(attempt, message) {
var payload = buildSe2010Payload();
appendDebugSe2010("servicetask15: payload=" + safeStringify(payload));
var response = invokeSe2010(payload);
appendDebugSe2010("servicetask15: status=" + response.httpStatus + " body=" + response.raw);
if (!response.success) {
throw "Falha ao enviar dados para Protheus SE2010. Status HTTP: " + response.httpStatus + ".";
}
}
function buildSe2010Payload() {
var payload = {
FILIAL: requiredCard("FILIAL"),
PREFIXO: requiredCard("PREFIXO"),
NUMERO: requiredCard("NUMERO"),
PARCELA: requiredCard("PARCELA"),
TIPO: requiredCard("TIPO"),
NATUREZA: requiredCard("NATUREZA"),
COD_FORN: requiredCard("COD_FORN"),
LOJA: requiredCard("LOJA"),
EMISSAO: normalizeDate(requiredCard("EMISSAO"), "EMISSAO"),
VENCIMENTO: normalizeDate(requiredCard("VENCIMENTO"), "VENCIMENTO"),
VENC_REAL: normalizeDate(requiredCard("VENC_REAL"), "VENC_REAL"),
VALOR: parseMoney(requiredCard("VALORtotal", "VALOR")),
HISTORICO: requiredCard("HISTORICO"),
CODIGO_BARRAS: card("CODIGO_BARRAS"),
CENTRO_CUSTO: requiredCard("CENTRO_CUSTO")
};
return payload;
}
function invokeSe2010(payload) {
var serviceCode = card("service_code_se2010") || "protheus_teste";
var endpoint = card("endpoint_se2010") || "https://comerciode186920.protheus.cloudtotvs.com.br:4050/rest/uf_se2010";
var requestData = {
companyId: getCompanyIdSafe(),
serviceCode: serviceCode,
endpoint: endpoint,
method: "post",
timeoutService: "120",
headers: {
"Content-Type": "application/json",
"Accept": "application/json"
},
options: {
encoding: "UTF-8",
mediaType: "application/json",
useSSL: true
},
params: payload
};
var clientService = fluigAPI.getAuthorizeClientService();
var vo = clientService.invoke(JSON.stringify(requestData));
var raw = vo ? String(vo.getResult() || "") : "";
if (!raw) {
throw "Resposta vazia da API SE2010.";
}
var httpStatus = getHttpStatus(vo);
var parsed = parseJsonSafe(raw);
var success = httpStatus >= 200 && httpStatus < 300;
if (parsed && parsed.success === false) {
success = false;
}
return {
success: success,
httpStatus: httpStatus,
raw: raw,
parsed: parsed
};
}
function requiredCard() {
var value = "";
for (var i = 0; i < arguments.length; i++) {
value = card(arguments[i]);
if (value) {
break;
}
}
if (!value) {
throw "Campo obrigatorio nao informado para envio Protheus: " + arguments[0];
}
return value;
}
function card(name) {
return ((hAPI.getCardValue(name) || "") + "").replace(/^\s+|\s+$/g, "");
}
function normalizeDate(value, fieldName) {
var digits = (value || "").replace(/\D/g, "");
if (digits.length !== 8) {
throw "Data invalida no campo " + fieldName + ". Informe no formato YYYYMMDD.";
}
return digits;
}
function parseMoney(value) {
var raw = (value || "").toString().replace(/\s/g, "");
if (!raw) {
return 0;
}
if (raw.indexOf(",") >= 0) {
raw = raw.replace(/\./g, "").replace(",", ".");
} else {
var dotCount = (raw.match(/\./g) || []).length;
if (dotCount > 1) {
raw = raw.replace(/\./g, "");
}
}
var parsed = parseFloat(raw);
if (isNaN(parsed)) {
throw "Valor invalido para envio Protheus: " + value;
}
return parseFloat(parsed.toFixed(2));
}
function getCompanyIdSafe() {
try {
if (typeof getValue === "function") {
return String(getValue("WKCompany") || "1");
}
} catch (e) {
// ignore
}
return "1";
}
function getHttpStatus(vo) {
try {
var status = parseInt(String(vo.getHttpStatusResult() || "0"), 10);
if (!isNaN(status) && status > 0) {
return status;
}
} catch (e) {
// ignore
}
return 200;
}
function parseJsonSafe(value) {
try {
return JSON.parse(value);
} catch (e) {
return null;
}
}
function safeStringify(value) {
try {
return JSON.stringify(value);
} catch (e) {
return String(value);
}
}
function appendDebugSe2010(message) {
try {
var prefix = "[SE2010] ";
var atual = (hAPI.getCardValue("debug_publicacao") || "") + "";
var linha = prefix + message;
hAPI.setCardValue("debug_publicacao", atual ? (atual + "\n" + linha) : linha);
} catch (e) {
log.warn("appendDebugSe2010 falhou: " + e);
}
}