Merge branch 'main' of https://gitea.grupoginseng.com.br/andrey.cunha/fluig
This commit is contained in:
commit
77a46711c0
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
/.metadata/
|
||||
Lançamento de documentos/.metadata/.plugins/org.eclipse.m2e.logback.configuration/0.log
|
||||
|
||||
11083
.metadata/.log
11083
.metadata/.log
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,3 +1,4 @@
|
||||
description.autobuilding=false
|
||||
eclipse.preferences.version=1
|
||||
encoding=UTF-8
|
||||
version=1
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<launchPerspectives/>\r\n
|
||||
preferredTargets=default\:default|default,org.eclipse.wst.jsdt.chromium.debug.ui.toggleTargetId\:default|
|
||||
preferredTargets=default\:default|default,org.eclipse.wst.jsdt.chromium.debug.ui.toggleTargetId\:default|org.eclipse.wst.jsdt.chromium.debug.ui.toggleTargetId\:org.eclipse.wst.jsdt.chromium.debug.ui.toggleTargetId|
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
browsers=<?xml version\="1.0" encoding\="UTF-8"?>\r\n<web-browsers current\="0">\r\n<system/>\r\n<external location\="C\:\\Program Files\\Internet Explorer\\iexplore.exe" name\="Internet Explorer"/>\r\n<external location\="C\:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" name\="Chrome"/>\r\n</web-browsers>
|
||||
eclipse.preferences.version=1
|
||||
internalWebBrowserHistory=file\:///C\:/Users/andrey.cunha/eclipse-workspace.new/Ginseng_chamados/wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/images/icon.png|*|file\:/C\:/Users/andrey.cunha/eclipse-workspace.new/Ginseng_chamados/wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/images/icon.png|*|file\:///C\:/Users/andrey.cunha/eclipse-workspace.new/Ginseng_chamados/wcm/widget/widget_code_compras/src/main/webapp/resources/images/icon.png|*|file\:/C\:/Users/andrey.cunha/eclipse-workspace.new/Ginseng_chamados/wcm/widget/widget_code_compras/src/main/webapp/resources/images/icon.png|*|
|
||||
internalWebBrowserHistory=file\:///C\:/Users/andrey.cunha/eclipse-workspace.new/Auditoria_checklist/wcm/widget/helloWidget/src/main/webapp/resources/images/dev.png|*|file\:/C\:/Users/andrey.cunha/eclipse-workspace.new/Auditoria_checklist/wcm/widget/helloWidget/src/main/webapp/resources/images/dev.png|*|file\:///C\:/Users/andrey.cunha/eclipse-workspace.new/Auditoria_checklist/wcm/widget/helloWidget/src/main/webapp/resources/images/icon.png|*|file\:/C\:/Users/andrey.cunha/eclipse-workspace.new/Auditoria_checklist/wcm/widget/helloWidget/src/main/webapp/resources/images/icon.png|*|file\:///C\:/Users/andrey.cunha/eclipse-workspace.new/Ginseng_chamados/wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/images/icon.png|*|file\:/C\:/Users/andrey.cunha/eclipse-workspace.new/Ginseng_chamados/wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/images/icon.png|*|file\:///C\:/Users/andrey.cunha/eclipse-workspace.new/Ginseng_chamados/wcm/widget/widget_code_compras/src/main/webapp/resources/images/icon.png|*|file\:/C\:/Users/andrey.cunha/eclipse-workspace.new/Ginseng_chamados/wcm/widget/widget_code_compras/src/main/webapp/resources/images/icon.png|*|
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
PROBLEMS_FILTERS_MIGRATE=true
|
||||
eclipse.preferences.version=1
|
||||
platformState=1741352421210
|
||||
platformState=1776269138561
|
||||
quickStart=false
|
||||
tipsAndTricks=true
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
eclipse.preferences.version=1
|
||||
fontPropagated=true
|
||||
org.eclipse.jface.textfont=1|Courier New|10.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Courier New;
|
||||
org.eclipse.jface.textfont=1|Consolas|10.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Consolas;
|
||||
org.eclipse.wst.jsdt.internal.ui.navigator.layout=1
|
||||
org.eclipse.wst.jsdt.ui.editor.tab.width=
|
||||
org.eclipse.wst.jsdt.ui.formatterprofiles.version=11
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
jspIndexState=1
|
||||
jspIndexState=4
|
||||
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
@ -183,3 +183,8 @@
|
||||
2026-02-23 10:29:20,949 [Worker-4: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is out-of-date. Trying to update.
|
||||
2026-02-24 10:35:56,560 [Worker-3: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is out-of-date. Trying to update.
|
||||
2026-02-27 16:07:17,391 [Worker-3: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is out-of-date. Trying to update.
|
||||
2026-03-05 14:13:17,734 [Worker-6: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is out-of-date. Trying to update.
|
||||
2026-03-06 09:35:04,306 [Worker-6: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is up-to-date. Trying to read.
|
||||
2026-03-11 10:42:23,819 [Worker-6: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is out-of-date. Trying to update.
|
||||
2026-04-15 13:08:08,894 [Worker-4: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is up-to-date. Trying to read.
|
||||
2026-04-15 13:16:26,886 [Worker-5: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is up-to-date. Trying to read.
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
#Cached timestamps
|
||||
#Tue Feb 24 10:53:12 BRT 2026
|
||||
#Wed Apr 15 14:30:03 BRT 2026
|
||||
|
||||
@ -21,6 +21,7 @@
|
||||
<item key="SmartImportRootWizardPage.STORE_NESTED_PROJECTS" value="true"/>
|
||||
<item key="SmartImportRootWizardPage.STORE_CONFIGURE_NATURES" value="true"/>
|
||||
<list key="org.eclipse.ui.internal.wizards.datatransfer.SmartImportRootWizardPage.knownSources">
|
||||
<item value="C:\Python\Python\Python\Fluig geral\fluig"/>
|
||||
<item value="C:\Users\andrey.cunha\ComprasDigital"/>
|
||||
</list>
|
||||
</section>
|
||||
@ -40,4 +41,14 @@
|
||||
<item key="DIALOG_FONT_NAME" value="1|Segoe UI|9.0|0|WINDOWS|1|-15|0|0|0|400|0|0|0|1|0|0|0|0|Segoe UI"/>
|
||||
</section>
|
||||
</section>
|
||||
<section name="org.eclipse.ui.internal.ide.dialogs.ProjectContentsLocationArea">
|
||||
</section>
|
||||
<section name="ChooseWorkspaceDialogSettings">
|
||||
<item key="DIALOG_X_ORIGIN" value="857"/>
|
||||
<item key="DIALOG_Y_ORIGIN" value="404"/>
|
||||
</section>
|
||||
<section name="WORKBENCH_SETTINGS">
|
||||
<list key="ENABLED_TRANSFERS">
|
||||
</list>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
@ -1,13 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="org.eclipse.ui.texteditor.FindReplaceDialog">
|
||||
<item key="selection" value="DATASET_PRODUTOS"/>
|
||||
<item key="selection" value="impeditivo"/>
|
||||
<item key="wrap" value="true"/>
|
||||
<item key="casesensitive" value="false"/>
|
||||
<item key="wholeword" value="false"/>
|
||||
<item key="incremental" value="false"/>
|
||||
<item key="isRegEx" value="false"/>
|
||||
<list key="findhistory">
|
||||
<item value="impeditivo"/>
|
||||
<item value="DATASET_PRODUTOS"/>
|
||||
<item value="hasnext"/>
|
||||
<item value="23665"/>
|
||||
@ -22,7 +23,6 @@
|
||||
<item value="endpoint"/>
|
||||
<item value="Cotação 000001 não encontrada"/>
|
||||
<item value="processID"/>
|
||||
<item value="numeroSC"/>
|
||||
</list>
|
||||
<list key="replacehistory">
|
||||
<item value=""/>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,22 +1,21 @@
|
||||
INDEX VERSION 1.4+C:\Users\andrey.cunha\eclipse-workspace.new\.metadata\.plugins\org.eclipse.wst.jsdt.core\indexes
|
||||
3963123655.index
|
||||
3049976914.index
|
||||
1889139231.index
|
||||
2056597484.index
|
||||
1252593962.index
|
||||
160423874.index
|
||||
3477032517.index
|
||||
3528551409.index
|
||||
17091598.index
|
||||
4202715187.index
|
||||
3974601650.index
|
||||
1053469344.index
|
||||
3371662347.index
|
||||
INDEX VERSION 1.4+C:\Python\Python\Python\Fluig geral\fluig\.metadata\.plugins\org.eclipse.wst.jsdt.core\indexes
|
||||
3537614094.index
|
||||
1338284093.index
|
||||
1604404410.index
|
||||
2070855566.index
|
||||
1999126708.index
|
||||
707046764.index
|
||||
223663271.index
|
||||
1180771715.index
|
||||
1478047577.index
|
||||
3128569756.index
|
||||
1860298949.index
|
||||
2822718276.index
|
||||
2568227984.index
|
||||
4052977093.index
|
||||
1053469344.index
|
||||
3974601650.index
|
||||
1034765801.index
|
||||
1357543591.index
|
||||
1408135880.index
|
||||
1600244917.index
|
||||
2317861947.index
|
||||
2276237669.index
|
||||
3963123655.index
|
||||
7156200.index
|
||||
2333158432.index
|
||||
457859505.index
|
||||
1268003346.index
|
||||
|
||||
@ -111,6 +111,8 @@ com.fluig.sdk.api.task.TaskKindEnum = function() {};
|
||||
com.fluig.sdk.api.task.TaskKindEnum.prototype = {};
|
||||
com.fluig.sdk.api.task.TaskStatusEnum = function() {};
|
||||
com.fluig.sdk.api.task.TaskStatusEnum.prototype = {};
|
||||
com.fluig.sdk.api.task.TaskTransferVO = function() {};
|
||||
com.fluig.sdk.api.task.TaskTransferVO.prototype = {};
|
||||
com.fluig.sdk.api.workflow.AssumeProcessTaskResultVO = function() {};
|
||||
com.fluig.sdk.api.workflow.AssumeProcessTaskResultVO.prototype = {};
|
||||
com.fluig.sdk.api.workflow.AssumeProcessTaskVO = function() {};
|
||||
@ -217,6 +219,8 @@ com.fluig.sdk.filter.FilterOrderVO = function() {};
|
||||
com.fluig.sdk.filter.FilterOrderVO.prototype = {};
|
||||
com.fluig.sdk.filter.FilterResultVO = function() {};
|
||||
com.fluig.sdk.filter.FilterResultVO.prototype = {};
|
||||
com.fluig.sdk.filter.FilterUpdateNameVO = function() {};
|
||||
com.fluig.sdk.filter.FilterUpdateNameVO.prototype = {};
|
||||
com.fluig.sdk.filter.FilterVO = function() {};
|
||||
com.fluig.sdk.filter.FilterVO.prototype = {};
|
||||
com.fluig.sdk.holiday.HolidayVO = function() {};
|
||||
@ -1524,6 +1528,13 @@ com.fluig.sdk.service.SecurityService.prototype = {
|
||||
*/
|
||||
"getCurrentTenant": function() {},
|
||||
/**
|
||||
* Get the current tenant
|
||||
* @memberOf fluigAPI
|
||||
* @param {long} tenantId
|
||||
* @returns {com.fluig.sdk.tenant.TenantVO}
|
||||
*/
|
||||
"getCurrentTenantById": function(tenantId) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {long} companyId
|
||||
@ -1623,6 +1634,13 @@ SecurityService.prototype = {
|
||||
*/
|
||||
"getCurrentTenant": function() {},
|
||||
/**
|
||||
* Get the current tenant
|
||||
* @memberOf fluigAPI
|
||||
* @param {long} tenantId
|
||||
* @returns {com.fluig.sdk.tenant.TenantVO}
|
||||
*/
|
||||
"getCurrentTenantById": function(tenantId) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {long} companyId
|
||||
@ -3888,6 +3906,7 @@ com.fluig.sdk.service.GroupService.prototype = {
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} groupCode
|
||||
* @param {List} logins
|
||||
* @returns {List<String>}
|
||||
*/
|
||||
"addUsers": function(groupCode, logins) {},
|
||||
/**
|
||||
@ -3955,6 +3974,7 @@ GroupService.prototype = {
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} groupCode
|
||||
* @param {List} logins
|
||||
* @returns {List<String>}
|
||||
*/
|
||||
"addUsers": function(groupCode, logins) {},
|
||||
/**
|
||||
@ -11785,7 +11805,19 @@ com.fluig.sdk.api.workflow.ProcessDefinitionVO.prototype = {
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} processDescription
|
||||
*/
|
||||
"setProcessDescription": function(processDescription) {}
|
||||
"setProcessDescription": function(processDescription) {},
|
||||
/**
|
||||
* Recupera valor do icon
|
||||
* @memberOf fluigAPI
|
||||
* @returns {String}
|
||||
*/
|
||||
"getIcon": function() {},
|
||||
/**
|
||||
* Atribui valor para icon
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} icon
|
||||
*/
|
||||
"setIcon": function(icon) {}
|
||||
};
|
||||
ProcessDefinitionVO.prototype = {
|
||||
/**
|
||||
@ -11811,7 +11843,19 @@ ProcessDefinitionVO.prototype = {
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} processDescription
|
||||
*/
|
||||
"setProcessDescription": function(processDescription) {}
|
||||
"setProcessDescription": function(processDescription) {},
|
||||
/**
|
||||
* Recupera valor do icon
|
||||
* @memberOf fluigAPI
|
||||
* @returns {String}
|
||||
*/
|
||||
"getIcon": function() {},
|
||||
/**
|
||||
* Atribui valor para icon
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} icon
|
||||
*/
|
||||
"setIcon": function(icon) {}
|
||||
};
|
||||
com.fluig.sdk.api.workflow.ResumeProcessTaskVO.prototype = {
|
||||
/**
|
||||
@ -18889,6 +18933,322 @@ ResumedTasksVO.prototype = {
|
||||
*/
|
||||
"setChildren": function(children) {}
|
||||
};
|
||||
com.fluig.sdk.api.task.TaskTransferVO.prototype = {
|
||||
/**
|
||||
* Recupera valor do userTo
|
||||
* @memberOf fluigAPI
|
||||
* @returns {String}
|
||||
*/
|
||||
"getUserTo": function() {},
|
||||
/**
|
||||
* Atribui valor para userTo
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} userTo
|
||||
*/
|
||||
"setUserTo": function(userTo) {},
|
||||
/**
|
||||
* Recupera valor do userFrom
|
||||
* @memberOf fluigAPI
|
||||
* @returns {String}
|
||||
*/
|
||||
"getUserFrom": function() {},
|
||||
/**
|
||||
* Atribui valor para userFrom
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} userFrom
|
||||
*/
|
||||
"setUserFrom": function(userFrom) {},
|
||||
/**
|
||||
* Recupera valor do transferActiveDocuments
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferActiveDocuments": function() {},
|
||||
/**
|
||||
* Atribui valor para transferActiveDocuments
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferActiveDocuments
|
||||
*/
|
||||
"setTransferActiveDocuments": function(transferActiveDocuments) {},
|
||||
/**
|
||||
* Recupera valor do transferMyDocumentsInApproval
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferMyDocumentsInApproval": function() {},
|
||||
/**
|
||||
* Atribui valor para transferMyDocumentsInApproval
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferMyDocumentsInApproval
|
||||
*/
|
||||
"setTransferMyDocumentsInApproval": function(transferMyDocumentsInApproval) {},
|
||||
/**
|
||||
* Recupera valor do transferPendingWorkflow
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferPendingWorkflow": function() {},
|
||||
/**
|
||||
* Atribui valor para transferPendingWorkflow
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferPendingWorkflow
|
||||
*/
|
||||
"setTransferPendingWorkflow": function(transferPendingWorkflow) {},
|
||||
/**
|
||||
* Recupera valor do transferOpenWorkflow
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferOpenWorkflow": function() {},
|
||||
/**
|
||||
* Atribui valor para transferOpenWorkflow
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferOpenWorkflow
|
||||
*/
|
||||
"setTransferOpenWorkflow": function(transferOpenWorkflow) {},
|
||||
/**
|
||||
* Recupera valor do transferApprovers
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferApprovers": function() {},
|
||||
/**
|
||||
* Atribui valor para transferApprovers
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferApprovers
|
||||
*/
|
||||
"setTransferApprovers": function(transferApprovers) {},
|
||||
/**
|
||||
* Recupera valor do transferApprovals
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferApprovals": function() {},
|
||||
/**
|
||||
* Atribui valor para transferApprovals
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferApprovals
|
||||
*/
|
||||
"setTransferApprovals": function(transferApprovals) {},
|
||||
/**
|
||||
* Recupera valor do transferDocumentSecurity
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferDocumentSecurity": function() {},
|
||||
/**
|
||||
* Atribui valor para transferDocumentSecurity
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferDocumentSecurity
|
||||
*/
|
||||
"setTransferDocumentSecurity": function(transferDocumentSecurity) {},
|
||||
/**
|
||||
* Recupera valor do instanceIdInitial
|
||||
* @memberOf fluigAPI
|
||||
* @returns {int}
|
||||
*/
|
||||
"getInstanceIdInitial": function() {},
|
||||
/**
|
||||
* Atribui valor para instanceIdInitial
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} instanceIdInitial
|
||||
*/
|
||||
"setInstanceIdInitial": function(instanceIdInitial) {},
|
||||
/**
|
||||
* Recupera valor do instanceIdFinal
|
||||
* @memberOf fluigAPI
|
||||
* @returns {int}
|
||||
*/
|
||||
"getInstanceIdFinal": function() {},
|
||||
/**
|
||||
* Atribui valor para instanceIdFinal
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} instanceIdFinal
|
||||
*/
|
||||
"setInstanceIdFinal": function(instanceIdFinal) {},
|
||||
/**
|
||||
* Recupera valor do documentIdInitial
|
||||
* @memberOf fluigAPI
|
||||
* @returns {int}
|
||||
*/
|
||||
"getDocumentIdInitial": function() {},
|
||||
/**
|
||||
* Atribui valor para documentIdInitial
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} documentIdInitial
|
||||
*/
|
||||
"setDocumentIdInitial": function(documentIdInitial) {},
|
||||
/**
|
||||
* Recupera valor do documentIdFinal
|
||||
* @memberOf fluigAPI
|
||||
* @returns {int}
|
||||
*/
|
||||
"getDocumentIdFinal": function() {},
|
||||
/**
|
||||
* Atribui valor para documentIdFinal
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} documentIdFinal
|
||||
*/
|
||||
"setDocumentIdFinal": function(documentIdFinal) {}
|
||||
};
|
||||
TaskTransferVO.prototype = {
|
||||
/**
|
||||
* Recupera valor do userTo
|
||||
* @memberOf fluigAPI
|
||||
* @returns {String}
|
||||
*/
|
||||
"getUserTo": function() {},
|
||||
/**
|
||||
* Atribui valor para userTo
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} userTo
|
||||
*/
|
||||
"setUserTo": function(userTo) {},
|
||||
/**
|
||||
* Recupera valor do userFrom
|
||||
* @memberOf fluigAPI
|
||||
* @returns {String}
|
||||
*/
|
||||
"getUserFrom": function() {},
|
||||
/**
|
||||
* Atribui valor para userFrom
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} userFrom
|
||||
*/
|
||||
"setUserFrom": function(userFrom) {},
|
||||
/**
|
||||
* Recupera valor do transferActiveDocuments
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferActiveDocuments": function() {},
|
||||
/**
|
||||
* Atribui valor para transferActiveDocuments
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferActiveDocuments
|
||||
*/
|
||||
"setTransferActiveDocuments": function(transferActiveDocuments) {},
|
||||
/**
|
||||
* Recupera valor do transferMyDocumentsInApproval
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferMyDocumentsInApproval": function() {},
|
||||
/**
|
||||
* Atribui valor para transferMyDocumentsInApproval
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferMyDocumentsInApproval
|
||||
*/
|
||||
"setTransferMyDocumentsInApproval": function(transferMyDocumentsInApproval) {},
|
||||
/**
|
||||
* Recupera valor do transferPendingWorkflow
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferPendingWorkflow": function() {},
|
||||
/**
|
||||
* Atribui valor para transferPendingWorkflow
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferPendingWorkflow
|
||||
*/
|
||||
"setTransferPendingWorkflow": function(transferPendingWorkflow) {},
|
||||
/**
|
||||
* Recupera valor do transferOpenWorkflow
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferOpenWorkflow": function() {},
|
||||
/**
|
||||
* Atribui valor para transferOpenWorkflow
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferOpenWorkflow
|
||||
*/
|
||||
"setTransferOpenWorkflow": function(transferOpenWorkflow) {},
|
||||
/**
|
||||
* Recupera valor do transferApprovers
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferApprovers": function() {},
|
||||
/**
|
||||
* Atribui valor para transferApprovers
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferApprovers
|
||||
*/
|
||||
"setTransferApprovers": function(transferApprovers) {},
|
||||
/**
|
||||
* Recupera valor do transferApprovals
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferApprovals": function() {},
|
||||
/**
|
||||
* Atribui valor para transferApprovals
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferApprovals
|
||||
*/
|
||||
"setTransferApprovals": function(transferApprovals) {},
|
||||
/**
|
||||
* Recupera valor do transferDocumentSecurity
|
||||
* @memberOf fluigAPI
|
||||
* @returns {boolean}
|
||||
*/
|
||||
"getTransferDocumentSecurity": function() {},
|
||||
/**
|
||||
* Atribui valor para transferDocumentSecurity
|
||||
* @memberOf fluigAPI
|
||||
* @param {boolean} transferDocumentSecurity
|
||||
*/
|
||||
"setTransferDocumentSecurity": function(transferDocumentSecurity) {},
|
||||
/**
|
||||
* Recupera valor do instanceIdInitial
|
||||
* @memberOf fluigAPI
|
||||
* @returns {int}
|
||||
*/
|
||||
"getInstanceIdInitial": function() {},
|
||||
/**
|
||||
* Atribui valor para instanceIdInitial
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} instanceIdInitial
|
||||
*/
|
||||
"setInstanceIdInitial": function(instanceIdInitial) {},
|
||||
/**
|
||||
* Recupera valor do instanceIdFinal
|
||||
* @memberOf fluigAPI
|
||||
* @returns {int}
|
||||
*/
|
||||
"getInstanceIdFinal": function() {},
|
||||
/**
|
||||
* Atribui valor para instanceIdFinal
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} instanceIdFinal
|
||||
*/
|
||||
"setInstanceIdFinal": function(instanceIdFinal) {},
|
||||
/**
|
||||
* Recupera valor do documentIdInitial
|
||||
* @memberOf fluigAPI
|
||||
* @returns {int}
|
||||
*/
|
||||
"getDocumentIdInitial": function() {},
|
||||
/**
|
||||
* Atribui valor para documentIdInitial
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} documentIdInitial
|
||||
*/
|
||||
"setDocumentIdInitial": function(documentIdInitial) {},
|
||||
/**
|
||||
* Recupera valor do documentIdFinal
|
||||
* @memberOf fluigAPI
|
||||
* @returns {int}
|
||||
*/
|
||||
"getDocumentIdFinal": function() {},
|
||||
/**
|
||||
* Atribui valor para documentIdFinal
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} documentIdFinal
|
||||
*/
|
||||
"setDocumentIdFinal": function(documentIdFinal) {}
|
||||
};
|
||||
com.fluig.sdk.service.TasksService.prototype = {
|
||||
/**
|
||||
* Busca os documentos para aprovação
|
||||
@ -19009,6 +19369,13 @@ com.fluig.sdk.service.TasksService.prototype = {
|
||||
*/
|
||||
"transferTasks": function(transferOptions) {},
|
||||
/**
|
||||
* Transfer tasks from one user to another
|
||||
* @memberOf fluigAPI
|
||||
* @param {com.fluig.sdk.api.task.TaskTransferVO} tasksTransfer
|
||||
* @returns {String}
|
||||
*/
|
||||
"transferTasks": function(tasksTransfer) {},
|
||||
/**
|
||||
* Return users pendent to approve a document
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} documentId
|
||||
@ -19136,6 +19503,13 @@ TasksService.prototype = {
|
||||
*/
|
||||
"transferTasks": function(transferOptions) {},
|
||||
/**
|
||||
* Transfer tasks from one user to another
|
||||
* @memberOf fluigAPI
|
||||
* @param {com.fluig.sdk.api.task.TaskTransferVO} tasksTransfer
|
||||
* @returns {String}
|
||||
*/
|
||||
"transferTasks": function(tasksTransfer) {},
|
||||
/**
|
||||
* Return users pendent to approve a document
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} documentId
|
||||
@ -23558,7 +23932,19 @@ com.fluig.sdk.filter.FilterResultVO.prototype = {
|
||||
* @memberOf fluigAPI
|
||||
* @param filterOrder
|
||||
*/
|
||||
"setFilterOrder": function(filterOrder) {}
|
||||
"setFilterOrder": function(filterOrder) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {int}
|
||||
*/
|
||||
"getPermission": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} permission
|
||||
*/
|
||||
"setPermission": function(permission) {}
|
||||
};
|
||||
FilterResultVO.prototype = {
|
||||
/**
|
||||
@ -23679,7 +24065,19 @@ FilterResultVO.prototype = {
|
||||
* @memberOf fluigAPI
|
||||
* @param filterOrder
|
||||
*/
|
||||
"setFilterOrder": function(filterOrder) {}
|
||||
"setFilterOrder": function(filterOrder) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {int}
|
||||
*/
|
||||
"getPermission": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} permission
|
||||
*/
|
||||
"setPermission": function(permission) {}
|
||||
};
|
||||
com.fluig.sdk.filter.FilterVO.prototype = {
|
||||
/**
|
||||
@ -23995,7 +24393,43 @@ com.fluig.sdk.filter.FilterGroupResultVO.prototype = {
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} roleDescription
|
||||
*/
|
||||
"setRoleDescription": function(roleDescription) {}
|
||||
"setRoleDescription": function(roleDescription) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {long}
|
||||
*/
|
||||
"getGroupParticipantsCount": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {long} groupParticipantsCount
|
||||
*/
|
||||
"setGroupParticipantsCount": function(groupParticipantsCount) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {String}
|
||||
*/
|
||||
"getUserEmail": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} userEmail
|
||||
*/
|
||||
"setUserEmail": function(userEmail) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {int}
|
||||
*/
|
||||
"getPermission": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} permission
|
||||
*/
|
||||
"setPermission": function(permission) {}
|
||||
};
|
||||
FilterGroupResultVO.prototype = {
|
||||
/**
|
||||
@ -24141,7 +24575,43 @@ FilterGroupResultVO.prototype = {
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} roleDescription
|
||||
*/
|
||||
"setRoleDescription": function(roleDescription) {}
|
||||
"setRoleDescription": function(roleDescription) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {long}
|
||||
*/
|
||||
"getGroupParticipantsCount": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {long} groupParticipantsCount
|
||||
*/
|
||||
"setGroupParticipantsCount": function(groupParticipantsCount) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {String}
|
||||
*/
|
||||
"getUserEmail": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} userEmail
|
||||
*/
|
||||
"setUserEmail": function(userEmail) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {int}
|
||||
*/
|
||||
"getPermission": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {int} permission
|
||||
*/
|
||||
"setPermission": function(permission) {}
|
||||
};
|
||||
com.fluig.sdk.filter.FilterGroupVO.prototype = {
|
||||
/**
|
||||
@ -24191,7 +24661,19 @@ com.fluig.sdk.filter.FilterGroupVO.prototype = {
|
||||
* @memberOf fluigAPI
|
||||
* @param {List} rolesCode
|
||||
*/
|
||||
"setRolesCode": function(rolesCode) {}
|
||||
"setRolesCode": function(rolesCode) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {Map<String,>}
|
||||
*/
|
||||
"getEntityPermissions": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {Map} entityPermissions
|
||||
*/
|
||||
"setEntityPermissions": function(entityPermissions) {}
|
||||
};
|
||||
FilterGroupVO.prototype = {
|
||||
/**
|
||||
@ -24241,7 +24723,47 @@ FilterGroupVO.prototype = {
|
||||
* @memberOf fluigAPI
|
||||
* @param {List} rolesCode
|
||||
*/
|
||||
"setRolesCode": function(rolesCode) {}
|
||||
"setRolesCode": function(rolesCode) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {Map<String,>}
|
||||
*/
|
||||
"getEntityPermissions": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {Map} entityPermissions
|
||||
*/
|
||||
"setEntityPermissions": function(entityPermissions) {}
|
||||
};
|
||||
com.fluig.sdk.filter.FilterUpdateNameVO.prototype = {
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {String}
|
||||
*/
|
||||
"getName": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} name
|
||||
*/
|
||||
"setName": function(name) {}
|
||||
};
|
||||
FilterUpdateNameVO.prototype = {
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {String}
|
||||
*/
|
||||
"getName": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} name
|
||||
*/
|
||||
"setName": function(name) {}
|
||||
};
|
||||
com.fluig.sdk.service.FilterAPIService.prototype = {
|
||||
/**
|
||||
@ -24252,9 +24774,10 @@ com.fluig.sdk.service.FilterAPIService.prototype = {
|
||||
* @param {String} pattern
|
||||
* @param {int} limit
|
||||
* @param {int} offset
|
||||
* @param {String} orderBy
|
||||
* @returns {List<com.fluig.sdk.filter.FilterResultVO>}
|
||||
*/
|
||||
"getProcessFilters": function(onlyMyFilters, findPublicFilters, pattern, limit, offset) {},
|
||||
"getProcessFilters": function(onlyMyFilters, findPublicFilters, pattern, limit, offset, orderBy) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
@ -24314,7 +24837,15 @@ com.fluig.sdk.service.FilterAPIService.prototype = {
|
||||
* @param {long} applicationInstanceId
|
||||
* @param {Map} filtersSequence
|
||||
*/
|
||||
"updateFilterSequence": function(applicationInstanceId, filtersSequence) {}
|
||||
"updateFilterSequence": function(applicationInstanceId, filtersSequence) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {long} filterId
|
||||
* @param {com.fluig.sdk.filter.FilterUpdateNameVO} filterUpdateNameVO
|
||||
* @returns {com.fluig.sdk.filter.FilterResultVO}
|
||||
*/
|
||||
"updateFilterName": function(filterId, filterUpdateNameVO) {}
|
||||
};
|
||||
FilterAPIService.prototype = {
|
||||
/**
|
||||
@ -24325,9 +24856,10 @@ FilterAPIService.prototype = {
|
||||
* @param {String} pattern
|
||||
* @param {int} limit
|
||||
* @param {int} offset
|
||||
* @param {String} orderBy
|
||||
* @returns {List<com.fluig.sdk.filter.FilterResultVO>}
|
||||
*/
|
||||
"getProcessFilters": function(onlyMyFilters, findPublicFilters, pattern, limit, offset) {},
|
||||
"getProcessFilters": function(onlyMyFilters, findPublicFilters, pattern, limit, offset, orderBy) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
@ -24387,7 +24919,15 @@ FilterAPIService.prototype = {
|
||||
* @param {long} applicationInstanceId
|
||||
* @param {Map} filtersSequence
|
||||
*/
|
||||
"updateFilterSequence": function(applicationInstanceId, filtersSequence) {}
|
||||
"updateFilterSequence": function(applicationInstanceId, filtersSequence) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {long} filterId
|
||||
* @param {com.fluig.sdk.filter.FilterUpdateNameVO} filterUpdateNameVO
|
||||
* @returns {com.fluig.sdk.filter.FilterResultVO}
|
||||
*/
|
||||
"updateFilterName": function(filterId, filterUpdateNameVO) {}
|
||||
};
|
||||
com.fluig.sdk.api.workflow.CardIndexAPIVO.prototype = {
|
||||
/**
|
||||
@ -25467,7 +26007,19 @@ com.fluig.sdk.api.cardindex.CardFieldVO.prototype = {
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} value
|
||||
*/
|
||||
"setValue": function(value) {}
|
||||
"setValue": function(value) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {String}
|
||||
*/
|
||||
"getTableId": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} tableId
|
||||
*/
|
||||
"setTableId": function(tableId) {}
|
||||
};
|
||||
CardFieldVO.prototype = {
|
||||
/**
|
||||
@ -25493,7 +26045,19 @@ CardFieldVO.prototype = {
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} value
|
||||
*/
|
||||
"setValue": function(value) {}
|
||||
"setValue": function(value) {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @returns {String}
|
||||
*/
|
||||
"getTableId": function() {},
|
||||
/**
|
||||
*
|
||||
* @memberOf fluigAPI
|
||||
* @param {String} tableId
|
||||
*/
|
||||
"setTableId": function(tableId) {}
|
||||
};
|
||||
com.fluig.sdk.api.cardindex.CardChildrenVO.prototype = {
|
||||
/**
|
||||
|
||||
Binary file not shown.
@ -1,3 +1,3 @@
|
||||
#
|
||||
#Tue Nov 04 13:44:50 BRT 2025
|
||||
task-tag-projects-already-scanned=Desligamento,compras_digital,Ginseng_chamados,Transfer\u00EAncia Ginseng,Recrutamento e Sele\u00E7\u00E3o
|
||||
#Wed Apr 15 13:27:51 BRT 2026
|
||||
task-tag-projects-already-scanned=Desligamento,Auditoria_checklist,lan\u00E7amentos,compras_digital,Ginseng_chamados,Auditoria,diagrams,Recrutamento e Sele\u00E7\u00E3o,datasets,forms,Lan\u00E7amento de documentos
|
||||
|
||||
@ -202,5 +202,5 @@
|
||||
<system systemId="http://www.w3.org/2001/xml.xsd" uri="jar:file:/C:/Users/andrey.cunha/Downloads/eclipse-jee-2019-09-R-win32-x86_64/eclipse/plugins/org.eclipse.xsd_2.16.0.v20190625-1130.jar!/cache/www.w3.org/2001/xml.xsd"/>
|
||||
<uri name="http://www.w3.org/2001/XMLSchema" uri="jar:file:/C:/Users/andrey.cunha/Downloads/eclipse-jee-2019-09-R-win32-x86_64/eclipse/plugins/org.eclipse.xsd_2.16.0.v20190625-1130.jar!/cache/www.w3.org/2001/XMLSchema.xsd"/>
|
||||
<uri id="org.w3c.xinclude" name="http://www.w3.org/2001/XInclude" uri="jar:file:/C:/Users/andrey.cunha/Downloads/eclipse-jee-2019-09-R-win32-x86_64/eclipse/plugins/org.eclipse.wst.xsl.core_1.2.100.v201907231732.jar!/xslt-schemas/xinclude.xsd"/>
|
||||
<uri name="http://www.omg.org/spec/BPMN/20100524/MODEL" uri="jar:file:/C:/Users/andrey.cunha/Downloads/eclipse-jee-2019-09-R-win32-x86_64/eclipse/plugins/com.totvs.tds.ecm.designer.eclipse_1.8.2.4.jar!/xsd/BPMN20.xsd"/>
|
||||
<uri name="http://www.omg.org/spec/BPMN/20100524/MODEL" uri="jar:file:/C:/Users/andrey.cunha/Downloads/eclipse-jee-2019-09-R-win32-x86_64/eclipse/plugins/com.totvs.tds.ecm.designer.eclipse_2.0.0.6.jar!/xsd/BPMN20.xsd"/>
|
||||
</catalog>
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
#Fri Feb 27 16:07:04 BRT 2026
|
||||
#Wed Apr 15 13:16:19 BRT 2026
|
||||
org.eclipse.core.runtime=2
|
||||
org.eclipse.platform=4.13.0.v20190916-1045
|
||||
|
||||
18
Auditoria/.project
Normal file
18
Auditoria/.project
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>Auditoria</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.wst.validation.validationbuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
|
||||
<nature>com.totvs.tds.ecm.designer.nature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
118
Auditoria/datasets/ds_lojas_api.js
Normal file
118
Auditoria/datasets/ds_lojas_api.js
Normal file
@ -0,0 +1,118 @@
|
||||
function createDataset(fields, constraints, sortFields) {
|
||||
var dataset = DatasetBuilder.newDataset();
|
||||
dataset.addColumn("PDV");
|
||||
dataset.addColumn("LOJA");
|
||||
dataset.addColumn("RESPONSAVEL_LOJA");
|
||||
dataset.addColumn("REGIONAL");
|
||||
dataset.addColumn("UF");
|
||||
dataset.addColumn("CIDADE");
|
||||
dataset.addColumn("STATUS");
|
||||
dataset.addColumn("CANAL");
|
||||
dataset.addColumn("ID");
|
||||
dataset.addColumn("LOGIN_LOJA");
|
||||
dataset.addColumn("COLLEAGUE_ID");
|
||||
|
||||
try {
|
||||
var clientService = fluigAPI.getAuthorizeClientService();
|
||||
var data = {
|
||||
companyId: String(getValue("WKCompany") || "1"),
|
||||
serviceCode: "GINSENG API",
|
||||
endpoint: "/base_pdvs",
|
||||
method: "get",
|
||||
timeoutService: "60000",
|
||||
params: {}
|
||||
};
|
||||
|
||||
var vo = clientService.invoke(JSON.stringify(data));
|
||||
var response = String(vo.getResult() || "");
|
||||
var obj = JSON.parse(response);
|
||||
var list = (obj && obj.data && obj.data.length) ? obj.data : [];
|
||||
|
||||
if (!list.length) {
|
||||
dataset.addRow(["", "Sem lojas retornadas", "", "", "", "", "", "", "", "", ""]);
|
||||
return dataset;
|
||||
}
|
||||
|
||||
var filter = getSearchFilter(constraints);
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
var item = list[i] || {};
|
||||
var pdv = clean(item.PDV);
|
||||
var loja = clean(item["PDV DESC"] || item.DESCRICAO);
|
||||
var responsavel = clean(item.GESTAO);
|
||||
var regional = clean(item.SUPERVISOR || item["REGIAO 2"] || item.REGIAO);
|
||||
var uf = clean(item.UF || item["UF 2"]);
|
||||
var cidade = clean(item.CIDADE);
|
||||
var status = clean(item.STATUS);
|
||||
var canal = clean(item.CANAL);
|
||||
var id = clean(item.id);
|
||||
var loginLoja = pdv ? (pdv + ".ginseng") : "";
|
||||
var colleagueId = resolveColleagueId(loginLoja);
|
||||
|
||||
if (!matchesFilter(filter, [pdv, loja, responsavel, regional, uf, cidade, status, canal, loginLoja, colleagueId])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
dataset.addRow([
|
||||
pdv,
|
||||
loja,
|
||||
responsavel,
|
||||
regional,
|
||||
uf,
|
||||
cidade,
|
||||
status,
|
||||
canal,
|
||||
id,
|
||||
loginLoja,
|
||||
colleagueId
|
||||
]);
|
||||
}
|
||||
} catch (e) {
|
||||
dataset = DatasetBuilder.newDataset();
|
||||
dataset.addColumn("ERRO");
|
||||
dataset.addRow([String(e)]);
|
||||
}
|
||||
|
||||
return dataset;
|
||||
}
|
||||
|
||||
function resolveColleagueId(login) {
|
||||
try {
|
||||
var c1 = DatasetFactory.createConstraint("login", login, login, ConstraintType.MUST);
|
||||
var c2 = DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST);
|
||||
var ds = DatasetFactory.getDataset("colleague", null, [c1, c2], null);
|
||||
if (ds && ds.rowsCount > 0) {
|
||||
return clean(ds.getValue(0, "colleaguePK.colleagueId"));
|
||||
}
|
||||
} catch (e) {}
|
||||
return "";
|
||||
}
|
||||
|
||||
function getSearchFilter(constraints) {
|
||||
if (!constraints || !constraints.length) return "";
|
||||
for (var i = 0; i < constraints.length; i++) {
|
||||
var c = constraints[i];
|
||||
var field = String(c.fieldName || "").toUpperCase();
|
||||
if (field === "SEARCH" || field === "LOJA" || field === "PDV") {
|
||||
return normalizeSearch(c.initialValue);
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
function matchesFilter(filter, values) {
|
||||
if (!filter) return true;
|
||||
for (var i = 0; i < values.length; i++) {
|
||||
if (normalizeSearch(values[i]).indexOf(filter) > -1) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function normalizeSearch(text) {
|
||||
var t = clean(text).toUpperCase();
|
||||
t = t.replace(/[%*_]/g, "");
|
||||
return t;
|
||||
}
|
||||
|
||||
function clean(value) {
|
||||
return String(value || "").trim();
|
||||
}
|
||||
BIN
Auditoria/forms/auditoria_prototipo/.metadata
Normal file
BIN
Auditoria/forms/auditoria_prototipo/.metadata
Normal file
Binary file not shown.
585
Auditoria/forms/auditoria_prototipo/assets/css/css/checklist.css
Normal file
585
Auditoria/forms/auditoria_prototipo/assets/css/css/checklist.css
Normal file
@ -0,0 +1,585 @@
|
||||
body { background: #ffffff; }
|
||||
.audit-shell {
|
||||
background: #f4f8fd;
|
||||
border: 1px solid #dbe4ee;
|
||||
border-radius: 14px;
|
||||
box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
|
||||
padding: 10px 10px 14px 10px;
|
||||
margin: 14px auto 0 auto;
|
||||
max-width: 1140px;
|
||||
}
|
||||
.audit-section {
|
||||
border: 1px solid #e2e8f0;
|
||||
border-radius: 14px;
|
||||
background: #ffffff;
|
||||
padding: 12px;
|
||||
margin-bottom: 10px;
|
||||
box-shadow: 0 2px 6px rgba(15, 23, 42, 0.05);
|
||||
}
|
||||
h1.audit-main-title {
|
||||
margin: 2px 0 10px 0;
|
||||
font-size: 18px !important;
|
||||
line-height: 1.2;
|
||||
font-weight: 700 !important;
|
||||
color: #ffffff !important;
|
||||
background: #0b556b;
|
||||
border-radius: 10px;
|
||||
padding: 8px 12px;
|
||||
}
|
||||
.section-title {
|
||||
margin: 0 0 10px 0;
|
||||
font-size: 20px;
|
||||
font-weight: 700;
|
||||
color: #1e293b;
|
||||
}
|
||||
.audit-status {
|
||||
display: none;
|
||||
}
|
||||
.progress-section {
|
||||
padding: 5px 10px 5px 10px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
.progress-section .section-title {
|
||||
font-size: 16px;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.audit-context-card .section-title {
|
||||
font-size: 17px;
|
||||
}
|
||||
.progress-inline {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr auto;
|
||||
gap: 16px;
|
||||
align-items: center;
|
||||
}
|
||||
.progress-track {
|
||||
width: 100%;
|
||||
height: 5px;
|
||||
border-radius: 999px;
|
||||
background: #e6ebf2;
|
||||
overflow: hidden;
|
||||
}
|
||||
.progress-fill {
|
||||
width: 0%;
|
||||
height: 100%;
|
||||
background: linear-gradient(90deg, #3ea9c8 0%, #3ea9c8 100%);
|
||||
transition: width .18s ease-in-out;
|
||||
}
|
||||
.progress-percent {
|
||||
font-size: 14px;
|
||||
line-height: 1;
|
||||
color: #0f172a;
|
||||
font-weight: 700;
|
||||
min-width: 42px;
|
||||
text-align: right;
|
||||
}
|
||||
.progress-meta {
|
||||
margin-top: 3px;
|
||||
font-size: 9px;
|
||||
color: #52637b;
|
||||
font-weight: 600;
|
||||
}
|
||||
.instruction-section {
|
||||
display: block;
|
||||
background: #ffffff;
|
||||
}
|
||||
.intro-data-section {
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
background: linear-gradient(90deg, #f4f8fd 0%, #edf3fa 100%);
|
||||
}
|
||||
.intro-data-section .instruction-section {
|
||||
padding: 12px;
|
||||
border-radius: 14px 14px 0 0;
|
||||
background: #ffffff;
|
||||
}
|
||||
.intro-divider {
|
||||
height: 1px;
|
||||
background: #dfe7f0;
|
||||
}
|
||||
.instruction-head {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.instruction-icon {
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
border-radius: 999px;
|
||||
background: #3ea9c8;
|
||||
color: #fff;
|
||||
font-size: 22px;
|
||||
font-weight: 700;
|
||||
line-height: 34px;
|
||||
text-align: center;
|
||||
}
|
||||
.instruction-title {
|
||||
font-size: 16px;
|
||||
color: #1f2f46;
|
||||
font-weight: 700;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.instruction-steps {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(160px, 1fr));
|
||||
gap: 6px 16px;
|
||||
font-size: 10px;
|
||||
color: #334155;
|
||||
line-height: 1.3;
|
||||
}
|
||||
.instruction-steps span {
|
||||
display: inline-block;
|
||||
border: 1px solid #b9d4ea;
|
||||
background: #f4f9ff;
|
||||
color: #0f3f66;
|
||||
border-radius: 999px;
|
||||
padding: 4px 9px;
|
||||
width: fit-content;
|
||||
}
|
||||
.status-pill {
|
||||
background: #eef5fb;
|
||||
border: 1px solid #d9e8f6;
|
||||
color: #0b556b;
|
||||
border-radius: 999px;
|
||||
padding: 6px 10px;
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.audit-context-card {
|
||||
background: #ffffff;
|
||||
padding: 12px;
|
||||
border-radius: 0 0 14px 14px;
|
||||
}
|
||||
.audit-context-row > div {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.audit-label {
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.3px;
|
||||
color: #16486a;
|
||||
margin-bottom: 4px;
|
||||
font-weight: 700;
|
||||
}
|
||||
.label-icon { opacity: 0.8; margin-right: 4px; }
|
||||
.audit-input {
|
||||
height: 32px;
|
||||
font-size: 12px;
|
||||
border-color: #c9d7e7;
|
||||
border-radius: 7px;
|
||||
padding: 5px 9px;
|
||||
}
|
||||
.audit-input:focus {
|
||||
border-color: #74a5d3;
|
||||
box-shadow: 0 0 0 2px rgba(34, 93, 143, 0.12);
|
||||
}
|
||||
.audit-card { margin-top: 12px; }
|
||||
.audit-score { font-size: 22px; font-weight: 700; }
|
||||
.audit-score small { font-size: 12px; font-weight: 400; color: #7f8c8d; display: block; }
|
||||
#pilaresContainer {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, minmax(220px, 1fr));
|
||||
gap: 14px;
|
||||
background: #f4f8fd;
|
||||
border: 0;
|
||||
border-radius: 10px;
|
||||
padding: 8px 12px 10px 12px;
|
||||
}
|
||||
h2.section-title.pilares-title {
|
||||
margin-top: 4px;
|
||||
margin-bottom: 10px;
|
||||
font-size: 17px !important;
|
||||
}
|
||||
.audit-send-wrap {
|
||||
margin-top: 10px;
|
||||
text-align: right;
|
||||
padding: 10px 12px 2px 12px;
|
||||
border-top: 1px solid #dbe5f0;
|
||||
}
|
||||
.audit-send-btn {
|
||||
min-width: 120px;
|
||||
height: 38px;
|
||||
border-radius: 8px;
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
background: #0b556b;
|
||||
border-color: #0b556b;
|
||||
}
|
||||
.audit-send-btn:hover,
|
||||
.audit-send-btn:focus {
|
||||
background: #0a4b5f;
|
||||
border-color: #0a4b5f;
|
||||
}
|
||||
.pilar-panel {
|
||||
border: 1px solid #d6e1ee;
|
||||
border-radius: 12px;
|
||||
background: #ffffff;
|
||||
padding: 8px;
|
||||
min-height: 108px;
|
||||
box-shadow: 0 6px 14px rgba(15, 23, 42, 0.08);
|
||||
transition: box-shadow .18s ease, transform .18s ease;
|
||||
}
|
||||
.pilar-panel:hover {
|
||||
box-shadow: 0 10px 20px rgba(15, 23, 42, 0.12);
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
.pilar-panel.is-open {
|
||||
grid-column: 1 / -1;
|
||||
box-shadow: 0 12px 24px rgba(15, 23, 42, 0.14);
|
||||
}
|
||||
.pilar-summary-card {
|
||||
grid-column: span 3;
|
||||
border: 1px solid #d6e1ee;
|
||||
border-radius: 12px;
|
||||
background: #ffffff;
|
||||
padding: 10px 12px;
|
||||
box-shadow: 0 6px 14px rgba(15, 23, 42, 0.08);
|
||||
}
|
||||
.summary-title {
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
color: #000000;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.summary-item {
|
||||
font-size: 12px;
|
||||
line-height: 1.45;
|
||||
color: #000000;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.summary-item:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.summary-name {
|
||||
color: #000000;
|
||||
font-weight: 700;
|
||||
}
|
||||
.pilar-head {
|
||||
background: #ffffff;
|
||||
border: 0;
|
||||
padding: 6px;
|
||||
display: grid;
|
||||
gap: 6px;
|
||||
cursor: pointer;
|
||||
border-radius: 10px;
|
||||
transition: background .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
|
||||
}
|
||||
.pilar-head:hover {
|
||||
background: #f8fbff;
|
||||
box-shadow: none;
|
||||
transform: none;
|
||||
}
|
||||
.pilar-head.is-open {
|
||||
background: #f4f8fd;
|
||||
box-shadow: none;
|
||||
}
|
||||
.pilar-title-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
}
|
||||
.pilar-state-dot {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border-radius: 999px;
|
||||
background: #94a3b8;
|
||||
border: 1px solid rgba(148, 163, 184, 0.25);
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #ffffff;
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
}
|
||||
.pilar-state-dot.state-pending { background: #dc2626; border-color: rgba(220, 38, 38, 0.4); }
|
||||
.pilar-state-dot.state-progress { background: #d18a2f; border-color: rgba(209, 138, 47, 0.35); }
|
||||
.pilar-state-dot.state-done { background: #2f9d78; border-color: rgba(47, 157, 120, 0.35); }
|
||||
.pilar-title {
|
||||
font-size: 13px;
|
||||
font-weight: 700;
|
||||
color: #000000;
|
||||
letter-spacing: 0.2px;
|
||||
}
|
||||
.pilar-photo-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
color: #243549;
|
||||
}
|
||||
.pilar-photo-count {
|
||||
font-size: 10px;
|
||||
font-weight: 700;
|
||||
color: #000000;
|
||||
}
|
||||
.pilar-missing {
|
||||
font-size: 10px;
|
||||
color: #000000;
|
||||
font-weight: 600;
|
||||
}
|
||||
.pilar-mini-track {
|
||||
height: 5px;
|
||||
border-radius: 999px;
|
||||
background: #e4eaf1;
|
||||
overflow: hidden;
|
||||
}
|
||||
.pilar-mini-fill {
|
||||
display: block;
|
||||
width: 0%;
|
||||
height: 100%;
|
||||
border-radius: inherit;
|
||||
background: #5d8fbe;
|
||||
transition: width .18s ease;
|
||||
}
|
||||
.pilar-foot {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
}
|
||||
.pilar-count {
|
||||
font-size: 10px;
|
||||
color: #000000;
|
||||
font-weight: 600;
|
||||
}
|
||||
.pilar-open-cta {
|
||||
font-size: 10px;
|
||||
color: #000000;
|
||||
font-weight: 700;
|
||||
}
|
||||
.pilar-body { padding: 8px 0 0 0; }
|
||||
.audit-row {
|
||||
border: 1px solid #d4e0ee;
|
||||
border-radius: 12px;
|
||||
padding: 10px;
|
||||
margin-bottom: 8px;
|
||||
background: #f9fcff;
|
||||
}
|
||||
.audit-row-main {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 8px;
|
||||
}
|
||||
.audit-row-top {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1.3fr;
|
||||
gap: 10px;
|
||||
align-items: start;
|
||||
}
|
||||
.audit-row[data-max-fotos="1"] .audit-row-top,
|
||||
.audit-row[data-max-fotos="2"] .audit-row-top {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.audit-info {
|
||||
min-width: 0;
|
||||
}
|
||||
.indicador-cell { font-weight: 700; color: #143653; font-size: 15px; line-height: 1.25; }
|
||||
.indicador-help {
|
||||
margin-top: 5px;
|
||||
font-size: 12px;
|
||||
color: #5c6f82;
|
||||
line-height: 1.35;
|
||||
background: #f7fbff;
|
||||
border: 1px solid #dce8f5;
|
||||
border-radius: 8px;
|
||||
padding: 7px 9px;
|
||||
}
|
||||
.indicador-help ul {
|
||||
margin: 0;
|
||||
padding-left: 18px;
|
||||
}
|
||||
.indicador-help li {
|
||||
margin: 2px 0;
|
||||
}
|
||||
.indicador-help .indicador-group {
|
||||
list-style: none;
|
||||
margin-top: 6px;
|
||||
margin-left: -18px;
|
||||
font-weight: 700;
|
||||
color: #36597b;
|
||||
}
|
||||
.meta-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(5, minmax(100px, 1fr));
|
||||
gap: 10px;
|
||||
}
|
||||
.meta-box {
|
||||
border: 1px solid #d7e2ef;
|
||||
border-radius: 10px;
|
||||
background: #fff;
|
||||
padding: 8px 10px;
|
||||
min-height: 62px;
|
||||
}
|
||||
.meta-label { font-size: 11px; color: #64748b; text-transform: uppercase; }
|
||||
.meta-value { font-size: 20px; color: #1f2937; margin-top: 4px; font-weight: 600; }
|
||||
.meta-value .form-control {
|
||||
font-size: 14px;
|
||||
height: 34px;
|
||||
padding: 4px 10px;
|
||||
}
|
||||
.anexo-wrap, .resultado-wrap, .just-wrap { margin-top: 0; }
|
||||
.penalidade-badge {
|
||||
font-size: 10px !important;
|
||||
font-weight: 700;
|
||||
padding: 2px 8px !important;
|
||||
border-radius: 999px;
|
||||
letter-spacing: 0.2px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.penalidade-badge.label-danger { background: #f7dada; color: #9f2d2d; }
|
||||
.penalidade-badge.label-warning { background: #fff0c7; color: #8a5a00; }
|
||||
.penalidade-badge.label-info { background: #dceefe; color: #1f5f9b; }
|
||||
.penalidade-badge.label-success { background: #dff5e4; color: #1f7a3d; }
|
||||
.penalidade-badge.label-default { background: #eceff3; color: #5f6b7a; }
|
||||
.anexos-cell {
|
||||
background: #edf4fb;
|
||||
border: 1px solid #cfe0f3;
|
||||
border-radius: 10px;
|
||||
padding: 8px;
|
||||
}
|
||||
.anexo-auto-hint { font-size: 11px; color: #5f7d9a; margin-top: 5px; }
|
||||
.anexo-progress {
|
||||
margin-top: 7px;
|
||||
font-size: 12px;
|
||||
color: #2d4f70;
|
||||
font-weight: 600;
|
||||
}
|
||||
.anexo-progress-count {
|
||||
display: inline-block;
|
||||
min-width: 40px;
|
||||
text-align: center;
|
||||
border-radius: 999px;
|
||||
background: #d9e9fa;
|
||||
color: #1d4f7c;
|
||||
padding: 1px 8px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
.anexo-multi-list {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, minmax(220px, 1fr));
|
||||
gap: 7px;
|
||||
}
|
||||
.audit-row[data-max-fotos="1"] .anexo-multi-list,
|
||||
.audit-row[data-max-fotos="2"] .anexo-multi-list {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.anexo-slot {
|
||||
background: #ffffff;
|
||||
border: 1px solid #c9dbef;
|
||||
border-radius: 8px;
|
||||
padding: 5px;
|
||||
}
|
||||
.audit-row[data-max-fotos="1"] .anexo-slot,
|
||||
.audit-row[data-max-fotos="2"] .anexo-slot {
|
||||
max-width: 100%;
|
||||
}
|
||||
.anexo-slot.slot-filled {
|
||||
border-color: #8fc1a3;
|
||||
box-shadow: inset 0 0 0 1px rgba(79, 161, 109, 0.2);
|
||||
}
|
||||
.anexo-slot.extra-slot { display: none; }
|
||||
.anexo-multi-list.expanded .anexo-slot.extra-slot { display: block; }
|
||||
.anexo-slot-label {
|
||||
font-size: 11px;
|
||||
color: #4b5f74;
|
||||
margin-bottom: 3px;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.anexo-toggle-wrap {
|
||||
margin-top: 8px;
|
||||
text-align: right;
|
||||
}
|
||||
.anexo-toggle {
|
||||
font-size: 12px;
|
||||
font-weight: 600;
|
||||
color: #24557d !important;
|
||||
border-color: #b5cbe3;
|
||||
background: #f4f8fd;
|
||||
padding: 3px 10px;
|
||||
}
|
||||
.anexos-cell .fluigFormAttachmentComponent {
|
||||
width: 100%;
|
||||
}
|
||||
.anexos-cell .fluigFormAttachmentComponent input {
|
||||
height: 34px;
|
||||
border-color: #c7d8ec;
|
||||
background: #fff;
|
||||
}
|
||||
.anexos-cell .fluigFormAttachmentComponent .btn {
|
||||
height: 34px !important;
|
||||
min-width: 40px;
|
||||
}
|
||||
.just-wrap input {
|
||||
border-radius: 10px;
|
||||
}
|
||||
.audit-row-target { background: #fff8e6 !important; }
|
||||
.nc-box {
|
||||
border: 1px solid #f5d0d0;
|
||||
background: #fff6f6;
|
||||
border-radius: 10px;
|
||||
padding: 10px 12px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.nc-title {
|
||||
font-weight: 700;
|
||||
color: #9f2d2d;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
.nc-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 8px;
|
||||
}
|
||||
.nc-item {
|
||||
background: #fff;
|
||||
border: 1px solid #f1b7b7;
|
||||
color: #7f1d1d;
|
||||
border-radius: 999px;
|
||||
padding: 4px 10px;
|
||||
font-size: 12px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.anexo-view { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
|
||||
.anexo-thumb-inline {
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
object-fit: cover;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 4px;
|
||||
background: #fff;
|
||||
}
|
||||
.anexo-file {
|
||||
font-size: 11px;
|
||||
max-width: 170px;
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
border: 1px solid #e0e0e0;
|
||||
border-radius: 4px;
|
||||
padding: 4px 6px;
|
||||
background: #fafafa;
|
||||
}
|
||||
.anexo-text {
|
||||
background: #fff;
|
||||
font-size: 12px;
|
||||
}
|
||||
@media (max-width: 900px) {
|
||||
.section-title { font-size: 22px; }
|
||||
.progress-percent { font-size: 14px; min-width: 38px; }
|
||||
.progress-meta { font-size: 14px; }
|
||||
.instruction-title { font-size: 16px; }
|
||||
.instruction-steps { grid-template-columns: 1fr; font-size: 14px; }
|
||||
.audit-label { font-size: 13px; }
|
||||
.audit-input { height: 40px; font-size: 15px; }
|
||||
.audit-row-top { grid-template-columns: 1fr; }
|
||||
.meta-grid { grid-template-columns: repeat(2, minmax(100px, 1fr)); }
|
||||
.anexo-multi-list { grid-template-columns: 1fr; }
|
||||
#pilaresContainer { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
|
||||
.pilar-panel.is-open { grid-column: auto; }
|
||||
.pilar-summary-card { grid-column: span 2; }
|
||||
.audit-send-wrap { padding: 8px 0 0 0; border-top: 0; }
|
||||
.audit-send-btn { width: 100%; }
|
||||
}
|
||||
1100
Auditoria/forms/auditoria_prototipo/assets/js/checklist.js
Normal file
1100
Auditoria/forms/auditoria_prototipo/assets/js/checklist.js
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,423 @@
|
||||
/**
|
||||
* Plugin JQuery para trabalhar com anexos nos formulários dentro do processo
|
||||
*
|
||||
* @author Bruno Gasparetto
|
||||
* @see https://github.com/brunogasparetto/fluig-form-attachment
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Configurações
|
||||
*
|
||||
* @typedef AttachmentSettings
|
||||
* @property {boolean} showActionButton Exibe o botão de upload/delete. True por padrão.
|
||||
* @property {boolean} filename Nome que será salvo como descrição do Anexo.
|
||||
* @property {boolean|string} prefixName Adiciona prefixo ao anexo. False por padrão, True para prefixo aleatório, String para prefixo fixo.
|
||||
* @property {string} accept Tipos de arquivos aceitos. Segue a regra do accept do input tipo file.
|
||||
*/
|
||||
|
||||
;(function ($) {
|
||||
"use strict";
|
||||
|
||||
const pluginName = "fluigFormAttachment";
|
||||
|
||||
const deleteFileClassName = "BtnDeleteFile";
|
||||
const uploadFileClassname = "BtnUploadFile";
|
||||
const viewerFileClassname = "BtnViewerFile";
|
||||
const compressedExtensions = [
|
||||
'.7z', '.zip', '.rar', '.gz', '.tar', '.tbz2', '.tgz', '.bz2', '.lz', '.lz4','.txz',
|
||||
'.xz', '.z', '.zst', '.zstd', '.war', '.ear', '.jar','.apk', '.arj', '.ace', '.cab',
|
||||
];
|
||||
|
||||
const isString = item => typeof item === "string";
|
||||
|
||||
/**
|
||||
* Procura o índice do anexo de acordo com sua descrição
|
||||
*
|
||||
* @param {string} filename
|
||||
* @returns {number} -1 se não encontrar
|
||||
*/
|
||||
const attachmentFindIndex = (filename) => parent.ECM.attachmentTable.getData().findIndex(attachment => attachment.description === filename);
|
||||
|
||||
/**
|
||||
* Configuração padrão
|
||||
*
|
||||
* @type {AttachmentSettings}
|
||||
*/
|
||||
const defaults = {
|
||||
showActionButton: true,
|
||||
filename: "Anexo",
|
||||
prefixName: false,
|
||||
accept: "*",
|
||||
};
|
||||
|
||||
class Plugin {
|
||||
/**
|
||||
* @type {AttachmentSettings}
|
||||
*/
|
||||
#settings;
|
||||
|
||||
/**
|
||||
* Elemento do arquivo. Pode ser um input ou span (no modo leitura).
|
||||
*
|
||||
* @type {JQuery<HTMLElement>}
|
||||
*/
|
||||
#input;
|
||||
|
||||
/**
|
||||
* @type {JQuery<HTMLElement>}
|
||||
*/
|
||||
#container;
|
||||
|
||||
/**
|
||||
* @type {string}
|
||||
*/
|
||||
#attachmentFilename;
|
||||
|
||||
/**
|
||||
* @param {HTMLElement} element
|
||||
* @param {AttachmentSettings} options
|
||||
*/
|
||||
constructor(element, options) {
|
||||
|
||||
// Garantir um ID para o Input
|
||||
if (!element.id && element.nodeName.toLowerCase() === "input") {
|
||||
element.id = FLUIGC.utilities.randomUUID();
|
||||
}
|
||||
|
||||
this.#settings = $.extend({}, defaults, options);
|
||||
this.#input = $(element);
|
||||
this.#attachmentFilename = this.#input.val() || this.#input.text().trim();
|
||||
|
||||
this.#input
|
||||
.prop("readonly", true)
|
||||
.on("change", () => {
|
||||
this.#attachmentFilename = this.#input.val();
|
||||
this.#changeButtonsState();
|
||||
})
|
||||
.wrap(`<div class="${pluginName}Component"></div>`)
|
||||
.after(`<div class="${pluginName}Component_buttons">${this.#getButtonsTemplate()}</div>`);
|
||||
|
||||
this.#container = this.#input.closest(`.${pluginName}Component`);
|
||||
|
||||
this.#container
|
||||
.on("click", `.${pluginName}${deleteFileClassName}`, () => this.#confirmDeleteAttachment())
|
||||
.on("click", `.${pluginName}${uploadFileClassname}`, () => this.#uploadAttachment())
|
||||
.on("click", `.${pluginName}${viewerFileClassname}`, () => this.#viewAttachment())
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indica que o campo está válido
|
||||
*
|
||||
* Caso o campo possua algum valor é obrigatório que o anexo
|
||||
* esteja na tabela de anexos.
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
isValid() {
|
||||
return this.#attachmentFilename.length
|
||||
? this.hasAttachment()
|
||||
: true
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indica se o anexo está na tabela de anexos
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
hasAttachment() {
|
||||
const filename = this.#attachmentFilename || this.#input.val() || this.#input.text().trim();
|
||||
|
||||
return filename.length > 0 && attachmentFindIndex(filename) !== -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove o anexo
|
||||
*
|
||||
* Método útil para excluir anexos em tabela Pai x Filho.
|
||||
*/
|
||||
deleteAttachment() {
|
||||
const attachmentIndex = parent.ECM.attachmentTable.getData().findIndex(
|
||||
attachment => attachment.description === this.#attachmentFilename
|
||||
);
|
||||
|
||||
setTimeout(() => this.#input.val("").trigger("change"), 500);
|
||||
|
||||
if (attachmentIndex === -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
parent.WKFViewAttachment.removeAttach([attachmentIndex]);
|
||||
}
|
||||
|
||||
showActionButton() {
|
||||
this.#settings.showActionButton = true;
|
||||
this.#input.trigger("change");
|
||||
}
|
||||
|
||||
hideActionButton() {
|
||||
this.#settings.showActionButton = false;
|
||||
this.#input.trigger("change");
|
||||
}
|
||||
|
||||
filename(fileName, prefixName) {
|
||||
if (fileName === undefined) {
|
||||
return this.#input.data("filename") || this.#settings.filename;
|
||||
}
|
||||
|
||||
this.#settings.filename = fileName;
|
||||
this.#input.data("filename", fileName);
|
||||
|
||||
if (prefixName !== undefined) {
|
||||
this.prefixName(prefixName);
|
||||
}
|
||||
}
|
||||
|
||||
prefixName(prefixName) {
|
||||
if (prefixName === undefined) {
|
||||
return this.#settings.prefixName;
|
||||
}
|
||||
|
||||
this.#settings.prefixName = prefixName;
|
||||
}
|
||||
|
||||
#getButtonsTemplate() {
|
||||
const hasFileSelected = this.#attachmentFilename.length !== 0;
|
||||
const canShowActionButton = this.#canDisplayActionButton();
|
||||
|
||||
return `<button type="button" class="${pluginName}BtnAction ${pluginName}${deleteFileClassName} btn btn-danger btn-sm ${(canShowActionButton && hasFileSelected) ? '' : 'hide'}" title="Remover Anexo"><i class="flaticon flaticon-trash icon-sm"></i></button>`
|
||||
+ `<button type="button" class="${pluginName}BtnAction ${pluginName}${uploadFileClassname} btn btn-success btn-sm ${(canShowActionButton && !hasFileSelected) ? '' : 'hide'}" title="Enviar Anexo"><i class="flaticon flaticon-upload icon-sm"></i></button>`
|
||||
+ `<button type="button" class="${pluginName}${viewerFileClassname} btn btn-info btn-sm ${hasFileSelected ? '' : 'hide'}" title="Visualizar Anexo"><i class="flaticon flaticon-view icon-sm"></i></button>`
|
||||
;
|
||||
}
|
||||
|
||||
#canDisplayActionButton() {
|
||||
const element = this.#input.get(0);
|
||||
|
||||
return this.#settings.showActionButton
|
||||
&& parent.ECM.workflowView.userPermissions.indexOf("P") >= 0
|
||||
&& location.href.includes('ManagerMode')
|
||||
&& !location.href.includes('token')
|
||||
&& element.nodeName.toLowerCase() === "input"
|
||||
&& !element.disabled
|
||||
;
|
||||
}
|
||||
|
||||
#changeButtonsState() {
|
||||
const hasFileSelected = this.#attachmentFilename.length !== 0;
|
||||
|
||||
if (this.#canDisplayActionButton()) {
|
||||
if (hasFileSelected) {
|
||||
this.#container.find(`.${pluginName}${uploadFileClassname}`).addClass("hide");
|
||||
this.#container.find(`.${pluginName}${deleteFileClassName}`).removeClass("hide");
|
||||
} else {
|
||||
this.#container.find(`.${pluginName}${deleteFileClassName}`).addClass("hide");
|
||||
this.#container.find(`.${pluginName}${uploadFileClassname}`).removeClass("hide");
|
||||
}
|
||||
} else {
|
||||
this.#container.find(`.${pluginName}BtnAction`).addClass("hide");
|
||||
}
|
||||
|
||||
if (hasFileSelected) {
|
||||
this.#container.find(`.${pluginName}${viewerFileClassname}`).removeClass("hide");
|
||||
} else {
|
||||
this.#container.find(`.${pluginName}${viewerFileClassname}`).addClass("hide");
|
||||
}
|
||||
}
|
||||
|
||||
#confirmDeleteAttachment() {
|
||||
if (!this.#canDisplayActionButton()) {
|
||||
return;
|
||||
}
|
||||
|
||||
FLUIGC.message.confirm({
|
||||
message: `Deseja remover o anexo <b>${this.#attachmentFilename}</b>?`,
|
||||
title: 'Confirmação',
|
||||
labelYes: 'Sim, quero remover',
|
||||
labelNo: 'Não, quero cancelar',
|
||||
}, result => {
|
||||
if (!result) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.deleteAttachment();
|
||||
});
|
||||
}
|
||||
|
||||
#uploadAttachment() {
|
||||
if (!this.#canDisplayActionButton()) {
|
||||
return;
|
||||
}
|
||||
|
||||
let filename = this.#input.data("filename") || this.#settings.filename;
|
||||
|
||||
if (this.#settings.prefixName === true) {
|
||||
filename = FLUIGC.utilities.randomUUID().substring(0, 9) + filename;
|
||||
} else if (this.#settings.prefixName !== false && isString(this.#settings.prefixName)) {
|
||||
filename = `${this.#settings.prefixName}-${filename}`;
|
||||
}
|
||||
|
||||
// Evitar conflito de descrição do anexo
|
||||
if (attachmentFindIndex(filename) !== -1) {
|
||||
FLUIGC.toast({
|
||||
title: "Atenção",
|
||||
message: "Já existe um anexo com essa descrição",
|
||||
type: "warning",
|
||||
})
|
||||
return;
|
||||
}
|
||||
|
||||
parent.$("#ecm-navigation-inputFile-clone")
|
||||
.attr({
|
||||
"data-on-camera": "true",
|
||||
"data-file-name-camera": filename,
|
||||
"data-inputid": this.#input.attr("id"),
|
||||
"data-filename": filename,
|
||||
"multiple": false,
|
||||
"accept": this.#input.data("accept") || this.#settings.accept,
|
||||
})
|
||||
.trigger("click")
|
||||
;
|
||||
}
|
||||
|
||||
#viewAttachment() {
|
||||
const attachmentIndex = parent.ECM.attachmentTable.getData().findIndex(
|
||||
attachment => attachment.description === this.#attachmentFilename
|
||||
);
|
||||
|
||||
if (attachmentIndex === -1) {
|
||||
FLUIGC.toast({
|
||||
title: "Atenção",
|
||||
message: "Anexo não encontrado",
|
||||
type: "warning"
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
const attachment = parent.ECM.attachmentTable.getRow(attachmentIndex);
|
||||
const physicalFileName = String(
|
||||
attachment.physicalFileName || attachment.fileName || attachment.name || ""
|
||||
).toLowerCase();
|
||||
const isCompressedFile = compressedExtensions.some(extension => physicalFileName.endsWith(extension));
|
||||
|
||||
if (attachment.documentId && !isCompressedFile) {
|
||||
parent.WKFViewAttachment.openAttachmentView(parent.WCMAPI.userCode, attachment.documentId, attachment.version);
|
||||
} else {
|
||||
parent.WKFViewAttachment.downloadAttach([attachmentIndex]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Instancia o Plugin ou executa algum método do plugin
|
||||
*
|
||||
* @param {AttachmentSettings|string} options
|
||||
* @returns {undefined|boolean|void}
|
||||
*/
|
||||
$.fn[pluginName] = function (options) {
|
||||
if (!parent.WKFViewAttachment || !parent.ECM || !parent.ECM.attachmentTable) {
|
||||
console.error(`Plugin ${pluginName} executado fora de um processo.`)
|
||||
return this;
|
||||
}
|
||||
|
||||
// Executa o Método
|
||||
if (isString(options)) {
|
||||
const methodName = options;
|
||||
const methodArgs = Array.prototype.slice.call(arguments, 1);
|
||||
|
||||
let returnedValue = undefined;
|
||||
|
||||
this.each(function () {
|
||||
let pluginData = $.data(this, pluginName);
|
||||
|
||||
if (!pluginData) {
|
||||
pluginData = new Plugin(this, {});
|
||||
$.data(this, pluginName, pluginData);
|
||||
}
|
||||
|
||||
if (!pluginData[methodName]) {
|
||||
return;
|
||||
}
|
||||
|
||||
returnedValue = pluginData[methodName](...methodArgs);
|
||||
|
||||
if (returnedValue !== undefined) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
return returnedValue !== undefined
|
||||
? returnedValue
|
||||
: this
|
||||
;
|
||||
}
|
||||
|
||||
return this.each(function () {
|
||||
if (!$.data(this, pluginName)) {
|
||||
$.data(this, pluginName, new Plugin(this, options));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
if (!parent.WKFViewAttachment || !parent.ECM || !parent.ECM.attachmentTable) {
|
||||
return;
|
||||
}
|
||||
|
||||
const loading = FLUIGC.loading(window, {
|
||||
title: "Aguarde",
|
||||
textMessage: "Enviando arquivo",
|
||||
})
|
||||
|
||||
$(() => {
|
||||
// Oculta aba anexos
|
||||
$("#tab-attachments", parent.document).hide();
|
||||
|
||||
parent.$("#ecm_navigation_fileupload")
|
||||
.on(`fileuploadadd.${pluginName}`, function(e, data) {
|
||||
// Impede abrir o Loading caso tenha erro no arquivo
|
||||
|
||||
const file = data.files[0];
|
||||
|
||||
if (parent.ECM.maxUploadSize > 0 && file.size >= (parent.ECM.maxUploadSize * 1024 * 1024)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (parent.ECM.newAttachmentsDocs.length
|
||||
&& parent.ECM.newAttachmentsDocs.findIndex(attachment => attachment.name === file.name) !== -1
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
loading.show();
|
||||
})
|
||||
.on(`fileuploadfail.${pluginName}`, () => loading.hide())
|
||||
.on(`fileuploaddone.${pluginName}`, function() {
|
||||
// Atualiza o campo do arquivo caso o upload tenha ocorrido
|
||||
|
||||
loading.hide();
|
||||
|
||||
const btnUpload = parent.document.getElementById("ecm-navigation-inputFile-clone");
|
||||
const filename = btnUpload.getAttribute("data-filename");
|
||||
|
||||
if (attachmentFindIndex(filename) === -1) {
|
||||
return;
|
||||
}
|
||||
|
||||
$(`#${btnUpload.getAttribute("data-inputid")}`).val(filename).trigger("change");
|
||||
});
|
||||
|
||||
parent.$(document).on(`fileuploadstop.${pluginName}`, () => loading.hide());
|
||||
});
|
||||
|
||||
|
||||
$("head").append(`<style>
|
||||
.${pluginName}Component { display: flex; align-items: center; flex-wrap: nowrap; }
|
||||
.${pluginName}Component input { border-top-right-radius: 0 !important; border-bottom-right-radius: 0 !important; }
|
||||
.${pluginName}Component_buttons { display: flex; align-items: center; justify-content: flex-end; }
|
||||
.${pluginName}Component_buttons .btn { outline: none !important; outline-offset: unset !important; border-radius: 0 !important; height: 32px; }
|
||||
</style>`);
|
||||
|
||||
}(jQuery));
|
||||
1
Auditoria/forms/auditoria_prototipo/assets/js/fluigFormAttachment.min.js
vendored
Normal file
1
Auditoria/forms/auditoria_prototipo/assets/js/fluigFormAttachment.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
144
Auditoria/forms/auditoria_prototipo/auditoria_prototipo.html
Normal file
144
Auditoria/forms/auditoria_prototipo/auditoria_prototipo.html
Normal file
@ -0,0 +1,144 @@
|
||||
<html>
|
||||
<head>
|
||||
<link type="text/css" rel="stylesheet" href="/style-guide/css/fluig-style-guide.min.css" />
|
||||
<script type="text/javascript" src="/portal/resources/js/jquery/jquery.js"></script>
|
||||
<script type="text/javascript" src="/portal/resources/js/jquery/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="/portal/resources/js/mustache/mustache-min.js"></script>
|
||||
<script type="text/javascript" src="/style-guide/js/fluig-style-guide.min.js" charset="utf-8"></script>
|
||||
<script type="text/javascript" src="./fluigFormAttachment.js"></script>
|
||||
<link type="text/css" rel="stylesheet" href="./assets/css/checklist.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="fluig-style-guide">
|
||||
<form name="form" role="form">
|
||||
<div class="container-fluid audit-shell">
|
||||
<div class="audit-status">
|
||||
<span class="status-pill" id="profileBadge">Perfil: Loja</span>
|
||||
<span class="status-pill" id="progressBadge">Evidências: 0/0</span>
|
||||
</div>
|
||||
|
||||
<h1 class="audit-main-title">Checklist de Auditoria dos Pilares</h1>
|
||||
|
||||
<section class="audit-section intro-data-section">
|
||||
<div class="instruction-section">
|
||||
<div class="instruction-copy">
|
||||
<div class="instruction-head">
|
||||
<div class="instruction-icon">i</div>
|
||||
<div class="instruction-title">Envie as fotos dos pilares</div>
|
||||
</div>
|
||||
<div class="instruction-steps">
|
||||
<span>1. Clique em um <strong>PILAR</strong></span>
|
||||
<span>3. Clique em <strong>ANEXAR</strong> para enviar a foto solicitada</span>
|
||||
<span>5. Envie para concluir</span>
|
||||
<span>2. Verifique as <strong>INSTRUÇÕES</strong></span>
|
||||
<span>4. Confira em <strong>VISUALIZAR</strong></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="intro-divider"></div>
|
||||
|
||||
<div class="audit-context-card">
|
||||
<div class="section-title">Dados da Auditoria</div>
|
||||
<div class="row audit-context-row">
|
||||
<div class="col-md-2 col-sm-6">
|
||||
<label class="audit-label" for="loja">Loja</label>
|
||||
<input type="text" class="form-control audit-input" name="loja" id="loja" />
|
||||
</div>
|
||||
<div class="col-md-2 col-sm-6">
|
||||
<label class="audit-label" for="responsavelLoja">Responsavel da Loja</label>
|
||||
<input type="text" class="form-control audit-input" name="responsavelLoja" id="responsavelLoja" />
|
||||
</div>
|
||||
<div class="col-md-2 col-sm-6">
|
||||
<label class="audit-label" for="auditor">Analista</label>
|
||||
<input type="text" class="form-control audit-input" name="auditor" id="auditor" />
|
||||
</div>
|
||||
<div class="col-md-2 col-sm-4">
|
||||
<label class="audit-label" for="dataAuditoria">Data</label>
|
||||
<input type="date" class="form-control audit-input" name="dataAuditoria" id="dataAuditoria" />
|
||||
</div>
|
||||
<div class="col-md-2 col-sm-4">
|
||||
<label class="audit-label" for="ciclo">Ciclo</label>
|
||||
<input type="text" class="form-control audit-input" name="ciclo" id="ciclo" placeholder="Ex: 2026-03" />
|
||||
</div>
|
||||
<div class="col-md-2 col-sm-4">
|
||||
<label class="audit-label" for="regional">Regional</label>
|
||||
<input type="text" class="form-control audit-input" name="regional" id="regional" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="nc-box" id="naoConformeBox" style="display:none;">
|
||||
<div class="nc-title">Pendências para correção</div>
|
||||
<div class="nc-list" id="naoConformeList"></div>
|
||||
</div>
|
||||
|
||||
<section class="audit-section progress-section">
|
||||
<h2 class="section-title">Progresso da Auditoria</h2>
|
||||
<div class="progress-inline">
|
||||
<div class="progress-track">
|
||||
<div class="progress-fill" id="globalProgressFill"></div>
|
||||
</div>
|
||||
<div class="progress-percent" id="globalProgressPercent">0%</div>
|
||||
</div>
|
||||
<div class="progress-meta" id="globalProgressMeta">0 de 0 fotos enviadas</div>
|
||||
</section>
|
||||
|
||||
<div class="row audit-card">
|
||||
<div class="col-md-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="audit-score" id="scoreFinal">0%</div>
|
||||
<small>Score final</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="audit-score" id="pontosObtidos">0</div>
|
||||
<small>Pontos obtidos</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="audit-score" id="pontosPossiveis">0</div>
|
||||
<small>Pontos possíveis</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<div class="audit-score" id="classificacao">-</div>
|
||||
<small>Classificação</small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2 class="section-title pilares-title">Pilares Analisados</h2>
|
||||
<div class="row">
|
||||
<div class="col-md-12" id="pilaresContainer"></div>
|
||||
</div>
|
||||
<div class="audit-send-wrap">
|
||||
<button type="button" class="btn btn-primary audit-send-btn" id="btnEnviarForm">Finalizar</button>
|
||||
</div>
|
||||
<input type="hidden" name="auditoriaPayload" id="auditoriaPayload" />
|
||||
<input type="hidden" name="temNaoConforme" id="temNaoConforme" value="false" />
|
||||
<input type="hidden" name="qtdNaoConforme" id="qtdNaoConforme" value="0" />
|
||||
<input type="hidden" name="listaNaoConforme" id="listaNaoConforme" value="" />
|
||||
<input type="hidden" name="saidaAnalise" id="saidaAnalise" value="CONFORME" />
|
||||
<input type="hidden" name="usuarioRetorno" id="usuarioRetorno" value="" />
|
||||
<input type="hidden" name="destinoLoja" id="destinoLoja" value="" />
|
||||
<input type="hidden" name="destinoLojaId" id="destinoLojaId" value="" />
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="./assets/js/checklist.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
208
Auditoria/workflow/scripts/beforeTaskSave.js
Normal file
208
Auditoria/workflow/scripts/beforeTaskSave.js
Normal file
@ -0,0 +1,208 @@
|
||||
function beforeTaskSave(colleagueId, nextSequenceId, userList) {
|
||||
var FORCE_EMAIL_DESTINATION = "";
|
||||
var currentState = parseInt(getValue("WKCurrentState"), 10);
|
||||
var nextState = parseInt(nextSequenceId, 10);
|
||||
|
||||
try {
|
||||
// Roteamento para loja na entrada da atividade "Validar Planograma" (task5).
|
||||
// Usa prioridade: destinoLojaId (colleagueId) -> destinoLoja (login).
|
||||
if (nextState === 5) {
|
||||
atribuiResponsavelLoja(userList);
|
||||
}
|
||||
} catch (eAssign) {
|
||||
log.error("[checklist][atribuicao] Falha ao atribuir responsavel da loja: " + eAssign);
|
||||
throw eAssign;
|
||||
}
|
||||
|
||||
// Notificacao por email so quando sai da atividade de analise (task5).
|
||||
if (currentState !== 5) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
var saidaAnalise = (hAPI.getCardValue("saidaAnalise") || "").trim();
|
||||
var usuarioRetorno = (hAPI.getCardValue("usuarioRetorno") || "").trim();
|
||||
var destino = String(FORCE_EMAIL_DESTINATION || "").trim();
|
||||
var usuarioDestino = "";
|
||||
if (!destino) {
|
||||
usuarioDestino = usuarioRetorno || String(colleagueId || getValue("WKUser") || "").trim();
|
||||
destino = resolveEmailByColleagueId(usuarioDestino);
|
||||
}
|
||||
|
||||
log.info("[checklist][notificacao] saidaAnalise=" + saidaAnalise
|
||||
+ ", usuarioRetorno=" + usuarioRetorno
|
||||
+ ", colleagueId=" + colleagueId
|
||||
+ ", usuarioDestino=" + usuarioDestino
|
||||
+ ", destinoFinal=" + destino
|
||||
+ ", nextState=" + nextState);
|
||||
|
||||
if (!destino) {
|
||||
log.warn("[checklist][notificacao] Usuario destino nao informado.");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!isValidEmail(destino)) {
|
||||
log.warn("[checklist][notificacao] Email de destino invalido: " + destino);
|
||||
return;
|
||||
}
|
||||
|
||||
if (nextState === 9 || saidaAnalise === "NAO_CONFORME") {
|
||||
notificaPorTemplate("CHECKLIST_NAO_CONFORME", destino);
|
||||
return;
|
||||
}
|
||||
|
||||
if (nextState === 11 || saidaAnalise === "CONFORME") {
|
||||
notificaPorTemplate("CHECKLIST_CONFORME", destino);
|
||||
}
|
||||
} catch (e) {
|
||||
log.error("[checklist][notificacao] Falha ao disparar notificacao: " + e);
|
||||
}
|
||||
}
|
||||
|
||||
function atribuiResponsavelLoja(userList) {
|
||||
var destinoLojaId = String(hAPI.getCardValue("destinoLojaId") || "").trim();
|
||||
var destinoLojaLogin = String(hAPI.getCardValue("destinoLoja") || "").trim();
|
||||
var colleagueId = "";
|
||||
|
||||
if (destinoLojaId && existsActiveUserByColleagueId(destinoLojaId)) {
|
||||
colleagueId = destinoLojaId;
|
||||
}
|
||||
|
||||
if (!colleagueId && destinoLojaLogin) {
|
||||
colleagueId = resolveColleagueIdByLogin(destinoLojaLogin);
|
||||
}
|
||||
|
||||
if (!colleagueId) {
|
||||
throw "Preencha uma loja valida. destinoLojaId/destinoLoja nao encontrado no colleague ativo.";
|
||||
}
|
||||
|
||||
userList.clear();
|
||||
userList.add(colleagueId);
|
||||
hAPI.setCardValue("destinoLojaId", colleagueId);
|
||||
|
||||
log.info("[checklist][atribuicao] Responsavel definido. destinoLojaId=" + destinoLojaId
|
||||
+ ", destinoLoja=" + destinoLojaLogin
|
||||
+ ", colleagueIdFinal=" + colleagueId);
|
||||
}
|
||||
|
||||
function notificaPorTemplate(templateCode, destinatario) {
|
||||
var NOTIFIER_SENDER_USER = "admin";
|
||||
var recipients = new java.util.ArrayList();
|
||||
recipients.add(destinatario);
|
||||
|
||||
var parametros = new java.util.HashMap();
|
||||
parametros.put("numeroSolicitacao", String(getValue("WKNumProces") || ""));
|
||||
parametros.put("qtdNaoConforme", String(hAPI.getCardValue("qtdNaoConforme") || "0"));
|
||||
parametros.put("listaNaoConforme", String(hAPI.getCardValue("listaNaoConforme") || ""));
|
||||
parametros.put("loja", String(hAPI.getCardValue("loja") || ""));
|
||||
parametros.put("linkSolicitacao", montaLinkSolicitacao());
|
||||
|
||||
notifier.notify(
|
||||
NOTIFIER_SENDER_USER,
|
||||
templateCode,
|
||||
parametros,
|
||||
recipients,
|
||||
"text/html"
|
||||
);
|
||||
|
||||
log.info("[checklist][notificacao] Template " + templateCode + " enviado para " + destinatario);
|
||||
}
|
||||
|
||||
function montaLinkSolicitacao() {
|
||||
var server = String(getValue("WKServerURL") || "");
|
||||
var companyId = String(getValue("WKCompany") || "");
|
||||
var processId = String(getValue("WKNumProces") || "");
|
||||
if (!server || !companyId || !processId) {
|
||||
return "";
|
||||
}
|
||||
return server
|
||||
+ "/portal/p/"
|
||||
+ companyId
|
||||
+ "/pageworkflowview?app_ecm_workflowview_detailsProcessInstanceID="
|
||||
+ processId;
|
||||
}
|
||||
|
||||
function usuarioPossuiEmailValido(colleagueId) {
|
||||
try {
|
||||
var c1 = DatasetFactory.createConstraint("colleaguePK.colleagueId", colleagueId, colleagueId, ConstraintType.MUST);
|
||||
var c2 = DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST);
|
||||
var ds = DatasetFactory.getDataset("colleague", null, [c1, c2], null);
|
||||
if (!ds || ds.rowsCount < 1) {
|
||||
log.warn("[checklist][notificacao] Usuario nao encontrado/inativo no colleague: " + colleagueId);
|
||||
return false;
|
||||
}
|
||||
var email = String(ds.getValue(0, "mail") || "").trim();
|
||||
log.info("[checklist][notificacao] Email encontrado para " + colleagueId + ": " + email);
|
||||
return email.indexOf("@") > 0;
|
||||
} catch (e) {
|
||||
log.error("[checklist][notificacao] Erro ao validar email do usuario " + colleagueId + ": " + e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function resolveEmailByColleagueId(colleagueId) {
|
||||
try {
|
||||
if (!colleagueId) {
|
||||
return "";
|
||||
}
|
||||
var ds = findColleagueByIdOrLogin(colleagueId);
|
||||
if (!ds || ds.rowsCount < 1) {
|
||||
log.warn("[checklist][notificacao] Usuario nao encontrado/inativo no colleague: " + colleagueId);
|
||||
return "";
|
||||
}
|
||||
var email = String(ds.getValue(0, "mail") || "").trim();
|
||||
log.info("[checklist][notificacao] Email encontrado para " + colleagueId + ": " + email);
|
||||
return email;
|
||||
} catch (e) {
|
||||
log.error("[checklist][notificacao] Erro ao buscar email do usuario " + colleagueId + ": " + e);
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
function isValidEmail(email) {
|
||||
var v = String(email || "").trim();
|
||||
return v.indexOf("@") > 0 && v.indexOf(".") > v.indexOf("@") + 1;
|
||||
}
|
||||
|
||||
function existsActiveUserByColleagueId(colleagueId) {
|
||||
var ds = null;
|
||||
try {
|
||||
var c1 = DatasetFactory.createConstraint("colleaguePK.colleagueId", colleagueId, colleagueId, ConstraintType.MUST);
|
||||
var c2 = DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST);
|
||||
ds = DatasetFactory.getDataset("colleague", null, [c1, c2], null);
|
||||
return ds && ds.rowsCount > 0;
|
||||
} catch (e) {
|
||||
log.error("[checklist][atribuicao] Erro ao validar colleagueId=" + colleagueId + ": " + e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function resolveColleagueIdByLogin(login) {
|
||||
try {
|
||||
var c1 = DatasetFactory.createConstraint("login", login, login, ConstraintType.MUST);
|
||||
var c2 = DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST);
|
||||
var ds = DatasetFactory.getDataset("colleague", null, [c1, c2], null);
|
||||
if (ds && ds.rowsCount > 0) {
|
||||
return String(ds.getValue(0, "colleaguePK.colleagueId") || "").trim();
|
||||
}
|
||||
} catch (e) {
|
||||
log.error("[checklist][atribuicao] Erro ao resolver colleagueId por login=" + login + ": " + e);
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
function findColleagueByIdOrLogin(value) {
|
||||
var v = String(value || "").trim();
|
||||
if (!v) return null;
|
||||
var c2 = DatasetFactory.createConstraint("active", "true", "true", ConstraintType.MUST);
|
||||
|
||||
var cId = DatasetFactory.createConstraint("colleaguePK.colleagueId", v, v, ConstraintType.MUST);
|
||||
var byId = DatasetFactory.getDataset("colleague", null, [cId, c2], null);
|
||||
if (byId && byId.rowsCount > 0) return byId;
|
||||
|
||||
var cLogin = DatasetFactory.createConstraint("login", v, v, ConstraintType.MUST);
|
||||
var byLogin = DatasetFactory.getDataset("colleague", null, [cLogin, c2], null);
|
||||
if (byLogin && byLogin.rowsCount > 0) return byLogin;
|
||||
|
||||
return null;
|
||||
}
|
||||
0
Auditoria_checklist/.metadata/.lock
Normal file
0
Auditoria_checklist/.metadata/.lock
Normal file
17
Auditoria_checklist/.metadata/.log
Normal file
17
Auditoria_checklist/.metadata/.log
Normal file
@ -0,0 +1,17 @@
|
||||
!SESSION 2026-03-10 22:22:11.116 -----------------------------------------------
|
||||
eclipse.buildId=4.13.0.I20190916-1045
|
||||
java.version=1.8.0_481
|
||||
java.vendor=Oracle Corporation
|
||||
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=pt_BR
|
||||
Framework arguments: -product org.eclipse.epp.package.jee.product
|
||||
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product
|
||||
|
||||
!ENTRY org.eclipse.egit.ui 2 0 2026-03-10 22:22:42.782
|
||||
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
|
||||
user global configuration and to define the default location to store repositories: 'C:\Users\Home'. If this is
|
||||
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
|
||||
EGit might behave differently since they see different configuration options.
|
||||
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
|
||||
|
||||
!ENTRY org.eclipse.ui.navigator.resources 4 0 2026-03-10 22:23:03.536
|
||||
!MESSAGE Could not acquire INavigatorContentService: Project Explorer not found.
|
||||
BIN
Auditoria_checklist/.metadata/.mylyn/repositories.xml.zip
Normal file
BIN
Auditoria_checklist/.metadata/.mylyn/repositories.xml.zip
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
|
||||
Binary file not shown.
@ -0,0 +1 @@
|
||||
|
||||
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
version=1
|
||||
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.debug.ui.PREF_LAUNCH_PERSPECTIVES=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?>\r\n<launchPerspectives/>\r\n
|
||||
@ -0,0 +1,7 @@
|
||||
content_assist_proposals_background=255,255,255
|
||||
content_assist_proposals_foreground=0,0,0
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.ui.formatterprofiles.version=17
|
||||
spelling_locale_initialized=true
|
||||
useAnnotationsPrefPage=true
|
||||
useQuickDiffPrefPage=true
|
||||
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jsch.core.hasChangedDefaultWin32SshHome=true
|
||||
@ -0,0 +1,2 @@
|
||||
areThereWebServices=false
|
||||
eclipse.preferences.version=1
|
||||
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.m2e.discovery.pref.projects=
|
||||
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
mylyn.attention.migrated=true
|
||||
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.mylyn.monitor.activity.tracking.enabled.checked=true
|
||||
@ -0,0 +1,4 @@
|
||||
eclipse.preferences.version=1
|
||||
migrated.task.repositories.secure.store=true
|
||||
org.eclipse.mylyn.tasks.ui.filters.nonmatching=true
|
||||
org.eclipse.mylyn.tasks.ui.filters.nonmatching.encouraged=true
|
||||
@ -0,0 +1,2 @@
|
||||
activeuserprofiles=DESKTOP-0E2LAA6;Team
|
||||
eclipse.preferences.version=1
|
||||
@ -0,0 +1,5 @@
|
||||
PROBLEMS_FILTERS_MIGRATE=true
|
||||
eclipse.preferences.version=1
|
||||
platformState=1772394940336
|
||||
quickStart=false
|
||||
tipsAndTricks=true
|
||||
@ -0,0 +1,4 @@
|
||||
//org.eclipse.ui.commands/state/org.eclipse.ui.navigator.resources.nested.changeProjectPresentation/org.eclipse.ui.commands.radioState=false
|
||||
//org.eclipse.ui.commands/state/org.eclipse.wst.xml.views.XPathView.processor.xpathprocessor/org.eclipse.ui.commands.radioState=xpath10
|
||||
PLUGINS_NOT_ACTIVATED_ON_STARTUP=;org.eclipse.m2e.discovery;
|
||||
eclipse.preferences.version=1
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<typeInfoHistroy/>
|
||||
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<qualifiedTypeNameHistroy/>
|
||||
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart">
|
||||
<item key="group_libraries" value="true"/>
|
||||
<item key="layout" value="2"/>
|
||||
<item key="rootMode" value="1"/>
|
||||
<item key="linkWithEditor" value="false"/>
|
||||
<item key="memento" value="<?xml version="1.0" encoding="UTF-8"?>
<packageExplorer group_libraries="1" layout="2" linkWithEditor="0" rootMode="1" workingSetName="Aggregate for window 1773192162956">
<customFilters userDefinedPatternsEnabled="false">
<xmlDefinedFilters>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.StaticsFilter" isEnabled="false"/>
<child filterId="org.eclipse.buildship.ui.packageexplorer.filter.gradle.buildfolder" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer_patternFilterId_RemoteSystemsConnections" isEnabled="true"/>
<child filterId="org.eclipse.mylyn.java.ui.MembersFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.NonSharedProjectsFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.internal.ui.PackageExplorer.EmptyInnerPackageFilter" isEnabled="true"/>
<child filterId="org.eclipse.m2e.MavenModuleFilter" isEnabled="false"/>
<child filterId="org.eclipse.buildship.ui.packageexplorer.filter.gradle.subProject" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.ClosedProjectsFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.EmptyLibraryContainerFilter" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.PackageDeclarationFilter" isEnabled="true"/>
<child filterId="org.eclipse.pde.ui.BinaryProjectFilter1" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.LocalTypesFilter" isEnabled="false"/>
<child filterId="org.eclipse.pde.ui.ExternalPluginLibrariesFilter1" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.FieldsFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer_patternFilterId_RemoteSystemsTempFiles" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.NonJavaProjectsFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer_patternFilterId_.*" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.SyntheticMembersFilter" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.ContainedLibraryFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.internal.ui.PackageExplorer.HideInnerClassFilesFilter" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.DeprecatedMembersFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.ImportDeclarationFilter" isEnabled="true"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.NonJavaElementFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.LibraryFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.CuAndClassFileFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.internal.ui.PackageExplorer.EmptyPackageFilter" isEnabled="false"/>
<child filterId="org.eclipse.jdt.ui.PackageExplorer.NonPublicFilter" isEnabled="false"/>
</xmlDefinedFilters>
</customFilters>
</packageExplorer>"/>
|
||||
</section>
|
||||
</section>
|
||||
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
</section>
|
||||
@ -0,0 +1 @@
|
||||
2026-03-10 22:22:42,342 [Worker-1: Loading available Gradle versions] INFO o.e.b.c.i.u.g.PublishedGradleVersions - Gradle version information cache is up-to-date. Trying to read.
|
||||
@ -0,0 +1,43 @@
|
||||
<configuration scan="true">
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>OFF</level> <!-- change to DEBUG to mimic '-consolelog' behaviour -->
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<File>${org.eclipse.m2e.log.dir}/0.log</File>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
|
||||
<FileNamePattern>${org.eclipse.m2e.log.dir}/%i.log</FileNamePattern>
|
||||
<MinIndex>1</MinIndex>
|
||||
<MaxIndex>10</MaxIndex>
|
||||
</rollingPolicy>
|
||||
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
||||
<MaxFileSize>100MB</MaxFileSize>
|
||||
</triggeringPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<appender name="EclipseLog" class="org.eclipse.m2e.logback.appender.EclipseLogAppender">
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<level>WARN</level>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<appender name="MavenConsoleLog" class="org.eclipse.m2e.logback.appender.MavenConsoleAppender">
|
||||
</appender>
|
||||
|
||||
<root level="INFO">
|
||||
<appender-ref ref="FILE" />
|
||||
<appender-ref ref="STDOUT" />
|
||||
<appender-ref ref="EclipseLog" />
|
||||
<appender-ref ref="MavenConsoleLog" />
|
||||
</root>
|
||||
|
||||
<logger name="com.ning.http.client" level="INFO" />
|
||||
</configuration>
|
||||
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<setup:Workspace
|
||||
xmi:version="2.0"
|
||||
xmlns:xmi="http://www.omg.org/XMI"
|
||||
xmlns:setup="http://www.eclipse.org/oomph/setup/1.0"
|
||||
name="workspace"/>
|
||||
@ -0,0 +1,2 @@
|
||||
#Cached timestamps
|
||||
#Tue Mar 10 22:40:30 GFT 2026
|
||||
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
</section>
|
||||
@ -0,0 +1,6 @@
|
||||
#Tue Mar 10 22:22:35 GFT 2026
|
||||
0.Path=C\:\\Program Files\\Git\\bin\\sh.exe
|
||||
0.Name=Git Bash
|
||||
0.Args=--login -i
|
||||
0.Translate=true
|
||||
0.Icon=C\:\\Program Files\\Git\\mingw64\\share\\git\\git-for-windows.ico
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<section name="Workbench">
|
||||
<section name="BasicNewProjectResourceWizard">
|
||||
</section>
|
||||
<section name="SmartImportWizard">
|
||||
<item key="SmartImportRootWizardPage.STORE_HIDE_ALREADY_OPEN" value="false"/>
|
||||
<item key="SmartImportRootWizardPage.STORE_CLOSE_IMPORTED" value="false"/>
|
||||
<item key="SmartImportRootWizardPage.STORE_NESTED_PROJECTS" value="true"/>
|
||||
<item key="SmartImportRootWizardPage.STORE_CONFIGURE_NATURES" value="true"/>
|
||||
<list key="org.eclipse.ui.internal.wizards.datatransfer.SmartImportRootWizardPage.knownSources">
|
||||
<item value="C:\Python\Fluig Ginseng\fluig\checklist\fluig\Auditoria_checklist"/>
|
||||
</list>
|
||||
</section>
|
||||
</section>
|
||||
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<state reopen="true"/>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user