Novo git da alteração
This commit is contained in:
parent
8b7a079235
commit
9ec8d6e70b
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/.metadata/
|
||||||
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
8
.idea/eclipse-workspace.new.iml
generated
Normal file
8
.idea/eclipse-workspace.new.iml
generated
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="jdk" jdkName="Python 3.13 (GED)" jdkType="Python SDK" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
6
.idea/inspectionProfiles/profiles_settings.xml
generated
Normal file
6
.idea/inspectionProfiles/profiles_settings.xml
generated
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
||||||
4
.idea/misc.xml
generated
Normal file
4
.idea/misc.xml
generated
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.13 (GED)" project-jdk-type="Python SDK" />
|
||||||
|
</project>
|
||||||
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/eclipse-workspace.new.iml" filepath="$PROJECT_DIR$/.idea/eclipse-workspace.new.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
18319
.metadata/.bak_0.log
18319
.metadata/.bak_0.log
File diff suppressed because it is too large
Load Diff
3988
.metadata/.log
3988
.metadata/.log
File diff suppressed because it is too large
Load Diff
@ -1,3 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//forms/7690\ -\ Aniversariantes/kit_aniversariantes.html=UTF-8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/application.info=utf8
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
<div id="HelloWorld_${instanceId}" class="super-widget wcm-widget-class fluig-style-guide"
|
|
||||||
data-params="HelloWorld.instance({message: 'Hello world'})">
|
|
||||||
|
|
||||||
<!-- efetua a tradução do texto do objeto i18n -->
|
|
||||||
<h1>${i18n.getTranslation('hello.example.hello')}</h1>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<button type="button" class="btn btn-default" data-show-message>${i18n.getTranslation('hello.button.showMessage')}</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id='helloMessage_${instanceId}'>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
@ -1,61 +0,0 @@
|
|||||||
function defineStructure() {
|
|
||||||
addColumn("codigo");
|
|
||||||
addColumn("descricao");
|
|
||||||
}
|
|
||||||
|
|
||||||
function onSync(lastSyncDate) {}
|
|
||||||
|
|
||||||
function createDataset(fields, constraints, sortFields) {
|
|
||||||
var dataset = DatasetBuilder.newDataset();
|
|
||||||
var dataSource = "java:/jdbc/ProtheusP12"; // Nome da conexão cadastrada no Fluig
|
|
||||||
var ic = new javax.naming.InitialContext();
|
|
||||||
var ds = ic.lookup(dataSource);
|
|
||||||
var conn = ds.getConnection();
|
|
||||||
var stmt = null;
|
|
||||||
var rs = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
log.info("Iniciando execução do dataset...");
|
|
||||||
|
|
||||||
var sql = "SELECT b1_cod, b1_desc FROM sb1010 WHERE LEFT(b1_cod, 4) IN ('0001','0008', '0002', '0003', '0007', '0006', '0009', '0010', '0011', '0014','0016')";
|
|
||||||
log.info("Query SQL: " + sql);
|
|
||||||
|
|
||||||
stmt = conn.prepareStatement(sql);
|
|
||||||
rs = stmt.executeQuery();
|
|
||||||
|
|
||||||
dataset.addColumn("codigo");
|
|
||||||
dataset.addColumn("descricao");
|
|
||||||
|
|
||||||
var encontrados = {}; // Usando um objeto para evitar duplicação
|
|
||||||
|
|
||||||
while (rs.next()) {
|
|
||||||
var codigo = rs.getString("b1_cod");
|
|
||||||
var descricao = rs.getString("b1_desc");
|
|
||||||
|
|
||||||
if (!encontrados[codigo]) { // Verifica se já foi adicionado
|
|
||||||
encontrados[codigo] = true; // Marca como processado
|
|
||||||
log.info("Registro encontrado: " + codigo + " - " + descricao);
|
|
||||||
dataset.addRow([codigo, descricao]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.keys(encontrados).length === 0) {
|
|
||||||
log.info("Nenhum registro encontrado para a consulta.");
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao executar dataset: " + e.message);
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (rs) rs.close();
|
|
||||||
if (stmt) stmt.close();
|
|
||||||
if (conn) conn.close();
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao fechar recursos: " + e.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return dataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onMobileSync(user) {}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
|
|
||||||
version="3.0">
|
|
||||||
<session-config>
|
|
||||||
<session-timeout>
|
|
||||||
30
|
|
||||||
</session-timeout>
|
|
||||||
</session-config>
|
|
||||||
</web-app>
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
.cd-wrap{max-width:1200px;margin:0 auto;padding:24px}
|
|
||||||
.cd-h2{margin:0 0 6px;font-weight:700;font-size:24px}
|
|
||||||
.cd-sub{margin:0 0 22px;color:#6b7280}
|
|
||||||
.cd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
|
|
||||||
.cd-card{display:block;background:#fff;border-radius:14px;padding:22px;text-decoration:none;color:#111827;
|
|
||||||
box-shadow:0 1px 3px rgba(0,0,0,.08);min-height:210px;transition:transform .15s ease, box-shadow .15s ease}
|
|
||||||
.cd-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.12)}
|
|
||||||
.cd-illus{width:120px;height:120px;border-radius:60px;background:#f3f4f6;margin:0 auto 12px;
|
|
||||||
display:flex;align-items:center;justify-content:center}
|
|
||||||
.cd-ttl{text-align:center;font-weight:700;margin-bottom:6px}
|
|
||||||
.cd-txt{text-align:center;color:#6b7280;font-size:13px}
|
|
||||||
body.dark .cd-card{background:#1f2937;color:#e5e7eb}
|
|
||||||
body.dark .cd-illus{background:#111827}
|
|
||||||
body.dark .cd-txt{color:#9ca3af}
|
|
||||||
@ -1,148 +0,0 @@
|
|||||||
// ==== inicialização ====
|
|
||||||
$(document).ready(function () {
|
|
||||||
FLUIGC.calendar('#dataNec');
|
|
||||||
|
|
||||||
// eventos de quantidade/preço
|
|
||||||
$('#precoRef').on('blur', recalcTotal);
|
|
||||||
$('#quantidade').on('input', recalcTotal);
|
|
||||||
$('#qtdMais').on('click', () => stepQtd(1));
|
|
||||||
$('#qtdMenos').on('click', () => stepQtd(-1));
|
|
||||||
|
|
||||||
// produto
|
|
||||||
$('#btnBuscaProd').on('click', openZoomProduto);
|
|
||||||
$('#btnLimpaProd').on('click', () => {
|
|
||||||
$('#produtoCod,#produtoDesc').val('');
|
|
||||||
$('#ultimoPreco').val('0,00');
|
|
||||||
recalcTotal();
|
|
||||||
});
|
|
||||||
|
|
||||||
// zooms básicos
|
|
||||||
bindZoom($('#empresaDesc'), 'dsSysCompany', ['codigo','descricao'], 'empresaCodigo','empresaDesc');
|
|
||||||
bindZoom($('#filialDesc'), 'FILIAIS_DS', ['codigo','descricao'], 'filialCodigo','filialDesc');
|
|
||||||
bindZoom($('#ccDesc'), 'CENTROCUSTO_DS',['codigo','descricao'], 'ccCod','ccDesc');
|
|
||||||
|
|
||||||
// itens
|
|
||||||
$('#btnAddItem').on('click', addItem);
|
|
||||||
});
|
|
||||||
|
|
||||||
// ==== helpers ====
|
|
||||||
function stepQtd(n){
|
|
||||||
const $q = $('#quantidade');
|
|
||||||
let v = parseInt($q.val()||'0',10)+n;
|
|
||||||
if (v < 0) v = 0;
|
|
||||||
$q.val(v);
|
|
||||||
recalcTotal();
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseMoneyBR(s){
|
|
||||||
if(!s) return 0;
|
|
||||||
s = (''+s).replace(/[^\d,,-]/g,'').replace(/\./g,'').replace(',', '.');
|
|
||||||
const v = Number(s);
|
|
||||||
return isNaN(v) ? 0 : v;
|
|
||||||
}
|
|
||||||
function formatMoneyBR(v){
|
|
||||||
return v.toLocaleString('pt-BR',{style:'currency',currency:'BRL'});
|
|
||||||
}
|
|
||||||
|
|
||||||
function recalcTotal(){
|
|
||||||
const qtd = parseFloat($('#quantidade').val()||'0');
|
|
||||||
const preco = parseMoneyBR($('#precoRef').val());
|
|
||||||
const tot = (qtd * preco) || 0;
|
|
||||||
$('#total').val(formatMoneyBR(tot));
|
|
||||||
}
|
|
||||||
|
|
||||||
// ==== zooms genéricos ====
|
|
||||||
function bindZoom($input, datasetId, displayFields, hiddenIdFld, displayFld){
|
|
||||||
$input.on('click', function(){
|
|
||||||
FLUIGC.filtermodal({
|
|
||||||
title: 'Selecionar',
|
|
||||||
size: 'large',
|
|
||||||
filterFields: displayFields.join(', '),
|
|
||||||
source: {
|
|
||||||
url: '/api/public/ecm/dataset/search',
|
|
||||||
contentType: 'application/json',
|
|
||||||
root: 'content',
|
|
||||||
limit: 50,
|
|
||||||
pattern: '',
|
|
||||||
param: { datasetId: datasetId }
|
|
||||||
},
|
|
||||||
columns: [
|
|
||||||
{ title: 'Código', data: 'codigo' },
|
|
||||||
{ title: 'Descrição', data: 'descricao' }
|
|
||||||
],
|
|
||||||
onSelected: function(data){
|
|
||||||
$('#'+hiddenIdFld).val(data.codigo);
|
|
||||||
$('#'+displayFld).val(data.codigo+' - '+data.descricao);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// ==== zoom de produto com último preço ====
|
|
||||||
function openZoomProduto(){
|
|
||||||
FLUIGC.filtermodal({
|
|
||||||
title: 'Buscar Produto/Serviço',
|
|
||||||
size: 'large',
|
|
||||||
filterFields: 'codigo, descricao',
|
|
||||||
source: {
|
|
||||||
url: '/api/public/ecm/dataset/search',
|
|
||||||
contentType: 'application/json',
|
|
||||||
root: 'content',
|
|
||||||
limit: 50,
|
|
||||||
param:{ datasetId: 'PRODUTOS_DS' }
|
|
||||||
},
|
|
||||||
columns: [
|
|
||||||
{ title: 'Código', data: 'codigo' },
|
|
||||||
{ title: 'Descrição', data: 'descricao' },
|
|
||||||
{ title: 'UM', data: 'um' },
|
|
||||||
{ title: 'Último Preço', data: 'ultimoPreco' }
|
|
||||||
],
|
|
||||||
onSelected: function(item){
|
|
||||||
$('#produtoCod').val(item.codigo);
|
|
||||||
$('#produtoDesc').val(item.codigo+' - '+item.descricao);
|
|
||||||
$('#ultimoPreco').val(item.ultimoPreco || '0,00');
|
|
||||||
recalcTotal();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// ==== itens (tabela filha) ====
|
|
||||||
function addItem(){
|
|
||||||
if(!$('#produtoCod').val()){
|
|
||||||
FLUIGC.toast({title:'Atenção: ', message:'Selecione um produto.', type:'warning'}); return;
|
|
||||||
}
|
|
||||||
if(!$('#ccCod').val()){
|
|
||||||
FLUIGC.toast({title:'Atenção: ', message:'Selecione o centro de custo.', type:'warning'}); return;
|
|
||||||
}
|
|
||||||
const qtd = parseFloat($('#quantidade').val()||'0');
|
|
||||||
if(qtd <= 0){
|
|
||||||
FLUIGC.toast({title:'Atenção: ', message:'Quantidade deve ser > 0.', type:'warning'}); return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const row = wdkAddChild('tbItens');
|
|
||||||
$('#produtoCod___'+row).val($('#produtoCod').val());
|
|
||||||
$('#produtoDesc___'+row).val($('#produtoDesc').val());
|
|
||||||
$('#ccCod___'+row).val($('#ccCod').val());
|
|
||||||
$('#ccDesc___'+row).val($('#ccDesc').val());
|
|
||||||
$('#qtd___'+row).val(qtd);
|
|
||||||
$('#precoRef___'+row).val($('#precoRef').val());
|
|
||||||
$('#total___'+row).val($('#total').val());
|
|
||||||
|
|
||||||
// limpa campos do cabeçalho se quiser
|
|
||||||
// $('#produtoCod,#produtoDesc').val('');
|
|
||||||
}
|
|
||||||
|
|
||||||
// ==== validação (se seu projeto usa validateForm hook do Fluig) ====
|
|
||||||
// crie events/validateForm.js chamando esta função, ou adapte ao seu template:
|
|
||||||
function validateForm(form){
|
|
||||||
var msgs = [];
|
|
||||||
function req(id, label){ if(!form.getValue(id)) msgs.push('Preencha "'+label+'".'); }
|
|
||||||
|
|
||||||
req('tipoSolicitacao','Tipo de Solicitação');
|
|
||||||
req('produtoCod','Produto/Serviço');
|
|
||||||
req('quantidade','Quantidade');
|
|
||||||
req('dataNec','Data da Necessidade');
|
|
||||||
req('ccCod','Centro de Custo');
|
|
||||||
|
|
||||||
if(msgs.length){ throw msgs.join('\n'); }
|
|
||||||
}
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//forms/7690\ -\ Aniversariantes/kit_aniversariantes.html=UTF-8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_es.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/view.ftl=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/webapp/WEB-INF/jboss-web.xml=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/webapp/WEB-INF/web.xml=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/webapp/resources/css/cards_compras.css=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/webapp/resources/js/cards_compras.js=utf8
|
|
||||||
@ -1 +0,0 @@
|
|||||||
function validateForm(form){if(form.getValue("fullName")==null||form.getValue("fullName")==""){throw i18n.translate("kit.aniversary.validation.fullName")}if(form.getValue("birthDay")==null||form.getValue("birthDay")==""){throw i18n.translate("kit.aniversary.validation.birthDay")}if(form.getValue("birthMonth")==null||form.getValue("birthMonth")==""){throw i18n.translate("kit.aniversary.validation.birthMonth")}if(form.getValue("birthDay")<1||form.getValue("birthDay")>31){throw i18n.translate("kit.aniversary.validation.birthDayInvalid")}if(form.getValue("birthMonth")<1||form.getValue("birthMonth")>12){throw i18n.translate("kit.aniversary.validation.birthMonthInvalid")}if(isNaN(form.getValue("birthDay"))){throw i18n.translate("kit.aniversary.validation.dayNaN")}if(isNaN(form.getValue("birthMonth"))){throw i18n.translate("kit.aniversary.validation.monthNaN")}};
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//forms/7690\ -\ Aniversariantes/kit_aniversariantes.html=UTF-8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/view.ftl=utf8
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//forms/7690\ -\ Aniversariantes/kit_aniversariantes.html=UTF-8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_es.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/view.ftl=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/webapp/WEB-INF/jboss-web.xml=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/webapp/resources/css/cards_compras.css=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/webapp/resources/js/cards_compras.js=utf8
|
|
||||||
@ -1,63 +0,0 @@
|
|||||||
var ComprasDigitalEdit = SuperWidget.extend({
|
|
||||||
init: function () {},
|
|
||||||
|
|
||||||
bindings: {
|
|
||||||
local: {
|
|
||||||
'save': ['click_save'],
|
|
||||||
'fill-example': ['click_fillExample']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
save: function () {
|
|
||||||
var txt = $('#cd-cards-' + this.instanceId).val() || '[]';
|
|
||||||
try { JSON.parse(txt); } catch (e) {
|
|
||||||
FLUIGC.toast({ title: 'Erro: ', message: 'JSON inválido', type: 'danger' });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.setPreference({ 'cards': txt });
|
|
||||||
FLUIGC.toast({ title: 'OK: ', message: 'Configurações salvas', type: 'success' });
|
|
||||||
},
|
|
||||||
|
|
||||||
fillExample: function () {
|
|
||||||
var ex = [
|
|
||||||
{
|
|
||||||
"title": "Cadastro de Produtos",
|
|
||||||
"text": "Gerencie produtos.",
|
|
||||||
"href": "/portal/p/1/pageprocessstart?processId=CadastroProdutos",
|
|
||||||
"icon": "fluigicon-box",
|
|
||||||
"target": "_self"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "Solicitação de Compras",
|
|
||||||
"text": "Abra uma solicitação.",
|
|
||||||
"href": "/portal/p/1/pageprocessstart?processId=Solicita%C3%A7%C3%A3o%20de%20compras%20-%20v2",
|
|
||||||
"icon": "fluigicon-cart"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "Cotações",
|
|
||||||
"text": "Compare orçamentos.",
|
|
||||||
"href": "/portal/p/1/pagina-cotacoes",
|
|
||||||
"icon": "fluigicon-money"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "Pedidos de Compras",
|
|
||||||
"text": "Acompanhe pedidos.",
|
|
||||||
"href": "/portal/p/1/pageworkflowview",
|
|
||||||
"icon": "fluigicon-check"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "Notas Fiscais",
|
|
||||||
"text": "Entrada e conferência.",
|
|
||||||
"href": "/portal/p/1/ecmnavigator",
|
|
||||||
"icon": "fluigicon-document-alt"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "Parâmetros",
|
|
||||||
"text": "Configurações do módulo.",
|
|
||||||
"href": "/portal/p/1/pagina-parametros",
|
|
||||||
"icon": "fluigicon-cog"
|
|
||||||
}
|
|
||||||
];
|
|
||||||
$('#cd-cards-' + this.instanceId).val(JSON.stringify(ex, null, 2));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
application.type=layout
|
|
||||||
application.code=TIginseng_layoutblocado
|
|
||||||
application.title=Layout blocado
|
|
||||||
application.description=Layout blocado carrosel
|
|
||||||
application.fluig.version=null
|
|
||||||
application.category=Compras Digital
|
|
||||||
application.renderer=freemarker
|
|
||||||
developer.code=G-ALES1NT-TEC06
|
|
||||||
developer.name=andrey.cunha
|
|
||||||
developer.url=http://www.fluig.com
|
|
||||||
layout.defaultSlot=SlotA
|
|
||||||
layout.file=layout.ftl
|
|
||||||
locale.file.base.name=TIginseng_layoutblocado
|
|
||||||
slot.SlotGlobalAlert=alertpopover
|
|
||||||
slot.SlotInstantSearch=suggestsearch
|
|
||||||
slot.SlotLogin=sociallogin
|
|
||||||
slot.SlotMenu=menu
|
|
||||||
slot.SlotUsePolicy=usepolicy
|
|
||||||
application.icon=icon.png
|
|
||||||
application.resource.css.1=/portal/resources/css/wcm_responsive_layout.css
|
|
||||||
application.responsiveLayout=true
|
|
||||||
application.newBuilder=true
|
|
||||||
hash=4a16315e9e66fa7d797b3f6b1fb365b69f9a4ce2
|
|
||||||
slot.SlotInstantSearch=suggestsearch
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
var HelloWorld = SuperWidget.extend({
|
|
||||||
message: null,
|
|
||||||
init: function () {
|
|
||||||
//code
|
|
||||||
},
|
|
||||||
bindings: {
|
|
||||||
local: {
|
|
||||||
'show-message': ['click_showMessage']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
showMessage: function () {
|
|
||||||
$div = $('#helloMessage_' + this.instanceId);
|
|
||||||
$message = $('<div>').addClass('message').append(this.message);
|
|
||||||
$div.append($message);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
application.type=layout
|
|
||||||
application.code=LayoutCadastro
|
|
||||||
application.title=Layout Cadastro
|
|
||||||
application.description=Layout para página principal do site
|
|
||||||
application.fluig.version=null
|
|
||||||
application.category=SYSTEM
|
|
||||||
application.renderer=freemarker
|
|
||||||
developer.code=G-ALES1NT-TEC06
|
|
||||||
developer.name=andrey.cunha
|
|
||||||
developer.url=http://www.fluig.com
|
|
||||||
layout.defaultSlot=SlotA
|
|
||||||
layout.file=layout.ftl
|
|
||||||
locale.file.base.name=LayoutCadastro
|
|
||||||
slot.SlotGlobalAlert=alertpopover
|
|
||||||
slot.SlotInstantSearch=suggestsearch
|
|
||||||
slot.SlotLogin=sociallogin
|
|
||||||
slot.SlotMenu=menu
|
|
||||||
slot.SlotUsePolicy=usepolicy
|
|
||||||
application.icon=icon.png
|
|
||||||
application.resource.css.1=/portal/resources/css/wcm_responsive_layout.css
|
|
||||||
application.responsiveLayout=true
|
|
||||||
application.newBuilder=true
|
|
||||||
hash=4a16315e9e66fa7d797b3f6b1fb365b69f9a4ce2
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/view.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_es.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/css/widget_code_compras.css=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/js/widget_code_compras.js=utf8
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/TIginseng_comprasdigital.properties=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/TIginseng_comprasdigital_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/TIginseng_comprasdigital_es.properties=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/TIginseng_comprasdigital_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/view.ftl=utf8
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/TIginseng_comprasdigital.properties=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/view.ftl=utf8
|
|
||||||
@ -1,41 +0,0 @@
|
|||||||
<#import "/wcm.ftl" as wcm />
|
|
||||||
|
|
||||||
<#-- Variaveis globais para os layouts -->
|
|
||||||
<#import "/layout-globals.ftl" as globals />
|
|
||||||
|
|
||||||
<!-- layout ECM-DEFAULT-DASHBOARD -->
|
|
||||||
|
|
||||||
<#if pageRender.isPreviewMode() = true>
|
|
||||||
<@wcm.previewPageAlert />
|
|
||||||
<@wcm.deviceTogglePreview />
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div class="wcm-wrapper-content ${wcmLayoutEditClass!""} ${pageAuthTypeClass!""}">
|
|
||||||
|
|
||||||
<#if pageRender.isEditMode() != true>
|
|
||||||
<@wcm.header />
|
|
||||||
<@wcm.menu />
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div class="wcm-all-content">
|
|
||||||
|
|
||||||
<div id="wcm-content" class="clearfix wcm-background">
|
|
||||||
|
|
||||||
<#if pageRender.isEditMode() = true>
|
|
||||||
<@wcm.editHeader />
|
|
||||||
<@wcm.widgetsList />
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div id="${divMasterId!""}" class="clearfix">
|
|
||||||
|
|
||||||
<!-- Conteúdo aqui -->
|
|
||||||
|
|
||||||
|
|
||||||
<#if fluigThemeCode != "responsive_theme">
|
|
||||||
<@wcm.footer layoutuserlabel="wcm.layoutdefaultecmdashboard.user" />
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//forms/7690\ -\ Aniversariantes/kit_aniversariantes.html=UTF-8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_es.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/view.ftl=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/webapp/resources/css/cards_compras.css=utf8
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/LayoutCadastro.properties=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/layout.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/view.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_es.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/WEB-INF/jboss-web.xml=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/WEB-INF/web.xml=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/css/widget_code_compras.css=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/js/widget_code_compras.js=utf8
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/application.info=utf8
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
application.title=Ol\u00E1 Mundo
|
|
||||||
application.description=Ol\u00E1 Mundo
|
|
||||||
hello.example.hello=Ol\u00E1 Mundo!
|
|
||||||
hello.example.helloedit=Ol\u00E1 Mundo! (Edit)
|
|
||||||
hello.button.showMessage=Exibir mensagem
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
/* Coloque aqui seu codigo CSS */
|
|
||||||
.message{
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
<div id="HelloWorld_${instanceId}" class="super-widget wcm-widget-class fluig-style-guide"
|
|
||||||
data-params="HelloWorld.instance({message: 'Hello world'})">
|
|
||||||
|
|
||||||
<!-- efetua a tradução do texto do objeto i18n -->
|
|
||||||
<h1>${i18n.getTranslation('hello.example.helloedit')}</h1>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
@ -1 +0,0 @@
|
|||||||
application.title=applicationTitle
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.9 KiB |
@ -1,12 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
|
|
||||||
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
|
|
||||||
version="3.0">
|
|
||||||
<session-config>
|
|
||||||
<session-timeout>
|
|
||||||
30
|
|
||||||
</session-timeout>
|
|
||||||
</session-config>
|
|
||||||
</web-app>
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
application.type=widget
|
|
||||||
application.code=widget_code_compras
|
|
||||||
application.title=Cadastro de fornecedor
|
|
||||||
application.description=Efetua o cadastro de fornecedor no Protheus
|
|
||||||
application.fluig.version=null
|
|
||||||
application.category=Suprimentos
|
|
||||||
application.renderer=freemarker
|
|
||||||
developer.code=G-ALES1NT-TEC06
|
|
||||||
developer.name=andrey.cunha
|
|
||||||
developer.url=http://www.fluig.com
|
|
||||||
application.uiwidget=true
|
|
||||||
application.mobileapp=false
|
|
||||||
view.file=view.ftl
|
|
||||||
edit.file=edit.ftl
|
|
||||||
locale.file.base.name=widget_code_compras
|
|
||||||
application.resource.js.1=/resources/js/widget_code_compras.js
|
|
||||||
application.resource.css.2=/resources/css/widget_code_compras.css
|
|
||||||
hash=4a16315e9e66fa7d797b3f6b1fb365b69f9a4ce2
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
// Insira aqui seu codigo JavaScript
|
|
||||||
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_en_US.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_es.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/layout.ftl=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/css/TIginseng_layoutblocado.css=utf8
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//forms/7690\ -\ Aniversariantes/kit_aniversariantes.html=UTF-8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/view.ftl=utf8
|
|
||||||
@ -1 +0,0 @@
|
|||||||
application.title=applicationTitle
|
|
||||||
@ -1,134 +0,0 @@
|
|||||||
function initForm() {
|
|
||||||
// calendário e máscara simples
|
|
||||||
FLUIGC.calendar('#dataNec');
|
|
||||||
$('#precoRef').on('blur', recalcTotal);
|
|
||||||
$('#quantidade').on('input', recalcTotal);
|
|
||||||
$('#qtdMais').on('click', () => stepQtd(1));
|
|
||||||
$('#qtdMenos').on('click', () => stepQtd(-1));
|
|
||||||
|
|
||||||
// botões produto
|
|
||||||
$('#btnBuscaProd').on('click', () => openZoomProduto());
|
|
||||||
$('#btnLimpaProd').on('click', () => { $('#produtoCod,#produtoDesc').val(''); $('#ultimoPreco').val('0,00'); recalcTotal(); });
|
|
||||||
|
|
||||||
// zooms (empresa, filial, centro de custo)
|
|
||||||
bindZoom($('#empresaDesc'), 'EMPRESAS_DS', ['codigo','descricao'], 'empresaCodigo','empresaDesc');
|
|
||||||
bindZoom($('#filialDesc'), 'FILIAIS_DS', ['codigo','descricao'], 'filialCodigo','filialDesc');
|
|
||||||
bindZoom($('#ccDesc'), 'CENTROCUSTO_DS',['codigo','descricao'], 'ccCod','ccDesc');
|
|
||||||
|
|
||||||
// adicionar item à tabela
|
|
||||||
$('#btnAddItem').on('click', addItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
function stepQtd(n){
|
|
||||||
const $q = $('#quantidade');
|
|
||||||
let v = parseInt($q.val()||'0',10)+n;
|
|
||||||
if (v<0) v=0;
|
|
||||||
$q.val(v);
|
|
||||||
recalcTotal();
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseMoneyBR(s){
|
|
||||||
if(!s) return 0;
|
|
||||||
s = (''+s).replace(/[^\d,.-]/g,'').replace('.','').replace(',','.');
|
|
||||||
const v = Number(s);
|
|
||||||
return isNaN(v)?0:v;
|
|
||||||
}
|
|
||||||
function formatMoneyBR(v){
|
|
||||||
return v.toLocaleString('pt-BR',{style:'currency',currency:'BRL'});
|
|
||||||
}
|
|
||||||
|
|
||||||
function recalcTotal(){
|
|
||||||
const qtd = parseFloat($('#quantidade').val()||'0');
|
|
||||||
const preco = parseMoneyBR($('#precoRef').val());
|
|
||||||
const tot = (qtd*preco) || 0;
|
|
||||||
$('#total').val(formatMoneyBR(tot));
|
|
||||||
}
|
|
||||||
|
|
||||||
function bindZoom($input, datasetId, displayFields, hiddenIdFld, displayFld){
|
|
||||||
$input.on('click', function(){
|
|
||||||
FLUIGC.filtermodal({
|
|
||||||
title: 'Selecionar',
|
|
||||||
size: 'large',
|
|
||||||
filterFields: displayFields.join(', '),
|
|
||||||
source: {
|
|
||||||
url: '/api/public/ecm/dataset/search',
|
|
||||||
contentType: 'application/json',
|
|
||||||
root: 'content',
|
|
||||||
pattern: '',
|
|
||||||
limit: 50,
|
|
||||||
param:{
|
|
||||||
datasetId: datasetId
|
|
||||||
}
|
|
||||||
},
|
|
||||||
columns: [
|
|
||||||
{ title: 'Código', data: 'codigo' },
|
|
||||||
{ title: 'Descrição', data: 'descricao' }
|
|
||||||
],
|
|
||||||
onSelected: function(data){
|
|
||||||
$('#'+hiddenIdFld).val(data.codigo);
|
|
||||||
$('#'+displayFld).val(data.codigo+' - '+data.descricao);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function openZoomProduto(){
|
|
||||||
FLUIGC.filtermodal({
|
|
||||||
title: 'Buscar Produto/Serviço',
|
|
||||||
size: 'large',
|
|
||||||
filterFields: 'codigo, descricao',
|
|
||||||
source: {
|
|
||||||
url: '/api/public/ecm/dataset/search',
|
|
||||||
contentType: 'application/json',
|
|
||||||
root: 'content',
|
|
||||||
limit: 50,
|
|
||||||
param:{ datasetId: 'PRODUTOS_DS' }
|
|
||||||
},
|
|
||||||
columns: [
|
|
||||||
{ title: 'Código', data: 'codigo' },
|
|
||||||
{ title: 'Descrição', data: 'descricao' },
|
|
||||||
{ title: 'UM', data: 'um' },
|
|
||||||
{ title: 'Último Preço', data: 'ultimoPreco' }
|
|
||||||
],
|
|
||||||
onSelected: function(item){
|
|
||||||
$('#produtoCod').val(item.codigo);
|
|
||||||
$('#produtoDesc').val(item.codigo+' - '+item.descricao);
|
|
||||||
$('#ultimoPreco').val((item.ultimoPreco||'0,00'));
|
|
||||||
recalcTotal();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function addItem(){
|
|
||||||
// valida campos mínimos
|
|
||||||
if(!$('#produtoCod').val()){ FLUIGC.toast({title:'Atenção: ', message:'Selecione um produto.', type:'warning'}); return; }
|
|
||||||
if(!$('#ccCod').val()){ FLUIGC.toast({title:'Atenção: ', message:'Selecione o centro de custo.', type:'warning'}); return; }
|
|
||||||
const qtd = parseFloat($('#quantidade').val()||'0'); if(qtd<=0){ FLUIGC.toast({title:'Atenção: ', message:'Quantidade deve ser > 0.', type:'warning'}); return; }
|
|
||||||
|
|
||||||
const row = wdkAddChild('tbItens');
|
|
||||||
$('#produtoCod___'+row).val($('#produtoCod').val());
|
|
||||||
$('#produtoDesc___'+row).val($('#produtoDesc').val());
|
|
||||||
$('#ccCod___'+row).val($('#ccCod').val());
|
|
||||||
$('#ccDesc___'+row).val($('#ccDesc').val());
|
|
||||||
$('#qtd___'+row).val(qtd);
|
|
||||||
$('#precoRef___'+row).val($('#precoRef').val());
|
|
||||||
$('#total___'+row).val($('#total').val());
|
|
||||||
}
|
|
||||||
|
|
||||||
// validação de processo
|
|
||||||
function validateForm(form){
|
|
||||||
var msgs = [];
|
|
||||||
function req(id, label){ if(!form.getValue(id)) msgs.push('Preencha "'+label+'".'); }
|
|
||||||
|
|
||||||
req('tipoSolicitacao','Tipo de Solicitação');
|
|
||||||
req('produtoCod','Produto/Serviço');
|
|
||||||
req('quantidade','Quantidade');
|
|
||||||
req('dataNec','Data da Necessidade');
|
|
||||||
req('ccCod','Centro de Custo');
|
|
||||||
|
|
||||||
if(msgs.length){
|
|
||||||
throw msgs.join('\n');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$(document).ready(initForm);
|
|
||||||
@ -1,93 +0,0 @@
|
|||||||
<#import "/wcm.ftl" as wcm />
|
|
||||||
<#import "/layout-globals.ftl" as globals />
|
|
||||||
|
|
||||||
<#-- Layout base do portal -->
|
|
||||||
<div class="wcm-wrapper-content ${wcmLayoutEditClass!""} ${pageAuthTypeClass!""}">
|
|
||||||
|
|
||||||
<#-- Cabeçalho/menu aparecem só fora do modo de edição -->
|
|
||||||
<#if pageRender.isEditMode() != true>
|
|
||||||
<@wcm.header />
|
|
||||||
<@wcm.menu />
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div class="wcm-all-content">
|
|
||||||
<div id="wcm-content" class="clearfix wcm-background">
|
|
||||||
|
|
||||||
<#-- Ferramentas do editor quando estiver no modo edição -->
|
|
||||||
<#if pageRender.isEditMode() = true>
|
|
||||||
<@wcm.editHeader />
|
|
||||||
<@wcm.widgetsList />
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div id="${divMasterId!""}" class="clearfix">
|
|
||||||
|
|
||||||
<!-- CONTEÚDO DA SUA PÁGINA (layout de cards) -->
|
|
||||||
<div class="cd-wrap">
|
|
||||||
<h2 class="cd-h2">Compras Digital</h2>
|
|
||||||
<p class="cd-sub">
|
|
||||||
Solução para simplificar e otimizar a aquisição de produtos e serviços.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="cd-grid">
|
|
||||||
<!-- Ajuste APENAS os hrefs abaixo para seus links/processos reais -->
|
|
||||||
|
|
||||||
<a class="cd-card" href="/portal/p/1/pageprocessstart?processId=CadastroProdutos">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-box fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Cadastro de Produtos</div>
|
|
||||||
<div class="cd-txt">Adicione e gerencie produtos de maneira centralizada.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a class="cd-card" href="/portal/p/1/pageprocessstart?processId=Solicita%C3%A7%C3%A3o%20de%20compras%20-%20v2">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-cart fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Solicitação de Compras</div>
|
|
||||||
<div class="cd-txt">Faça suas solicitações de forma rápida e eficiente.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a class="cd-card" href="/portal/p/1/pagina-cotacoes">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-money fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Cotações</div>
|
|
||||||
<div class="cd-txt">Compare orçamentos e encontre as melhores ofertas.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a class="cd-card" href="/portal/p/1/pageworkflowview">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-check fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Pedidos de Compras</div>
|
|
||||||
<div class="cd-txt">Acompanhe e confirme pedidos de compra.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a class="cd-card" href="/portal/p/1/ecmnavigator">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-document-alt fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Notas Fiscais</div>
|
|
||||||
<div class="cd-txt">Simplifique a entrada e conferência de NFs.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a class="cd-card" href="/portal/p/1/pagina-parametros">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-cog fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Parâmetros</div>
|
|
||||||
<div class="cd-txt">Personalize as configurações conforme a necessidade.</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.cd-wrap{max-width:1200px;margin:0 auto;padding:24px}
|
|
||||||
.cd-h2{margin:0 0 6px;font-weight:700;font-size:24px}
|
|
||||||
.cd-sub{margin:0 0 22px;color:#6b7280}
|
|
||||||
.cd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
|
|
||||||
.cd-card{display:block;background:#fff;border-radius:14px;padding:22px;text-decoration:none;color:#111827;
|
|
||||||
box-shadow:0 1px 3px rgba(0,0,0,.08);min-height:210px;transition:transform .15s ease, box-shadow .15s ease}
|
|
||||||
.cd-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.12)}
|
|
||||||
.cd-illus{width:120px;height:120px;border-radius:60px;background:#f3f4f6;margin:0 auto 12px;
|
|
||||||
display:flex;align-items:center;justify-content:center}
|
|
||||||
.cd-ttl{text-align:center;font-weight:700;margin-bottom:6px}
|
|
||||||
.cd-txt{text-align:center;color:#6b7280;font-size:13px}
|
|
||||||
body.dark .cd-card{background:#1f2937;color:#e5e7eb}
|
|
||||||
body.dark .cd-illus{background:#111827}
|
|
||||||
body.dark .cd-txt{color:#9ca3af}
|
|
||||||
</style>
|
|
||||||
<!-- FIM DO CONTEÚDO -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
kit_aniversariantes.fullname=Nome completo
|
|
||||||
kit_aniversariantes.month=M\u00EAs
|
|
||||||
kit_aniversariantes.day=Dia
|
|
||||||
kit_aniversariantes.validation.fullName=Nome completo \u00E9 um campo obrigat\u00F3rio
|
|
||||||
kit_aniversariantes.validation.birthDay=Dia \u00E9 um campo obrigat\u00F3rio
|
|
||||||
kit_aniversariantes.validation.birthMonth=M\u00EAs \u00E9 um campo obrigat\u00F3rio
|
|
||||||
kit_aniversariantes.validation.birthMonthInvalid=Valor inv\u00E1lido no campo M\u00EAs
|
|
||||||
kit_aniversariantes.validation.birthDayInvalid=Valor inv\u00E1lido no campo Dia
|
|
||||||
kit_aniversariantes.validation.dayNaN=Dia \u00E9 um campo num\u00E9rico
|
|
||||||
kit_aniversariantes.validation.monthNaN=M\u00EAs \u00E9 um campo num\u00E9rico
|
|
||||||
kit_aniversariantes.imagedimension=Na aba anexos, fa\u00E7a upload da foto do usu\u00E1rio enviando uma imagem com altura e largura equivalentes
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
application.type=layout
|
|
||||||
application.code=TIginseng_layoutblocado
|
|
||||||
application.title=Layout blocado
|
|
||||||
application.description=Layout blocado carrosel
|
|
||||||
application.fluig.version=null
|
|
||||||
application.category=Compras Digital
|
|
||||||
application.renderer=freemarker
|
|
||||||
developer.code=G-ALES1NT-TEC06
|
|
||||||
developer.name=andrey.cunha
|
|
||||||
developer.url=http://www.fluig.com
|
|
||||||
layout.defaultSlot=SlotA
|
|
||||||
layout.file=layout.ftl
|
|
||||||
locale.file.base.name=TIginseng_layoutblocado
|
|
||||||
slot.SlotGlobalAlert=alertpopover
|
|
||||||
slot.SlotInstantSearch=suggestsearch
|
|
||||||
slot.SlotLogin=sociallogin
|
|
||||||
slot.SlotMenu=menu
|
|
||||||
slot.SlotUsePolicy=usepolicy
|
|
||||||
application.icon=icon.png
|
|
||||||
application.resource.css.1=/portal/resources/css/wcm_responsive_layout.css
|
|
||||||
application.responsiveLayout=true
|
|
||||||
application.newBuilder=true
|
|
||||||
hash=4a16315e9e66fa7d797b3f6b1fb365b69f9a4ce2
|
|
||||||
@ -1,61 +0,0 @@
|
|||||||
function defineStructure() {
|
|
||||||
addColumn("codigo");
|
|
||||||
addColumn("descricao");
|
|
||||||
}
|
|
||||||
|
|
||||||
function onSync(lastSyncDate) {}
|
|
||||||
|
|
||||||
function createDataset(fields, constraints, sortFields) {
|
|
||||||
var dataset = DatasetBuilder.newDataset();
|
|
||||||
var dataSource = "/jdbc/ProtheusP12"; // Nome da conexão cadastrada no Fluig
|
|
||||||
var ic = new javax.naming.InitialContext();
|
|
||||||
var ds = ic.lookup(dataSource);
|
|
||||||
var conn = ds.getConnection();
|
|
||||||
var stmt = null;
|
|
||||||
var rs = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
log.info("Iniciando execução do dataset...");
|
|
||||||
|
|
||||||
var sql = "SELECT b1_cod, b1_desc FROM sb1010 WHERE LEFT(b1_cod, 4) IN ('0001','0008', '0002', '0003', '0007', '0006', '0009', '0010', '0011', '0014','0016')";
|
|
||||||
log.info("Query SQL: " + sql);
|
|
||||||
|
|
||||||
stmt = conn.prepareStatement(sql);
|
|
||||||
rs = stmt.executeQuery();
|
|
||||||
|
|
||||||
dataset.addColumn("codigo");
|
|
||||||
dataset.addColumn("descricao");
|
|
||||||
|
|
||||||
var encontrados = {}; // Usando um objeto para evitar duplicação
|
|
||||||
|
|
||||||
while (rs.next()) {
|
|
||||||
var codigo = rs.getString("b1_cod");
|
|
||||||
var descricao = rs.getString("b1_desc");
|
|
||||||
|
|
||||||
if (!encontrados[codigo]) { // Verifica se já foi adicionado
|
|
||||||
encontrados[codigo] = true; // Marca como processado
|
|
||||||
log.info("Registro encontrado: " + codigo + " - " + descricao);
|
|
||||||
dataset.addRow([codigo, descricao]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.keys(encontrados).length === 0) {
|
|
||||||
log.info("Nenhum registro encontrado para a consulta.");
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao executar dataset: " + e.message);
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (rs) rs.close();
|
|
||||||
if (stmt) stmt.close();
|
|
||||||
if (conn) conn.close();
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao fechar recursos: " + e.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return dataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onMobileSync(user) {}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 587 B |
@ -1,5 +0,0 @@
|
|||||||
<div id="SlotInstantSearch" slot="true" class="slotint slot-header-actions">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotInstantSearch"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_en_US.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_es.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/layout.ftl=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/webapp/WEB-INF/jboss-web.xml=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/css/TIginseng_layoutblocado.css=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/js/TIginseng_layoutblocado.js=utf8
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/layout.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/view.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_es.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/WEB-INF/jboss-web.xml=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/WEB-INF/web.xml=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/css/widget_code_compras.css=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/js/widget_code_compras.js=utf8
|
|
||||||
@ -1,45 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<script type="text/javascript" src="/portal/resources/js/jquery/jquery.js"></script>
|
|
||||||
<link type="text/css" rel="stylesheet" href="/portal/resources/style-guide/css/fluig-style-guide.min.css"/>
|
|
||||||
<script type="text/javascript" src="/portal/resources/style-guide/js/fluig-style-guide.min.js"
|
|
||||||
charset="utf-8"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="fluig-style-guide">
|
|
||||||
<form name="kit_aniversariantes" role="form">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="fullName">i18n.translate("kit_aniversariantes.fullname")</label>
|
|
||||||
<input name="fullName" id="fullName" type="text" class="form-control"
|
|
||||||
placeholder="i18n.translate("kit_aniversariantes.fullname")">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-1">
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="birthDay">i18n.translate("kit_aniversariantes.day")</label>
|
|
||||||
<input name="birthDay" id="birthDay" type="number" class="form-control" min="1" max="31" step="1">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-1">
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="birthMonth">i18n.translate("kit_aniversariantes.month")</label>
|
|
||||||
<input name="birthMonth" id="birthMonth" type="number" class="form-control" min="1" max="12"
|
|
||||||
step="1">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
<div class="alert alert-info" role="alert">i18n.translate("kit_aniversariantes.imagedimension")</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
kit_aniversariantes.fullname=Full name
|
|
||||||
kit_aniversariantes.month=Month
|
|
||||||
kit_aniversariantes.day=Day
|
|
||||||
kit_aniversariantes.validation.fullName=Full name is a mandatory field
|
|
||||||
kit_aniversariantes.validation.birthDay=Day is a mandatory field
|
|
||||||
kit_aniversariantes.validation.birthMonth=Month is a mandatory field
|
|
||||||
kit_aniversariantes.validation.birthMonthInvalid=Invalid value in the month field
|
|
||||||
kit_aniversariantes.validation.birthDayInvalid=Invalid value in the day field
|
|
||||||
kit_aniversariantes.validation.dayNaN=Day is a numeric field
|
|
||||||
kit_aniversariantes.validation.monthNaN=Month is a numeric field
|
|
||||||
kit_aniversariantes.imagedimension=In the attachments tab, upload the photo of the user by sending an image with equivalent height and width
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//forms/7690\ -\ Aniversariantes/kit_aniversariantes.html=UTF-8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
@ -1 +0,0 @@
|
|||||||
application.title=applicationTitle
|
|
||||||
@ -1 +0,0 @@
|
|||||||
application.title=applicationTitle
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<jboss-web>
|
|
||||||
<context-root>/TIginseng_comprasdigital</context-root>
|
|
||||||
<disable-cross-context>false</disable-cross-context>
|
|
||||||
</jboss-web>
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_en_US.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/layout.ftl=utf8
|
|
||||||
Binary file not shown.
@ -1 +0,0 @@
|
|||||||
application.title=applicationTitle
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_en_US.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_es.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/layout.ftl=utf8
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//forms/7690\ -\ Aniversariantes/kit_aniversariantes.html=UTF-8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/view.ftl=utf8
|
|
||||||
@ -1,88 +0,0 @@
|
|||||||
<div class="fluig-style-guide">
|
|
||||||
<div id="wcm_header" class="wcm-header-background wcm-header">
|
|
||||||
<!-- Group left -->
|
|
||||||
<div class="header-grouper-left">
|
|
||||||
<a href="home" class="wcm_logo" title="${i18n.getTranslation('layout.label.pagetitle')}">
|
|
||||||
<#if '${imageLogo}'=='true'>
|
|
||||||
<img src="${serverContextURL}/resources/images/${pageRender.user.tenantId}/logo_image.png"></img>
|
|
||||||
<#else>
|
|
||||||
<img src="${serverContextURL}/resources/images/logo.png"></img>
|
|
||||||
</#if>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<!-- Group right -->
|
|
||||||
<div class="header-grouper-right">
|
|
||||||
<!-- Container login -->
|
|
||||||
<div id="SlotLogin" slot="true" class="slot-header-actions">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotLogin"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
<div id="SlotInstantSearch" slot="true" class="slotint slot-header-actions">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotInstantSearch"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- WCM Wrapper content -->
|
|
||||||
<div class="wcm-wrapper-content">
|
|
||||||
<!-- Menu esquerdo -->
|
|
||||||
<nav class="wcm-navigation wcm-menu-background">
|
|
||||||
<div id="SlotMenu" slot="true">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotMenu"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<!-- Wrapper -->
|
|
||||||
<div class="wcm-all-content">
|
|
||||||
<div id="wcm-content" class="clearfix wcm-background">
|
|
||||||
<!--WIDGETS DO LAYOUT -->
|
|
||||||
<link type="text/css" rel="stylesheet" href="${contextPath}/resources/css/wcm_layout.css"/>
|
|
||||||
<!-- Onde deverá estar a barra de formatação -->
|
|
||||||
<#if pageRender.isEditMode()=true>
|
|
||||||
<div name="formatBar" id="formatBar"></div>
|
|
||||||
<!-- Div geral -->
|
|
||||||
<!-- Há CSS distinto para Edição/Visualização -->
|
|
||||||
<div id="edicaoPagina" class="clearfix">
|
|
||||||
<#else>
|
|
||||||
<div id="visualizacaoPagina" class="clearfix">
|
|
||||||
</#if>
|
|
||||||
<!-- Titulo da página -->
|
|
||||||
<div class="slotfull layout-1-1">
|
|
||||||
<span class="titleArea">${i18n.getTranslation('wcm.layoutdefault.title')}</span>
|
|
||||||
<h2 class="pageTitle">${pageTitle}</h2>
|
|
||||||
</div>
|
|
||||||
<!-- Slot 1 -->
|
|
||||||
<div class="editable-slot slotfull layout-1-1" id="slotFull1">
|
|
||||||
<div id="SlotC" slot="true" class="slotint" decorator="false" editableSlot="true">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotC"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Slot 2 -->
|
|
||||||
<div class="editable-slot slotfull layout-1-1" id="slotFull2">
|
|
||||||
<div id="SlotB" slot="true" class="slotint" decorator="false" editableSlot="true">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotB"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Slot 3 -->
|
|
||||||
<div class="editable-slot slotfull layout-1-1" id="slotFull3">
|
|
||||||
<!-- Widget -->
|
|
||||||
<div id="SlotA" slot="true" class="slotint" decorator="true" editableSlot="true">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotA"))! as id>
|
|
||||||
${pageRender.renderInstance(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- FIM DAS WIDGETS DO LAYOUT -->
|
|
||||||
<div id="wcm_footer" class="wcm_footer"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@ -1,172 +0,0 @@
|
|||||||
<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="compras.js"></script>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<div class="fluig-style-guide">
|
|
||||||
<form name="form" role="form">
|
|
||||||
<link rel="stylesheet" type="text/css" href="/style-guide/css/fluig-style-guide.min.css">
|
|
||||||
|
|
||||||
<div class="fluig-style-guide fs-display-block">
|
|
||||||
|
|
||||||
<div class="panel panel-info">
|
|
||||||
<div class="panel-heading"><strong>Dados da Solicitação</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<label>Empresa</label>
|
|
||||||
<input type="hidden" name="empresaCodigo" id="empresaCodigo">
|
|
||||||
<input type="text" name="empresaDesc" id="empresaDesc" class="form-control zoom"
|
|
||||||
data-zoom="empresa" placeholder="Selecione..." readonly>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<label>Filial</label>
|
|
||||||
<input type="hidden" name="filialCodigo" id="filialCodigo">
|
|
||||||
<input type="text" name="filialDesc" id="filialDesc" class="form-control zoom"
|
|
||||||
data-zoom="filial" placeholder="Selecione..." readonly>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row m-t-15">
|
|
||||||
<div class="col-sm-4">
|
|
||||||
<label>Tipo de Solicitação <span class="text-danger">*</span></label>
|
|
||||||
<select name="tipoSolicitacao" id="tipoSolicitacao" class="form-control" required>
|
|
||||||
<option value="">Selecione</option>
|
|
||||||
<option>Material</option>
|
|
||||||
<option>Serviço</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-8">
|
|
||||||
<label>Produto/Serviço <span class="text-danger">*</span></label>
|
|
||||||
<div class="input-group">
|
|
||||||
<input type="hidden" name="produtoCod" id="produtoCod">
|
|
||||||
<input type="text" name="produtoDesc" id="produtoDesc" class="form-control zoom"
|
|
||||||
data-zoom="produto" placeholder="Buscar..." readonly required>
|
|
||||||
<span class="input-group-btn">
|
|
||||||
<button class="btn btn-default" type="button" id="btnBuscaProd"><span
|
|
||||||
class="fluigicon fluigicon-search"></span></button>
|
|
||||||
<button class="btn btn-danger" type="button" id="btnLimpaProd"><span
|
|
||||||
class="fluigicon fluigicon-trash"></span></button>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row m-t-10">
|
|
||||||
<div class="col-sm-3">
|
|
||||||
<label>Último Preço</label>
|
|
||||||
<input type="text" name="ultimoPreco" id="ultimoPreco" class="form-control text-right"
|
|
||||||
readonly value="0,00">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-3">
|
|
||||||
<label>Preço de Referência</label>
|
|
||||||
<input type="text" name="precoRef" id="precoRef" class="form-control text-right"
|
|
||||||
value="0,00">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-3">
|
|
||||||
<label>Quantidade <span class="text-danger">*</span></label>
|
|
||||||
<div class="input-group">
|
|
||||||
<span class="input-group-btn"><button type="button" class="btn btn-default"
|
|
||||||
id="qtdMenos">−</button></span>
|
|
||||||
<input type="number" min="0" step="1" name="quantidade" id="quantidade"
|
|
||||||
class="form-control text-center" value="0" required>
|
|
||||||
<span class="input-group-btn"><button type="button" class="btn btn-default"
|
|
||||||
id="qtdMais">+</button></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-3">
|
|
||||||
<label>Data da Necessidade <span class="text-danger">*</span></label>
|
|
||||||
<input type="text" name="dataNec" id="dataNec" class="form-control"
|
|
||||||
placeholder="dd/mm/aaaa" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row m-t-10">
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<label>Centro de Custo <span class="text-danger">*</span></label>
|
|
||||||
<input type="hidden" name="ccCod" id="ccCod">
|
|
||||||
<input type="text" name="ccDesc" id="ccDesc" class="form-control zoom"
|
|
||||||
data-zoom="centrocusto" placeholder="Selecione..." readonly required>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-3">
|
|
||||||
<label>Compra Emergencial?</label>
|
|
||||||
<select name="emergencial" id="emergencial" class="form-control">
|
|
||||||
<option>Não</option>
|
|
||||||
<option>Sim</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-sm-3">
|
|
||||||
<label>Total</label>
|
|
||||||
<input type="text" name="total" id="total" class="form-control text-right" readonly
|
|
||||||
value="R$ 0,00">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row m-t-15">
|
|
||||||
<div class="col-sm-12">
|
|
||||||
<button type="button" class="btn btn-success" id="btnAddAnexo">
|
|
||||||
<span class="fluigicon fluigicon-upload"></span> Adicionar Anexo
|
|
||||||
</button>
|
|
||||||
<!-- o componente de anexos padrão do Fluig aparece automaticamente no cabeçalho; esse botão é opcional -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row m-t-10">
|
|
||||||
<div class="col-sm-12">
|
|
||||||
<label>Observação do Item</label>
|
|
||||||
<textarea name="obs" id="obs" class="form-control" rows="3"></textarea>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="text-center m-t-15">
|
|
||||||
<button type="button" id="btnAddItem" class="btn btn-primary">
|
|
||||||
<span class="fluigicon fluigicon-add"></span> Adicionar Item
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><strong>Itens</strong></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<table id="tbItens" tablename="tbItens" class="table table-bordered">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Produto</th>
|
|
||||||
<th>Centro de Custo</th>
|
|
||||||
<th>Qtd</th>
|
|
||||||
<th>Preço Ref.</th>
|
|
||||||
<th>Total</th>
|
|
||||||
<th>Ação</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<!-- linhas filhos via wdkAddChild -->
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1 +0,0 @@
|
|||||||
application.title=applicationTitle
|
|
||||||
@ -1,61 +0,0 @@
|
|||||||
function defineStructure() {
|
|
||||||
addColumn("codigo");
|
|
||||||
addColumn("descricao");
|
|
||||||
}
|
|
||||||
|
|
||||||
function onSync(lastSyncDate) {}
|
|
||||||
|
|
||||||
function createDataset(fields, constraints, sortFields) {
|
|
||||||
var dataset = DatasetBuilder.newDataset();
|
|
||||||
var dataSource = "/jdbc/ProtheusP12"; // Nome da conexão cadastrada no Fluig
|
|
||||||
var ic = new javax.naming.InitialContext();
|
|
||||||
var ds = ic.lookup(dataSource);
|
|
||||||
var conn = ds.getConnection();
|
|
||||||
var stmt = null;
|
|
||||||
var rs = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
log.info("Iniciando execução do dataset...");
|
|
||||||
|
|
||||||
var sql = "SELECT b1_cod, b1_desc FROM sb1010 WHERE LEFT(b1_cod, 4) IN ('0001','0008', '0002', '0003', '0007', '0006', '0009', '0010', '0011', '0014','0016')";
|
|
||||||
log.info("Query SQL: " + sql);
|
|
||||||
|
|
||||||
stmt = conn.prepareStatement(sql);
|
|
||||||
rs = stmt.executeQuery();
|
|
||||||
|
|
||||||
dataset.addColumn("codigo");
|
|
||||||
dataset.addColumn("descricao");
|
|
||||||
|
|
||||||
var encontrados = {}; // Usando um objeto para evitar duplicação
|
|
||||||
|
|
||||||
while (rs.next()) {
|
|
||||||
var codigo = rs.getString("b1_cod");
|
|
||||||
var descricao = rs.getString("b1_desc");
|
|
||||||
|
|
||||||
if (!encontrados[codigo]) { // Verifica se já foi adicionado
|
|
||||||
encontrados[codigo] = true; // Marca como processado
|
|
||||||
log.info("Registro encontrado: " + codigo + " - " + descricao);
|
|
||||||
dataset.addRow([codigo, descricao]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.keys(encontrados).length === 0) {
|
|
||||||
log.info("Nenhum registro encontrado para a consulta.");
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao executar dataset: " + e.message);
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (rs) rs.close();
|
|
||||||
if (stmt) stmt.close();
|
|
||||||
if (conn) conn.close();
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao fechar recursos: " + e.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return dataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onMobileSync(user) {}
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_en_US.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_es.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/layout.ftl=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/css/TIginseng_layoutblocado.css=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
Binary file not shown.
@ -1,13 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//forms/7690\ -\ Aniversariantes/kit_aniversariantes.html=UTF-8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_en_US.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_es.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/layout.ftl=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/webapp/WEB-INF/jboss-web.xml=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/webapp/WEB-INF/web.xml=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/css/TIginseng_layoutblocado.css=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/webapp/resources/js/TIginseng_layoutblocado.js=utf8
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/TIginseng_comprasdigital.properties=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/TIginseng_comprasdigital_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/view.ftl=utf8
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_en_US.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_es.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/TIginseng_layoutblocado_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/layout/TIginseng_layoutblocado/src/main/resources/layout.ftl=utf8
|
|
||||||
@ -1,83 +0,0 @@
|
|||||||
<div class="fluig-style-guide">
|
|
||||||
<div id="wcm_header" class="wcm-header-background wcm-header">
|
|
||||||
<!-- Group left -->
|
|
||||||
<div class="header-grouper-left">
|
|
||||||
<a href="home" class="wcm_logo" title="${i18n.getTranslation('layout.label.pagetitle')}">
|
|
||||||
<#if '${imageLogo}'=='true'>
|
|
||||||
<img src="${serverContextURL}/resources/images/${pageRender.user.tenantId}/logo_image.png"></img>
|
|
||||||
<#else>
|
|
||||||
<img src="${serverContextURL}/resources/images/logo.png"></img>
|
|
||||||
</#if>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<!-- Group right -->
|
|
||||||
<div class="header-grouper-right">
|
|
||||||
<!-- Container login -->
|
|
||||||
<div id="SlotLogin" slot="true" class="slot-header-actions">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotLogin"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- WCM Wrapper content -->
|
|
||||||
<div class="wcm-wrapper-content">
|
|
||||||
<!-- Menu esquerdo -->
|
|
||||||
<nav class="wcm-navigation wcm-menu-background">
|
|
||||||
<div id="SlotMenu" slot="true">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotMenu"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<!-- Wrapper -->
|
|
||||||
<div class="wcm-all-content">
|
|
||||||
<div id="wcm-content" class="clearfix wcm-background">
|
|
||||||
<!--WIDGETS DO LAYOUT -->
|
|
||||||
<link type="text/css" rel="stylesheet" href="${contextPath}/resources/css/wcm_layout.css"/>
|
|
||||||
<!-- Onde deverá estar a barra de formatação -->
|
|
||||||
<#if pageRender.isEditMode()=true>
|
|
||||||
<div name="formatBar" id="formatBar"></div>
|
|
||||||
<!-- Div geral -->
|
|
||||||
<!-- Há CSS distinto para Edição/Visualização -->
|
|
||||||
<div id="edicaoPagina" class="clearfix">
|
|
||||||
<#else>
|
|
||||||
<div id="visualizacaoPagina" class="clearfix">
|
|
||||||
</#if>
|
|
||||||
<!-- Titulo da página -->
|
|
||||||
<div class="slotfull layout-1-1">
|
|
||||||
<span class="titleArea">${i18n.getTranslation('wcm.layoutdefault.title')}</span>
|
|
||||||
<h2 class="pageTitle">${pageTitle}</h2>
|
|
||||||
</div>
|
|
||||||
<!-- Slot 1 -->
|
|
||||||
<div class="editable-slot slotfull layout-1-1" id="slotFull1">
|
|
||||||
<div id="SlotC" slot="true" class="slotint" decorator="false" editableSlot="true">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotC"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Slot 2 -->
|
|
||||||
<div class="editable-slot slotfull layout-1-1" id="slotFull2">
|
|
||||||
<div id="SlotB" slot="true" class="slotint" decorator="false" editableSlot="true">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotB"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Slot 3 -->
|
|
||||||
<div class="editable-slot slotfull layout-1-1" id="slotFull3">
|
|
||||||
<!-- Widget -->
|
|
||||||
<div id="SlotA" slot="true" class="slotint" decorator="true" editableSlot="true">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotA"))! as id>
|
|
||||||
${pageRender.renderInstance(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- FIM DAS WIDGETS DO LAYOUT -->
|
|
||||||
<div id="wcm_footer" class="wcm_footer"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/LayoutCadastro.properties=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/LayoutCadastro_en_US.properties=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/LayoutCadastro_es.properties=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/LayoutCadastro_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/layout.ftl=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/webapp/WEB-INF/jboss-web.xml=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/webapp/resources/css/LayoutCadastro.css=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/webapp/resources/js/LayoutCadastro.js=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/view.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_es.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/WEB-INF/jboss-web.xml=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/WEB-INF/web.xml=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/css/widget_code_compras.css=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/js/widget_code_compras.js=utf8
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/LayoutCadastro.properties=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/LayoutCadastro_en_US.properties=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/LayoutCadastro_es.properties=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/LayoutCadastro_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/resources/layout.ftl=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/webapp/WEB-INF/jboss-web.xml=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/webapp/WEB-INF/web.xml=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/webapp/resources/css/LayoutCadastro.css=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
encoding//wcm/layout/LayoutCadastro/src/main/webapp/resources/js/LayoutCadastro.js=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/view.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_es.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/WEB-INF/jboss-web.xml=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/WEB-INF/web.xml=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/css/widget_code_compras.css=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/js/widget_code_compras.js=utf8
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//forms/7690\ -\ Aniversariantes/kit_aniversariantes.html=UTF-8
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
application.title=Olá Mundo
|
|
||||||
application.description=Olá Mundo
|
|
||||||
hello.example.hello=Olá Mundo!
|
|
||||||
hello.example.helloedit=Olá Mundo! (Edit)
|
|
||||||
hello.button.showMessage=Exibir mensagem
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/view.ftl=utf8
|
|
||||||
@ -1,127 +0,0 @@
|
|||||||
<#-- Puxa o dataset de notícias -->
|
|
||||||
<#assign dsNoticias = DatasetFactory.getDataset("Noticias", null, null, null) />
|
|
||||||
|
|
||||||
<style>
|
|
||||||
/* Container principal */
|
|
||||||
.slider-container {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
max-width: 1000px;
|
|
||||||
margin: 20px auto;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Wrapper dos slides */
|
|
||||||
.slider-wrapper {
|
|
||||||
display: flex;
|
|
||||||
transition: transform 0.5s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Card individual */
|
|
||||||
.slider-card {
|
|
||||||
flex: 0 0 25%; /* 4 cards por vez no desktop */
|
|
||||||
box-sizing: border-box;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-card img {
|
|
||||||
width: 100%;
|
|
||||||
height: auto;
|
|
||||||
border-radius: 8px;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-card h3 {
|
|
||||||
margin: 8px 0 4px;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-card p {
|
|
||||||
font-size: 13px;
|
|
||||||
color: #555;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Botões */
|
|
||||||
.slider-btn {
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
transform: translateY(-50%);
|
|
||||||
background: rgba(0,0,0,0.5);
|
|
||||||
color: #fff;
|
|
||||||
border: none;
|
|
||||||
font-size: 24px;
|
|
||||||
padding: 10px;
|
|
||||||
cursor: pointer;
|
|
||||||
border-radius: 50%;
|
|
||||||
z-index: 10;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slider-btn.prev { left: 5px; }
|
|
||||||
.slider-btn.next { right: 5px; }
|
|
||||||
|
|
||||||
/* Responsivo */
|
|
||||||
@media screen and (max-width: 900px) {
|
|
||||||
.slider-card { flex: 0 0 33.33%; } /* 3 cards */
|
|
||||||
}
|
|
||||||
@media screen and (max-width: 600px) {
|
|
||||||
.slider-card { flex: 0 0 50%; } /* 2 cards */
|
|
||||||
}
|
|
||||||
@media screen and (max-width: 400px) {
|
|
||||||
.slider-card { flex: 0 0 100%; } /* 1 card */
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div class="slider-container">
|
|
||||||
<div class="slider-wrapper" id="sliderWrapper">
|
|
||||||
<#list dsNoticias.values as noticia>
|
|
||||||
<div class="slider-card">
|
|
||||||
<a href="${noticia[2]!}" target="_blank">
|
|
||||||
<img src="${noticia[3]!}" alt="${noticia[0]!}">
|
|
||||||
</a>
|
|
||||||
<h3>${noticia[0]!}</h3>
|
|
||||||
<p>${noticia[1]!}</p>
|
|
||||||
</div>
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
<button class="slider-btn prev" onclick="prevCard()">❮</button>
|
|
||||||
<button class="slider-btn next" onclick="nextCard()">❯</button>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
const sliderWrapper = document.getElementById('sliderWrapper');
|
|
||||||
const cards = sliderWrapper.children;
|
|
||||||
let cardIndex = 0;
|
|
||||||
|
|
||||||
// Quantos cards são visíveis atualmente
|
|
||||||
function visibleCards() {
|
|
||||||
if (window.innerWidth <= 400) return 1;
|
|
||||||
if (window.innerWidth <= 600) return 2;
|
|
||||||
if (window.innerWidth <= 900) return 3;
|
|
||||||
return 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateSlider() {
|
|
||||||
const shift = (100 / visibleCards()) * cardIndex;
|
|
||||||
sliderWrapper.style.transform = `translateX(-${shift}%)`;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Botões
|
|
||||||
function nextCard() {
|
|
||||||
const maxIndex = cards.length - visibleCards();
|
|
||||||
cardIndex = Math.min(cardIndex + 1, maxIndex);
|
|
||||||
updateSlider();
|
|
||||||
}
|
|
||||||
|
|
||||||
function prevCard() {
|
|
||||||
cardIndex = Math.max(cardIndex - 1, 0);
|
|
||||||
updateSlider();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Redimensionamento da tela
|
|
||||||
window.addEventListener('resize', updateSlider);
|
|
||||||
|
|
||||||
// Auto-slide opcional (descomente se quiser)
|
|
||||||
// setInterval(nextCard, 5000);
|
|
||||||
|
|
||||||
updateSlider();
|
|
||||||
</script>
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/view.ftl=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_es.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/resources/widget_code_compras_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/WEB-INF/jboss-web.xml=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/WEB-INF/web.xml=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/css/widget_code_compras.css=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
encoding//wcm/widget/widget_code_compras/src/main/webapp/resources/js/widget_code_compras.js=utf8
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
application.title=\u00A1Hola Mundo
|
|
||||||
application.description=\u00A1Hola Mundo
|
|
||||||
hello.example.hello=\u00A1Hola Mundo!
|
|
||||||
hello.example.helloedit=\u00A1Hola Mundo! (Edit)
|
|
||||||
hello.button.showMessage=Mostrar mensaje
|
|
||||||
File diff suppressed because it is too large
Load Diff
@ -1,2 +0,0 @@
|
|||||||
// Insira aqui seu codigo JavaScript
|
|
||||||
|
|
||||||
@ -1,83 +0,0 @@
|
|||||||
<div class="fluig-style-guide">
|
|
||||||
<div id="wcm_header" class="wcm-header-background wcm-header">
|
|
||||||
<!-- Group left -->
|
|
||||||
<div class="header-grouper-left">
|
|
||||||
<a href="home" class="wcm_logo" title="${i18n.getTranslation('layout.label.pagetitle')}">
|
|
||||||
<#if '${imageLogo}'=='true'>
|
|
||||||
<img src="${serverContextURL}/resources/images/${pageRender.user.tenantId}/logo_image.png"></img>
|
|
||||||
<#else>
|
|
||||||
<img src="${serverContextURL}/resources/images/logo.png"></img>
|
|
||||||
</#if>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<!-- Group right -->
|
|
||||||
<div class="header-grouper-right">
|
|
||||||
<!-- Container login -->
|
|
||||||
<div id="SlotLogin" slot="true" class="slot-header-actions">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotLogin"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- WCM Wrapper content -->
|
|
||||||
<div class="wcm-wrapper-content">
|
|
||||||
<!-- Menu esquerdo -->
|
|
||||||
<nav class="wcm-navigation wcm-menu-background">
|
|
||||||
<div id="SlotMenu" slot="true">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotMenu"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<!-- Wrapper -->
|
|
||||||
<div class="wcm-all-content">
|
|
||||||
<div id="wcm-content" class="clearfix wcm-background">
|
|
||||||
<!--WIDGETS DO LAYOUT -->
|
|
||||||
<link type="text/css" rel="stylesheet" href="${contextPath}/resources/css/wcm_layout.css"/>
|
|
||||||
<!-- Onde deverá estar a barra de formatação -->
|
|
||||||
<#if pageRender.isEditMode()=true>
|
|
||||||
<div name="formatBar" id="formatBar"></div>
|
|
||||||
<!-- Div geral -->
|
|
||||||
<!-- Há CSS distinto para Edição/Visualização -->
|
|
||||||
<div id="edicaoPagina" class="clearfix">
|
|
||||||
<#else>
|
|
||||||
<div id="visualizacaoPagina" class="clearfix">
|
|
||||||
</#if>
|
|
||||||
<!-- Titulo da página -->
|
|
||||||
<div class="slotfull layout-1-1">
|
|
||||||
<span class="titleArea">${i18n.getTranslation('wcm.layoutdefault.title')}</span>
|
|
||||||
<h2 class="pageTitle">${pageTitle}</h2>
|
|
||||||
</div>
|
|
||||||
<!-- Slot 1 -->
|
|
||||||
<div class="editable-slot slotfull layout-1-1" id="slotFull1">
|
|
||||||
<div id="SlotC" slot="true" class="slotint" decorator="false" editableSlot="true">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotC"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Slot 2 -->
|
|
||||||
<div class="editable-slot slotfull layout-1-1" id="slotFull2">
|
|
||||||
<div id="SlotB" slot="true" class="slotint" decorator="false" editableSlot="true">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotB"))! as id>
|
|
||||||
${pageRender.renderInstanceNoDecorator(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- Slot 3 -->
|
|
||||||
<div class="editable-slot slotfull layout-1-1" id="slotFull3">
|
|
||||||
<!-- Widget -->
|
|
||||||
<div id="SlotA" slot="true" class="slotint" decorator="true" editableSlot="true">
|
|
||||||
<#list (pageRender.getInstancesIds("SlotA"))! as id>
|
|
||||||
${pageRender.renderInstance(id)}
|
|
||||||
</#list>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- FIM DAS WIDGETS DO LAYOUT -->
|
|
||||||
<div id="wcm_footer" class="wcm_footer"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/TIginseng_comprasdigital.properties=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/TIginseng_comprasdigital_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/TIginseng_comprasdigital_es.properties=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/TIginseng_comprasdigital_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/resources/view.ftl=utf8
|
|
||||||
encoding//wcm/widget/TIginseng_comprasdigital/src/main/webapp/resources/css/TIginseng_comprasdigital.css=utf8
|
|
||||||
@ -1,92 +0,0 @@
|
|||||||
function defineStructure() {
|
|
||||||
dataset.addColumn("codigo");
|
|
||||||
dataset.addColumn("descricao");
|
|
||||||
dataset.addColumn("CNPJ");
|
|
||||||
dataset.addColumn("ENDERECO");
|
|
||||||
dataset.addColumn("COMPLEMENTO");
|
|
||||||
dataset.addColumn("BAIRRO");
|
|
||||||
dataset.addColumn("CIDADE");
|
|
||||||
dataset.addColumn("ESTADO");
|
|
||||||
dataset.addColumn("CEP");
|
|
||||||
dataset.addColumn("CODIGO MUNICIPIO");
|
|
||||||
dataset.addColumn("BPCS");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function onSync(lastSyncDate) {}
|
|
||||||
|
|
||||||
function createDataset(fields, constraints, sortFields) {
|
|
||||||
var dataset = DatasetBuilder.newDataset();
|
|
||||||
var dataSource = "/jdbc/ProtheusP12"; // Nome da conexão cadastrada no Fluig
|
|
||||||
var ic = new javax.naming.InitialContext();
|
|
||||||
var ds = ic.lookup(dataSource);
|
|
||||||
var conn = ds.getConnection();
|
|
||||||
var stmt = null;
|
|
||||||
var rs = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
log.info("Iniciando execução do dataset...");
|
|
||||||
|
|
||||||
var sql = "SELECT M0_CODFIL, M0_FILIAL, M0_CGC, M0_ENDENT, M0_COMPENT, M0_BAIRENT, M0_CIDENT, M0_ESTENT, M0_CEPENT, M0_CODMUN, M0_TEL_PO, * from SYS_COMPANY WHERE M0_CODFIL LIKE '0101%' OR M0_CODFIL LIKE'03%' AND D_E_L_E_T_= ''";
|
|
||||||
log.info("Query SQL: " + sql);
|
|
||||||
|
|
||||||
stmt = conn.prepareStatement(sql);
|
|
||||||
rs = stmt.executeQuery();
|
|
||||||
|
|
||||||
dataset.addColumn("CODIGO");
|
|
||||||
dataset.addColumn("DESCRICAO");
|
|
||||||
dataset.addColumn("CNPJ");
|
|
||||||
dataset.addColumn("ENDERECO");
|
|
||||||
dataset.addColumn("COMPLEMENTO");
|
|
||||||
dataset.addColumn("BAIRRO");
|
|
||||||
dataset.addColumn("CIDADE");
|
|
||||||
dataset.addColumn("ESTADO");
|
|
||||||
dataset.addColumn("CEP");
|
|
||||||
dataset.addColumn("CODIGO MUNICIPIO");
|
|
||||||
dataset.addColumn("BPCS");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var encontrados = {}; // Usando um objeto para evitar duplicação
|
|
||||||
|
|
||||||
while (rs.next()) {
|
|
||||||
var codigo = rs.getString("M0_CODFIL");
|
|
||||||
var descricao = rs.getString("M0_FILIAL");
|
|
||||||
var cnpj = rs.getString("M0_CGC");
|
|
||||||
var endereco = rs.getString("M0_ENDENT");
|
|
||||||
var complemento = rs.getString("M0_COMPENT");
|
|
||||||
var bairro = rs.getString("M0_BAIRENT");
|
|
||||||
var cidade = rs.getString("M0_CIDENT");
|
|
||||||
var estado = rs.getString("M0_ESTENT");
|
|
||||||
var cep = rs.getString("M0_CEPENT");
|
|
||||||
var ibge = rs.getString("M0_CODMUN");
|
|
||||||
var bpcs = rs.getString("M0_TEL_PO");
|
|
||||||
|
|
||||||
|
|
||||||
if (!encontrados[codigo]) { // Verifica se já foi adicionado
|
|
||||||
encontrados[codigo] = true; // Marca como processado
|
|
||||||
log.info("Registro encontrado: " + codigo + " - " + descricao);
|
|
||||||
dataset.addRow([codigo, descricao,cnpj,endereco,complemento,bairro,cidade,estado,cep,ibge, bpcs]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.keys(encontrados).length === 0) {
|
|
||||||
log.info("Nenhum registro encontrado para a consulta.");
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao executar dataset: " + e.message);
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (rs) rs.close();
|
|
||||||
if (stmt) stmt.close();
|
|
||||||
if (conn) conn.close();
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao fechar recursos: " + e.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return dataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onMobileSync(user) {}
|
|
||||||
@ -1,93 +0,0 @@
|
|||||||
<#import "/wcm.ftl" as wcm />
|
|
||||||
<#import "/layout-globals.ftl" as globals />
|
|
||||||
|
|
||||||
<#-- Layout base do portal -->
|
|
||||||
<div class="wcm-wrapper-content ${wcmLayoutEditClass!""} ${pageAuthTypeClass!""}">
|
|
||||||
|
|
||||||
<#-- Cabeçalho/menu aparecem só fora do modo de edição -->
|
|
||||||
<#if pageRender.isEditMode() != true>
|
|
||||||
<@wcm.header />
|
|
||||||
<@wcm.menu />
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div class="wcm-all-content">
|
|
||||||
<div id="wcm-content" class="clearfix wcm-background">
|
|
||||||
|
|
||||||
<#-- Ferramentas do editor quando estiver no modo edição -->
|
|
||||||
<#if pageRender.isEditMode() = true>
|
|
||||||
<@wcm.editHeader />
|
|
||||||
<@wcm.widgetsList />
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div id="${divMasterId!""}" class="clearfix">
|
|
||||||
|
|
||||||
<!-- CONTEÚDO DA SUA PÁGINA (layout de cards) -->
|
|
||||||
<div class="cd-wrap">
|
|
||||||
<h2 class="cd-h2">Compras Digital</h2>
|
|
||||||
<p class="cd-sub">
|
|
||||||
Solução para simplificar e otimizar a aquisição de produtos e serviços.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div class="cd-grid">
|
|
||||||
<!-- Ajuste APENAS os hrefs abaixo para seus links/processos reais -->
|
|
||||||
|
|
||||||
<a class="cd-card" href="/portal/p/1/pageprocessstart?processId=CadastroProdutos">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-box fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Cadastro de Produtos</div>
|
|
||||||
<div class="cd-txt">Adicione e gerencie produtos de maneira centralizada.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a class="cd-card" href="/portal/p/1/pageworkflowview?processID=Solicitação%20de%20compras%20-%20v2">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-cart fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Solicitação de Compras</div>
|
|
||||||
<div class="cd-txt">Faça suas solicitações de forma rápida e eficiente.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a class="cd-card" href="/portal/p/1/pagina-cotacoes">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-money fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Cotações</div>
|
|
||||||
<div class="cd-txt">Compare orçamentos e encontre as melhores ofertas.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a class="cd-card" href="/portal/p/1/pageworkflowview">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-check fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Pedidos de Compras</div>
|
|
||||||
<div class="cd-txt">Acompanhe e confirme pedidos de compra.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a class="cd-card" href="/portal/p/1/pageworkflowview?processID=FlowEssentials_LancamentodeDocumento">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-document-alt fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Notas Fiscais</div>
|
|
||||||
<div class="cd-txt">Simplifique a entrada e conferência de NFs.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a class="cd-card" href="/portal/p/1/pagina-parametros">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-cog fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Parâmetros</div>
|
|
||||||
<div class="cd-txt">Personalize as configurações conforme a necessidade.</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.cd-wrap{max-width:1200px;margin:0 auto;padding:24px}
|
|
||||||
.cd-h2{margin:0 0 6px;font-weight:700;font-size:24px}
|
|
||||||
.cd-sub{margin:0 0 22px;color:#6b7280}
|
|
||||||
.cd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
|
|
||||||
.cd-card{display:block;background:#fff;border-radius:14px;padding:22px;text-decoration:none;color:#111827;
|
|
||||||
box-shadow:0 1px 3px rgba(0,0,0,.08);min-height:210px;transition:transform .15s ease, box-shadow .15s ease}
|
|
||||||
.cd-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.12)}
|
|
||||||
.cd-illus{width:120px;height:120px;border-radius:60px;background:#f3f4f6;margin:0 auto 12px;
|
|
||||||
display:flex;align-items:center;justify-content:center}
|
|
||||||
.cd-ttl{text-align:center;font-weight:700;margin-bottom:6px}
|
|
||||||
.cd-txt{text-align:center;color:#6b7280;font-size:13px}
|
|
||||||
body.dark .cd-card{background:#1f2937;color:#e5e7eb}
|
|
||||||
body.dark .cd-illus{background:#111827}
|
|
||||||
body.dark .cd-txt{color:#9ca3af}
|
|
||||||
</style>
|
|
||||||
<!-- FIM DO CONTEÚDO -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
<div id="MyWidget_${instanceId}" class="super-widget wcm-widget-class fluig-style-guide" data-params="MyWidget.instance()">
|
|
||||||
<div class="form-group">
|
|
||||||
<label>Usar ícones do Fluig? (S/N)</label>
|
|
||||||
<input type="text" name="usaIcones" value="${(params.usaIcones!'N')}"/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h4>URLs dos cards</h4>
|
|
||||||
<div class="form-group"><label>Cadastro de Produtos</label>
|
|
||||||
<input type="text" name="urlCadastroProdutos" value="${(params.urlCadastroProdutos!'#/cadastro-produtos')}"/>
|
|
||||||
</div>
|
|
||||||
<div class="form-group"><label>Solicitação de Compras</label>
|
|
||||||
<input type="text" name="urlSolicitacao" value="${(params.urlSolicitacao!'#/solicitacao-compras')}"/>
|
|
||||||
</div>
|
|
||||||
<div class="form-group"><label>Cotações</label>
|
|
||||||
<input type="text" name="urlCotacoes" value="${(params.urlCotacoes!'#/cotacoes')}"/>
|
|
||||||
</div>
|
|
||||||
<div class="form-group"><label>Pedidos</label>
|
|
||||||
<input type="text" name="urlPedidos" value="${(params.urlPedidos!'#/pedidos-compras')}"/>
|
|
||||||
</div>
|
|
||||||
<div class="form-group"><label>Notas Fiscais</label>
|
|
||||||
<input type="text" name="urlNotas" value="${(params.urlNotas!'#/notas-fiscais')}"/>
|
|
||||||
</div>
|
|
||||||
<div class="form-group"><label>Parâmetros</label>
|
|
||||||
<input type="text" name="urlParametros" value="${(params.urlParametros!'#/parametros')}"/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h4>(Opcional) Caminho das imagens</h4>
|
|
||||||
<div class="form-group"><label>Icone Cadastro</label>
|
|
||||||
<input type="text" name="iconCadastroProdutos" value="${(params.iconCadastroProdutos!'')}"/>
|
|
||||||
</div>
|
|
||||||
<div class="form-group"><label>Icone Solicitação</label>
|
|
||||||
<input type="text" name="iconSolicitacao" value="${(params.iconSolicitacao!'')}"/>
|
|
||||||
</div>
|
|
||||||
<div class="form-group"><label>Icone Cotações</label>
|
|
||||||
<input type="text" name="iconCotacoes" value="${(params.iconCotacoes!'')}"/>
|
|
||||||
</div>
|
|
||||||
<div class="form-group"><label>Icone Pedidos</label>
|
|
||||||
<input type="text" name="iconPedidos" value="${(params.iconPedidos!'')}"/>
|
|
||||||
</div>
|
|
||||||
<div class="form-group"><label>Icone Notas</label>
|
|
||||||
<input type="text" name="iconNotas" value="${(params.iconNotas!'')}"/>
|
|
||||||
</div>
|
|
||||||
<div class="form-group"><label>Icone Parâmetros</label>
|
|
||||||
<input type="text" name="iconParametros" value="${(params.iconParametros!'')}"/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//forms/7690\ -\ Aniversariantes/kit_aniversariantes.html=UTF-8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_es.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/view.ftl=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/webapp/resources/css/cards_compras.css=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/webapp/resources/images/icon.png=utf8
|
|
||||||
@ -1 +0,0 @@
|
|||||||
/*insira aqui seu código CSS*/
|
|
||||||
@ -1,96 +0,0 @@
|
|||||||
function defineStructure() {
|
|
||||||
dataset.addColumn("codigo");
|
|
||||||
dataset.addColumn("descricao");
|
|
||||||
dataset.addColumn("CNPJ");
|
|
||||||
dataset.addColumn("ENDERECO");
|
|
||||||
dataset.addColumn("COMPLEMENTO");
|
|
||||||
dataset.addColumn("BAIRRO");
|
|
||||||
dataset.addColumn("CIDADE");
|
|
||||||
dataset.addColumn("ESTADO");
|
|
||||||
dataset.addColumn("CEP");
|
|
||||||
dataset.addColumn("CODIGO MUNICIPIO");
|
|
||||||
dataset.addColumn("BPCS");
|
|
||||||
dataset.addColumn("LOJA");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function onSync(lastSyncDate) {}
|
|
||||||
|
|
||||||
function createDataset(fields, constraints, sortFields) {
|
|
||||||
var dataset = DatasetBuilder.newDataset();
|
|
||||||
var dataSource = "/jdbc/ProtheusP12"; // Nome da conexão cadastrada no Fluig
|
|
||||||
var ic = new javax.naming.InitialContext();
|
|
||||||
var ds = ic.lookup(dataSource);
|
|
||||||
var conn = ds.getConnection();
|
|
||||||
var stmt = null;
|
|
||||||
var rs = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
log.info("Iniciando execução do dataset...");
|
|
||||||
|
|
||||||
var sql = "SELECT M0_CODFIL, M0_FILIAL, M0_CGC, M0_ENDENT, M0_COMPENT, M0_BAIRENT, M0_CIDENT, M0_ESTENT, M0_CEPENT, M0_CODMUN, M0_TEL_PO, * from SYS_COMPANY WHERE M0_CODFIL LIKE '0101%' OR M0_CODFIL LIKE'03%' AND D_E_L_E_T_= ''";
|
|
||||||
log.info("Query SQL: " + sql);
|
|
||||||
|
|
||||||
stmt = conn.prepareStatement(sql);
|
|
||||||
rs = stmt.executeQuery();
|
|
||||||
|
|
||||||
dataset.addColumn("CODIGO");
|
|
||||||
dataset.addColumn("DESCRICAO");
|
|
||||||
dataset.addColumn("CNPJ");
|
|
||||||
dataset.addColumn("ENDERECO");
|
|
||||||
dataset.addColumn("COMPLEMENTO");
|
|
||||||
dataset.addColumn("BAIRRO");
|
|
||||||
dataset.addColumn("CIDADE");
|
|
||||||
dataset.addColumn("ESTADO");
|
|
||||||
dataset.addColumn("CEP");
|
|
||||||
dataset.addColumn("CODIGO MUNICIPIO");
|
|
||||||
dataset.addColumn("BPCS");
|
|
||||||
dataset.addColumn("LOJA");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var encontrados = {}; // Usando um objeto para evitar duplicação
|
|
||||||
|
|
||||||
while (rs.next()) {
|
|
||||||
var codigo = rs.getString("M0_CODFIL");
|
|
||||||
var descricao = rs.getString("M0_FILIAL");
|
|
||||||
var cnpj = rs.getString("M0_CGC");
|
|
||||||
var endereco = rs.getString("M0_ENDENT");
|
|
||||||
var complemento = rs.getString("M0_COMPENT");
|
|
||||||
var bairro = rs.getString("M0_BAIRENT");
|
|
||||||
var cidade = rs.getString("M0_CIDENT");
|
|
||||||
var estado = rs.getString("M0_ESTENT");
|
|
||||||
var cep = rs.getString("M0_CEPENT");
|
|
||||||
var ibge = rs.getString("M0_CODMUN");
|
|
||||||
var bpcs = rs.getString("M0_TEL_PO");
|
|
||||||
// aqui monta a coluna nova
|
|
||||||
var loja = (bpcs ? bpcs : "") + " - " + (descricao ? descricao : "");
|
|
||||||
|
|
||||||
|
|
||||||
if (!encontrados[codigo]) { // Verifica se já foi adicionado
|
|
||||||
encontrados[codigo] = true; // Marca como processado
|
|
||||||
log.info("Registro encontrado: " + codigo + " - " + descricao);
|
|
||||||
dataset.addRow([codigo, descricao,cnpj,endereco,complemento,bairro,cidade,estado,cep,ibge, bpcs, loja]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.keys(encontrados).length === 0) {
|
|
||||||
log.info("Nenhum registro encontrado para a consulta.");
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao executar dataset: " + e.message);
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (rs) rs.close();
|
|
||||||
if (stmt) stmt.close();
|
|
||||||
if (conn) conn.close();
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao fechar recursos: " + e.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return dataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onMobileSync(user) {}
|
|
||||||
@ -1,96 +0,0 @@
|
|||||||
function defineStructure() {
|
|
||||||
dataset.addColumn("codigo");
|
|
||||||
dataset.addColumn("descricao");
|
|
||||||
dataset.addColumn("CNPJ");
|
|
||||||
dataset.addColumn("ENDERECO");
|
|
||||||
dataset.addColumn("COMPLEMENTO");
|
|
||||||
dataset.addColumn("BAIRRO");
|
|
||||||
dataset.addColumn("CIDADE");
|
|
||||||
dataset.addColumn("ESTADO");
|
|
||||||
dataset.addColumn("CEP");
|
|
||||||
dataset.addColumn("CODIGO MUNICIPIO");
|
|
||||||
dataset.addColumn("BPCS");
|
|
||||||
dataset.addColumn("LOJA");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function onSync(lastSyncDate) {}
|
|
||||||
|
|
||||||
function createDataset(fields, constraints, sortFields) {
|
|
||||||
var dataset = DatasetBuilder.newDataset();
|
|
||||||
var dataSource = "/jdbc/ProtheusP12"; // Nome da conexão cadastrada no Fluig
|
|
||||||
var ic = new javax.naming.InitialContext();
|
|
||||||
var ds = ic.lookup(dataSource);
|
|
||||||
var conn = ds.getConnection();
|
|
||||||
var stmt = null;
|
|
||||||
var rs = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
log.info("Iniciando execução do dataset...");
|
|
||||||
|
|
||||||
var sql = "SELECT M0_CODFIL, M0_FILIAL, M0_CGC, M0_ENDENT, M0_COMPENT, M0_BAIRENT, M0_CIDENT, M0_ESTENT, M0_CEPENT, M0_CODMUN, M0_TEL_PO, * from SYS_COMPANY WHERE M0_CODFIL LIKE '0101%' OR M0_CODFIL LIKE'03%' AND D_E_L_E_T_= ''";
|
|
||||||
log.info("Query SQL: " + sql);
|
|
||||||
|
|
||||||
stmt = conn.prepareStatement(sql);
|
|
||||||
rs = stmt.executeQuery();
|
|
||||||
|
|
||||||
dataset.addColumn("CODIGO");
|
|
||||||
dataset.addColumn("DESCRICAO");
|
|
||||||
dataset.addColumn("CNPJ");
|
|
||||||
dataset.addColumn("ENDERECO");
|
|
||||||
dataset.addColumn("COMPLEMENTO");
|
|
||||||
dataset.addColumn("BAIRRO");
|
|
||||||
dataset.addColumn("CIDADE");
|
|
||||||
dataset.addColumn("ESTADO");
|
|
||||||
dataset.addColumn("CEP");
|
|
||||||
dataset.addColumn("CODIGO MUNICIPIO");
|
|
||||||
dataset.addColumn("BPCS");
|
|
||||||
dataset.addColumn("LOJA");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var encontrados = {}; // Usando um objeto para evitar duplicação
|
|
||||||
|
|
||||||
while (rs.next()) {
|
|
||||||
var codigo = rs.getString("M0_CODFIL");
|
|
||||||
var descricao = rs.getString("M0_FILIAL");
|
|
||||||
var cnpj = rs.getString("M0_CGC");
|
|
||||||
var endereco = rs.getString("M0_ENDENT");
|
|
||||||
var complemento = rs.getString("M0_COMPENT");
|
|
||||||
var bairro = rs.getString("M0_BAIRENT");
|
|
||||||
var cidade = rs.getString("M0_CIDENT");
|
|
||||||
var estado = rs.getString("M0_ESTENT");
|
|
||||||
var cep = rs.getString("M0_CEPENT");
|
|
||||||
var ibge = rs.getString("M0_CODMUN");
|
|
||||||
var bpcs = rs.getString("M0_TEL_PO");
|
|
||||||
// aqui monta a coluna nova
|
|
||||||
var loja = (bpcs ? bpcs : "") + "-" + (descricao ? descricao : "");
|
|
||||||
|
|
||||||
|
|
||||||
if (!encontrados[codigo]) { // Verifica se já foi adicionado
|
|
||||||
encontrados[codigo] = true; // Marca como processado
|
|
||||||
log.info("Registro encontrado: " + codigo + " - " + descricao);
|
|
||||||
dataset.addRow([codigo, descricao,cnpj,endereco,complemento,bairro,cidade,estado,cep,ibge, bpcs, loja]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.keys(encontrados).length === 0) {
|
|
||||||
log.info("Nenhum registro encontrado para a consulta.");
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao executar dataset: " + e.message);
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (rs) rs.close();
|
|
||||||
if (stmt) stmt.close();
|
|
||||||
if (conn) conn.close();
|
|
||||||
} catch (e) {
|
|
||||||
log.error("Erro ao fechar recursos: " + e.message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return dataset;
|
|
||||||
}
|
|
||||||
|
|
||||||
function onMobileSync(user) {}
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
<div id="compras_edit_${instanceId}" class="super-widget wcm-widget-class"
|
|
||||||
data-params="ComprasDigitalEdit.instance()">
|
|
||||||
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading"><b>Configurar cartões</b></div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<p>Informe os cartões em <b>JSON</b> (title, text, href, icon, target).</p>
|
|
||||||
<textarea id="cd-cards-${instanceId}" class="form-control" rows="12">${cards!''}</textarea>
|
|
||||||
<div style="margin-top:10px">
|
|
||||||
<button class="btn btn-primary" data-save>Salvar</button>
|
|
||||||
<button class="btn btn-default" data-fill-example>Preencher exemplo</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script type="text/javascript" src="/webdesk/vcXMLRPC?widgetID=${widgetId}&file=resources/js/cd-edit.js"></script>
|
|
||||||
<link rel="stylesheet" type="text/css" href="/webdesk/vcXMLRPC?widgetID=${widgetId}&file=resources/css/cd.css"/>
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
var MyWidget = SuperWidget.extend({
|
|
||||||
//variáveis da widget
|
|
||||||
variavelNumerica: null,
|
|
||||||
variavelCaracter: null,
|
|
||||||
|
|
||||||
//método iniciado quando a widget é carregada
|
|
||||||
init: function() {
|
|
||||||
},
|
|
||||||
|
|
||||||
//BIND de eventos
|
|
||||||
bindings: {
|
|
||||||
local: {
|
|
||||||
'execute': ['click_executeAction']
|
|
||||||
},
|
|
||||||
global: {}
|
|
||||||
},
|
|
||||||
|
|
||||||
executeAction: function(htmlElement, event) {
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
eclipse.preferences.version=1
|
|
||||||
encoding//forms/7690\ -\ Aniversariantes/kit_aniversariantes.html=UTF-8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/application.info=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_en_US.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_es.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/cards_compras_pt_BR.properties=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/edit.ftl=utf8
|
|
||||||
encoding//wcm/widget/cards_compras/src/main/resources/view.ftl=utf8
|
|
||||||
@ -1,67 +0,0 @@
|
|||||||
<!-- Cabeçalho da página -->
|
|
||||||
<div class="cd-wrap">
|
|
||||||
<h2 class="cd-h2">Compras Digital</h2>
|
|
||||||
<p class="cd-sub">Solução para simplificar e otimizar a aquisição de produtos e serviços.</p>
|
|
||||||
|
|
||||||
<div class="cd-grid">
|
|
||||||
<!-- 1. Cadastro de Produtos -->
|
|
||||||
<a class="cd-card" href="/portal/p/1/pageprocessstart?processId=CadastroProdutos">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-box fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Cadastro de Produtos</div>
|
|
||||||
<div class="cd-txt">Adicione e gerencie produtos de maneira centralizada.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- 2. Solicitação de Compras (exemplo iniciando processo) -->
|
|
||||||
<a class="cd-card" href="/portal/p/1/pageprocessstart?processId=Solicita%C3%A7%C3%A3o%20de%20compras%20-%20v2">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-cart fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Solicitação de Compras</div>
|
|
||||||
<div class="cd-txt">Faça suas solicitações de forma rápida e eficiente.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- 3. Cotações (aponte para sua página/processo de cotação) -->
|
|
||||||
<a class="cd-card" href="/portal/p/1/pagina-cotacoes">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-money fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Cotações</div>
|
|
||||||
<div class="cd-txt">Compare orçamentos e encontre as melhores ofertas.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- 4. Pedidos de Compras (lista/relatório ou processo) -->
|
|
||||||
<a class="cd-card" href="/portal/p/1/pageworkflowview">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-check fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Pedidos de Compras</div>
|
|
||||||
<div class="cd-txt">Acompanhe e confirme pedidos de compra.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- 5. Notas Fiscais (aponte ao seu app/relatório) -->
|
|
||||||
<a class="cd-card" href="/portal/p/1/ecmnavigator">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-document-alt fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Notas Fiscais</div>
|
|
||||||
<div class="cd-txt">Simplifique a entrada e conferência de NFs.</div>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<!-- 6. Parâmetros (config do seu app) -->
|
|
||||||
<a class="cd-card" href="/portal/p/1/pagina-parametros">
|
|
||||||
<div class="cd-illus"><i class="fluigicon fluigicon-cog fluigicon-3x"></i></div>
|
|
||||||
<div class="cd-ttl">Parâmetros</div>
|
|
||||||
<div class="cd-txt">Personalize as configurações conforme a necessidade.</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.cd-wrap{max-width:1200px;margin:0 auto;padding:24px}
|
|
||||||
.cd-h2{margin:0 0 6px;font-weight:700;font-size:24px}
|
|
||||||
.cd-sub{margin:0 0 22px;color:#6b7280}
|
|
||||||
.cd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
|
|
||||||
.cd-card{display:block;background:#fff;border-radius:14px;padding:22px;text-decoration:none;color:#111827;
|
|
||||||
box-shadow:0 1px 3px rgba(0,0,0,.08);min-height:210px;transition:transform .15s ease, box-shadow .15s ease}
|
|
||||||
.cd-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.12)}
|
|
||||||
.cd-illus{width:120px;height:120px;border-radius:60px;background:#f3f4f6;margin:0 auto 12px;
|
|
||||||
display:flex;align-items:center;justify-content:center}
|
|
||||||
.cd-ttl{text-align:center;font-weight:700;margin-bottom:6px}
|
|
||||||
.cd-txt{text-align:center;color:#6b7280;font-size:13px}
|
|
||||||
/* garante boa leitura no tema escuro */
|
|
||||||
body.dark .cd-card{background:#1f2937;color:#e5e7eb}
|
|
||||||
body.dark .cd-illus{background:#111827}
|
|
||||||
body.dark .cd-txt{color:#9ca3af}
|
|
||||||
</style>
|
|
||||||
@ -1,41 +0,0 @@
|
|||||||
<#import "/wcm.ftl" as wcm />
|
|
||||||
|
|
||||||
<#-- Variaveis globais para os layouts -->
|
|
||||||
<#import "/layout-globals.ftl" as globals />
|
|
||||||
|
|
||||||
<!-- layout ECM-DEFAULT-DASHBOARD -->
|
|
||||||
|
|
||||||
<#if pageRender.isPreviewMode() = true>
|
|
||||||
<@wcm.previewPageAlert />
|
|
||||||
<@wcm.deviceTogglePreview />
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div class="wcm-wrapper-content ${wcmLayoutEditClass!""} ${pageAuthTypeClass!""}">
|
|
||||||
|
|
||||||
<#if pageRender.isEditMode() != true>
|
|
||||||
<@wcm.header />
|
|
||||||
<@wcm.menu />
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div class="wcm-all-content">
|
|
||||||
|
|
||||||
<div id="wcm-content" class="clearfix wcm-background">
|
|
||||||
|
|
||||||
<#if pageRender.isEditMode() = true>
|
|
||||||
<@wcm.editHeader />
|
|
||||||
<@wcm.widgetsList />
|
|
||||||
</#if>
|
|
||||||
|
|
||||||
<div id="${divMasterId!""}" class="clearfix">
|
|
||||||
|
|
||||||
<!-- Conteúdo aqui -->
|
|
||||||
|
|
||||||
|
|
||||||
<#if fluigThemeCode != "responsive_theme">
|
|
||||||
<@wcm.footer layoutuserlabel="wcm.layoutdefaultecmdashboard.user" />
|
|
||||||
</#if>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
application.title=Hello World
|
|
||||||
application.description=Hello World
|
|
||||||
hello.example.hello=Hello World!
|
|
||||||
hello.example.helloedit=Hello World! (Edit)
|
|
||||||
hello.button.showMessage=Show message
|
|
||||||
@ -1 +0,0 @@
|
|||||||
application.title=applicationTitle
|
|
||||||
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