This commit is contained in:
Andrey Cunha
2026-05-22 02:11:03 -03:00
parent 9ec8d6e70b
commit 328de3abd2
53 changed files with 28306 additions and 1062 deletions
+8
View File
@@ -0,0 +1,8 @@
{
"permissions": {
"allow": [
"PowerShell(head -40)",
"Read(//c/Python/Fluig Ginseng/fluig/**)"
]
}
}
+14
View File
@@ -0,0 +1,14 @@
{
"permissions": {
"allow": [
"PowerShell(New-Item -ItemType Directory -Force \"c:\\\\Python\\\\Fluig Ginseng\\\\fluig\\\\Desligamento\\\\wcm\\\\widget\\\\wddesligamentoranking\\\\src\\\\main\\\\resources\")",
"PowerShell(New-Item -ItemType Directory -Force \"c:\\\\Python\\\\Fluig Ginseng\\\\fluig\\\\Desligamento\\\\wcm\\\\widget\\\\wddesligamentoranking\\\\src\\\\main\\\\webapp\\\\resources\\\\css\")",
"PowerShell(New-Item -ItemType Directory -Force \"c:\\\\Python\\\\Fluig Ginseng\\\\fluig\\\\Desligamento\\\\wcm\\\\widget\\\\wddesligamentoranking\\\\src\\\\main\\\\webapp\\\\resources\\\\js\")",
"PowerShell(\"OK\")",
"PowerShell(New-Item -ItemType Directory -Force \"c:\\\\Python\\\\Fluig Ginseng\\\\fluig\\\\Desligamento\\\\wcm\\\\widget\\\\wddesligamentokpis\\\\src\\\\main\\\\resources\")",
"PowerShell(New-Item -ItemType Directory -Force \"c:\\\\Python\\\\Fluig Ginseng\\\\fluig\\\\Desligamento\\\\wcm\\\\widget\\\\wddesligamentokpis\\\\src\\\\main\\\\webapp\\\\resources\\\\css\")",
"PowerShell(New-Item -ItemType Directory -Force \"c:\\\\Python\\\\Fluig Ginseng\\\\fluig\\\\Desligamento\\\\wcm\\\\widget\\\\wddesligamentokpis\\\\src\\\\main\\\\webapp\\\\resources\\\\js\")",
"Bash(Get-ChildItem -Path \"c:\\\\Python\\\\Fluig Ginseng\\\\fluig\\\\Desligamento\\\\\" -Recurse -File | Select-Object FullName | head -30)"
]
}
}
@@ -0,0 +1,13 @@
eclipse.preferences.version=1
encoding//wcm/widget/wddesligamento/src/main/resources/application.info=utf8
encoding//wcm/widget/wddesligamento/src/main/resources/edit.ftl=utf8
encoding//wcm/widget/wddesligamento/src/main/resources/view.ftl=utf8
encoding//wcm/widget/wddesligamento/src/main/resources/wddesligamento.properties=utf8
encoding//wcm/widget/wddesligamento/src/main/resources/wddesligamento_en_US.properties=utf8
encoding//wcm/widget/wddesligamento/src/main/resources/wddesligamento_es.properties=utf8
encoding//wcm/widget/wddesligamento/src/main/resources/wddesligamento_pt_BR.properties=utf8
encoding//wcm/widget/wddesligamento/src/main/webapp/WEB-INF/jboss-web.xml=utf8
encoding//wcm/widget/wddesligamento/src/main/webapp/WEB-INF/web.xml=utf8
encoding//wcm/widget/wddesligamento/src/main/webapp/resources/css/wddesligamento.css=utf8
encoding//wcm/widget/wddesligamento/src/main/webapp/resources/images/icon.png=utf8
encoding//wcm/widget/wddesligamento/src/main/webapp/resources/js/wddesligamento.js=utf8
+18
View File
@@ -0,0 +1,18 @@
{
"version": "1.0.0",
"configurations": [
{
"id": "61t70sum327mpg6yr6z93yvtvrgjmw",
"name": "Ginseng Produção",
"host": "comerciode188006.fluig.cloudtotvs.com.br",
"ssl": true,
"port": 443,
"username": "andrey.cunha",
"password": "eyJpdiI6ImYyNDVmMTM5YTUwNTQxY2UzOTJjMWI1MGUwNTk2Mzk5Iiwic2FsdCI6IjQ0MjY1MDk1OTczYzA1YTM3ZTU1M2VkOTk0YzAzZDg4IiwidGV4dCI6ImJkMmE4YWIwMjFhODQ5NmZjMGQ3ODg0NzI3N2JlNmJmIn0=",
"userCode": "andrey.cunha",
"confirmExporting": false,
"hasBrowser": false,
"companyId": 1
}
]
}
@@ -14,23 +14,12 @@ function displayFields(form, customHTML) {
var fields = new Array("colleagueName", "mail");
var retorno = DatasetFactory.getDataset("colleague", fields, filter, null);
//requester
form.setValue("currentUserName", retorno.getValue(0, "colleagueName"));
form.setValue("currentUsermail", retorno.getValue(0, "mail"));
form.setValue("currentUserId", userId);
// Grava dados do solicitante apenas na abertura — preserva o valor nas etapas seguintes
if (activity == 0 || activity == 4) {
form.setValue("requesterName", retorno.getValue(0, "colleagueName"));
form.setValue("currentUsermail", retorno.getValue(0, "mail"));
form.setValue("currentUserId", userId);
} else {
form.setValue("currentUserName", retorno.getValue(0, "colleagueName"));
form.setValue("currentUsermail", retorno.getValue(0, "mail"));
form.setValue("currentUserId", userId);
}
//requester
if (activity == 5 || activity == 24) {
form.setValue("requesterName", retorno.getValue(0, "colleagueName"));
form.setValue("requesterMail", retorno.getValue(0, "mail"));
form.setValue("requesterId", userId);
} else {
form.setValue("requesterName", retorno.getValue(0, "colleagueName"));
form.setValue("requesterMail", retorno.getValue(0, "mail"));
form.setValue("requesterId", userId);
@@ -0,0 +1,19 @@
application.type=widget
application.code=wddesligamento
application.title=wddesligamento
application.description=wddesligamento
application.fluig.version=null
application.category=Desligamento
application.renderer=freemarker
developer.code=Andrey
developer.name=Andrey
developer.url=http://www.fluig.com
application.uiwidget=true
application.mobileapp=false
application.version=${build.version}-${build.revision}
view.file=view.ftl
edit.file=edit.ftl
locale.file.base.name=wddesligamento
application.resource.js.1=/resources/js/wddesligamento.js
application.resource.css.2=/resources/css/wddesligamento.css
hash=4a16315e9e66fa7d797b3f6b1fb365b69f9a4ce2
@@ -0,0 +1,4 @@
<div id="MyWidget_${instanceId}" class="super-widget wcm-widget-class fluig-style-guide" data-params="MyWidget.instance()">
</div>
@@ -0,0 +1,115 @@
<script src="/webdesk/vcXMLRPC.js"></script>
<div id="MyWidget_${instanceId}" class="super-widget wcm-widget-class fluig-style-guide wd-dashboard" data-params="MyWidget.instance({ instanceId: '${instanceId}' })">
<div class="wd-dashboard__shell">
<div class="wd-dashboard__header">
<div class="wd-dashboard__title-group">
<p class="wd-dashboard__eyebrow">Gestão do Desligamento</p>
<h2 class="wd-dashboard__title">Solicitações de Desligamento</h2>
</div>
<div class="wd-dashboard__actions">
<div class="wd-view-toggle" role="group" aria-label="Tipo de visualização">
<button type="button" class="wd-view-btn wd-view-btn--active" data-view="list" title="Lista">
<svg width="13" height="13" viewBox="0 0 13 13" fill="currentColor" aria-hidden="true"><rect y="0" width="13" height="2" rx="1"/><rect y="4" width="13" height="2" rx="1"/><rect y="8" width="13" height="2" rx="1"/><rect y="11" width="9" height="2" rx="1"/></svg>
Lista
</button>
<button type="button" class="wd-view-btn" data-view="kanban" title="Kanban">
<svg width="13" height="13" viewBox="0 0 13 13" fill="currentColor" aria-hidden="true"><rect x="0" y="0" width="3" height="13" rx="1"/><rect x="5" y="0" width="3" height="9" rx="1"/><rect x="10" y="0" width="3" height="11" rx="1"/></svg>
Kanban
</button>
</div>
<button type="button" class="btn btn-default wd-dashboard__button" data-refresh-dashboard>
<span class="fluigicon fluigicon-refresh icon-sm" aria-hidden="true"></span> Atualizar
</button>
</div>
</div>
<div class="wd-dashboard__metrics">
<div class="wd-metric" data-filter-status="all" title="Ver todos">
<div class="wd-metric__icon">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><rect x="4" y="2" width="12" height="16" rx="2"/><line x1="7" y1="7" x2="13" y2="7"/><line x1="7" y1="10" x2="13" y2="10"/><line x1="7" y1="13" x2="11" y2="13"/></svg>
</div>
<div class="wd-metric__body">
<span class="wd-metric__label">Total</span>
<strong class="wd-metric__value" data-metric-total>—</strong>
</div>
</div>
<div class="wd-metric wd-metric--progress" data-filter-status="progress" title="Filtrar: Em andamento">
<div class="wd-metric__icon">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><circle cx="10" cy="10" r="7"/><polyline points="10,6 10,10 13,12"/></svg>
</div>
<div class="wd-metric__body">
<span class="wd-metric__label">Em andamento</span>
<strong class="wd-metric__value" data-metric-progress>—</strong>
</div>
</div>
<div class="wd-metric wd-metric--attention" data-filter-status="attention" title="Filtrar: Atenção">
<div class="wd-metric__icon">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="M10 3L2 17h16L10 3z"/><line x1="10" y1="9" x2="10" y2="13"/><circle cx="10" cy="15.5" r="0.6" fill="currentColor"/></svg>
</div>
<div class="wd-metric__body">
<span class="wd-metric__label">Atenção</span>
<strong class="wd-metric__value" data-metric-attention>—</strong>
</div>
</div>
<div class="wd-metric wd-metric--done" data-filter-status="done" title="Filtrar: Finalizadas">
<div class="wd-metric__icon">
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><circle cx="10" cy="10" r="7"/><polyline points="7,10 9,12 13,8"/></svg>
</div>
<div class="wd-metric__body">
<span class="wd-metric__label">Finalizadas</span>
<strong class="wd-metric__value" data-metric-done>—</strong>
</div>
</div>
</div>
<div class="wd-op-indicators" data-op-indicators style="display:none"></div>
<div class="wd-dashboard__filters">
<div class="wd-search">
<span class="fluigicon fluigicon-search icon-sm" aria-hidden="true"></span>
<input type="text" class="form-control" placeholder="Buscar por colaborador, gestor, nº da solicitação, etapa…" data-dashboard-search>
</div>
<select class="form-control wd-filter" data-dashboard-status>
<option value="all">Todos os status</option>
<option value="progress">Em andamento</option>
<option value="attention">Atenção</option>
<option value="done">Finalizadas</option>
<option value="canceled">Canceladas</option>
</select>
</div>
<div class="wd-dashboard__state wd-dashboard__state--loading" data-dashboard-loading>
<span class="wd-spinner" aria-hidden="true"></span>
Carregando solicitações…
</div>
<div class="wd-dashboard__state wd-dashboard__state--empty" data-dashboard-empty style="display:none">
Nenhuma solicitação encontrada para os filtros atuais.
</div>
<div class="wd-dashboard__state wd-dashboard__state--error" data-dashboard-error style="display:none"></div>
<div class="wd-dashboard__list" data-dashboard-list></div>
<div class="wd-pagination" data-dashboard-pagination></div>
<div class="wd-kanban" data-dashboard-kanban style="display:none"></div>
<div class="wd-pagination" data-dashboard-kanban-pagination style="display:none"></div>
</div>
</div>
<div id="WdDrawer_${instanceId}" class="wd-drawer" data-drawer>
<div class="wd-drawer__overlay" data-drawer-close></div>
<div class="wd-drawer__panel">
<div class="wd-drawer__header">
<div>
<span class="wd-drawer__num" data-drawer-num></span>
<h3 class="wd-drawer__name" data-drawer-name></h3>
<p class="wd-drawer__sub" data-drawer-role></p>
</div>
<button type="button" class="wd-drawer__close" data-drawer-close aria-label="Fechar painel">
<svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path d="M4.293 4.293a1 1 0 011.414 0L8 6.586l2.293-2.293a1 1 0 111.414 1.414L9.414 8l2.293 2.293a1 1 0 01-1.414 1.414L8 9.414l-2.293 2.293a1 1 0 01-1.414-1.414L6.586 8 4.293 5.707a1 1 0 010-1.414z"/></svg>
</button>
</div>
<div class="wd-drawer__body" data-drawer-content></div>
</div>
</div>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/wddesligamento</context-root>
<disable-cross-context>false</disable-cross-context>
</jboss-web>
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

@@ -0,0 +1,17 @@
application.type=widget
application.code=wddesligamentokpis
application.title=wddesligamentokpis
application.description=wddesligamentokpis
application.fluig.version=null
application.category=Desligamento
application.renderer=freemarker
developer.code=Andrey
developer.name=Andrey
developer.url=http://www.fluig.com
application.uiwidget=true
application.mobileapp=false
application.version=${build.version}-${build.revision}
view.file=view.ftl
locale.file.base.name=wddesligamentokpis
application.resource.js.1=/resources/js/wddesligamentokpis.js
application.resource.css.2=/resources/css/wddesligamentokpis.css
@@ -0,0 +1,117 @@
<script src="/webdesk/vcXMLRPC.js"></script>
<div id="WdKpis_${instanceId}" class="super-widget wcm-widget-class fluig-style-guide wdk-widget" data-params="WdKpisWidget.instance({ instanceId: '${instanceId}' })">
<div class="wdk-shell">
<!-- Header -->
<div class="wdk-header">
<div>
<p class="wdk-eyebrow">Análise de Desligamentos</p>
<h2 class="wdk-title">KPIs por Tipo e Departamento</h2>
</div>
<div class="wdk-actions">
<div class="wdk-period-toggle" role="group">
<button type="button" class="wdk-period-btn wdk-period-btn--active" data-period="all">Todos</button>
<button type="button" class="wdk-period-btn" data-period="year">Este ano</button>
<button type="button" class="wdk-period-btn" data-period="month">Este mês</button>
</div>
<button type="button" class="btn btn-default wdk-refresh-btn" data-refresh>
<span class="fluigicon fluigicon-refresh icon-sm" aria-hidden="true"></span>
</button>
</div>
</div>
<!-- Summary KPIs -->
<div class="wdk-summary" data-summary>
<div class="wdk-summary__card">
<span class="wdk-summary__label">Total</span>
<strong class="wdk-summary__value" data-kpi-total>—</strong>
</div>
<div class="wdk-summary__card wdk-summary__card--blue">
<span class="wdk-summary__label">Exp. probatória</span>
<strong class="wdk-summary__value" data-kpi-tipo-experiencia>—</strong>
<span class="wdk-summary__pct" data-kpi-tipo-experiencia-pct></span>
</div>
<div class="wdk-summary__card wdk-summary__card--amber">
<span class="wdk-summary__label">Baixo desempenho</span>
<strong class="wdk-summary__value" data-kpi-tipo-desempenho>—</strong>
<span class="wdk-summary__pct" data-kpi-tipo-desempenho-pct></span>
</div>
<div class="wdk-summary__card wdk-summary__card--purple">
<span class="wdk-summary__label">Substituição</span>
<strong class="wdk-summary__value" data-kpi-tipo-substituicao>—</strong>
<span class="wdk-summary__pct" data-kpi-tipo-substituicao-pct></span>
</div>
<div class="wdk-summary__card wdk-summary__card--gray">
<span class="wdk-summary__label">Outros tipos</span>
<strong class="wdk-summary__value" data-kpi-tipo-outros>—</strong>
<span class="wdk-summary__pct" data-kpi-tipo-outros-pct></span>
</div>
</div>
<!-- States -->
<div class="wdk-state wdk-state--loading" data-loading>
<span class="wdk-spinner" aria-hidden="true"></span>
Carregando dados…
</div>
<div class="wdk-state wdk-state--empty" data-empty style="display:none">
Nenhum dado encontrado para o período selecionado.
</div>
<div class="wdk-state wdk-state--error" data-error style="display:none"></div>
<!-- Breakdowns -->
<div class="wdk-breakdowns" data-breakdowns style="display:none">
<div class="wdk-panel">
<div class="wdk-panel__header">
<span class="wdk-panel__title">Por Tipo de Desligamento</span>
<span class="wdk-panel__badge" data-tipo-total></span>
</div>
<div class="wdk-bars" data-tipo-bars></div>
</div>
<div class="wdk-panel">
<div class="wdk-panel__header">
<span class="wdk-panel__title">Por Departamento</span>
<span class="wdk-panel__badge" data-dept-total></span>
</div>
<div class="wdk-bars" data-dept-bars></div>
</div>
<div class="wdk-panel wdk-panel--full">
<div class="wdk-panel__header">
<span class="wdk-panel__title">Por Função do Colaborador</span>
<span class="wdk-panel__badge" data-cargo-total></span>
</div>
<div class="wdk-bars wdk-bars--grid" data-cargo-bars></div>
</div>
</div>
<!-- Drill-down panel -->
<div class="wdk-drilldown" data-drilldown style="display:none">
<div class="wdk-drilldown__header">
<button type="button" class="wdk-drilldown__back" data-drill-back>&#8592; Voltar</button>
<div class="wdk-drilldown__meta">
<span class="wdk-drilldown__title" data-drill-title></span>
<span class="wdk-panel__badge" data-drill-count></span>
</div>
</div>
<div class="wdk-drill-list" data-drill-list></div>
</div>
<!-- Detail card modal -->
<div class="wdk-detail-overlay" data-detail-modal style="display:none">
<div class="wdk-detail-card">
<div class="wdk-detail-card__header">
<strong data-detail-num></strong>
<button type="button" class="wdk-detail-card__close" data-detail-close>&#10005;</button>
</div>
<dl class="wdk-detail-dl">
<dt>Colaborador</dt> <dd data-detail-employee></dd>
<dt>Departamento</dt> <dd data-detail-dept></dd>
<dt>Tipo</dt> <dd data-detail-tipo></dd>
<dt>Abertura</dt> <dd data-detail-date></dd>
<dt>Gestor</dt> <dd data-detail-requester></dd>
</dl>
</div>
</div>
</div>
</div>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/wddesligamentokpis</context-root>
<disable-cross-context>false</disable-cross-context>
</jboss-web>
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
@@ -0,0 +1,494 @@
/* ================================================================
wddesligamentokpis.css — KPIs por Tipo e Departamento
================================================================ */
.wdk-widget {
color: #0f172a;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}
.wdk-widget * { box-sizing: border-box; }
.wdk-shell {
background: #f8fafc;
border: 1px solid #e2e8f0;
border-radius: 12px;
padding: 20px;
}
/* ── Header ───────────────────────────────────────────────────── */
.wdk-header {
align-items: center;
display: flex;
gap: 12px;
justify-content: space-between;
margin-bottom: 16px;
flex-wrap: wrap;
}
.wdk-eyebrow {
color: #64748b;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.06em;
margin: 0 0 2px;
text-transform: uppercase;
}
.wdk-title {
color: #0f172a;
font-size: 20px;
font-weight: 700;
line-height: 1.2;
margin: 0;
}
.wdk-actions {
align-items: center;
display: flex;
gap: 8px;
flex: 0 0 auto;
}
.wdk-refresh-btn {
align-items: center;
display: inline-flex;
padding: 6px 10px;
}
/* ── Period toggle ────────────────────────────────────────────── */
.wdk-period-toggle {
background: #e2e8f0;
border-radius: 8px;
display: inline-flex;
gap: 2px;
padding: 3px;
}
.wdk-period-btn {
background: transparent;
border: none;
border-radius: 6px;
color: #64748b;
cursor: pointer;
font-size: 12px;
font-weight: 600;
padding: 4px 10px;
transition: background 0.15s, color 0.15s;
}
.wdk-period-btn--active {
background: #ffffff;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
color: #1e40af;
}
/* ── Summary KPI cards ────────────────────────────────────────── */
.wdk-summary {
display: grid;
gap: 10px;
grid-template-columns: repeat(5, minmax(0, 1fr));
margin-bottom: 16px;
}
.wdk-summary__card {
background: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 10px;
border-top: 3px solid #e2e8f0;
padding: 12px 14px;
transition: box-shadow 0.15s;
}
.wdk-summary__card--blue { border-top-color: #3b82f6; }
.wdk-summary__card--amber { border-top-color: #f59e0b; }
.wdk-summary__card--purple { border-top-color: #8b5cf6; }
.wdk-summary__card--gray { border-top-color: #94a3b8; }
.wdk-summary__label {
color: #64748b;
display: block;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.04em;
margin-bottom: 4px;
text-transform: uppercase;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.wdk-summary__value {
color: #0f172a;
display: block;
font-size: 32px;
font-weight: 800;
line-height: 1;
margin-bottom: 2px;
}
.wdk-summary__card--blue .wdk-summary__value { color: #2563eb; }
.wdk-summary__card--amber .wdk-summary__value { color: #d97706; }
.wdk-summary__card--purple .wdk-summary__value { color: #7c3aed; }
.wdk-summary__card--gray .wdk-summary__value { color: #64748b; }
.wdk-summary__pct {
color: #64748b;
display: block;
font-size: 12px;
font-weight: 600;
}
/* ── States ───────────────────────────────────────────────────── */
.wdk-state {
align-items: center;
background: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 10px;
color: #64748b;
display: flex;
gap: 10px;
justify-content: center;
margin-bottom: 0;
padding: 28px;
}
.wdk-state--error {
background: #fff1f2;
border-color: #fecdd3;
color: #9f1239;
justify-content: flex-start;
}
@keyframes wdk-spin { to { transform: rotate(360deg); } }
.wdk-spinner {
animation: wdk-spin 0.75s linear infinite;
border: 2px solid #e2e8f0;
border-radius: 50%;
border-top-color: #2563eb;
display: inline-block;
flex: 0 0 auto;
height: 18px;
width: 18px;
}
/* ── Two-column breakdowns ────────────────────────────────────── */
.wdk-breakdowns {
display: grid;
gap: 12px;
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.wdk-panel {
background: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 10px;
overflow: hidden;
}
/* cargo panel spans full width of the 2-column grid */
.wdk-panel--full {
grid-column: 1 / -1;
}
/* cargo bars in 2-column grid inside the panel */
.wdk-bars--grid {
column-count: 2;
column-gap: 0;
padding: 4px 0;
}
.wdk-bars--grid .wdk-bar-row {
break-inside: avoid;
}
.wdk-panel__header {
align-items: center;
border-bottom: 1px solid #f1f5f9;
display: flex;
gap: 8px;
justify-content: space-between;
padding: 12px 16px;
}
.wdk-panel__title {
color: #334155;
font-size: 13px;
font-weight: 700;
}
.wdk-panel__badge {
background: #f1f5f9;
border-radius: 999px;
color: #64748b;
font-size: 11px;
font-weight: 700;
padding: 2px 8px;
}
/* ── Bar rows ─────────────────────────────────────────────────── */
.wdk-bars {
padding: 8px 0;
}
.wdk-bar-row {
align-items: center;
display: flex;
gap: 10px;
padding: 7px 16px;
transition: background 0.12s;
}
.wdk-bar-row:hover {
background: #f8fafc;
}
.wdk-bar-row__label {
color: #334155;
flex: 0 0 auto;
font-size: 13px;
font-weight: 600;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 150px;
}
.wdk-bar-row__track {
background: #f1f5f9;
border-radius: 999px;
flex: 1 1 0;
height: 8px;
min-width: 0;
overflow: hidden;
}
.wdk-bar-row__fill {
border-radius: 999px;
height: 100%;
transition: width 0.5s ease;
}
.wdk-bar-row__count {
color: #0f172a;
flex: 0 0 auto;
font-size: 13px;
font-weight: 800;
min-width: 28px;
text-align: right;
}
.wdk-bar-row__pct {
color: #94a3b8;
flex: 0 0 auto;
font-size: 11px;
font-weight: 600;
min-width: 34px;
text-align: right;
}
/* Tipo colors */
.wdk-fill--0 { background: #3b82f6; }
.wdk-fill--1 { background: #f59e0b; }
.wdk-fill--2 { background: #8b5cf6; }
.wdk-fill--3 { background: #22c55e; }
.wdk-fill--4 { background: #ef4444; }
.wdk-fill--5 { background: #06b6d4; }
.wdk-fill--6 { background: #f97316; }
.wdk-fill--other { background: #94a3b8; }
/* Dept colors — gradient blue */
.wdk-fill-dept {
background: linear-gradient(90deg, #2563eb, #06b6d4);
}
/* ── Responsive ───────────────────────────────────────────────── */
@media (max-width: 900px) {
.wdk-summary { grid-template-columns: repeat(3, 1fr); }
.wdk-breakdowns { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
.wdk-summary { grid-template-columns: repeat(2, 1fr); }
.wdk-bar-row__label { width: 110px; }
}
@media (max-width: 420px) {
.wdk-summary { grid-template-columns: 1fr 1fr; }
}
/* ── Clickable bar rows ───────────────────────────────────────── */
.wdk-bar-row--drill { cursor: pointer; }
.wdk-bar-row--drill:hover { background: #eff6ff; }
.wdk-bar-row--drill .wdk-bar-row__label { color: #1d4ed8; }
/* ── Drilldown panel ──────────────────────────────────────────── */
.wdk-drilldown { padding: 4px 0; }
.wdk-drilldown__header {
align-items: center;
border-bottom: 1px solid #e2e8f0;
display: flex;
gap: 12px;
margin-bottom: 4px;
padding-bottom: 10px;
}
.wdk-drilldown__back {
background: #ffffff;
border: 1px solid #cbd5e1;
border-radius: 6px;
color: #475569;
cursor: pointer;
flex: 0 0 auto;
font-size: 12px;
font-weight: 600;
padding: 4px 12px;
transition: background 0.12s;
}
.wdk-drilldown__back:hover { background: #f8fafc; }
.wdk-drilldown__meta { align-items: center; display: flex; gap: 8px; }
.wdk-drilldown__title {
color: #0f172a;
font-size: 14px;
font-weight: 700;
}
.wdk-drill-list {
max-height: 340px;
overflow-y: auto;
}
.wdk-drill-row {
align-items: center;
border-bottom: 1px solid #f1f5f9;
cursor: pointer;
display: flex;
gap: 10px;
padding: 8px 12px;
transition: background 0.1s;
}
.wdk-drill-row:hover { background: #f8fafc; }
.wdk-drill-row__num {
color: #64748b;
flex: 0 0 68px;
font-size: 12px;
font-weight: 700;
}
.wdk-drill-row__info {
display: flex;
flex: 1 1 0;
flex-direction: column;
min-width: 0;
}
.wdk-drill-row__employee {
color: #0f172a;
font-size: 13px;
font-weight: 600;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.wdk-drill-row__dept {
color: #64748b;
font-size: 11px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.wdk-drill-row__date {
color: #94a3b8;
flex: 0 0 60px;
font-size: 11px;
text-align: right;
}
.wdk-drill-empty {
color: #94a3b8;
font-size: 13px;
padding: 20px;
text-align: center;
}
/* ── Detail overlay + card ────────────────────────────────────── */
.wdk-detail-overlay {
align-items: center;
background: rgba(15, 23, 42, 0.45);
bottom: 0;
display: flex;
justify-content: center;
left: 0;
position: fixed;
right: 0;
top: 0;
z-index: 9500;
}
.wdk-detail-card {
background: #ffffff;
border-radius: 12px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
max-width: 440px;
padding: 24px;
width: 90%;
}
.wdk-detail-card__header {
align-items: center;
display: flex;
justify-content: space-between;
margin-bottom: 16px;
}
.wdk-detail-card__header strong {
color: #0f172a;
font-size: 18px;
font-weight: 800;
}
.wdk-detail-card__close {
background: none;
border: none;
color: #94a3b8;
cursor: pointer;
font-size: 18px;
line-height: 1;
padding: 4px;
transition: color 0.12s;
}
.wdk-detail-card__close:hover { color: #475569; }
.wdk-detail-dl {
display: grid;
gap: 0 16px;
grid-template-columns: auto 1fr;
margin: 0;
}
.wdk-detail-dl dt {
color: #94a3b8;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.05em;
padding: 7px 0;
text-transform: uppercase;
white-space: nowrap;
}
.wdk-detail-dl dd {
border-bottom: 1px solid #f1f5f9;
color: #0f172a;
font-size: 13px;
font-weight: 600;
margin: 0;
padding: 7px 0;
}
@@ -0,0 +1,518 @@
var WdKpisWidget = SuperWidget.extend({
instanceId: null,
/* dataset names to try in order */
datasetCandidates: [
"desligamentoColaborador",
"Desligamento",
"desligamento"
],
/* fields to request from dataset (null = all) */
datasetFields: [
"tipodesligamento",
"departamento",
"dataAbertura",
"WKNumProces",
"colabDesliga",
"requesterName",
"cargoColaborador"
],
/* known tipo codes → display labels */
tipoLabels: {
"experiencia": "Exp. Probatória",
"desempenho": "Baixo Desempenho",
"substituicao": "Substituição",
"voluntario": "Pedido do colaborador",
"acordo": "Acordo",
"outros": "Outros"
},
/* summary card slot → tipo keys */
summarySlots: {
"experiencia": "[data-kpi-tipo-experiencia]",
"desempenho": "[data-kpi-tipo-desempenho]",
"substituicao": "[data-kpi-tipo-substituicao]"
},
currentPeriod: "all",
allRecords: [],
drillFilter: null,
init: function() {
this.$root = $("#WdKpis_" + this.instanceId);
this.$loading = this.$root.find("[data-loading]");
this.$empty = this.$root.find("[data-empty]");
this.$error = this.$root.find("[data-error]");
this.$breakdowns = this.$root.find("[data-breakdowns]");
this.$tipoBars = this.$root.find("[data-tipo-bars]");
this.$deptBars = this.$root.find("[data-dept-bars]");
this.$cargoBars = this.$root.find("[data-cargo-bars]");
this.$drilldown = this.$root.find("[data-drilldown]");
this.$drillList = this.$root.find("[data-drill-list]");
this.$detailModal = this.$root.find("[data-detail-modal]");
this.bindUi();
this.loadData();
},
bindings: { local: {}, global: {} },
bindUi: function() {
var self = this;
this.$root.find("[data-refresh]").on("click", function() {
self.loadData();
});
this.$root.on("click", "[data-period]", function() {
self.currentPeriod = $(this).data("period");
self.$root.find("[data-period]").removeClass("wdk-period-btn--active");
$(this).addClass("wdk-period-btn--active");
self.drillFilter = null;
self.render();
});
/* bar click → drill-down */
this.$root.on("click", "[data-drill]", function() {
var $el = $(this);
self.drillFilter = { field: $el.data("drill-field"), value: $el.data("drill-value") };
self.renderDrilldown();
});
/* back button */
this.$root.on("click", "[data-drill-back]", function() {
self.drillFilter = null;
self.render();
});
/* drill-list row → detail card */
this.$root.on("click", "[data-drill-row]", function() {
var idx = parseInt($(this).data("drill-row"), 10);
var recs = self.getDrillRecords();
if (recs[idx]) { self.showDetail(recs[idx]); }
});
/* close detail modal */
this.$root.on("click", "[data-detail-close]", function() {
self.$detailModal.hide();
});
$(document).on("keydown.wdKpisDetail_" + this.instanceId, function(e) {
if (e.which === 27) { self.$detailModal.hide(); }
});
},
/* ── Data loading ─────────────────────────────────────────── */
loadData: function() {
var self = this;
this.showLoading();
$.ajax({
url: "/api/public/ecm/dataset/search",
type: "POST",
contentType: "application/json",
data: JSON.stringify({
datasetId: "desligamento",
fields: self.datasetFields,
constraints: [],
order: [],
size: 2000
})
})
.done(function(res) {
var rows = self.deduplicateByProcess(res.content || []);
self.allRecords = rows.map(function(r) { return self.normalizeRecord(r); });
self.render();
})
.fail(function() {
/* fallback: process management API (sem campos do formulário) */
self.fetchFromApi();
});
},
deduplicateByProcess: function(rows) {
/* keep last row per WKNumProces — a versão mais recente tem os campos mais completos */
var map = {};
for (var i = 0; i < rows.length; i++) {
var proc = String(rows[i]["WKNumProces"] || rows[i]["processInstanceId"] || ("__idx_" + i));
map[proc] = rows[i]; /* sobrescreve: última linha ganha */
}
var deduped = [];
for (var k in map) {
if (map.hasOwnProperty(k)) { deduped.push(map[k]); }
}
return deduped;
},
normalizeRecord: function(row) {
var tipo = this.readField(row, ["tipodesligamento", "tipo", "tipoDemissao", "dismissalType"]);
var dept = this.readField(row, ["departamento", "department", "area", "setor"]);
var dateStr = this.readField(row, ["dataAbertura", "startDate", "createDate", "WKCreateDate"]);
var processNum = this.readField(row, ["WKNumProces", "processInstanceId"]);
var employee = this.readField(row, ["colabDesliga", "colaborador", "employeeName"]);
var requester = this.readField(row, ["requesterName", "solicitante", "requester"]);
var cargo = this.readField(row, ["cargoColaborador", "cargo", "role", "position"]);
return {
tipo: this.normalizeTipo(tipo),
tipoRaw: String(tipo || "").toLowerCase().trim(),
dept: String(dept || "Não informado").trim() || "Não informado",
date: this.parseDate(dateStr),
processNum: processNum,
employee: employee || "Não informado",
requester: requester || "—",
cargo: String(cargo || "Não informado").trim() || "Não informado"
};
},
normalizeTipo: function(value) {
if (!value) { return "Não informado"; }
var key = String(value).toLowerCase()
.replace(/[áàâã]/g, "a").replace(/[éèê]/g, "e")
.replace(/[íìî]/g, "i").replace(/[óòôõ]/g, "o")
.replace(/[úùû]/g, "u").replace(/ç/g, "c")
.trim();
return this.tipoLabels[key] || String(value).trim() || "Outros";
},
readField: function(row, keys) {
if (!row) { return ""; }
for (var i = 0; i < keys.length; i++) {
var v = row[keys[i]];
if (v !== undefined && v !== null && String(v).trim() !== "") { return String(v).trim(); }
}
return "";
},
parseDate: function(value) {
if (!value) { return null; }
var s = String(value);
/* DD/MM/YYYY */
var m1 = s.match(/^(\d{2})\/(\d{2})\/(\d{4})/);
if (m1) { return new Date(+m1[3], +m1[2] - 1, +m1[1]); }
/* YYYY-MM-DD or ISO */
var m2 = s.match(/^(\d{4})-(\d{2})-(\d{2})/);
if (m2) { return new Date(+m2[1], +m2[2] - 1, +m2[3]); }
var d = new Date(s);
return isNaN(d.getTime()) ? null : d;
},
fetchFromApi: function() {
var self = this;
$.ajax({
url: "/process-management/api/v2/processes/desligamentoColaborador/requests?page=1&pageSize=1000",
method: "GET",
dataType: "json",
headers: { Accept: "application/json" }
})
.done(function(response) {
var rows = [];
var data = response;
var keys = ["content", "items", "requests", "data", "values"];
for (var k = 0; k < keys.length; k++) {
if ($.isArray(data[keys[k]])) { rows = data[keys[k]]; break; }
}
if ($.isArray(data)) { rows = data; }
self.allRecords = rows.map(function(r) { return self.normalizeRecord(r); });
self.render();
})
.fail(function() {
self.showError("Não foi possível carregar os dados. Verifique se o dataset está publicado com um dos nomes: " + self.datasetCandidates.join(", ") + ".");
});
},
/* ── Period filter ────────────────────────────────────────── */
filterByPeriod: function(records) {
if (this.currentPeriod === "all") { return records; }
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth();
var period = this.currentPeriod;
return records.filter(function(r) {
if (!r.date) { return true; }
if (period === "year") { return r.date.getFullYear() === year; }
if (period === "month") { return r.date.getFullYear() === year && r.date.getMonth() === month; }
return true;
});
},
/* ── Render ───────────────────────────────────────────────── */
render: function() {
this.$loading.hide();
this.$error.hide();
this.$drilldown.hide();
this.$detailModal.hide();
if (this.drillFilter) { this.renderDrilldown(); return; }
var records = this.filterByPeriod(this.allRecords);
var total = records.length;
if (!total) {
this.$breakdowns.hide();
this.$empty.show();
this.clearSummary();
return;
}
this.$empty.hide();
this.$breakdowns.show();
var tipoMap = this.groupBy(records, "tipo");
var deptMap = this.groupBy(records, "dept");
var cargoMap = this.groupBy(records, "cargo");
this.renderSummary(total, tipoMap);
this.renderTipoBars(tipoMap, total);
this.renderDeptBars(deptMap, total);
this.renderCargoBars(cargoMap, total);
},
groupBy: function(records, field) {
var map = {};
for (var i = 0; i < records.length; i++) {
var key = records[i][field] || "Não informado";
map[key] = (map[key] || 0) + 1;
}
/* sort desc */
var sorted = [];
for (var k in map) {
if (map.hasOwnProperty(k)) { sorted.push({ label: k, count: map[k] }); }
}
sorted.sort(function(a, b) { return b.count - a.count; });
return sorted;
},
/* ── Summary cards ────────────────────────────────────────── */
clearSummary: function() {
this.$root.find("[data-kpi-total]").text("—");
this.$root.find("[data-kpi-tipo-experiencia]").text("—");
this.$root.find("[data-kpi-tipo-desempenho]").text("—");
this.$root.find("[data-kpi-tipo-substituicao]").text("—");
this.$root.find("[data-kpi-tipo-outros]").text("—");
this.$root.find("[data-kpi-tipo-experiencia-pct], [data-kpi-tipo-desempenho-pct], [data-kpi-tipo-substituicao-pct], [data-kpi-tipo-outros-pct]").text("");
},
renderSummary: function(total, tipoArr) {
this.$root.find("[data-kpi-total]").text(total);
/* map label → count */
var byLabel = {};
for (var i = 0; i < tipoArr.length; i++) {
byLabel[tipoArr[i].label] = tipoArr[i].count;
}
var slots = {
"Exp. Probatória": { val: "[data-kpi-tipo-experiencia]", pct: "[data-kpi-tipo-experiencia-pct]" },
"Baixo Desempenho": { val: "[data-kpi-tipo-desempenho]", pct: "[data-kpi-tipo-desempenho-pct]" },
"Substituição": { val: "[data-kpi-tipo-substituicao]", pct: "[data-kpi-tipo-substituicao-pct]" }
};
var slotKeys = Object.keys ? Object.keys(slots) : (function() { var k = []; for (var x in slots) { if (slots.hasOwnProperty(x)) k.push(x); } return k; })();
var knownKeys = slotKeys.slice();
var outros = 0;
for (var k in byLabel) {
if (byLabel.hasOwnProperty(k)) {
var isKnown = false;
for (var j = 0; j < knownKeys.length; j++) { if (knownKeys[j] === k) { isKnown = true; break; } }
if (!isKnown) { outros += byLabel[k]; }
}
}
for (var label in slots) {
if (!slots.hasOwnProperty(label)) { continue; }
var count = byLabel[label] || 0;
var pct = total > 0 ? Math.round(count / total * 100) : 0;
this.$root.find(slots[label].val).text(count);
this.$root.find(slots[label].pct).text(count ? pct + "%" : "");
}
this.$root.find("[data-kpi-tipo-outros]").text(outros);
this.$root.find("[data-kpi-tipo-outros-pct]").text(outros && total ? Math.round(outros / total * 100) + "%" : "");
},
/* ── Tipo bar chart ───────────────────────────────────────── */
renderTipoBars: function(tipoArr, total) {
this.$root.find("[data-tipo-total]").text(tipoArr.length + " tipos");
if (!tipoArr.length) { this.$tipoBars.html(""); return; }
var maxCount = tipoArr[0].count;
var html = "";
for (var i = 0; i < tipoArr.length; i++) {
var item = tipoArr[i];
var barPct = Math.round(item.count / maxCount * 100);
var pct = Math.round(item.count / total * 100);
var colorClass = "wdk-fill--" + Math.min(i, 6);
html += '<div class="wdk-bar-row wdk-bar-row--drill" data-drill data-drill-field="tipo" data-drill-value="' + this.escapeHtml(item.label) + '">';
html += '<span class="wdk-bar-row__label" title="' + this.escapeHtml(item.label) + '">' + this.escapeHtml(item.label) + '</span>';
html += '<div class="wdk-bar-row__track"><div class="wdk-bar-row__fill ' + colorClass + '" style="width:' + barPct + '%"></div></div>';
html += '<span class="wdk-bar-row__count">' + item.count + '</span>';
html += '<span class="wdk-bar-row__pct">' + pct + '%</span>';
html += '</div>';
}
this.$tipoBars.html(html);
},
/* ── Dept bar chart ───────────────────────────────────────── */
renderDeptBars: function(deptArr, total) {
this.$root.find("[data-dept-total]").text(deptArr.length + " depto" + (deptArr.length !== 1 ? "s" : ""));
if (!deptArr.length) { this.$deptBars.html(""); return; }
var maxCount = deptArr[0].count;
/* show top 12 departments */
var visible = deptArr.slice(0, 12);
var html = "";
for (var i = 0; i < visible.length; i++) {
var item = visible[i];
var barPct = Math.round(item.count / maxCount * 100);
var pct = Math.round(item.count / total * 100);
html += '<div class="wdk-bar-row wdk-bar-row--drill" data-drill data-drill-field="dept" data-drill-value="' + this.escapeHtml(item.label) + '">';
html += '<span class="wdk-bar-row__label" title="' + this.escapeHtml(item.label) + '">' + this.escapeHtml(item.label) + '</span>';
html += '<div class="wdk-bar-row__track"><div class="wdk-bar-row__fill wdk-fill-dept" style="width:' + barPct + '%"></div></div>';
html += '<span class="wdk-bar-row__count">' + item.count + '</span>';
html += '<span class="wdk-bar-row__pct">' + pct + '%</span>';
html += '</div>';
}
if (deptArr.length > 12) {
var remaining = deptArr.length - 12;
html += '<div class="wdk-bar-row" style="opacity:0.6"><span class="wdk-bar-row__label">+ ' + remaining + ' outros</span></div>';
}
this.$deptBars.html(html);
},
/* ── Cargo bar chart ──────────────────────────────────────── */
renderCargoBars: function(cargoArr, total) {
this.$root.find("[data-cargo-total]").text(cargoArr.length + (cargoArr.length !== 1 ? " funções" : " função"));
if (!cargoArr.length) { this.$cargoBars.html(""); return; }
var maxCount = cargoArr[0].count;
/* show top 15 functions */
var visible = cargoArr.slice(0, 15);
var html = "";
for (var i = 0; i < visible.length; i++) {
var item = visible[i];
var barPct = Math.round(item.count / maxCount * 100);
var pct = Math.round(item.count / total * 100);
var colorClass = "wdk-fill--" + Math.min(i, 6);
html += '<div class="wdk-bar-row wdk-bar-row--drill" data-drill data-drill-field="cargo" data-drill-value="' + this.escapeHtml(item.label) + '">';
html += '<span class="wdk-bar-row__label" title="' + this.escapeHtml(item.label) + '">' + this.escapeHtml(item.label) + '</span>';
html += '<div class="wdk-bar-row__track"><div class="wdk-bar-row__fill ' + colorClass + '" style="width:' + barPct + '%"></div></div>';
html += '<span class="wdk-bar-row__count">' + item.count + '</span>';
html += '<span class="wdk-bar-row__pct">' + pct + '%</span>';
html += '</div>';
}
if (cargoArr.length > 15) {
var remaining = cargoArr.length - 15;
html += '<div class="wdk-bar-row" style="opacity:0.6"><span class="wdk-bar-row__label">+ ' + remaining + ' outras</span></div>';
}
this.$cargoBars.html(html);
},
/* ── Drill-down ──────────────────────────────────────────── */
getDrillRecords: function() {
var records = this.filterByPeriod(this.allRecords);
var f = this.drillFilter;
if (!f) { return records; }
return records.filter(function(r) {
return r[f.field] === f.value;
});
},
renderDrilldown: function() {
this.$breakdowns.hide();
this.$empty.hide();
this.$drilldown.show();
var records = this.getDrillRecords();
this.$root.find("[data-drill-title]").text(this.drillFilter.value);
this.$root.find("[data-drill-count]").text(records.length + " processo" + (records.length !== 1 ? "s" : ""));
var html = "";
for (var i = 0; i < records.length; i++) {
var r = records[i];
html += '<div class="wdk-drill-row" data-drill-row="' + i + '">';
html += '<span class="wdk-drill-row__num">' + this.escapeHtml(r.processNum ? "#" + r.processNum : "—") + '</span>';
html += '<div class="wdk-drill-row__info">';
html += '<span class="wdk-drill-row__employee">' + this.escapeHtml(r.employee) + '</span>';
html += '<span class="wdk-drill-row__dept">' + this.escapeHtml(r.dept) + '</span>';
html += '</div>';
html += '<span class="wdk-drill-row__date">' + (r.date ? this.formatDate(r.date) : "—") + '</span>';
html += '</div>';
}
if (!html) { html = '<div class="wdk-drill-empty">Nenhum registro.</div>'; }
this.$drillList.html(html);
},
showDetail: function(record) {
var m = this.$detailModal;
m.find("[data-detail-num]").text(record.processNum ? "#" + record.processNum : "—");
m.find("[data-detail-employee]").text(record.employee);
m.find("[data-detail-dept]").text(record.dept);
m.find("[data-detail-tipo]").text(record.tipo);
m.find("[data-detail-date]").text(record.date ? this.formatDate(record.date) : "—");
m.find("[data-detail-requester]").text(record.requester);
m.show();
},
formatDate: function(d) {
if (!d) { return "—"; }
return ("0" + d.getDate()).slice(-2) + "/" + ("0" + (d.getMonth() + 1)).slice(-2) + "/" + d.getFullYear();
},
/* ── State helpers ────────────────────────────────────────── */
showLoading: function() {
this.$error.hide();
this.$empty.hide();
this.$breakdowns.hide();
this.$loading.show();
},
showError: function(msg) {
this.$loading.hide();
this.$empty.hide();
this.$error.text(msg || "Erro ao carregar dados.").show();
},
escapeHtml: function(value) {
return String(value === undefined || value === null ? "" : value)
.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/"/g, "&quot;")
.replace(/'/g, "&#039;");
}
});
@@ -0,0 +1,17 @@
application.type=widget
application.code=wddesligamentoranking
application.title=wddesligamentoranking
application.description=wddesligamentoranking
application.fluig.version=null
application.category=Desligamento
application.renderer=freemarker
developer.code=Andrey
developer.name=Andrey
developer.url=http://www.fluig.com
application.uiwidget=true
application.mobileapp=false
application.version=${build.version}-${build.revision}
view.file=view.ftl
locale.file.base.name=wddesligamentoranking
application.resource.js.1=/resources/js/wddesligamentoranking.js
application.resource.css.2=/resources/css/wddesligamentoranking.css
@@ -0,0 +1,52 @@
<script src="/webdesk/vcXMLRPC.js"></script>
<div id="WdRanking_${instanceId}" class="super-widget wcm-widget-class fluig-style-guide wdr-widget" data-params="WdRankingWidget.instance({ instanceId: '${instanceId}' })">
<div class="wdr-shell">
<div class="wdr-header">
<div>
<p class="wdr-eyebrow">Gestão do Desligamento</p>
<h2 class="wdr-title">Ranking de Solicitações</h2>
</div>
<div class="wdr-actions">
<div class="wdr-period-toggle" role="group">
<button type="button" class="wdr-period-btn wdr-period-btn--active" data-period="all">Todos</button>
<button type="button" class="wdr-period-btn" data-period="year">Este ano</button>
<button type="button" class="wdr-period-btn" data-period="month">Este mês</button>
</div>
<button type="button" class="btn btn-default wdr-refresh-btn" data-refresh>
<span class="fluigicon fluigicon-refresh icon-sm" aria-hidden="true"></span>
</button>
</div>
</div>
<div class="wdr-kpis" data-kpis>
<div class="wdr-kpi">
<span class="wdr-kpi__label">Solicitantes únicos</span>
<strong class="wdr-kpi__value" data-kpi-requesters>—</strong>
</div>
<div class="wdr-kpi wdr-kpi--highlight">
<span class="wdr-kpi__label">Maior volume</span>
<strong class="wdr-kpi__value" data-kpi-top-name>—</strong>
<span class="wdr-kpi__sub" data-kpi-top-count></span>
</div>
<div class="wdr-kpi">
<span class="wdr-kpi__label">Total de processos</span>
<strong class="wdr-kpi__value" data-kpi-total>—</strong>
</div>
</div>
<div class="wdr-state wdr-state--loading" data-loading>
<span class="wdr-spinner" aria-hidden="true"></span>
Carregando dados…
</div>
<div class="wdr-state wdr-state--empty" data-empty style="display:none">
Nenhum dado encontrado.
</div>
<div class="wdr-state wdr-state--error" data-error style="display:none"></div>
<div class="wdr-ranking" data-ranking></div>
<div class="wdr-pagination" data-rank-pagination></div>
</div>
</div>
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/wddesligamentoranking</context-root>
<disable-cross-context>false</disable-cross-context>
</jboss-web>
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
</web-app>
@@ -0,0 +1,362 @@
/* ================================================================
wddesligamentoranking.css — Ranking de Solicitantes
================================================================ */
.wdr-widget {
color: #0f172a;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}
.wdr-widget * { box-sizing: border-box; }
.wdr-shell {
background: #f8fafc;
border: 1px solid #e2e8f0;
border-radius: 12px;
padding: 20px;
}
/* ── Header ───────────────────────────────────────────────────── */
.wdr-header {
align-items: center;
display: flex;
gap: 12px;
justify-content: space-between;
margin-bottom: 16px;
}
.wdr-eyebrow {
color: #64748b;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.06em;
margin: 0 0 2px;
text-transform: uppercase;
}
.wdr-title {
color: #0f172a;
font-size: 20px;
font-weight: 700;
line-height: 1.2;
margin: 0;
}
.wdr-actions {
align-items: center;
display: flex;
gap: 8px;
}
.wdr-refresh-btn {
align-items: center;
display: inline-flex;
padding: 6px 10px;
}
/* ── Period toggle ────────────────────────────────────────────── */
.wdr-period-toggle {
background: #e2e8f0;
border-radius: 8px;
display: inline-flex;
gap: 2px;
padding: 3px;
}
.wdr-period-btn {
background: transparent;
border: none;
border-radius: 6px;
color: #64748b;
cursor: pointer;
font-size: 12px;
font-weight: 600;
padding: 4px 10px;
transition: background 0.15s, color 0.15s;
}
.wdr-period-btn--active {
background: #ffffff;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
color: #1e40af;
}
/* ── KPIs ─────────────────────────────────────────────────────── */
.wdr-kpis {
display: grid;
gap: 10px;
grid-template-columns: repeat(3, minmax(0, 1fr));
margin-bottom: 16px;
}
.wdr-kpi {
background: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 10px;
padding: 12px 16px;
}
.wdr-kpi--highlight {
background: #eff6ff;
border-color: #bfdbfe;
}
.wdr-kpi__label {
color: #64748b;
display: block;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.04em;
margin-bottom: 4px;
text-transform: uppercase;
}
.wdr-kpi__value {
color: #0f172a;
display: block;
font-size: 22px;
font-weight: 800;
line-height: 1.1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.wdr-kpi--highlight .wdr-kpi__value { color: #1d4ed8; font-size: 16px; }
.wdr-kpi__sub {
color: #64748b;
display: block;
font-size: 11px;
margin-top: 2px;
}
/* ── State ────────────────────────────────────────────────────── */
.wdr-state {
align-items: center;
background: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 10px;
color: #64748b;
display: flex;
gap: 10px;
justify-content: center;
padding: 28px;
}
.wdr-state--error {
background: #fff1f2;
border-color: #fecdd3;
color: #9f1239;
justify-content: flex-start;
}
@keyframes wdr-spin { to { transform: rotate(360deg); } }
.wdr-spinner {
animation: wdr-spin 0.75s linear infinite;
border: 2px solid #e2e8f0;
border-radius: 50%;
border-top-color: #2563eb;
display: inline-block;
flex: 0 0 auto;
height: 18px;
width: 18px;
}
/* ── Ranking list ─────────────────────────────────────────────── */
.wdr-ranking {
display: grid;
gap: 6px;
}
.wdr-row {
align-items: center;
background: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 8px;
display: flex;
gap: 12px;
padding: 10px 14px;
transition: box-shadow 0.15s;
}
.wdr-row:hover {
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}
/* podium styling for top 3 */
.wdr-row:nth-child(1) { border-left: 4px solid #f59e0b; }
.wdr-row:nth-child(2) { border-left: 4px solid #94a3b8; }
.wdr-row:nth-child(3) { border-left: 4px solid #b45309; }
.wdr-rank {
align-items: center;
border-radius: 6px;
color: #64748b;
display: flex;
flex: 0 0 auto;
font-size: 13px;
font-weight: 800;
justify-content: center;
width: 28px;
}
.wdr-row:nth-child(1) .wdr-rank { color: #d97706; font-size: 16px; }
.wdr-row:nth-child(2) .wdr-rank { color: #64748b; font-size: 15px; }
.wdr-row:nth-child(3) .wdr-rank { color: #92400e; font-size: 14px; }
.wdr-avatar {
align-items: center;
background: #e2e8f0;
border-radius: 50%;
color: #475569;
display: flex;
flex: 0 0 auto;
font-size: 13px;
font-weight: 700;
height: 34px;
justify-content: center;
width: 34px;
text-transform: uppercase;
}
.wdr-row:nth-child(1) .wdr-avatar { background: #fef3c7; color: #b45309; }
.wdr-row:nth-child(2) .wdr-avatar { background: #f1f5f9; color: #334155; }
.wdr-row:nth-child(3) .wdr-avatar { background: #fef3c7; color: #78350f; }
.wdr-info {
flex: 1 1 0;
min-width: 0;
}
.wdr-name {
color: #0f172a;
display: block;
font-size: 14px;
font-weight: 700;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.wdr-dept {
color: #64748b;
display: block;
font-size: 12px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.wdr-bar-wrap {
flex: 0 0 160px;
}
.wdr-bar-track {
background: #f1f5f9;
border-radius: 999px;
height: 6px;
overflow: hidden;
}
.wdr-bar-fill {
background: linear-gradient(90deg, #3b82f6, #06b6d4);
border-radius: 999px;
height: 100%;
transition: width 0.5s ease;
}
.wdr-row:nth-child(1) .wdr-bar-fill { background: linear-gradient(90deg, #f59e0b, #ef4444); }
.wdr-count {
color: #0f172a;
flex: 0 0 auto;
font-size: 18px;
font-weight: 800;
min-width: 32px;
text-align: right;
}
.wdr-count small {
color: #64748b;
display: block;
font-size: 10px;
font-weight: 600;
text-align: right;
}
/* Breakdown badges */
.wdr-breakdown {
display: flex;
flex: 0 0 auto;
gap: 4px;
}
.wdr-badge {
border-radius: 5px;
font-size: 10px;
font-weight: 700;
padding: 2px 6px;
white-space: nowrap;
}
.wdr-badge--progress { background: #dbeafe; color: #1d4ed8; }
.wdr-badge--attention { background: #fef3c7; color: #92400e; }
.wdr-badge--done { background: #dcfce7; color: #15803d; }
.wdr-badge--canceled { background: #fee2e2; color: #991b1b; }
/* ── Responsive ───────────────────────────────────────────────── */
@media (max-width: 768px) {
.wdr-kpis { grid-template-columns: repeat(2, 1fr); }
.wdr-bar-wrap { display: none; }
.wdr-breakdown { display: none; }
}
@media (max-width: 480px) {
.wdr-kpis { grid-template-columns: 1fr; }
.wdr-header { flex-wrap: wrap; }
}
/* ── Pagination ───────────────────────────────────────────────── */
.wdr-pagination { margin-top: 4px; }
.wdr-pag {
align-items: center;
display: flex;
gap: 12px;
justify-content: center;
padding: 8px 0 2px;
}
.wdr-pag__info {
color: #94a3b8;
font-size: 12px;
}
.wdr-pag__pages {
display: flex;
gap: 4px;
}
.wdr-pag__btn {
background: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 6px;
color: #475569;
cursor: pointer;
font-size: 12px;
font-weight: 600;
height: 28px;
min-width: 28px;
padding: 0 6px;
transition: background 0.12s, color 0.12s;
}
.wdr-pag__btn:hover { background: #f8fafc; border-color: #94a3b8; }
.wdr-pag__btn--active {
background: #2563eb;
border-color: #2563eb;
color: #ffffff;
}
@@ -0,0 +1,393 @@
var WdRankingWidget = SuperWidget.extend({
instanceId: null,
processId: "desligamentoColaborador",
requestPageSize: 1000,
formDatasetCandidates: ["desligamentoColaborador", "Desligamento", "desligamento"],
currentPeriod: "all",
pageSize: 5, currentPage: 1,
allRequests: [],
init: function() {
this.$root = $("#WdRanking_" + this.instanceId);
this.$ranking = this.$root.find("[data-ranking]");
this.$loading = this.$root.find("[data-loading]");
this.$empty = this.$root.find("[data-empty]");
this.$error = this.$root.find("[data-error]");
this.$pagination = this.$root.find("[data-rank-pagination]");
this.bindUi();
this.loadData();
},
bindings: { local: {}, global: {} },
bindUi: function() {
var self = this;
this.$root.find("[data-refresh]").on("click", function() {
self.loadData();
});
this.$root.on("click", "[data-period]", function() {
self.currentPeriod = $(this).data("period");
self.$root.find("[data-period]").removeClass("wdr-period-btn--active");
$(this).addClass("wdr-period-btn--active");
self.render();
});
this.$root.on("click", "[data-rank-page]", function() {
self.currentPage = parseInt($(this).data("rank-page"), 10) || 1;
self.render();
});
},
/* ── Data loading ─────────────────────────────────────────── */
loadData: function() {
this.showLoading();
this.loadFromProcessApi();
},
loadFromProcessApi: function() {
var self = this;
/* /requests/tasks returns one row per movement per process.
Each row has requester (who opened) + assignee (who owns this step).
We deduplicate by processInstanceId keeping the best representative task. */
$.ajax({
url: "/process-management/api/v2/processes/" + encodeURIComponent(this.processId) +
"/requests/tasks?page=1&pageSize=2000",
method: "GET",
dataType: "json",
headers: { Accept: "application/json" }
})
.done(function(response) {
var tasks = self.extractRows(response);
if (!tasks.length) { self.loadFromDatasets(); return; }
/* deduplicate: prefer NOT_COMPLETED task; within same status, prefer highest movementSequence */
var byProcess = {};
for (var i = 0; i < tasks.length; i++) {
var t = tasks[i];
var pid = String(t.processInstanceId || "");
if (!pid) { continue; }
var existing = byProcess[pid];
var tSeq = t.movementSequence || 0;
var tPending = t.status === "NOT_COMPLETED";
if (!existing) {
byProcess[pid] = t;
} else {
var eSeq = existing.movementSequence || 0;
var ePending = existing.status === "NOT_COMPLETED";
if (tPending && !ePending) { byProcess[pid] = t; }
else if (!tPending && ePending) { /* keep existing */ }
else if (tSeq > eSeq) { byProcess[pid] = t; }
}
}
var rows = [];
for (var k in byProcess) {
if (byProcess.hasOwnProperty(k)) { rows.push(byProcess[k]); }
}
self.allRequests = rows.map(function(r) { return self.buildRequest(r); });
self.render();
})
.fail(function() { self.loadFromDatasets(); });
},
loadFromDatasets: function() {
var self = this;
this.ensureDatasetFactory(function() {
try {
var candidates = self.formDatasetCandidates;
var rows = [];
for (var i = 0; i < candidates.length; i++) {
try {
var ds = DatasetFactory.getDataset(candidates[i], null, null, null);
if (ds && ds.values && ds.values.length) {
rows = ds.values;
break;
}
} catch (e) { /* try next */ }
}
self.allRequests = rows.map(function(r) { return self.buildRequest(r); });
self.render();
} catch (e) {
self.showError("Não foi possível carregar os dados. " + e.message);
}
});
},
ensureDatasetFactory: function(callback) {
if (window.DatasetFactory) { callback(); return; }
$.getScript("/webdesk/vcXMLRPC.js")
.done(callback)
.fail(function() { /* DatasetFactory unavailable */ });
},
extractRows: function(response) {
if (!response) { return []; }
if ($.isArray(response)) { return response; }
var keys = ["content", "items", "requests", "data", "values", "records"];
for (var i = 0; i < keys.length; i++) {
var v = response[keys[i]];
if ($.isArray(v)) { return v; }
}
return [];
},
buildRequest: function(row) {
/* /requests/tasks structure:
row.requester = who OPENED the process (constant on every movement)
row.assignee = who owns THIS task step (changes each movement)
We always use requester for ranking attribution. */
var name = "";
if (row.requester) {
var rq = row.requester;
if (typeof rq === "string") {
name = rq;
} else if (rq && typeof rq === "object") {
name = rq.name || rq.colleagueName || rq.login || rq.code || "";
}
}
/* plain-field fallback (DatasetFactory / other API shapes) */
if (!name) {
name = this.readFirst(row, [
"requesterName", "requesterId", "colleagueName", "solicitante", "WKCreatedBy"
]);
}
/* last resort: assignee, but skip pool/group entries */
if (!name && row.assignee) {
var ag = row.assignee;
var agCode = String((ag && ag.code) || "");
if (agCode.indexOf("Pool:") < 0 && agCode.indexOf("Group:") < 0) {
name = (ag.name || ag.login || agCode) || "";
}
}
/* department: try form field, then requester.local */
var dept = this.readFirst(row, ["departamento", "department", "area"]);
if (!dept && row.requester && row.requester.local) { dept = row.requester.local; }
var status = this.resolveStatus(row);
var startDateRaw = this.readFirst(row, ["startDate", "dataAbertura", "createDate", "createdAt"]);
return {
requesterName: name || "Desconhecido",
department: dept || "-",
status: status,
startDate: this.parseDate(startDateRaw)
};
},
resolveStatus: function(row) {
/* /requests/tasks primary path */
var taskStatus = String(row.status || "").toUpperCase();
if (taskStatus === "NOT_COMPLETED") {
var sla = String(row.slaStatus || "").toUpperCase();
if (sla === "OVERDUE") { return "attention"; }
return "progress";
}
if (taskStatus === "COMPLETED") { return "done"; }
/* form-field fallback (DatasetFactory / ECM dataset shape) */
var approval = String(this.readFirst(row, ["DesligamentoAprov", "approval"]) || "").toLowerCase().trim();
if (approval === "nao") { return "canceled"; }
var activeRaw = this.readFirst(row, ["active", "processActive"]);
if (activeRaw === false || String(activeRaw === null ? "" : activeRaw).toLowerCase() === "false") {
return "done";
}
var hasImpediment = String(this.readFirst(row, ["impeditivosColab", "impediment"]) || "").toLowerCase();
if (approval === "maisinformacoes" || hasImpediment === "sim") { return "attention"; }
return "progress";
},
parseDate: function(value) {
if (!value) { return null; }
var s = String(value);
var m1 = s.match(/^(\d{2})\/(\d{2})\/(\d{4})/);
if (m1) { return new Date(+m1[3], +m1[2] - 1, +m1[1]); }
var m2 = s.match(/^(\d{4})-(\d{2})-(\d{2})/);
if (m2) { return new Date(+m2[1], +m2[2] - 1, +m2[3]); }
var d = new Date(s);
return isNaN(d.getTime()) ? null : d;
},
readFirst: function(row, keys) {
if (!row) { return ""; }
for (var i = 0; i < keys.length; i++) {
var v = row[keys[i]];
if (v !== undefined && v !== null && v !== "") { return v; }
}
return "";
},
/* ── Filtering by period ──────────────────────────────────── */
filterByPeriod: function(requests) {
if (this.currentPeriod === "all") { return requests; }
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth();
return requests.filter(function(r) {
if (!r.startDate) { return true; }
if (this.currentPeriod === "year") { return r.startDate.getFullYear() === year; }
if (this.currentPeriod === "month") {
return r.startDate.getFullYear() === year && r.startDate.getMonth() === month;
}
return true;
}.bind(this));
},
/* ── Render ───────────────────────────────────────────────── */
render: function() {
this.$loading.hide();
this.$error.hide();
var requests = this.filterByPeriod(this.allRequests);
if (!requests.length) {
this.$ranking.empty();
this.$empty.show();
this.$pagination.html("");
this.updateKpis([], []);
return;
}
this.$empty.hide();
/* group by requester */
var map = {};
for (var i = 0; i < requests.length; i++) {
var req = requests[i];
var name = req.requesterName;
if (!map[name]) {
map[name] = {
name: name, department: req.department,
total: 0, progress: 0, attention: 0, done: 0, canceled: 0
};
}
map[name].total++;
map[name][req.status] = (map[name][req.status] || 0) + 1;
}
/* sort desc by total */
var ranked = [];
for (var k in map) {
if (map.hasOwnProperty(k)) { ranked.push(map[k]); }
}
ranked.sort(function(a, b) { return b.total - a.total; });
this.updateKpis(ranked, requests);
/* paginate: show pageSize entries per page */
var totalPages = Math.ceil(ranked.length / this.pageSize);
if (this.currentPage > totalPages) { this.currentPage = 1; }
var start = (this.currentPage - 1) * this.pageSize;
var paginated = ranked.slice(start, start + this.pageSize);
var maxCount = ranked[0] ? ranked[0].total : 1;
var html = "";
for (var j = 0; j < paginated.length; j++) {
html += this.renderRow(paginated[j], start + j + 1, maxCount);
}
this.$ranking.html(html);
this.renderPagination(ranked.length, totalPages);
},
renderPagination: function(total, totalPages) {
if (totalPages <= 1) { this.$pagination.html(""); return; }
var cur = this.currentPage;
var html = '<div class="wdr-pag">';
html += '<span class="wdr-pag__info">' + total + ' solicitantes</span>';
html += '<div class="wdr-pag__pages">';
for (var p = 1; p <= totalPages; p++) {
var cls = p === cur ? " wdr-pag__btn--active" : "";
html += '<button type="button" class="wdr-pag__btn' + cls + '" data-rank-page="' + p + '">' + p + '</button>';
}
html += '</div></div>';
this.$pagination.html(html);
},
updateKpis: function(ranked, requests) {
this.$root.find("[data-kpi-requesters]").text(ranked.length || "—");
this.$root.find("[data-kpi-total]").text(requests.length || "—");
if (ranked.length) {
this.$root.find("[data-kpi-top-name]").text(ranked[0].name);
this.$root.find("[data-kpi-top-count]").text(ranked[0].total + " solicitação(ões)");
} else {
this.$root.find("[data-kpi-top-name]").text("—");
this.$root.find("[data-kpi-top-count]").text("");
}
},
renderRow: function(entry, position, maxCount) {
var barPct = Math.round((entry.total / maxCount) * 100);
var initials = entry.name.split(" ").slice(0, 2).map(function(w) { return w[0]; }).join("");
var medal = position === 1 ? "🥇" : position === 2 ? "🥈" : position === 3 ? "🥉" : position;
var breakdown = "";
if (entry.progress) { breakdown += '<span class="wdr-badge wdr-badge--progress">' + entry.progress + ' andamento</span>'; }
if (entry.attention) { breakdown += '<span class="wdr-badge wdr-badge--attention">' + entry.attention + ' atenção</span>'; }
if (entry.done) { breakdown += '<span class="wdr-badge wdr-badge--done">' + entry.done + ' concluído</span>'; }
if (entry.canceled) { breakdown += '<span class="wdr-badge wdr-badge--canceled">' + entry.canceled + ' cancelado</span>'; }
return [
'<div class="wdr-row">',
'<span class="wdr-rank">' + medal + '</span>',
'<div class="wdr-avatar">' + this.escapeHtml(initials) + '</div>',
'<div class="wdr-info">',
'<strong class="wdr-name">' + this.escapeHtml(entry.name) + '</strong>',
'<span class="wdr-dept">' + this.escapeHtml(entry.department) + '</span>',
'</div>',
'<div class="wdr-breakdown">' + breakdown + '</div>',
'<div class="wdr-bar-wrap">',
'<div class="wdr-bar-track"><div class="wdr-bar-fill" style="width:' + barPct + '%"></div></div>',
'</div>',
'<div class="wdr-count">' + entry.total + '<small>solicit.</small></div>',
'</div>'
].join("");
},
/* ── State helpers ────────────────────────────────────────── */
showLoading: function() {
this.$error.hide();
this.$empty.hide();
this.$ranking.empty();
this.$loading.show();
},
showError: function(msg) {
this.$loading.hide();
this.$ranking.empty();
this.$error.text(msg || "Erro ao carregar dados.").show();
},
escapeHtml: function(value) {
return String(value === undefined || value === null ? "" : value)
.replace(/&/g, "&amp;")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/"/g, "&quot;")
.replace(/'/g, "&#039;");
}
});
@@ -3,7 +3,11 @@
<object class="java.util.HashMap">
<void method="put">
<string>volume</string>
<null/>
<array class="java.lang.String" length="1">
<void index="0">
<string>Default</string>
</void>
</array>
</void>
<void method="put">
<string>camposFormulario, documentoId = 12959</string>
@@ -657,6 +661,56 @@
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Transferencia</string>
</void>
<void property="groupId">
<string>Transferencia</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Fiscal</string>
</void>
<void property="groupId">
<string>Fiscal</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>motoristaAL</string>
</void>
<void property="groupId">
<string>motoristaAL</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>motoristaBA</string>
</void>
<void property="groupId">
<string>motoristaBA</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>motoristaSE</string>
</void>
<void property="groupId">
<string>motoristaSE</string>
</void>
</object>
</void>
</object>
</void>
<void method="put">
@@ -676,167 +730,6 @@
</void>
</array>
</void>
<void method="put">
<string>camposFormulario, documentoId = 590</string>
<array class="java.lang.String" length="52">
<void index="0">
<string>activity</string>
</void>
<void index="1">
<string>centroCusto</string>
</void>
<void index="2">
<string>codigoItem</string>
</void>
<void index="3">
<string>consideracoesCompras</string>
</void>
<void index="4">
<string>consideracoesCotacao</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>dataAprovCompras</string>
</void>
<void index="10">
<string>dataRealizacaoCompras</string>
</void>
<void index="11">
<string>dataValidacaoCompras</string>
</void>
<void index="12">
<string>dataValidacaoGestor</string>
</void>
<void index="13">
<string>dataValidacaoItens</string>
</void>
<void index="14">
<string>descricao</string>
</void>
<void index="15">
<string>emailSolicitante</string>
</void>
<void index="16">
<string>estabelecimento</string>
</void>
<void index="17">
<string>excelUpload</string>
</void>
<void index="18">
<string>fdAnexo_Coleta</string>
</void>
<void index="19">
<string>fdAnexo_embalar</string>
</void>
<void index="20">
<string>fdAnexo_Entrega</string>
</void>
<void index="21">
<string>fdAnexo_Nfe</string>
</void>
<void index="22">
<string>fdAnexo_recebimento</string>
</void>
<void index="23">
<string>fnAnexo_Coleta</string>
</void>
<void index="24">
<string>fnAnexo_embalar</string>
</void>
<void index="25">
<string>fnAnexo_Entrega</string>
</void>
<void index="26">
<string>fnAnexo_Nfe</string>
</void>
<void index="27">
<string>fnAnexo_recebimento</string>
</void>
<void index="28">
<string>formMode</string>
</void>
<void index="29">
<string>gestorEmail</string>
</void>
<void index="30">
<string>gestorEmailE</string>
</void>
<void index="31">
<string>gestorNome</string>
</void>
<void index="32">
<string>gestorNomeE</string>
</void>
<void index="33">
<string>gestor_cc</string>
</void>
<void index="34">
<string>gestor_cce</string>
</void>
<void index="35">
<string>justificativa</string>
</void>
<void index="36">
<string>justificativaDecisaoCompras</string>
</void>
<void index="37">
<string>justificativaDecisaoGestor</string>
</void>
<void index="38">
<string>justificativaDecisaoItens</string>
</void>
<void index="39">
<string>justificativaValidaProblema</string>
</void>
<void index="40">
<string>quantidadeItem</string>
</void>
<void index="41">
<string>requesterId</string>
</void>
<void index="42">
<string>requesterMail</string>
</void>
<void index="43">
<string>requesterName</string>
</void>
<void index="44">
<string>userCotacaoGestor</string>
</void>
<void index="45">
<string>userRealizacaoCompras</string>
</void>
<void index="46">
<string>userSolicitante</string>
</void>
<void index="47">
<string>userValidacaoCompras</string>
</void>
<void index="48">
<string>userValidacaoGestor</string>
</void>
<void index="49">
<string>userValidacaoItens</string>
</void>
<void index="50">
<string>validacaoItens</string>
</void>
<void index="51">
<string>WKNumProces</string>
</void>
</array>
</void>
<void method="put">
<string>mecanismo</string>
<array class="[Ljava.lang.Object;" length="12">
@@ -962,6 +855,164 @@
</void>
</array>
</void>
<void method="put">
<string>camposFormulario, documentoId = 9305</string>
<array class="java.lang.String" length="51">
<void index="0">
<string>activity</string>
</void>
<void index="1">
<string>centro_custo</string>
</void>
<void index="2">
<string>codigocentroCusto</string>
</void>
<void index="3">
<string>Codproduto</string>
</void>
<void index="4">
<string>cotacaoSCProtheus</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>dataCadastroSCProtheus</string>
</void>
<void index="9">
<string>dataNec</string>
</void>
<void index="10">
<string>dataValidacaoItens</string>
</void>
<void index="11">
<string>data_validacao_gestor</string>
</void>
<void index="12">
<string>descProduto</string>
</void>
<void index="13">
<string>emailSolicitante</string>
</void>
<void index="14">
<string>emissaoSCProtheus</string>
</void>
<void index="15">
<string>empresa</string>
</void>
<void index="16">
<string>estabelecimento</string>
</void>
<void index="17">
<string>fdComprovante</string>
</void>
<void index="18">
<string>filialdest</string>
</void>
<void index="19">
<string>filialest</string>
</void>
<void index="20">
<string>filialprotheus</string>
</void>
<void index="21">
<string>fnComprovante</string>
</void>
<void index="22">
<string>formMode</string>
</void>
<void index="23">
<string>gestor_cc</string>
</void>
<void index="24">
<string>horaCadastroSCProtheus</string>
</void>
<void index="25">
<string>justificativaDecisaoItens</string>
</void>
<void index="26">
<string>justificativaValidaProblema</string>
</void>
<void index="27">
<string>justi_decisao_gestor</string>
</void>
<void index="28">
<string>moreInfo</string>
</void>
<void index="29">
<string>numeroSCProtheus</string>
</void>
<void index="30">
<string>observacoes</string>
</void>
<void index="31">
<string>pedidoSCProtheus</string>
</void>
<void index="32">
<string>produtoCod</string>
</void>
<void index="33">
<string>produtoDesc</string>
</void>
<void index="34">
<string>produtoLink</string>
</void>
<void index="35">
<string>qtd</string>
</void>
<void index="36">
<string>qtdItensSCProtheus</string>
</void>
<void index="37">
<string>quantidade</string>
</void>
<void index="38">
<string>requesterId</string>
</void>
<void index="39">
<string>requesterMail</string>
</void>
<void index="40">
<string>solicitanteSCProtheus</string>
</void>
<void index="41">
<string>statusAtendimento</string>
</void>
<void index="42">
<string>statusSCProtheus</string>
</void>
<void index="43">
<string>tipoSolicitacao</string>
</void>
<void index="44">
<string>urgencia</string>
</void>
<void index="45">
<string>userValidacaoItens</string>
</void>
<void index="46">
<string>user_validacao_gestor</string>
</void>
<void index="47">
<string>usuarioSolicitante</string>
</void>
<void index="48">
<string>validacaoItens</string>
</void>
<void index="49">
<string>valorTotalCotacao</string>
</void>
<void index="50">
<string>WKNumProces</string>
</void>
</array>
</void>
<void method="put">
<string>forms</string>
<object class="java.util.LinkedList">
@@ -1449,7 +1500,7 @@
<void method="add">
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
<void property="datasetName">
<string>desligamento</string>
<string>3</string>
</void>
<void property="documentDescription">
<string>desligamento</string>
@@ -1459,6 +1510,58 @@
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
<void property="datasetName">
<string>checklist</string>
</void>
<void property="documentDescription">
<string>checklist</string>
</void>
<void property="documentId">
<int>40213</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>41254</int>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
<void property="datasetName">
<string>transferenciav2</string>
</void>
<void property="documentDescription">
<string>transferência</string>
</void>
<void property="documentId">
<int>43582</int>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.technology.ecmrestclient.cardindexpublisher.FormVO">
<void property="datasetName">
<string>desligamentov2</string>
</void>
<void property="documentDescription">
<string>desligamentov2</string>
</void>
<void property="documentId">
<int>46963</int>
</void>
</object>
</void>
</object>
</void>
</object>
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.8.0_461" class="java.beans.XMLDecoder">
<java version="1.8.0_481" class="java.beans.XMLDecoder">
<object class="java.util.HashMap">
<void method="put">
<string>volume</string>
@@ -9,183 +9,6 @@
</void>
</array>
</void>
<void method="put">
<string>camposFormulario, documentoId = 12959</string>
<array class="java.lang.String" length="29">
<void index="0">
<string>activity</string>
</void>
<void index="1">
<string>analistaTecnico</string>
</void>
<void index="2">
<string>complemento</string>
</void>
<void index="3">
<string>consegueResolver</string>
</void>
<void index="4">
<string>consideracoes</string>
</void>
<void index="5">
<string>consideracoesTecnicas</string>
</void>
<void index="6">
<string>currentUserId</string>
</void>
<void index="7">
<string>currentUsermail</string>
</void>
<void index="8">
<string>currentUserName</string>
</void>
<void index="9">
<string>dataAbertura</string>
</void>
<void index="10">
<string>dataAnaliseTecnica</string>
</void>
<void index="11">
<string>dataUserValidacao</string>
</void>
<void index="12">
<string>detalheSolicitacao</string>
</void>
<void index="13">
<string>emailGestorArea</string>
</void>
<void index="14">
<string>emailSolicitante</string>
</void>
<void index="15">
<string>estabelecimento</string>
</void>
<void index="16">
<string>formMode</string>
</void>
<void index="17">
<string>nomeGestorArea</string>
</void>
<void index="18">
<string>possuiInconsistencia</string>
</void>
<void index="19">
<string>ratingValue</string>
</void>
<void index="20">
<string>requesterId</string>
</void>
<void index="21">
<string>requesterMail</string>
</void>
<void index="22">
<string>requesterName</string>
</void>
<void index="23">
<string>situacaoResolvida</string>
</void>
<void index="24">
<string>tipoOcorrencia</string>
</void>
<void index="25">
<string>tituloOcorrencia</string>
</void>
<void index="26">
<string>userSolicitante</string>
</void>
<void index="27">
<string>userValidacao</string>
</void>
<void index="28">
<string>WKNumProces</string>
</void>
</array>
</void>
<void method="put">
<string>mecanismoGrupo</string>
<object class="java.util.ArrayList">
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Tecnologia e Comunicação</string>
</void>
<void property="groupId">
<string>TIC</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Compras Indiretos</string>
</void>
<void property="groupId">
<string>ComprasIndiretos</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Obras e manutenção</string>
</void>
<void property="groupId">
<string>Manutencao</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Aprovadores Compras Nvl 3</string>
</void>
<void property="groupId">
<string>AprovadoresComprasNvl3</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Motoristas</string>
</void>
<void property="groupId">
<string>Motoristas</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Requisitantes de Vaga</string>
</void>
<void property="groupId">
<string>Requisitantesdevaga</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>Recrutamento</string>
</void>
<void property="groupId">
<string>Recrutamento</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.GroupDto">
<void property="groupDescription">
<string>TODOS-TODOS-DIADMISSAO</string>
</void>
<void property="groupId">
<string>TODOS-TODOS-DIADMISSAO</string>
</void>
</object>
</void>
</object>
</void>
<void method="put">
<string>expediente</string>
<array class="java.lang.String" length="4">
@@ -203,167 +26,6 @@
</void>
</array>
</void>
<void method="put">
<string>processosServidor</string>
<object class="java.util.ArrayList">
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.ProcessDefinitionDto">
<void property="companyId">
<int>1</int>
</void>
<void property="processDescription">
<string>Abertura de Chamado</string>
</void>
<void property="processId">
<string>Abertura de chamado Manutenção</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.ProcessDefinitionDto">
<void property="companyId">
<int>1</int>
</void>
<void property="processDescription">
<string>desligamentoColaborador</string>
</void>
<void property="processId">
<string>desligamentoColaborador</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.ProcessDefinitionDto">
<void property="companyId">
<int>1</int>
</void>
<void property="processDescription">
<string>TOTVS RH - Admissão Digital</string>
</void>
<void property="processId">
<string>dpf_digte_di_processo_admissao</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.ProcessDefinitionDto">
<void property="companyId">
<int>1</int>
</void>
<void property="processDescription">
<string>Abertura de Chamado</string>
</void>
<void property="processId">
<string>FlowEssentials_AberturaDeChamado</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.ProcessDefinitionDto">
<void property="companyId">
<int>1</int>
</void>
<void property="processDescription">
<string>Solicitação de compra - Totvs</string>
</void>
<void property="processId">
<string>FlowEssentials_SolicitacaoDeCompras</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.ProcessDefinitionDto">
<void property="companyId">
<int>1</int>
</void>
<void property="processDescription">
<string>Flowservico_terceirizado</string>
</void>
<void property="processId">
<string>Flowservico_terceirizado</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.ProcessDefinitionDto">
<void property="companyId">
<int>1</int>
</void>
<void property="processDescription">
<string>Listar Tarefas</string>
</void>
<void property="processId">
<string>FLUIGADHOC</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.ProcessDefinitionDto">
<void property="companyId">
<int>1</int>
</void>
<void property="processDescription">
<string>Recrutamento e seleção</string>
</void>
<void property="processId">
<string>Recrutamento e Seleção</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.ProcessDefinitionDto">
<void property="companyId">
<int>1</int>
</void>
<void property="processDescription">
<string>Solicitação de compra - Ginseng</string>
</void>
<void property="processId">
<string>Solicitação de compras </string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.ProcessDefinitionDto">
<void property="companyId">
<int>1</int>
</void>
<void property="processDescription">
<string>Solicitação de compra - Ginseng</string>
</void>
<void property="processId">
<string>Solicitação de compras - Integração teste</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.ProcessDefinitionDto">
<void property="companyId">
<int>1</int>
</void>
<void property="processDescription">
<string>Solicitação de compra - Ginseng</string>
</void>
<void property="processId">
<string>Solicitação de compras v2</string>
</void>
</object>
</void>
<void method="add">
<object class="com.totvs.tds.ecm.foundation.ws.ProcessDefinitionDto">
<void property="companyId">
<int>1</int>
</void>
<void property="processDescription">
<string>Transferência Ginseng</string>
</void>
<void property="processId">
<string>Transferência Ginseng</string>
</void>
</object>
</void>
</object>
</void>
<void method="put">
<string>mecanismo</string>
<array class="[Ljava.lang.Object;" length="12">
@@ -489,504 +151,5 @@
</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>
</object>
</void>
</object>
</java>
@@ -15,7 +15,7 @@
<snapshotFrequency>0</snapshotFrequency>
<baseDay>0</baseDay>
<baseMonth>0</baseMonth>
<periodId>Expediente BackOffice, Logística e Motorista</periodId>
<periodId>Default</periodId>
<uniqueCardVersion>false</uniqueCardVersion>
<keyWord></keyWord>
<complementsLevel>1</complementsLevel>
@@ -29,7 +29,7 @@
<processDefinitionVersionPK>
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<version>20</version>
<version>31</version>
</processDefinitionVersionPK>
<versionDescription></versionDescription>
<formId>12959</formId>
@@ -600,13 +600,13 @@
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<expressionOrder>1</expressionOrder>
<version>20</version>
<version>31</version>
<sequence>33</sequence>
</conditionProcessStatePK>
<condition>hAPI.getCardValue(&quot;impeditivosColab&quot;) == &quot;Não&quot;</condition>
<destinationSequenceId>5</destinationSequenceId>
<engineAllocationConfiguration>&lt;AssignmentController&gt;&lt;FormField&gt;requesterId&lt;/FormField&gt;&lt;/AssignmentController&gt;</engineAllocationConfiguration>
<engineAllocationId>Campo Formulário</engineAllocationId>
<engineAllocationConfiguration>&lt;AssignmentController&gt;&lt;BaseActivity&gt;4&lt;/BaseActivity&gt;&lt;Returns&gt;Last&lt;/Returns&gt;&lt;/AssignmentController&gt;</engineAllocationConfiguration>
<engineAllocationId>Executor Atividade</engineAllocationId>
<conditionType>0</conditionType>
</ConditionProcessState>
<ConditionProcessState>
@@ -614,7 +614,7 @@
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<expressionOrder>2</expressionOrder>
<version>20</version>
<version>31</version>
<sequence>33</sequence>
</conditionProcessStatePK>
<condition>hAPI.getCardValue(&quot;impeditivosColab&quot;) == &quot;Sim&quot;</condition>
@@ -628,7 +628,7 @@
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<expressionOrder>1</expressionOrder>
<version>20</version>
<version>31</version>
<sequence>43</sequence>
</conditionProcessStatePK>
<condition>hAPI.getCardValue(&quot;DesligamentoAprov&quot;) == &quot;Não&quot;</condition>
@@ -640,7 +640,7 @@
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<expressionOrder>2</expressionOrder>
<version>20</version>
<version>31</version>
<sequence>43</sequence>
</conditionProcessStatePK>
<condition>hAPI.getCardValue(&quot;DesligamentoAprov&quot;) == &quot;Sim&quot;</condition>
@@ -654,7 +654,7 @@
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<expressionOrder>3</expressionOrder>
<version>20</version>
<version>31</version>
<sequence>43</sequence>
</conditionProcessStatePK>
<condition>hAPI.getCardValue(&quot;DesligamentoAprov&quot;) == &quot;MaisInformacoes&quot;</condition>
@@ -663,6 +663,20 @@
<engineAllocationId>Executor Atividade</engineAllocationId>
<conditionType>0</conditionType>
</ConditionProcessState>
<ConditionProcessState>
<conditionProcessStatePK>
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<expressionOrder>4</expressionOrder>
<version>31</version>
<sequence>43</sequence>
</conditionProcessStatePK>
<condition>hAPI.getCardValue(&quot;aprovacaosim&quot;) == &quot;sim&quot;</condition>
<destinationSequenceId>22</destinationSequenceId>
<engineAllocationConfiguration>&lt;AssignmentController&gt;&lt;Group&gt;DEPARTAMENTO_PESSOAL&lt;/Group&gt;&lt;/AssignmentController&gt;</engineAllocationConfiguration>
<engineAllocationId>Pool Grupo</engineAllocationId>
<conditionType>0</conditionType>
</ConditionProcessState>
</list>
<list>
<ProcessLink>
@@ -1059,7 +1073,7 @@ process.instructions=&#xd;
<processLinkBendPK>
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<version>20</version>
<version>31</version>
<linkSequence>8</linkSequence>
<bendSequence>1</bendSequence>
</processLinkBendPK>
@@ -1070,7 +1084,7 @@ process.instructions=&#xd;
<processLinkBendPK>
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<version>20</version>
<version>31</version>
<linkSequence>21</linkSequence>
<bendSequence>1</bendSequence>
</processLinkBendPK>
@@ -1081,7 +1095,7 @@ process.instructions=&#xd;
<processLinkBendPK>
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<version>20</version>
<version>31</version>
<linkSequence>35</linkSequence>
<bendSequence>1</bendSequence>
</processLinkBendPK>
@@ -1092,7 +1106,7 @@ process.instructions=&#xd;
<processLinkBendPK>
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<version>20</version>
<version>31</version>
<linkSequence>36</linkSequence>
<bendSequence>1</bendSequence>
</processLinkBendPK>
@@ -1103,7 +1117,7 @@ process.instructions=&#xd;
<processLinkBendPK>
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<version>20</version>
<version>31</version>
<linkSequence>36</linkSequence>
<bendSequence>2</bendSequence>
</processLinkBendPK>
@@ -1114,7 +1128,7 @@ process.instructions=&#xd;
<processLinkBendPK>
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<version>20</version>
<version>31</version>
<linkSequence>37</linkSequence>
<bendSequence>1</bendSequence>
</processLinkBendPK>
@@ -1125,7 +1139,7 @@ process.instructions=&#xd;
<processLinkBendPK>
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<version>20</version>
<version>31</version>
<linkSequence>40</linkSequence>
<bendSequence>1</bendSequence>
</processLinkBendPK>
@@ -1136,7 +1150,7 @@ process.instructions=&#xd;
<processLinkBendPK>
<companyId>1</companyId>
<processId>desligamentoColaborador</processId>
<version>20</version>
<version>31</version>
<linkSequence>46</linkSequence>
<bendSequence>1</bendSequence>
</processLinkBendPK>
@@ -1154,7 +1168,7 @@ process.instructions=&#xd;
<id>0</id>
<tenantId>0</tenantId>
<processId>desligamentoColaborador</processId>
<processVersion>20</processVersion>
<processVersion>31</processVersion>
<stateSequence>20</stateSequence>
<appKey>approval</appKey>
<appField>title</appField>
@@ -1164,7 +1178,7 @@ process.instructions=&#xd;
<id>0</id>
<tenantId>0</tenantId>
<processId>desligamentoColaborador</processId>
<processVersion>20</processVersion>
<processVersion>31</processVersion>
<stateSequence>20</stateSequence>
<appKey>approval</appKey>
<appField>description</appField>
@@ -1174,7 +1188,7 @@ process.instructions=&#xd;
<id>0</id>
<tenantId>0</tenantId>
<processId>desligamentoColaborador</processId>
<processVersion>20</processVersion>
<processVersion>31</processVersion>
<stateSequence>20</stateSequence>
<appKey>approval</appKey>
<appField>highlight</appField>
@@ -1184,7 +1198,7 @@ process.instructions=&#xd;
<id>0</id>
<tenantId>0</tenantId>
<processId>desligamentoColaborador</processId>
<processVersion>20</processVersion>
<processVersion>31</processVersion>
<stateSequence>20</stateSequence>
<appKey>approval</appKey>
<appField>approve</appField>
@@ -1194,7 +1208,7 @@ process.instructions=&#xd;
<id>0</id>
<tenantId>0</tenantId>
<processId>desligamentoColaborador</processId>
<processVersion>20</processVersion>
<processVersion>31</processVersion>
<stateSequence>20</stateSequence>
<appKey>approval</appKey>
<appField>reject</appField>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 45 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

@@ -85,17 +85,17 @@
</anchors>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="106" height="124" x="1160" y="26"/>
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="106" height="98" x="1160" y="26"/>
<link businessObjects="task5"/>
<anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="/0/@connections.7 /0/@connections.12" incomingConnections="/0/@connections.4"/>
<anchors xsi:type="pi:BoxRelativeAnchor" visible="true" active="true" referencedGraphicsAlgorithm="/0/@children.2/@graphicsAlgorithm" relativeWidth="1.0" relativeHeight="0.51">
<graphicsAlgorithm xsi:type="al:Ellipse" filled="false" lineVisible="false"/>
</anchors>
<children visible="true">
<graphicsAlgorithm xsi:type="al:RoundedRectangle" lineWidth="1" transparency="0.0" width="106" height="124" style="/0/@styles.36" cornerHeight="5" cornerWidth="5"/>
<graphicsAlgorithm xsi:type="al:RoundedRectangle" lineWidth="1" transparency="0.0" width="106" height="98" style="/0/@styles.36" cornerHeight="5" cornerWidth="5"/>
</children>
<children visible="true">
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="96" height="114" x="5" y="5" style="/0/@styles.37" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Gest&#xe3;o e Comunica&#xe7;&#xe3;o do Desligamento"/>
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="96" height="88" x="5" y="5" style="/0/@styles.37" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Gest&#xe3;o e Comunica&#xe7;&#xe3;o do Desligamento"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
@@ -118,17 +118,17 @@
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="106" height="92" x="1310" y="640"/>
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="106" height="70" x="1310" y="640"/>
<link businessObjects="task15"/>
<anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="/0/@connections.1" incomingConnections="/0/@connections.7"/>
<anchors xsi:type="pi:BoxRelativeAnchor" visible="true" active="true" referencedGraphicsAlgorithm="/0/@children.4/@graphicsAlgorithm" relativeWidth="1.0" relativeHeight="0.51">
<graphicsAlgorithm xsi:type="al:Ellipse" filled="false" lineVisible="false"/>
</anchors>
<children visible="true">
<graphicsAlgorithm xsi:type="al:RoundedRectangle" lineWidth="1" transparency="0.0" width="106" height="92" style="/0/@styles.50" cornerHeight="5" cornerWidth="5"/>
<graphicsAlgorithm xsi:type="al:RoundedRectangle" lineWidth="1" transparency="0.0" width="106" height="70" style="/0/@styles.50" cornerHeight="5" cornerWidth="5"/>
</children>
<children visible="true">
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="96" height="82" x="5" y="5" style="/0/@styles.51" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Inativar Perfis em sistemas"/>
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="96" height="60" x="5" y="5" style="/0/@styles.51" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Inativar Perfis em sistemas"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
@@ -142,49 +142,49 @@
</anchors>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="106" height="92" x="370" y="200"/>
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="106" height="70" x="370" y="200"/>
<link businessObjects="task20"/>
<anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="/0/@connections.9" incomingConnections="/0/@connections.2"/>
<anchors xsi:type="pi:BoxRelativeAnchor" visible="true" active="true" referencedGraphicsAlgorithm="/0/@children.6/@graphicsAlgorithm" relativeWidth="1.0" relativeHeight="0.51">
<graphicsAlgorithm xsi:type="al:Ellipse" filled="false" lineVisible="false"/>
</anchors>
<children visible="true">
<graphicsAlgorithm xsi:type="al:RoundedRectangle" lineWidth="1" transparency="0.0" width="106" height="92" style="/0/@styles.60" cornerHeight="5" cornerWidth="5"/>
<graphicsAlgorithm xsi:type="al:RoundedRectangle" lineWidth="1" transparency="0.0" width="106" height="70" style="/0/@styles.60" cornerHeight="5" cornerWidth="5"/>
</children>
<children visible="true">
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="96" height="82" x="5" y="5" style="/0/@styles.61" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Aprovar Desligamento"/>
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="96" height="60" x="5" y="5" style="/0/@styles.61" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Aprovar Desligamento"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="106" height="92" x="650" y="350"/>
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="106" height="84" x="650" y="350"/>
<link businessObjects="task22"/>
<anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="/0/@connections.6 /0/@connections.8" incomingConnections="/0/@connections.5 /0/@connections.10"/>
<anchors xsi:type="pi:BoxRelativeAnchor" visible="true" active="true" referencedGraphicsAlgorithm="/0/@children.7/@graphicsAlgorithm" relativeWidth="1.0" relativeHeight="0.51">
<graphicsAlgorithm xsi:type="al:Ellipse" filled="false" lineVisible="false"/>
</anchors>
<children visible="true">
<graphicsAlgorithm xsi:type="al:RoundedRectangle" lineWidth="1" transparency="0.0" width="106" height="92" style="/0/@styles.63" cornerHeight="5" cornerWidth="5"/>
<graphicsAlgorithm xsi:type="al:RoundedRectangle" lineWidth="1" transparency="0.0" width="106" height="84" style="/0/@styles.63" cornerHeight="5" cornerWidth="5"/>
</children>
<children visible="true">
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="96" height="82" x="5" y="5" style="/0/@styles.64" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Informar Previs&#xe3;o e Impeditivos"/>
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="96" height="74" x="5" y="5" style="/0/@styles.64" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Informar Previs&#xe3;o e Impeditivos"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="106" height="92" x="900" y="498"/>
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="106" height="70" x="900" y="498"/>
<link businessObjects="task24"/>
<anchors xsi:type="pi:ChopboxAnchor" outgoingConnections="/0/@connections.3" incomingConnections="/0/@connections.6"/>
<anchors xsi:type="pi:BoxRelativeAnchor" visible="true" active="true" referencedGraphicsAlgorithm="/0/@children.8/@graphicsAlgorithm" relativeWidth="1.0" relativeHeight="0.51">
<graphicsAlgorithm xsi:type="al:Ellipse" filled="false" lineVisible="false"/>
</anchors>
<children visible="true">
<graphicsAlgorithm xsi:type="al:RoundedRectangle" lineWidth="1" transparency="0.0" width="106" height="92" style="/0/@styles.67" cornerHeight="5" cornerWidth="5"/>
<graphicsAlgorithm xsi:type="al:RoundedRectangle" lineWidth="1" transparency="0.0" width="106" height="70" style="/0/@styles.67" cornerHeight="5" cornerWidth="5"/>
</children>
<children visible="true">
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="96" height="82" x="5" y="5" style="/0/@styles.68" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Verificar Conformidade"/>
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="96" height="60" x="5" y="5" style="/0/@styles.68" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Verificar Conformidade"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="108" x="1090" y="490">
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="102" x="1090" y="490">
<graphicsAlgorithmChildren xsi:type="al:Polygon" lineWidth="1" filled="true" transparency="0.0" width="60" height="60" style="/0/@styles.85">
<points y="30"/>
<points x="30"/>
@@ -204,7 +204,7 @@
<graphicsAlgorithm xsi:type="al:Ellipse" filled="false" lineVisible="false"/>
</anchors>
<children visible="true">
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="60" height="48" y="60" style="/0/@styles.86" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Confor&#xA;midade&#xA;"/>
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="60" height="42" y="60" style="/0/@styles.86" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Conformi&#xA;dade&#xA;"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
@@ -218,7 +218,7 @@
</anchors>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="108" x="670" y="190">
<graphicsAlgorithm xsi:type="al:Rectangle" lineWidth="1" filled="false" lineVisible="false" transparency="0.0" width="60" height="88" x="670" y="190">
<graphicsAlgorithmChildren xsi:type="al:Polygon" lineWidth="1" filled="true" transparency="0.0" width="60" height="60" style="/0/@styles.98">
<points y="30"/>
<points x="30"/>
@@ -238,7 +238,7 @@
<graphicsAlgorithm xsi:type="al:Ellipse" filled="false" lineVisible="false"/>
</anchors>
<children visible="true">
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="60" height="48" y="60" style="/0/@styles.99" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Aprova&#xA;?&#xA;"/>
<graphicsAlgorithm xsi:type="al:MultiText" lineWidth="1" filled="false" lineVisible="true" transparency="0.0" width="60" height="28" y="60" style="/0/@styles.99" font="/0/@fonts.1" horizontalAlignment="ALIGNMENT_CENTER" value="Aprova?&#xA;"/>
</children>
</children>
<children xsi:type="pi:ContainerShape" visible="true" active="true">
@@ -3102,7 +3102,7 @@
<fonts name="Arial" size="8"/>
<fonts name="Arial" size="8" bold="true"/>
</pi:Diagram>
<bpmn2:BpmnProcess id="desligamentoColaborador" name="desligamentoColaborador" serverId="Ginseng Produ&#xe7;&#xe3;o" version="20" author="" extendedFields="&lt;list/>" cardIndex="12959" formSource="server" managerMechanism="Grupo" managerAssignmentController="&lt;org.eclipse.bpmn2.impl.AssignmentControllerGroup>&#xA; &lt;groupId>ResponsavelDesligamento&lt;/groupId>&#xA; &lt;mechanismName>Grupo&lt;/mechanismName>&#xA;&lt;/org.eclipse.bpmn2.impl.AssignmentControllerGroup>" category="Desligamento" volume="Default" expedient="Expediente BackOffice, Log&#xed;stica e Motorista" instruction="" keyWord="" complementsLevel="1" notifyResponsibleComplements="true" notifyRequisitionerComplements="true"/>
<bpmn2:BpmnProcess id="desligamentoColaborador" name="desligamentoColaborador" serverId="Ginseng Produ&#xe7;&#xe3;o" version="31" author="" extendedFields="&lt;list/>" cardIndex="12959" formSource="server" managerMechanism="Grupo" managerAssignmentController="&lt;org.eclipse.bpmn2.impl.AssignmentControllerGroup>&#xA; &lt;groupId>ResponsavelDesligamento&lt;/groupId>&#xA; &lt;mechanismName>Grupo&lt;/mechanismName>&#xA;&lt;/org.eclipse.bpmn2.impl.AssignmentControllerGroup>" category="Desligamento" volume="Default" expedient="Default" instruction="" keyWord="" complementsLevel="1" notifyResponsibleComplements="true" notifyRequisitionerComplements="true"/>
<bpmn2:BpmnPool id="pool1" name="Desligamento" cores="FFFFFF"/>
<bpmn2:BpmnSwimLane id="swimlane2" name="Gestor" cores="C0C0C0"/>
<bpmn2:BpmnSwimLane id="swimlane3" name="Gente e Cultura" cores="FFFFFF"/>
@@ -3122,7 +3122,7 @@
<bpmn2:SequenceFlow id="flow21" name="Enviar para Aprova&#xe7;&#xe3;o" sourceRef="startevent4" targetRef="task20" atividadeFluxo="" atividadeRetorno="" extendedFields="&lt;list/>"/>
<bpmn2:BpmnTask id="task22" name="Informar Previs&#xe3;o e Impeditivos" incoming="flow36 flow45" outgoing="flow37 flow42" type="80" managerMechanism="" loopType="0" authNotify="true" expediente="" selecionaColaboradores="1" esforcoCalculo="0" executionAttempts="0" frequency="0"/>
<bpmn2:BpmnTask id="task24" name="Verificar Conformidade" incoming="flow37" outgoing="flow34" type="80" managerMechanism="Pool Grupo" managerAssignmentControllerString="&lt;org.eclipse.bpmn2.impl.AssignmentControllerPoolGroup>&#xA; &lt;groupId>COMPLIANCE&lt;/groupId>&#xA; &lt;mechanismName>Pool Grupo&lt;/mechanismName>&#xA;&lt;/org.eclipse.bpmn2.impl.AssignmentControllerPoolGroup>" loopType="0" authNotify="true" expediente="" selecionaColaboradores="1" esforcoCalculo="0" executionAttempts="0" frequency="0"/>
<bpmn2:BpmnGateway id="exclusivegateway33" name="Conformidade" incoming="flow34" outgoing="flow35 flow36" type="120" condition="&lt;list>&#xA; &lt;org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;order>1&lt;/order>&#xA; &lt;expression>hAPI.getCardValue(&amp;quot;impeditivosColab&amp;quot;) == &amp;quot;N&#xe3;o&amp;quot;&lt;/expression>&#xA; &lt;targetTask>task5&lt;/targetTask>&#xA; &lt;mechanism>Campo Formul&#xe1;rio&lt;/mechanism>&#xA; &lt;conditionType>0&lt;/conditionType>&#xA; &lt;mecanismoAtribuicaoConfiguracao class=&quot;org.eclipse.bpmn2.impl.AssignmentControllerFormField&quot;>&#xA; &lt;formField>requesterId&lt;/formField>&#xA; &lt;mechanismName>Campo Formul&#xe1;rio&lt;/mechanismName>&#xA; &lt;/mecanismoAtribuicaoConfiguracao>&#xA; &lt;/org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;order>2&lt;/order>&#xA; &lt;expression>hAPI.getCardValue(&amp;quot;impeditivosColab&amp;quot;) == &amp;quot;Sim&amp;quot;&lt;/expression>&#xA; &lt;targetTask>task22&lt;/targetTask>&#xA; &lt;mechanism>Executor Atividade&lt;/mechanism>&#xA; &lt;conditionType>0&lt;/conditionType>&#xA; &lt;mecanismoAtribuicaoConfiguracao class=&quot;org.eclipse.bpmn2.impl.AssignmentControllerExecutorMechanism&quot;>&#xA; &lt;idNode>task22&lt;/idNode>&#xA; &lt;returns>1&lt;/returns>&#xA; &lt;mechanismName>Executor Atividade&lt;/mechanismName>&#xA; &lt;/mecanismoAtribuicaoConfiguracao>&#xA; &lt;/org.eclipse.bpmn2.impl.ConditionImpl>&#xA;&lt;/list>"/>
<bpmn2:BpmnGateway id="exclusivegateway33" name="Conformidade" incoming="flow34" outgoing="flow35 flow36" type="120" condition="&lt;list>&#xA; &lt;org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;order>1&lt;/order>&#xA; &lt;expression>hAPI.getCardValue(&amp;quot;impeditivosColab&amp;quot;) == &amp;quot;N&#xe3;o&amp;quot;&lt;/expression>&#xA; &lt;targetTask>task5&lt;/targetTask>&#xA; &lt;mechanism>Executor Atividade&lt;/mechanism>&#xA; &lt;conditionType>0&lt;/conditionType>&#xA; &lt;mecanismoAtribuicaoConfiguracao class=&quot;org.eclipse.bpmn2.impl.AssignmentControllerExecutorMechanism&quot;>&#xA; &lt;idNode>startevent4&lt;/idNode>&#xA; &lt;returns>1&lt;/returns>&#xA; &lt;mechanismName>Executor Atividade&lt;/mechanismName>&#xA; &lt;/mecanismoAtribuicaoConfiguracao>&#xA; &lt;/org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;order>2&lt;/order>&#xA; &lt;expression>hAPI.getCardValue(&amp;quot;impeditivosColab&amp;quot;) == &amp;quot;Sim&amp;quot;&lt;/expression>&#xA; &lt;targetTask>task22&lt;/targetTask>&#xA; &lt;mechanism>Executor Atividade&lt;/mechanism>&#xA; &lt;conditionType>0&lt;/conditionType>&#xA; &lt;mecanismoAtribuicaoConfiguracao class=&quot;org.eclipse.bpmn2.impl.AssignmentControllerExecutorMechanism&quot;>&#xA; &lt;idNode>task22&lt;/idNode>&#xA; &lt;returns>1&lt;/returns>&#xA; &lt;mechanismName>Executor Atividade&lt;/mechanismName>&#xA; &lt;/mecanismoAtribuicaoConfiguracao>&#xA; &lt;/org.eclipse.bpmn2.impl.ConditionImpl>&#xA;&lt;/list>"/>
<bpmn2:SequenceFlow id="flow34" name="" sourceRef="task24" targetRef="exclusivegateway33" atividadeFluxo="" atividadeRetorno="" extendedFields="&lt;list/>"/>
<bpmn2:SequenceFlow id="flow35" name="Conforme" sourceRef="exclusivegateway33" targetRef="task5" atividadeFluxo="" atividadeRetorno="" extendedFields="&lt;list/>"/>
<bpmn2:SequenceFlow id="flow36" name="N&#xe3;o conforme e Notificar Departamento Pessoal " sourceRef="exclusivegateway33" targetRef="task22" atividadeFluxo="" atividadeRetorno="" extendedFields="&lt;list/>"/>
@@ -3130,7 +3130,7 @@
<bpmn2:SequenceFlow id="flow40" name="" sourceRef="task5" targetRef="task15" atividadeFluxo="Conclu&#xed;do" atividadeRetorno="" extendedFields="&lt;list/>"/>
<bpmn2:BpmnEndEvent id="endevent41" name="Fim" incoming="flow42" type="60" signalId="0"/>
<bpmn2:SequenceFlow id="flow42" name="Cancelar Desligamento" sourceRef="task22" targetRef="endevent41" atividadeFluxo="Cancelar processo de Desligamento" atividadeRetorno="" extendedFields="&lt;list/>"/>
<bpmn2:BpmnGateway id="exclusivegateway43" name="Aprova?" incoming="flow44" outgoing="flow45 flow46 flow50" type="120" condition="&lt;list>&#xA; &lt;org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;order>1&lt;/order>&#xA; &lt;expression>hAPI.getCardValue(&amp;quot;DesligamentoAprov&amp;quot;) == &amp;quot;N&#xe3;o&amp;quot;&lt;/expression>&#xA; &lt;targetTask>endevent49&lt;/targetTask>&#xA; &lt;conditionType>0&lt;/conditionType>&#xA; &lt;/org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;order>2&lt;/order>&#xA; &lt;expression>hAPI.getCardValue(&amp;quot;DesligamentoAprov&amp;quot;) == &amp;quot;Sim&amp;quot;&lt;/expression>&#xA; &lt;targetTask>task22&lt;/targetTask>&#xA; &lt;mechanism>Pool Grupo&lt;/mechanism>&#xA; &lt;conditionType>0&lt;/conditionType>&#xA; &lt;mecanismoAtribuicaoConfiguracao class=&quot;org.eclipse.bpmn2.impl.AssignmentControllerPoolGroup&quot;>&#xA; &lt;groupId>DEPARTAMENTO_PESSOAL&lt;/groupId>&#xA; &lt;mechanismName>Pool Grupo&lt;/mechanismName>&#xA; &lt;/mecanismoAtribuicaoConfiguracao>&#xA; &lt;/org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;order>3&lt;/order>&#xA; &lt;expression>hAPI.getCardValue(&amp;quot;DesligamentoAprov&amp;quot;) == &amp;quot;MaisInformacoes&amp;quot;&lt;/expression>&#xA; &lt;targetTask>startevent4&lt;/targetTask>&#xA; &lt;mechanism>Executor Atividade&lt;/mechanism>&#xA; &lt;conditionType>0&lt;/conditionType>&#xA; &lt;mecanismoAtribuicaoConfiguracao class=&quot;org.eclipse.bpmn2.impl.AssignmentControllerExecutorMechanism&quot;>&#xA; &lt;idNode>startevent4&lt;/idNode>&#xA; &lt;returns>1&lt;/returns>&#xA; &lt;mechanismName>Executor Atividade&lt;/mechanismName>&#xA; &lt;/mecanismoAtribuicaoConfiguracao>&#xA; &lt;/org.eclipse.bpmn2.impl.ConditionImpl>&#xA;&lt;/list>"/>
<bpmn2:BpmnGateway id="exclusivegateway43" name="Aprova?" incoming="flow44" outgoing="flow45 flow46 flow50" type="120" condition="&lt;list>&#xA; &lt;org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;order>1&lt;/order>&#xA; &lt;expression>hAPI.getCardValue(&amp;quot;DesligamentoAprov&amp;quot;) == &amp;quot;N&#xe3;o&amp;quot;&lt;/expression>&#xA; &lt;targetTask>endevent49&lt;/targetTask>&#xA; &lt;conditionType>0&lt;/conditionType>&#xA; &lt;/org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;order>2&lt;/order>&#xA; &lt;expression>hAPI.getCardValue(&amp;quot;DesligamentoAprov&amp;quot;) == &amp;quot;Sim&amp;quot;&lt;/expression>&#xA; &lt;targetTask>task22&lt;/targetTask>&#xA; &lt;mechanism>Pool Grupo&lt;/mechanism>&#xA; &lt;conditionType>0&lt;/conditionType>&#xA; &lt;mecanismoAtribuicaoConfiguracao class=&quot;org.eclipse.bpmn2.impl.AssignmentControllerPoolGroup&quot;>&#xA; &lt;groupId>DEPARTAMENTO_PESSOAL&lt;/groupId>&#xA; &lt;mechanismName>Pool Grupo&lt;/mechanismName>&#xA; &lt;/mecanismoAtribuicaoConfiguracao>&#xA; &lt;/org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;order>3&lt;/order>&#xA; &lt;expression>hAPI.getCardValue(&amp;quot;DesligamentoAprov&amp;quot;) == &amp;quot;MaisInformacoes&amp;quot;&lt;/expression>&#xA; &lt;targetTask>startevent4&lt;/targetTask>&#xA; &lt;mechanism>Executor Atividade&lt;/mechanism>&#xA; &lt;conditionType>0&lt;/conditionType>&#xA; &lt;mecanismoAtribuicaoConfiguracao class=&quot;org.eclipse.bpmn2.impl.AssignmentControllerExecutorMechanism&quot;>&#xA; &lt;idNode>startevent4&lt;/idNode>&#xA; &lt;returns>1&lt;/returns>&#xA; &lt;mechanismName>Executor Atividade&lt;/mechanismName>&#xA; &lt;/mecanismoAtribuicaoConfiguracao>&#xA; &lt;/org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;org.eclipse.bpmn2.impl.ConditionImpl>&#xA; &lt;order>4&lt;/order>&#xA; &lt;expression>hAPI.getCardValue(&amp;quot;aprovacaosim&amp;quot;) == &amp;quot;sim&amp;quot;&lt;/expression>&#xA; &lt;targetTask>task22&lt;/targetTask>&#xA; &lt;mechanism>Pool Grupo&lt;/mechanism>&#xA; &lt;conditionType>0&lt;/conditionType>&#xA; &lt;mecanismoAtribuicaoConfiguracao class=&quot;org.eclipse.bpmn2.impl.AssignmentControllerPoolGroup&quot;>&#xA; &lt;groupId>DEPARTAMENTO_PESSOAL&lt;/groupId>&#xA; &lt;mechanismName>Pool Grupo&lt;/mechanismName>&#xA; &lt;/mecanismoAtribuicaoConfiguracao>&#xA; &lt;/org.eclipse.bpmn2.impl.ConditionImpl>&#xA;&lt;/list>"/>
<bpmn2:SequenceFlow id="flow44" name="" sourceRef="task20" targetRef="exclusivegateway43" atividadeFluxo="" atividadeRetorno="" extendedFields="&lt;list/>"/>
<bpmn2:SequenceFlow id="flow45" name="" sourceRef="exclusivegateway43" targetRef="task22" atividadeFluxo="" atividadeRetorno="" extendedFields="&lt;list/>"/>
<bpmn2:SequenceFlow id="flow46" name="Mais informa&#xe7;&#xf5;es" sourceRef="exclusivegateway43" targetRef="startevent4" atividadeFluxo="" atividadeRetorno="" extendedFields="&lt;list/>"/>