att
This commit is contained in:
+477
-143
@@ -8,10 +8,10 @@
|
||||
<instruction>Este flow permite abertura de solicitação de transferências automatizadas, informando qual item será transferido e direcionado para as aprovações corretas.</instruction>
|
||||
<active>true</active>
|
||||
<publicProcess>false</publicProcess>
|
||||
<volumeId>Fluig teste</volumeId>
|
||||
<volumeId>Default</volumeId>
|
||||
<categoryId>Transferência</categoryId>
|
||||
<managerEngineAllocationId>Usuário</managerEngineAllocationId>
|
||||
<managerEngineAllocationConfiguration><AssignmentController><User>projetos</User></AssignmentController></managerEngineAllocationConfiguration>
|
||||
<managerEngineAllocationId>Grupo</managerEngineAllocationId>
|
||||
<managerEngineAllocationConfiguration><AssignmentController><Group>CD</Group></AssignmentController></managerEngineAllocationConfiguration>
|
||||
<snapshotFrequency>0</snapshotFrequency>
|
||||
<baseDay>0</baseDay>
|
||||
<baseMonth>0</baseMonth>
|
||||
@@ -29,11 +29,10 @@
|
||||
<processDefinitionVersionPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>46</version>
|
||||
<version>65</version>
|
||||
</processDefinitionVersionPK>
|
||||
<versionDescription></versionDescription>
|
||||
<formId>590</formId>
|
||||
<formIdV2>0</formIdV2>
|
||||
<editionMode>true</editionMode>
|
||||
<updateAttachmentsVersion>true</updateAttachmentsVersion>
|
||||
<controlsAttachmentsSecurity>false</controlsAttachmentsSecurity>
|
||||
@@ -127,8 +126,8 @@
|
||||
<notifyAuthorityFollowUp>true</notifyAuthorityFollowUp>
|
||||
<notifyRequisitionerFollowUp>true</notifyRequisitionerFollowUp>
|
||||
<automatic>false</automatic>
|
||||
<positionX>490</positionX>
|
||||
<positionY>281</positionY>
|
||||
<positionX>500</positionX>
|
||||
<positionY>280</positionY>
|
||||
<forecastedEffortType>0</forecastedEffortType>
|
||||
<forecastedEffort>0</forecastedEffort>
|
||||
<notifyManagerFollowUp>false</notifyManagerFollowUp>
|
||||
@@ -179,7 +178,7 @@
|
||||
<notifyAuthorityFollowUp>true</notifyAuthorityFollowUp>
|
||||
<notifyRequisitionerFollowUp>true</notifyRequisitionerFollowUp>
|
||||
<automatic>false</automatic>
|
||||
<positionX>490</positionX>
|
||||
<positionX>500</positionX>
|
||||
<positionY>490</positionY>
|
||||
<forecastedEffortType>0</forecastedEffortType>
|
||||
<forecastedEffort>0</forecastedEffort>
|
||||
@@ -232,7 +231,7 @@
|
||||
<notifyRequisitionerFollowUp>true</notifyRequisitionerFollowUp>
|
||||
<automatic>false</automatic>
|
||||
<positionX>1170</positionX>
|
||||
<positionY>270</positionY>
|
||||
<positionY>284</positionY>
|
||||
<forecastedEffortType>0</forecastedEffortType>
|
||||
<forecastedEffort>0</forecastedEffort>
|
||||
<notifyManagerFollowUp>false</notifyManagerFollowUp>
|
||||
@@ -283,7 +282,7 @@
|
||||
<notifyAuthorityFollowUp>true</notifyAuthorityFollowUp>
|
||||
<notifyRequisitionerFollowUp>true</notifyRequisitionerFollowUp>
|
||||
<automatic>false</automatic>
|
||||
<positionX>1410</positionX>
|
||||
<positionX>1400</positionX>
|
||||
<positionY>479</positionY>
|
||||
<forecastedEffortType>0</forecastedEffortType>
|
||||
<forecastedEffort>0</forecastedEffort>
|
||||
@@ -319,8 +318,7 @@
|
||||
<deadlineFieldName></deadlineFieldName>
|
||||
<joint>false</joint>
|
||||
<agreementPercentage>0</agreementPercentage>
|
||||
<engineAllocationId>Pool Grupo</engineAllocationId>
|
||||
<engineAllocationConfiguration><AssignmentController><Group>Motoristas</Group></AssignmentController></engineAllocationConfiguration>
|
||||
<engineAllocationId></engineAllocationId>
|
||||
<selectColleague>1</selectColleague>
|
||||
<initialState>false</initialState>
|
||||
<notifyAuthorityDelay>false</notifyAuthorityDelay>
|
||||
@@ -439,7 +437,7 @@
|
||||
<notifyRequisitionerFollowUp>false</notifyRequisitionerFollowUp>
|
||||
<automatic>false</automatic>
|
||||
<positionX>1600</positionX>
|
||||
<positionY>260</positionY>
|
||||
<positionY>284</positionY>
|
||||
<forecastedEffortType>0</forecastedEffortType>
|
||||
<forecastedEffort>0</forecastedEffort>
|
||||
<notifyManagerFollowUp>false</notifyManagerFollowUp>
|
||||
@@ -541,7 +539,7 @@
|
||||
<notifyRequisitionerFollowUp>false</notifyRequisitionerFollowUp>
|
||||
<automatic>false</automatic>
|
||||
<positionX>1660</positionX>
|
||||
<positionY>260</positionY>
|
||||
<positionY>284</positionY>
|
||||
<forecastedEffortType>0</forecastedEffortType>
|
||||
<forecastedEffort>0</forecastedEffort>
|
||||
<notifyManagerFollowUp>false</notifyManagerFollowUp>
|
||||
@@ -598,8 +596,33 @@
|
||||
<subProcessId></subProcessId>
|
||||
<formFolder>0</formFolder>
|
||||
<automatic>true</automatic>
|
||||
<positionX>1430</positionX>
|
||||
<positionY>250</positionY>
|
||||
<positionX>1420</positionX>
|
||||
<positionY>268</positionY>
|
||||
<inhibitTransfer>false</inhibitTransfer>
|
||||
<stateType>1</stateType>
|
||||
<bpmnType>120</bpmnType>
|
||||
<signalId>0</signalId>
|
||||
<openInstances>0</openInstances>
|
||||
<destinationStates/>
|
||||
<digitalSignature>false</digitalSignature>
|
||||
</ProcessState>
|
||||
<ProcessState>
|
||||
<processStatePK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>1</version>
|
||||
<sequence>107</sequence>
|
||||
</processStatePK>
|
||||
<stateName>Validar rota</stateName>
|
||||
<stateDescription>Validar rota</stateDescription>
|
||||
<joint>false</joint>
|
||||
<initialState>false</initialState>
|
||||
<transferAttachments>false</transferAttachments>
|
||||
<subProcessId></subProcessId>
|
||||
<formFolder>0</formFolder>
|
||||
<automatic>true</automatic>
|
||||
<positionX>520</positionX>
|
||||
<positionY>663</positionY>
|
||||
<inhibitTransfer>false</inhibitTransfer>
|
||||
<stateType>1</stateType>
|
||||
<bpmnType>120</bpmnType>
|
||||
@@ -778,8 +801,8 @@
|
||||
<notifyAuthorityFollowUp>false</notifyAuthorityFollowUp>
|
||||
<notifyRequisitionerFollowUp>false</notifyRequisitionerFollowUp>
|
||||
<automatic>false</automatic>
|
||||
<positionX>1780</positionX>
|
||||
<positionY>280</positionY>
|
||||
<positionX>1777</positionX>
|
||||
<positionY>300</positionY>
|
||||
<forecastedEffortType>0</forecastedEffortType>
|
||||
<forecastedEffort>0</forecastedEffort>
|
||||
<notifyManagerFollowUp>false</notifyManagerFollowUp>
|
||||
@@ -803,7 +826,7 @@
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<expressionOrder>1</expressionOrder>
|
||||
<version>46</version>
|
||||
<version>65</version>
|
||||
<sequence>2</sequence>
|
||||
</conditionProcessStatePK>
|
||||
<condition>hAPI.getCardValue("gestor_cce") != ""</condition>
|
||||
@@ -817,7 +840,7 @@
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<expressionOrder>2</expressionOrder>
|
||||
<version>46</version>
|
||||
<version>65</version>
|
||||
<sequence>2</sequence>
|
||||
</conditionProcessStatePK>
|
||||
<condition>true</condition>
|
||||
@@ -831,7 +854,7 @@
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<expressionOrder>1</expressionOrder>
|
||||
<version>46</version>
|
||||
<version>65</version>
|
||||
<sequence>46</sequence>
|
||||
</conditionProcessStatePK>
|
||||
<condition>hAPI.getCardValue("validacaoItens") == "entregue" && hAPI.getCardValue("dataEntradaNfeConsulta") != ""</condition>
|
||||
@@ -843,13 +866,69 @@
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<expressionOrder>2</expressionOrder>
|
||||
<version>46</version>
|
||||
<version>65</version>
|
||||
<sequence>46</sequence>
|
||||
</conditionProcessStatePK>
|
||||
<condition>true</condition>
|
||||
<destinationSequenceId>24</destinationSequenceId>
|
||||
<conditionType>0</conditionType>
|
||||
</ConditionProcessState>
|
||||
<ConditionProcessState>
|
||||
<conditionProcessStatePK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<expressionOrder>1</expressionOrder>
|
||||
<version>65</version>
|
||||
<sequence>107</sequence>
|
||||
</conditionProcessStatePK>
|
||||
<condition>hAPI.getCardValue("ufOrigem") == "AL"</condition>
|
||||
<destinationSequenceId>31</destinationSequenceId>
|
||||
<engineAllocationConfiguration><AssignmentController><Group>motoristaAL</Group></AssignmentController></engineAllocationConfiguration>
|
||||
<engineAllocationId>Pool Grupo</engineAllocationId>
|
||||
<conditionType>0</conditionType>
|
||||
</ConditionProcessState>
|
||||
<ConditionProcessState>
|
||||
<conditionProcessStatePK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<expressionOrder>2</expressionOrder>
|
||||
<version>65</version>
|
||||
<sequence>107</sequence>
|
||||
</conditionProcessStatePK>
|
||||
<condition>hAPI.getCardValue("ufOrigem") == "BA"</condition>
|
||||
<destinationSequenceId>31</destinationSequenceId>
|
||||
<engineAllocationConfiguration><AssignmentController><Group>motoristaBA</Group></AssignmentController></engineAllocationConfiguration>
|
||||
<engineAllocationId>Pool Grupo</engineAllocationId>
|
||||
<conditionType>0</conditionType>
|
||||
</ConditionProcessState>
|
||||
<ConditionProcessState>
|
||||
<conditionProcessStatePK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<expressionOrder>3</expressionOrder>
|
||||
<version>65</version>
|
||||
<sequence>107</sequence>
|
||||
</conditionProcessStatePK>
|
||||
<condition>hAPI.getCardValue("ufOrigem") == "SE"</condition>
|
||||
<destinationSequenceId>31</destinationSequenceId>
|
||||
<engineAllocationConfiguration><AssignmentController><Group>motoristaSE</Group></AssignmentController></engineAllocationConfiguration>
|
||||
<engineAllocationId>Pool Grupo</engineAllocationId>
|
||||
<conditionType>0</conditionType>
|
||||
</ConditionProcessState>
|
||||
<ConditionProcessState>
|
||||
<conditionProcessStatePK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<expressionOrder>4</expressionOrder>
|
||||
<version>65</version>
|
||||
<sequence>107</sequence>
|
||||
</conditionProcessStatePK>
|
||||
<condition>hAPI.getCardValue("ufOrigem") == ""</condition>
|
||||
<destinationSequenceId>31</destinationSequenceId>
|
||||
<engineAllocationConfiguration><AssignmentController><Group>CD</Group></AssignmentController></engineAllocationConfiguration>
|
||||
<engineAllocationId>Pool Grupo</engineAllocationId>
|
||||
<conditionType>0</conditionType>
|
||||
</ConditionProcessState>
|
||||
</list>
|
||||
<list>
|
||||
<ProcessLink>
|
||||
@@ -913,12 +992,12 @@
|
||||
<version>1</version>
|
||||
<linkSequence>26</linkSequence>
|
||||
</processLinkPK>
|
||||
<actionLabel></actionLabel>
|
||||
<actionLabel>Ajuste realizado</actionLabel>
|
||||
<returnPermited>false</returnPermited>
|
||||
<initialStateSequence>24</initialStateSequence>
|
||||
<finalStateSequence>18</finalStateSequence>
|
||||
<returnLabel></returnLabel>
|
||||
<name></name>
|
||||
<name>Ajuste de transferência</name>
|
||||
<automaticLink>false</automaticLink>
|
||||
<defaultLink>false</defaultLink>
|
||||
<type>0</type>
|
||||
@@ -947,12 +1026,12 @@
|
||||
<version>1</version>
|
||||
<linkSequence>47</linkSequence>
|
||||
</processLinkPK>
|
||||
<actionLabel></actionLabel>
|
||||
<actionLabel>Confirmar recebimento</actionLabel>
|
||||
<returnPermited>false</returnPermited>
|
||||
<initialStateSequence>18</initialStateSequence>
|
||||
<finalStateSequence>46</finalStateSequence>
|
||||
<returnLabel></returnLabel>
|
||||
<name></name>
|
||||
<name>Confirmar recebimento</name>
|
||||
<automaticLink>false</automaticLink>
|
||||
<defaultLink>false</defaultLink>
|
||||
<type>0</type>
|
||||
@@ -1015,7 +1094,7 @@
|
||||
<version>1</version>
|
||||
<linkSequence>85</linkSequence>
|
||||
</processLinkPK>
|
||||
<actionLabel>Produtos entregue</actionLabel>
|
||||
<actionLabel>Transferência entregue</actionLabel>
|
||||
<returnPermited>false</returnPermited>
|
||||
<initialStateSequence>57</initialStateSequence>
|
||||
<finalStateSequence>18</finalStateSequence>
|
||||
@@ -1025,23 +1104,6 @@
|
||||
<defaultLink>false</defaultLink>
|
||||
<type>0</type>
|
||||
</ProcessLink>
|
||||
<ProcessLink>
|
||||
<processLinkPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>1</version>
|
||||
<linkSequence>95</linkSequence>
|
||||
</processLinkPK>
|
||||
<actionLabel>Enviar para coleta</actionLabel>
|
||||
<returnPermited>false</returnPermited>
|
||||
<initialStateSequence>68</initialStateSequence>
|
||||
<finalStateSequence>31</finalStateSequence>
|
||||
<returnLabel></returnLabel>
|
||||
<name>Enviar para coleta</name>
|
||||
<automaticLink>false</automaticLink>
|
||||
<defaultLink>false</defaultLink>
|
||||
<type>0</type>
|
||||
</ProcessLink>
|
||||
<ProcessLink>
|
||||
<processLinkPK>
|
||||
<companyId>1</companyId>
|
||||
@@ -1066,12 +1128,12 @@
|
||||
<version>1</version>
|
||||
<linkSequence>98</linkSequence>
|
||||
</processLinkPK>
|
||||
<actionLabel></actionLabel>
|
||||
<actionLabel>Pedido coletado</actionLabel>
|
||||
<returnPermited>false</returnPermited>
|
||||
<initialStateSequence>31</initialStateSequence>
|
||||
<finalStateSequence>57</finalStateSequence>
|
||||
<returnLabel></returnLabel>
|
||||
<name></name>
|
||||
<name>Entregar produto</name>
|
||||
<automaticLink>false</automaticLink>
|
||||
<defaultLink>false</defaultLink>
|
||||
<type>0</type>
|
||||
@@ -1144,9 +1206,292 @@
|
||||
<defaultLink>false</defaultLink>
|
||||
<type>0</type>
|
||||
</ProcessLink>
|
||||
<ProcessLink>
|
||||
<processLinkPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>1</version>
|
||||
<linkSequence>108</linkSequence>
|
||||
</processLinkPK>
|
||||
<actionLabel>Enviar para coleta</actionLabel>
|
||||
<returnPermited>false</returnPermited>
|
||||
<initialStateSequence>6</initialStateSequence>
|
||||
<finalStateSequence>107</finalStateSequence>
|
||||
<returnLabel></returnLabel>
|
||||
<name>Enviar para rota</name>
|
||||
<automaticLink>false</automaticLink>
|
||||
<defaultLink>false</defaultLink>
|
||||
<type>0</type>
|
||||
</ProcessLink>
|
||||
<ProcessLink>
|
||||
<processLinkPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>1</version>
|
||||
<linkSequence>109</linkSequence>
|
||||
</processLinkPK>
|
||||
<actionLabel></actionLabel>
|
||||
<returnPermited>false</returnPermited>
|
||||
<initialStateSequence>107</initialStateSequence>
|
||||
<finalStateSequence>31</finalStateSequence>
|
||||
<returnLabel></returnLabel>
|
||||
<name></name>
|
||||
<automaticLink>false</automaticLink>
|
||||
<defaultLink>false</defaultLink>
|
||||
<type>0</type>
|
||||
</ProcessLink>
|
||||
</list>
|
||||
<list/>
|
||||
<list>
|
||||
<WorkflowProcessEvent>
|
||||
<workflowProcessEventPK>
|
||||
<companyId>1</companyId>
|
||||
<eventId>beforeTaskSave</eventId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>1</version>
|
||||
</workflowProcessEventPK>
|
||||
<eventDescription>function beforeTaskSave(colleagueId, nextSequenceId, userList) {
|
||||
try {
|
||||
var currentState = parseInt(getValue("WKNumState"), 10);
|
||||
var completeTask = String(getValue("WKCompletTask") || "false");
|
||||
var nextState = parseInt(String(nextSequenceId || "0"), 10);
|
||||
|
||||
if (completeTask !== "true") return;
|
||||
|
||||
if (currentState === 6) {
|
||||
// Fluxo de cancelamento saindo da atividade 6 nao deve disparar template de nota emitida.
|
||||
if (nextState === 97) return;
|
||||
enviarNotificacaoNotaEmitida();
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentState === 31) {
|
||||
enviarNotificacaoColetaRealizada();
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentState === 57) {
|
||||
// 61 = cancelamento no diagrama.
|
||||
if (nextState === 61) return;
|
||||
enviarNotificacaoEntregaRealizada();
|
||||
}
|
||||
} catch (e) {
|
||||
log.error("[Transferencia.beforeTaskSave] Erro no beforeTaskSave: " + e);
|
||||
}
|
||||
}
|
||||
|
||||
function enviarNotificacaoNotaEmitida() {
|
||||
var envio = montarContextoEnvio();
|
||||
if (!envio.ok) return;
|
||||
|
||||
var params = buildCommonParams(envio.processNumber, envio.chaveNfe, envio.processLink);
|
||||
notifyTemplate("tpl_nota_emitida", envio.destinoEmail, envio.requesterId, params, envio.processNumber, envio.processLink);
|
||||
}
|
||||
|
||||
function enviarNotificacaoColetaRealizada() {
|
||||
var envio = montarContextoEnvio();
|
||||
if (!envio.ok) return;
|
||||
|
||||
var motoristaColetaNome = safeTrim(hAPI.getCardValue("motoristaColetaNome"));
|
||||
var dataColeta = safeTrim(hAPI.getCardValue("dataColeta"));
|
||||
var motoristaEntregaNome = safeTrim(hAPI.getCardValue("motoristaEntregaNome"));
|
||||
var tipoMotoristaEntrega = safeTrim(hAPI.getCardValue("tipoMotoristaEntrega"));
|
||||
|
||||
if (motoristaEntregaNome === "" && tipoMotoristaEntrega === "mesmo") {
|
||||
motoristaEntregaNome = motoristaColetaNome;
|
||||
}
|
||||
|
||||
var params = buildCommonParams(envio.processNumber, envio.chaveNfe, envio.processLink);
|
||||
params.put("motoristaColetaNome", motoristaColetaNome);
|
||||
params.put("dataColeta", dataColeta);
|
||||
params.put("motoristaEntregaNome", motoristaEntregaNome);
|
||||
|
||||
notifyTemplate("tpl_coleta_realizada", envio.destinoEmail, envio.requesterId, params, envio.processNumber, envio.processLink);
|
||||
}
|
||||
|
||||
function enviarNotificacaoEntregaRealizada() {
|
||||
var envio = montarContextoEnvio();
|
||||
if (!envio.ok) return;
|
||||
|
||||
var motoristaEntregaNome = safeTrim(hAPI.getCardValue("motoristaEntregaNome"));
|
||||
var dataEntrega = safeTrim(hAPI.getCardValue("dataEntrega"));
|
||||
var nomerecebedor = safeTrim(hAPI.getCardValue("nomerecebedor"));
|
||||
|
||||
var params = buildCommonParams(envio.processNumber, envio.chaveNfe, envio.processLink);
|
||||
params.put("motoristaEntregaNome", motoristaEntregaNome);
|
||||
params.put("dataEntrega", dataEntrega);
|
||||
params.put("nomerecebedor", nomerecebedor);
|
||||
|
||||
notifyTemplate("tpl_entrega_realizada", envio.destinoEmail, envio.requesterId, params, envio.processNumber, envio.processLink);
|
||||
}
|
||||
|
||||
function montarContextoEnvio() {
|
||||
var requesterId = safeTrim(hAPI.getCardValue("requesterId"));
|
||||
var requesterMail = safeTrim(hAPI.getCardValue("requesterMail"));
|
||||
|
||||
if (requesterId === "" && requesterMail !== "") {
|
||||
requesterId = findColleagueIdByMail(requesterMail);
|
||||
}
|
||||
|
||||
// Prioriza email explicito salvo no formulario; fallback para email do colleague.
|
||||
var destinoEmail = requesterMail;
|
||||
if (!isValidEmail(destinoEmail)) {
|
||||
destinoEmail = resolveEmailByColleagueId(requesterId);
|
||||
}
|
||||
|
||||
if (!isValidEmail(destinoEmail)) {
|
||||
log.warn("[Transferencia.beforeTaskSave] Email do solicitante invalido. requesterId=" + requesterId + ", requesterMail=[" + requesterMail + "], destinoEmail=[" + destinoEmail + "]");
|
||||
return { ok: false };
|
||||
}
|
||||
|
||||
var processNumber = safeTrim(getValue("WKNumProces"));
|
||||
var chaveNfe = onlyDigits(hAPI.getCardValue("chaveNfe"));
|
||||
if (chaveNfe === "") chaveNfe = safeTrim(hAPI.getCardValue("chaveNfe"));
|
||||
var processLink = buildProcessLink(processNumber);
|
||||
|
||||
return {
|
||||
ok: true,
|
||||
requesterId: requesterId,
|
||||
destinoEmail: destinoEmail,
|
||||
processNumber: processNumber,
|
||||
chaveNfe: chaveNfe,
|
||||
processLink: processLink
|
||||
};
|
||||
}
|
||||
|
||||
function buildCommonParams(processNumber, chaveNfe, processLink) {
|
||||
var params = new java.util.HashMap();
|
||||
params.put("WKNumProces", processNumber);
|
||||
params.put("chaveNfe", chaveNfe);
|
||||
params.put("linkSolicitacao", processLink);
|
||||
params.put("link", processLink);
|
||||
return params;
|
||||
}
|
||||
|
||||
function notifyTemplate(templateCode, destinoEmail, requesterId, params, processNumber, processLink) {
|
||||
var NOTIFIER_SENDER_USER = "admin";
|
||||
var recipients = new java.util.ArrayList();
|
||||
recipients.add(destinoEmail);
|
||||
|
||||
notifier.notify(NOTIFIER_SENDER_USER, templateCode, params, recipients, "text/html");
|
||||
log.info("[Transferencia.beforeTaskSave] " + templateCode + " enviado. processo=" + processNumber + ", destino=" + destinoEmail + ", requesterId=" + requesterId + ", link=[" + processLink + "]");
|
||||
}
|
||||
|
||||
function buildProcessLink(processNumber) {
|
||||
var BASE_URL_FALLBACK = "https://comerciode188007.fluig.cloudtotvs.com.br";
|
||||
var baseUrl = safeTrim(getValue("WKServerURL"));
|
||||
var companyId = safeTrim(getValue("WKCompany"));
|
||||
if (baseUrl === "") baseUrl = BASE_URL_FALLBACK;
|
||||
if (baseUrl.indexOf("http://") !== 0 && baseUrl.indexOf("https://") !== 0) {
|
||||
baseUrl = "https://" + baseUrl;
|
||||
}
|
||||
if (baseUrl.charAt(baseUrl.length - 1) === "/") baseUrl = baseUrl.substring(0, baseUrl.length - 1);
|
||||
if (companyId === "") companyId = "1";
|
||||
if (baseUrl === "" || safeTrim(processNumber) === "") return "";
|
||||
return baseUrl + "/portal/p/" + companyId + "/pageworkflowview?app_ecm_workflowview_detailsProcessInstanceID=" + processNumber;
|
||||
}
|
||||
|
||||
function findColleagueIdByMail(mail) {
|
||||
var email = safeTrim(mail);
|
||||
if (email === "") return "";
|
||||
|
||||
try {
|
||||
var cMail = DatasetFactory.createConstraint("mail", email, email, ConstraintType.MUST);
|
||||
var dsColleague = DatasetFactory.getDataset("colleague", null, [cMail], null);
|
||||
if (!dsColleague || dsColleague.rowsCount < 1) return "";
|
||||
|
||||
return safeTrim(
|
||||
dsColleague.getValue(0, "colleaguePK.colleagueId") ||
|
||||
dsColleague.getValue(0, "colleagueId") ||
|
||||
dsColleague.getValue(0, "login")
|
||||
);
|
||||
} catch (e) {
|
||||
log.warn("[Transferencia.beforeTaskSave] Falha ao buscar solicitante por mail: " + e);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
function resolveEmailByColleagueId(colleagueId) {
|
||||
var id = safeTrim(colleagueId);
|
||||
if (id === "") return "";
|
||||
|
||||
try {
|
||||
var cActive = DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST);
|
||||
|
||||
var cId = DatasetFactory.createConstraint("colleaguePK.colleagueId", id, id, ConstraintType.MUST);
|
||||
var byId = DatasetFactory.getDataset("colleague", null, [cId, cActive], null);
|
||||
if (byId && byId.rowsCount > 0) {
|
||||
return safeTrim(byId.getValue(0, "mail"));
|
||||
}
|
||||
|
||||
var cLogin = DatasetFactory.createConstraint("login", id, id, ConstraintType.MUST);
|
||||
var byLogin = DatasetFactory.getDataset("colleague", null, [cLogin, cActive], null);
|
||||
if (byLogin && byLogin.rowsCount > 0) {
|
||||
return safeTrim(byLogin.getValue(0, "mail"));
|
||||
}
|
||||
} catch (e) {
|
||||
log.warn("[Transferencia.beforeTaskSave] Falha ao buscar email do solicitante por colleagueId: " + e);
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
function isValidEmail(email) {
|
||||
var v = safeTrim(email);
|
||||
if (v === "") return false;
|
||||
if (/\s/.test(v)) return false;
|
||||
|
||||
var at = v.indexOf("@");
|
||||
if (at <= 0 || at !== v.lastIndexOf("@")) return false;
|
||||
|
||||
var dot = v.lastIndexOf(".");
|
||||
return dot > at + 1 && dot < (v.length - 1);
|
||||
}
|
||||
|
||||
function safeTrim(value) {
|
||||
return String(value == null ? "" : value).trim();
|
||||
}
|
||||
|
||||
function onlyDigits(value) {
|
||||
return String(value == null ? "" : value).replace(/\D/g, "");
|
||||
}
|
||||
</eventDescription>
|
||||
</WorkflowProcessEvent>
|
||||
<WorkflowProcessEvent>
|
||||
<workflowProcessEventPK>
|
||||
<companyId>1</companyId>
|
||||
<eventId>onNotify</eventId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>1</version>
|
||||
</workflowProcessEventPK>
|
||||
<eventDescription>function onNotify(subject, receivers, template, params) {
|
||||

|
||||
log.info("===== onNotify GLOBAL ===== Template: " + template);
|
||||

|
||||
var validos = new java.util.ArrayList();
|
||||

|
||||
for (var i = 0; i < receivers.size(); i++) {
|
||||

|
||||
var email = receivers.get(i);
|
||||

|
||||
log.info("Receiver original: [" + email + "]");
|
||||

|
||||
if (email && email.indexOf("@") > 0 && email.indexOf(".") > 0) {
|
||||
validos.add(email);
|
||||
} else {
|
||||
log.warn("REMOVIDO EMAIL INVALIDO: [" + email + "] TEMPLATE: " + template);
|
||||
}
|
||||
}
|
||||

|
||||
receivers.clear();
|
||||

|
||||
for (var j = 0; j < validos.size(); j++) {
|
||||
receivers.add(validos.get(j));
|
||||
}
|
||||

|
||||
log.info("TOTAL FINAL RECEIVERS: " + receivers.size());
|
||||
}</eventDescription>
|
||||
</WorkflowProcessEvent>
|
||||
<WorkflowProcessEvent>
|
||||
<workflowProcessEventPK>
|
||||
<companyId>1</companyId>
|
||||
@@ -1154,54 +1499,54 @@
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>1</version>
|
||||
</workflowProcessEventPK>
|
||||
<eventDescription>function servicetask99(attempt, message) {
|
||||
try {
|
||||
var validacaoItens = safeTrim(hAPI.getCardValue("validacaoItens"));
|
||||

|
||||
// Só precisa consultar entrada da NFe quando o recebimento foi validado como entregue.
|
||||
if (validacaoItens !== "entregue") return;
|
||||

|
||||
var dataEntrada = safeTrim(hAPI.getCardValue("dataEntradaNfeConsulta"));
|
||||
if (dataEntrada !== "") return;
|
||||

|
||||
var chaveNfe = onlyDigits(hAPI.getCardValue("chaveNfe"));
|
||||
if (chaveNfe === "") {
|
||||
log.warn("[servicetask99] Chave NFe vazia. Nao foi possivel consultar entrada.");
|
||||
return;
|
||||
}
|
||||

|
||||
var cKey = DatasetFactory.createConstraint("key", chaveNfe, chaveNfe, ConstraintType.MUST);
|
||||
var dsNfe = DatasetFactory.getDataset("ds_fiscal_invoice_by_keys", null, [cKey], null);
|
||||

|
||||
if (!dsNfe || dsNfe.rowsCount < 1) {
|
||||
log.warn("[servicetask99] Dataset sem retorno para chave: " + chaveNfe);
|
||||
return;
|
||||
}
|
||||

|
||||
var dsSuccess = safeTrim(dsNfe.getValue(0, "success")).toLowerCase() === "true";
|
||||
var dsUpdatedAt = safeTrim(dsNfe.getValue(0, "updatedAt"));
|
||||

|
||||
if (dsSuccess && dsUpdatedAt !== "") {
|
||||
hAPI.setCardValue("dataEntradaNfeConsulta", dsUpdatedAt);
|
||||
log.info("[servicetask99] Data de entrada atualizada automaticamente: " + dsUpdatedAt);
|
||||
return;
|
||||
}
|
||||

|
||||
var dsMessage = safeTrim(dsNfe.getValue(0, "message"));
|
||||
log.warn("[servicetask99] Consulta executada sem data de entrada. message=" + dsMessage);
|
||||
} catch (e) {
|
||||
log.error("[servicetask99] Erro na consulta automatica da NFe: " + e);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||

|
||||
function safeTrim(value) {
|
||||
return String(value == null ? "" : value).trim();
|
||||
}
|
||||

|
||||
function onlyDigits(value) {
|
||||
return String(value == null ? "" : value).replace(/\D/g, "");
|
||||
}
|
||||
<eventDescription>function servicetask99(attempt, message) {
|
||||
try {
|
||||
var validacaoItens = safeTrim(hAPI.getCardValue("validacaoItens"));
|
||||
|
||||
// Só precisa consultar entrada da NFe quando o recebimento foi validado como entregue.
|
||||
if (validacaoItens !== "entregue") return;
|
||||
|
||||
var dataEntrada = safeTrim(hAPI.getCardValue("dataEntradaNfeConsulta"));
|
||||
if (dataEntrada !== "") return;
|
||||
|
||||
var chaveNfe = onlyDigits(hAPI.getCardValue("chaveNfe"));
|
||||
if (chaveNfe === "") {
|
||||
log.warn("[servicetask99] Chave NFe vazia. Nao foi possivel consultar entrada.");
|
||||
return;
|
||||
}
|
||||
|
||||
var cKey = DatasetFactory.createConstraint("key", chaveNfe, chaveNfe, ConstraintType.MUST);
|
||||
var dsNfe = DatasetFactory.getDataset("ds_fiscal_invoice_by_keys", null, [cKey], null);
|
||||
|
||||
if (!dsNfe || dsNfe.rowsCount < 1) {
|
||||
log.warn("[servicetask99] Dataset sem retorno para chave: " + chaveNfe);
|
||||
return;
|
||||
}
|
||||
|
||||
var dsSuccess = safeTrim(dsNfe.getValue(0, "success")).toLowerCase() === "true";
|
||||
var dsUpdatedAt = safeTrim(dsNfe.getValue(0, "updatedAt"));
|
||||
|
||||
if (dsSuccess && dsUpdatedAt !== "") {
|
||||
hAPI.setCardValue("dataEntradaNfeConsulta", dsUpdatedAt);
|
||||
log.info("[servicetask99] Data de entrada atualizada automaticamente: " + dsUpdatedAt);
|
||||
return;
|
||||
}
|
||||
|
||||
var dsMessage = safeTrim(dsNfe.getValue(0, "message"));
|
||||
log.warn("[servicetask99] Consulta executada sem data de entrada. message=" + dsMessage);
|
||||
} catch (e) {
|
||||
log.error("[servicetask99] Erro na consulta automatica da NFe: " + e);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
function safeTrim(value) {
|
||||
return String(value == null ? "" : value).trim();
|
||||
}
|
||||
|
||||
function onlyDigits(value) {
|
||||
return String(value == null ? "" : value).replace(/\D/g, "");
|
||||
}
|
||||
</eventDescription>
|
||||
</WorkflowProcessEvent>
|
||||
</list>
|
||||
@@ -1210,7 +1555,7 @@ function onlyDigits(value) {
|
||||
<SwimLane>
|
||||
<color>FFFFFF</color>
|
||||
<height>794</height>
|
||||
<width>1791</width>
|
||||
<width>1861</width>
|
||||
<positionX>20</positionX>
|
||||
<positionY>20</positionY>
|
||||
<stateName>Solicitação de Transferência</stateName>
|
||||
@@ -1226,7 +1571,7 @@ function onlyDigits(value) {
|
||||
<SwimLane>
|
||||
<color>82b0b7</color>
|
||||
<height>198</height>
|
||||
<width>1761</width>
|
||||
<width>1831</width>
|
||||
<positionX>50</positionX>
|
||||
<positionY>218</positionY>
|
||||
<stateName>Gerente de loja</stateName>
|
||||
@@ -1242,7 +1587,7 @@ function onlyDigits(value) {
|
||||
<SwimLane>
|
||||
<color>d0daae</color>
|
||||
<height>198</height>
|
||||
<width>1761</width>
|
||||
<width>1831</width>
|
||||
<positionX>50</positionX>
|
||||
<positionY>416</positionY>
|
||||
<stateName>Logistica</stateName>
|
||||
@@ -1258,7 +1603,7 @@ function onlyDigits(value) {
|
||||
<SwimLane>
|
||||
<color>d6e0d0</color>
|
||||
<height>198</height>
|
||||
<width>1761</width>
|
||||
<width>1831</width>
|
||||
<positionX>50</positionX>
|
||||
<positionY>20</positionY>
|
||||
<stateName>Analista de suprimentos</stateName>
|
||||
@@ -1274,7 +1619,7 @@ function onlyDigits(value) {
|
||||
<SwimLane>
|
||||
<color>adc9ac</color>
|
||||
<height>200</height>
|
||||
<width>1761</width>
|
||||
<width>1831</width>
|
||||
<positionX>50</positionX>
|
||||
<positionY>614</positionY>
|
||||
<stateName>Motorista</stateName>
|
||||
@@ -1295,7 +1640,7 @@ function onlyDigits(value) {
|
||||
<processLinkBendPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>46</version>
|
||||
<version>65</version>
|
||||
<linkSequence>5</linkSequence>
|
||||
<bendSequence>1</bendSequence>
|
||||
</processLinkBendPK>
|
||||
@@ -1306,7 +1651,7 @@ function onlyDigits(value) {
|
||||
<processLinkBendPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>46</version>
|
||||
<version>65</version>
|
||||
<linkSequence>5</linkSequence>
|
||||
<bendSequence>2</bendSequence>
|
||||
</processLinkBendPK>
|
||||
@@ -1317,7 +1662,7 @@ function onlyDigits(value) {
|
||||
<processLinkBendPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>46</version>
|
||||
<version>65</version>
|
||||
<linkSequence>7</linkSequence>
|
||||
<bendSequence>1</bendSequence>
|
||||
</processLinkBendPK>
|
||||
@@ -1328,7 +1673,7 @@ function onlyDigits(value) {
|
||||
<processLinkBendPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>46</version>
|
||||
<version>65</version>
|
||||
<linkSequence>26</linkSequence>
|
||||
<bendSequence>1</bendSequence>
|
||||
</processLinkBendPK>
|
||||
@@ -1339,7 +1684,7 @@ function onlyDigits(value) {
|
||||
<processLinkBendPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>46</version>
|
||||
<version>65</version>
|
||||
<linkSequence>61</linkSequence>
|
||||
<bendSequence>1</bendSequence>
|
||||
</processLinkBendPK>
|
||||
@@ -1350,37 +1695,17 @@ function onlyDigits(value) {
|
||||
<processLinkBendPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>46</version>
|
||||
<version>65</version>
|
||||
<linkSequence>85</linkSequence>
|
||||
<bendSequence>1</bendSequence>
|
||||
</processLinkBendPK>
|
||||
<positionX>1149</positionX>
|
||||
<positionY>308</positionY>
|
||||
</ProcessLinkBend>
|
||||
<ProcessLinkBend>
|
||||
<processLinkBendPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<version>46</version>
|
||||
<linkSequence>95</linkSequence>
|
||||
<bendSequence>1</bendSequence>
|
||||
</processLinkBendPK>
|
||||
<positionX>543</positionX>
|
||||
<positionY>717</positionY>
|
||||
</ProcessLinkBend>
|
||||
</list>
|
||||
<list/>
|
||||
<list/>
|
||||
<list>
|
||||
<ProcessFormField>
|
||||
<processFormFieldPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<fieldId>anexo_lista1</fieldId>
|
||||
</processFormFieldPK>
|
||||
<fieldDescription>Nome do arquivo</fieldDescription>
|
||||
<slotId>1</slotId>
|
||||
</ProcessFormField>
|
||||
<ProcessFormField>
|
||||
<processFormFieldPK>
|
||||
<companyId>1</companyId>
|
||||
@@ -1388,7 +1713,7 @@ function onlyDigits(value) {
|
||||
<fieldId>centroCusto</fieldId>
|
||||
</processFormFieldPK>
|
||||
<fieldDescription>Filial Destino</fieldDescription>
|
||||
<slotId>2</slotId>
|
||||
<slotId>1</slotId>
|
||||
</ProcessFormField>
|
||||
<ProcessFormField>
|
||||
<processFormFieldPK>
|
||||
@@ -1397,6 +1722,15 @@ function onlyDigits(value) {
|
||||
<fieldId>dataAbertura</fieldId>
|
||||
</processFormFieldPK>
|
||||
<fieldDescription>Data de abertura</fieldDescription>
|
||||
<slotId>2</slotId>
|
||||
</ProcessFormField>
|
||||
<ProcessFormField>
|
||||
<processFormFieldPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<fieldId>dataEmissaoNfe</fieldId>
|
||||
</processFormFieldPK>
|
||||
<fieldDescription>dataEmissaoNfe</fieldDescription>
|
||||
<slotId>3</slotId>
|
||||
</ProcessFormField>
|
||||
<ProcessFormField>
|
||||
@@ -1421,9 +1755,9 @@ function onlyDigits(value) {
|
||||
<processFormFieldPK>
|
||||
<companyId>1</companyId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<fieldId>userSolicitante</fieldId>
|
||||
<fieldId>requesterName</fieldId>
|
||||
</processFormFieldPK>
|
||||
<fieldDescription>Solicitante</fieldDescription>
|
||||
<fieldDescription>requesterName</fieldDescription>
|
||||
<slotId>6</slotId>
|
||||
</ProcessFormField>
|
||||
</list>
|
||||
@@ -1446,7 +1780,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>4</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>title</appField>
|
||||
@@ -1456,7 +1790,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>4</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>description</appField>
|
||||
@@ -1466,7 +1800,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>4</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>highlight</appField>
|
||||
@@ -1476,7 +1810,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>4</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>approve</appField>
|
||||
@@ -1486,7 +1820,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>4</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>reject</appField>
|
||||
@@ -1496,7 +1830,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>6</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>title</appField>
|
||||
@@ -1506,7 +1840,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>6</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>description</appField>
|
||||
@@ -1516,7 +1850,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>6</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>highlight</appField>
|
||||
@@ -1526,7 +1860,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>6</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>approve</appField>
|
||||
@@ -1536,7 +1870,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>6</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>reject</appField>
|
||||
@@ -1546,7 +1880,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>24</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>title</appField>
|
||||
@@ -1556,7 +1890,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>24</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>description</appField>
|
||||
@@ -1566,7 +1900,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>24</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>highlight</appField>
|
||||
@@ -1576,7 +1910,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>24</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>approve</appField>
|
||||
@@ -1586,7 +1920,7 @@ function onlyDigits(value) {
|
||||
<id>0</id>
|
||||
<tenantId>0</tenantId>
|
||||
<processId>Transferência Ginseng</processId>
|
||||
<processVersion>46</processVersion>
|
||||
<processVersion>65</processVersion>
|
||||
<stateSequence>24</stateSequence>
|
||||
<appKey>approval</appKey>
|
||||
<appField>reject</appField>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 49 KiB |
+1
-1
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 22 KiB |
@@ -511,6 +511,197 @@
|
||||
</void>
|
||||
</array>
|
||||
</void>
|
||||
<void method="put">
|
||||
<string>camposFormulario, documentoId = 590</string>
|
||||
<array class="java.lang.String" length="62">
|
||||
<void index="0">
|
||||
<string>activity</string>
|
||||
</void>
|
||||
<void index="1">
|
||||
<string>centroCusto</string>
|
||||
</void>
|
||||
<void index="2">
|
||||
<string>chaveNfe</string>
|
||||
</void>
|
||||
<void index="3">
|
||||
<string>codigoItem</string>
|
||||
</void>
|
||||
<void index="4">
|
||||
<string>codigoProdutoItem</string>
|
||||
</void>
|
||||
<void index="5">
|
||||
<string>currentUserId</string>
|
||||
</void>
|
||||
<void index="6">
|
||||
<string>currentUsermail</string>
|
||||
</void>
|
||||
<void index="7">
|
||||
<string>currentUserName</string>
|
||||
</void>
|
||||
<void index="8">
|
||||
<string>dataAbertura</string>
|
||||
</void>
|
||||
<void index="9">
|
||||
<string>dataColeta</string>
|
||||
</void>
|
||||
<void index="10">
|
||||
<string>dataEmissaoApiNfe</string>
|
||||
</void>
|
||||
<void index="11">
|
||||
<string>dataEmissaoNfe</string>
|
||||
</void>
|
||||
<void index="12">
|
||||
<string>dataEntradaNfeConsulta</string>
|
||||
</void>
|
||||
<void index="13">
|
||||
<string>dataEntrega</string>
|
||||
</void>
|
||||
<void index="14">
|
||||
<string>dataValidacaoGestor</string>
|
||||
</void>
|
||||
<void index="15">
|
||||
<string>descricao</string>
|
||||
</void>
|
||||
<void index="16">
|
||||
<string>emailSolicitante</string>
|
||||
</void>
|
||||
<void index="17">
|
||||
<string>estabelecimento</string>
|
||||
</void>
|
||||
<void index="18">
|
||||
<string>excelUpload</string>
|
||||
</void>
|
||||
<void index="19">
|
||||
<string>fdAnexo_Coleta</string>
|
||||
</void>
|
||||
<void index="20">
|
||||
<string>fdAnexo_Entrega</string>
|
||||
</void>
|
||||
<void index="21">
|
||||
<string>fdAnexo_recebimento</string>
|
||||
</void>
|
||||
<void index="22">
|
||||
<string>fnAnexo_Nfe</string>
|
||||
</void>
|
||||
<void index="23">
|
||||
<string>formMode</string>
|
||||
</void>
|
||||
<void index="24">
|
||||
<string>fornecedorNfeConsulta</string>
|
||||
</void>
|
||||
<void index="25">
|
||||
<string>gestorEmail</string>
|
||||
</void>
|
||||
<void index="26">
|
||||
<string>gestorEmailE</string>
|
||||
</void>
|
||||
<void index="27">
|
||||
<string>gestorNome</string>
|
||||
</void>
|
||||
<void index="28">
|
||||
<string>gestorNomeE</string>
|
||||
</void>
|
||||
<void index="29">
|
||||
<string>gestor_cc</string>
|
||||
</void>
|
||||
<void index="30">
|
||||
<string>gestor_cce</string>
|
||||
</void>
|
||||
<void index="31">
|
||||
<string>invoiceIdNfeConsulta</string>
|
||||
</void>
|
||||
<void index="32">
|
||||
<string>itensNfeConsulta</string>
|
||||
</void>
|
||||
<void index="33">
|
||||
<string>itensNfeJson</string>
|
||||
</void>
|
||||
<void index="34">
|
||||
<string>justificativa</string>
|
||||
</void>
|
||||
<void index="35">
|
||||
<string>justificativaDecisaoGestor</string>
|
||||
</void>
|
||||
<void index="36">
|
||||
<string>justificativaDecisaoItens</string>
|
||||
</void>
|
||||
<void index="37">
|
||||
<string>lojaNfeConsulta</string>
|
||||
</void>
|
||||
<void index="38">
|
||||
<string>motoristaColetaLogin</string>
|
||||
</void>
|
||||
<void index="39">
|
||||
<string>motoristaColetaNome</string>
|
||||
</void>
|
||||
<void index="40">
|
||||
<string>motoristaEntregaLogin</string>
|
||||
</void>
|
||||
<void index="41">
|
||||
<string>motoristaEntregaNome</string>
|
||||
</void>
|
||||
<void index="42">
|
||||
<string>motoristaEntregaSelecionado</string>
|
||||
</void>
|
||||
<void index="43">
|
||||
<string>numeroNfeConsulta</string>
|
||||
</void>
|
||||
<void index="44">
|
||||
<string>operacaoNfeConsulta</string>
|
||||
</void>
|
||||
<void index="45">
|
||||
<string>productIdItem</string>
|
||||
</void>
|
||||
<void index="46">
|
||||
<string>qtdDivergenciasNfe</string>
|
||||
</void>
|
||||
<void index="47">
|
||||
<string>quantidadeItem</string>
|
||||
</void>
|
||||
<void index="48">
|
||||
<string>requesterId</string>
|
||||
</void>
|
||||
<void index="49">
|
||||
<string>requesterMail</string>
|
||||
</void>
|
||||
<void index="50">
|
||||
<string>requesterName</string>
|
||||
</void>
|
||||
<void index="51">
|
||||
<string>serieNfeConsulta</string>
|
||||
</void>
|
||||
<void index="52">
|
||||
<string>situacaoNfeConsulta</string>
|
||||
</void>
|
||||
<void index="53">
|
||||
<string>storeIdNfeConsulta</string>
|
||||
</void>
|
||||
<void index="54">
|
||||
<string>tipoMotoristaEntrega</string>
|
||||
</void>
|
||||
<void index="55">
|
||||
<string>ufDestino</string>
|
||||
</void>
|
||||
<void index="56">
|
||||
<string>ufOrigem</string>
|
||||
</void>
|
||||
<void index="57">
|
||||
<string>userValidacaoGestor</string>
|
||||
</void>
|
||||
<void index="58">
|
||||
<string>usuarioEmissorNfe</string>
|
||||
</void>
|
||||
<void index="59">
|
||||
<string>validacaoItens</string>
|
||||
</void>
|
||||
<void index="60">
|
||||
<string>valorNfeConsulta</string>
|
||||
</void>
|
||||
<void index="61">
|
||||
<string>WKNumProces</string>
|
||||
</void>
|
||||
</array>
|
||||
</void>
|
||||
<void method="put">
|
||||
<string>mecanismo</string>
|
||||
<array class="[Ljava.lang.Object;" length="12">
|
||||
@@ -636,5 +827,530 @@
|
||||
</void>
|
||||
</array>
|
||||
</void>
|
||||
<void method="put">
|
||||
<string>forms</string>
|
||||
<object class="java.util.LinkedList">
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>FLUIGADHOC</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>FLUIGADHOC</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>3</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>FLUIGADHOCPROCESS</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>FLUIGADHOCPROCESS</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>4</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>totvsflow_dataset_tipo_ocorrencia</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>totvsflow_dataset_tipo_ocorrencia</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>14</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>totvsflow_abertura_chamado</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>totvsflow_abertura_chamado</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>15</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>DSFormulariodeAberturadechamado</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Formulário de Abertura de chamado</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>20</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>Abertura_de_chamados</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Solicitação de abertura de chamados</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>21</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>DSvistoriadeServico</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>vistoriadeServico</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>24</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>DSFormulariodeReservadesala</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Formulário de Reserva de sala</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>34</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>totvsflow_dataset_centrocusto</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>totvsflow_dataset_centrocusto</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>103</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>totvsflow_dataset_cadastro_item</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>totvsflow_dataset_cadastro_item</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>104</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>totvsflow_dataset_estabelecimento</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>totvsflow_dataset_estabelecimento</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>105</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>totvsflow_solicitacao_compras</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>totvsflow_solicitacao_compras</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>165</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>aberturadechamado_manutencao</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>aberturadechamado_manutencao</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>400</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>Solicitacao_transferencia</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Solicitacao_transferencia</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>590</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>recrutamento</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>recrutamento</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>823</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>kit_aniversariantes</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Aniversariantes</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>7690</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>kit_cardapio</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Cardápio do Dia</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>7695</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>kit_convenios</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Convênios</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>7703</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>kit_news</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Notícias</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>7709</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>compras_digital</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>compras_digital</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9305</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_di_formulario_processo_admissao</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Di_Formulario_Processo_Admissao_Protheus</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9626</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_cadastro_status</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Status</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9627</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_configuracoes</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Configuracoes</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9628</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_cadastro_jornada</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Jornada</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9629</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_tipo_documento</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Tipo_Documento</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9630</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_dataset</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Dataset</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9631</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_di_configuracao</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Di_Configuracoes</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9632</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_di_beneficio</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Di_Beneficios</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9633</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_di_compl_contrato</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Di_Comp_Contrato</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9634</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_di_funcao_jornada</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Di_Funcao_Jornada</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9635</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_dataset_estrutura</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Di_Dataset_Estrutura</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9636</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_grupo_tipo_contrato</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Grupo_Tipo_Contrato</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9637</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_tipo_contrato</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Tipo_Contrato</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9638</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_di_traducao_campo_valor</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Di_Traducao_Campo_Valor</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9639</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_di_restricoes_cpf</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Di_Formulario_Restricao_CPF</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9640</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_di_compl_vt</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Di_Compl_VT</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9641</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>dpf_di_traducao_campo</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Digte_Public_Form_Di_Traducao_Campo</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>9995</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>desligamento</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>desligamento</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>12959</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>form_param_sla_csc</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>Formulário de Parametrização de SLA - Atendimento de Chamado TI</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>28647</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
<void method="add">
|
||||
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
|
||||
<void property="datasetName">
|
||||
<string>totvsflow_lancamento_documento</string>
|
||||
</void>
|
||||
<void property="documentDescription">
|
||||
<string>totvsflow_lancamento_documento</string>
|
||||
</void>
|
||||
<void property="documentId">
|
||||
<int>32331</int>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
</object>
|
||||
</void>
|
||||
</object>
|
||||
</java>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+205
@@ -0,0 +1,205 @@
|
||||
function beforeTaskSave(colleagueId, nextSequenceId, userList) {
|
||||
try {
|
||||
var currentState = parseInt(getValue("WKNumState"), 10);
|
||||
var completeTask = String(getValue("WKCompletTask") || "false");
|
||||
var nextState = parseInt(String(nextSequenceId || "0"), 10);
|
||||
|
||||
if (completeTask !== "true") return;
|
||||
|
||||
if (currentState === 6) {
|
||||
// Fluxo de cancelamento saindo da atividade 6 nao deve disparar template de nota emitida.
|
||||
if (nextState === 97) return;
|
||||
enviarNotificacaoNotaEmitida();
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentState === 31) {
|
||||
enviarNotificacaoColetaRealizada();
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentState === 57) {
|
||||
// 61 = cancelamento no diagrama.
|
||||
if (nextState === 61) return;
|
||||
enviarNotificacaoEntregaRealizada();
|
||||
}
|
||||
} catch (e) {
|
||||
log.error("[Transferencia.beforeTaskSave] Erro no beforeTaskSave: " + e);
|
||||
}
|
||||
}
|
||||
|
||||
function enviarNotificacaoNotaEmitida() {
|
||||
var envio = montarContextoEnvio();
|
||||
if (!envio.ok) return;
|
||||
|
||||
var params = buildCommonParams(envio.processNumber, envio.chaveNfe, envio.processLink);
|
||||
notifyTemplate("tpl_nota_emitida", envio.destinoEmail, envio.requesterId, params, envio.processNumber, envio.processLink);
|
||||
}
|
||||
|
||||
function enviarNotificacaoColetaRealizada() {
|
||||
var envio = montarContextoEnvio();
|
||||
if (!envio.ok) return;
|
||||
|
||||
var motoristaColetaNome = safeTrim(hAPI.getCardValue("motoristaColetaNome"));
|
||||
var dataColeta = safeTrim(hAPI.getCardValue("dataColeta"));
|
||||
var motoristaEntregaNome = safeTrim(hAPI.getCardValue("motoristaEntregaNome"));
|
||||
var tipoMotoristaEntrega = safeTrim(hAPI.getCardValue("tipoMotoristaEntrega"));
|
||||
|
||||
if (motoristaEntregaNome === "" && tipoMotoristaEntrega === "mesmo") {
|
||||
motoristaEntregaNome = motoristaColetaNome;
|
||||
}
|
||||
|
||||
var params = buildCommonParams(envio.processNumber, envio.chaveNfe, envio.processLink);
|
||||
params.put("motoristaColetaNome", motoristaColetaNome);
|
||||
params.put("dataColeta", dataColeta);
|
||||
params.put("motoristaEntregaNome", motoristaEntregaNome);
|
||||
|
||||
notifyTemplate("tpl_coleta_realizada", envio.destinoEmail, envio.requesterId, params, envio.processNumber, envio.processLink);
|
||||
}
|
||||
|
||||
function enviarNotificacaoEntregaRealizada() {
|
||||
var envio = montarContextoEnvio();
|
||||
if (!envio.ok) return;
|
||||
|
||||
var motoristaEntregaNome = safeTrim(hAPI.getCardValue("motoristaEntregaNome"));
|
||||
var dataEntrega = safeTrim(hAPI.getCardValue("dataEntrega"));
|
||||
var nomerecebedor = safeTrim(hAPI.getCardValue("nomerecebedor"));
|
||||
|
||||
var params = buildCommonParams(envio.processNumber, envio.chaveNfe, envio.processLink);
|
||||
params.put("motoristaEntregaNome", motoristaEntregaNome);
|
||||
params.put("dataEntrega", dataEntrega);
|
||||
params.put("nomerecebedor", nomerecebedor);
|
||||
|
||||
notifyTemplate("tpl_entrega_realizada", envio.destinoEmail, envio.requesterId, params, envio.processNumber, envio.processLink);
|
||||
}
|
||||
|
||||
function montarContextoEnvio() {
|
||||
var requesterId = safeTrim(hAPI.getCardValue("requesterId"));
|
||||
var requesterMail = safeTrim(hAPI.getCardValue("requesterMail"));
|
||||
|
||||
if (requesterId === "" && requesterMail !== "") {
|
||||
requesterId = findColleagueIdByMail(requesterMail);
|
||||
}
|
||||
|
||||
// Prioriza email explicito salvo no formulario; fallback para email do colleague.
|
||||
var destinoEmail = requesterMail;
|
||||
if (!isValidEmail(destinoEmail)) {
|
||||
destinoEmail = resolveEmailByColleagueId(requesterId);
|
||||
}
|
||||
|
||||
if (!isValidEmail(destinoEmail)) {
|
||||
log.warn("[Transferencia.beforeTaskSave] Email do solicitante invalido. requesterId=" + requesterId + ", requesterMail=[" + requesterMail + "], destinoEmail=[" + destinoEmail + "]");
|
||||
return { ok: false };
|
||||
}
|
||||
|
||||
var processNumber = safeTrim(getValue("WKNumProces"));
|
||||
var chaveNfe = onlyDigits(hAPI.getCardValue("chaveNfe"));
|
||||
if (chaveNfe === "") chaveNfe = safeTrim(hAPI.getCardValue("chaveNfe"));
|
||||
var processLink = buildProcessLink(processNumber);
|
||||
|
||||
return {
|
||||
ok: true,
|
||||
requesterId: requesterId,
|
||||
destinoEmail: destinoEmail,
|
||||
processNumber: processNumber,
|
||||
chaveNfe: chaveNfe,
|
||||
processLink: processLink
|
||||
};
|
||||
}
|
||||
|
||||
function buildCommonParams(processNumber, chaveNfe, processLink) {
|
||||
var params = new java.util.HashMap();
|
||||
params.put("WKNumProces", processNumber);
|
||||
params.put("chaveNfe", chaveNfe);
|
||||
params.put("linkSolicitacao", processLink);
|
||||
params.put("link", processLink);
|
||||
return params;
|
||||
}
|
||||
|
||||
function notifyTemplate(templateCode, destinoEmail, requesterId, params, processNumber, processLink) {
|
||||
var NOTIFIER_SENDER_USER = "admin";
|
||||
var recipients = new java.util.ArrayList();
|
||||
recipients.add(destinoEmail);
|
||||
|
||||
notifier.notify(NOTIFIER_SENDER_USER, templateCode, params, recipients, "text/html");
|
||||
log.info("[Transferencia.beforeTaskSave] " + templateCode + " enviado. processo=" + processNumber + ", destino=" + destinoEmail + ", requesterId=" + requesterId + ", link=[" + processLink + "]");
|
||||
}
|
||||
|
||||
function buildProcessLink(processNumber) {
|
||||
var BASE_URL_FALLBACK = "https://comerciode188007.fluig.cloudtotvs.com.br";
|
||||
var baseUrl = safeTrim(getValue("WKServerURL"));
|
||||
var companyId = safeTrim(getValue("WKCompany"));
|
||||
if (baseUrl === "") baseUrl = BASE_URL_FALLBACK;
|
||||
if (baseUrl.indexOf("http://") !== 0 && baseUrl.indexOf("https://") !== 0) {
|
||||
baseUrl = "https://" + baseUrl;
|
||||
}
|
||||
if (baseUrl.charAt(baseUrl.length - 1) === "/") baseUrl = baseUrl.substring(0, baseUrl.length - 1);
|
||||
if (companyId === "") companyId = "1";
|
||||
if (baseUrl === "" || safeTrim(processNumber) === "") return "";
|
||||
return baseUrl + "/portal/p/" + companyId + "/pageworkflowview?app_ecm_workflowview_detailsProcessInstanceID=" + processNumber;
|
||||
}
|
||||
|
||||
function findColleagueIdByMail(mail) {
|
||||
var email = safeTrim(mail);
|
||||
if (email === "") return "";
|
||||
|
||||
try {
|
||||
var cMail = DatasetFactory.createConstraint("mail", email, email, ConstraintType.MUST);
|
||||
var dsColleague = DatasetFactory.getDataset("colleague", null, [cMail], null);
|
||||
if (!dsColleague || dsColleague.rowsCount < 1) return "";
|
||||
|
||||
return safeTrim(
|
||||
dsColleague.getValue(0, "colleaguePK.colleagueId") ||
|
||||
dsColleague.getValue(0, "colleagueId") ||
|
||||
dsColleague.getValue(0, "login")
|
||||
);
|
||||
} catch (e) {
|
||||
log.warn("[Transferencia.beforeTaskSave] Falha ao buscar solicitante por mail: " + e);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
function resolveEmailByColleagueId(colleagueId) {
|
||||
var id = safeTrim(colleagueId);
|
||||
if (id === "") return "";
|
||||
|
||||
try {
|
||||
var cActive = DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST);
|
||||
|
||||
var cId = DatasetFactory.createConstraint("colleaguePK.colleagueId", id, id, ConstraintType.MUST);
|
||||
var byId = DatasetFactory.getDataset("colleague", null, [cId, cActive], null);
|
||||
if (byId && byId.rowsCount > 0) {
|
||||
return safeTrim(byId.getValue(0, "mail"));
|
||||
}
|
||||
|
||||
var cLogin = DatasetFactory.createConstraint("login", id, id, ConstraintType.MUST);
|
||||
var byLogin = DatasetFactory.getDataset("colleague", null, [cLogin, cActive], null);
|
||||
if (byLogin && byLogin.rowsCount > 0) {
|
||||
return safeTrim(byLogin.getValue(0, "mail"));
|
||||
}
|
||||
} catch (e) {
|
||||
log.warn("[Transferencia.beforeTaskSave] Falha ao buscar email do solicitante por colleagueId: " + e);
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
function isValidEmail(email) {
|
||||
var v = safeTrim(email);
|
||||
if (v === "") return false;
|
||||
if (/\s/.test(v)) return false;
|
||||
|
||||
var at = v.indexOf("@");
|
||||
if (at <= 0 || at !== v.lastIndexOf("@")) return false;
|
||||
|
||||
var dot = v.lastIndexOf(".");
|
||||
return dot > at + 1 && dot < (v.length - 1);
|
||||
}
|
||||
|
||||
function safeTrim(value) {
|
||||
return String(value == null ? "" : value).trim();
|
||||
}
|
||||
|
||||
function onlyDigits(value) {
|
||||
return String(value == null ? "" : value).replace(/\D/g, "");
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
function onNotify(subject, receivers, template, params) {
|
||||
|
||||
log.info("===== onNotify GLOBAL ===== Template: " + template);
|
||||
|
||||
var validos = new java.util.ArrayList();
|
||||
|
||||
for (var i = 0; i < receivers.size(); i++) {
|
||||
|
||||
var email = receivers.get(i);
|
||||
|
||||
log.info("Receiver original: [" + email + "]");
|
||||
|
||||
if (email && email.indexOf("@") > 0 && email.indexOf(".") > 0) {
|
||||
validos.add(email);
|
||||
} else {
|
||||
log.warn("REMOVIDO EMAIL INVALIDO: [" + email + "] TEMPLATE: " + template);
|
||||
}
|
||||
}
|
||||
|
||||
receivers.clear();
|
||||
|
||||
for (var j = 0; j < validos.size(); j++) {
|
||||
receivers.add(validos.get(j));
|
||||
}
|
||||
|
||||
log.info("TOTAL FINAL RECEIVERS: " + receivers.size());
|
||||
}
|
||||
@@ -18,4 +18,6 @@ function beforeTaskSave(colleagueId,nextSequenceId,userList){
|
||||
log.error("Erro ao buscar os dados do dataset 'colleague'.");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user