diff --git a/03 - Painéis/CADASTRO - Operacoes.xml b/03 - Painéis/CADASTRO - Operacoes.xml
index 1a3269f..39d3d38 100644
--- a/03 - Painéis/CADASTRO - Operacoes.xml
+++ b/03 - Painéis/CADASTRO - Operacoes.xml
@@ -43,7 +43,8 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.java.util.Calendar);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
- importClass(Packages.com.vaadin.ui.Notification);
+ importClass(Packages.com.vaadin.ui.Notification);
+ importClass(Packages.com.vaadin.server.FontAwesome);
var getDataAtual = function() {
@@ -62,6 +63,10 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncLimpaCampos(config);
+ engine.getField('percentualSocio')['setValue(java.lang.String)'](null);
+ engine.getField('socioLista').getContainerDataSource().removeAllItems();
+ engine.getField('socioPercentual').getContainerDataSource().removeAllItems();
+ engine.getField('twinUsuario')["setValue(java.lang.Object)"](null);
};
var habilitaCampos = function(lHabilita){
@@ -113,6 +118,21 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
var config = engine.getGlobalVariable('config');
var lib = libService.loadScript('lib_cadastro_padrao');
var sql = lib.fncCarregarCampos(config, id);
+ var sql = "Select s.nome, os.participacao from operacao_socio os inner join operacao o on o.codigo = os.codigo_operacao inner join socios s on s.codigo = os.codigo_socio where os.codigo_operacao = " + id;
+ var db = libService.loadScript('db');
+ var dbVitruvio = new db('vitruvio');
+ var containerPercentual = engine.getField("socioPercentual").getContainerDataSource();
+ var containerSocio = engine.getField("socioLista").getContainerDataSource();
+ dbVitruvio.query(sql).each(function (r) {
+ containerSocio.addItem(r.nome).getItemProperty("caption").setValue(r.nome);
+ containerPercentual.addItem(r.nome).getItemProperty("caption").setValue(String(r.participacao));
+ });
+ sql = "Select codigo_usuario from operacao_usuario where codigo_operacao = " + id;
+ var ids = new java.util.ArrayList();
+ dbVitruvio.query(sql).each(function (r) {
+ ids.add(r.codigo_usuario);
+ });
+ engine.getField('twinUsuario').setValue(ids);
};
@@ -148,10 +168,14 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
- if (row.ct == 0) {
+ if (row.ct == 0 ) {
return false;
} else {
- return true
+ if (engine.getField('idChave').getValue()) {
+ return false;
+ } else {
+ return true;
+ }
}
}
@@ -170,6 +194,7 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
engine.setGlobalVariable('deletarRegistro', deletarRegistro);
engine.setGlobalVariable('validarDuplicidade', validarDuplicidade);
engine.setGlobalVariable('painelLista',1);
+ engine.getField('socioPercentual').setEnabled(false);
//fncLimpaCampos();
habilitaCampos(false);
@@ -178,6 +203,8 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
engine.getWidgetController('btnNovo').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.CRIAR));
engine.getWidgetController('btnExcluir').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.REMOVER));
engine.getWidgetController('btnVoltar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.VOLTAR));
+ engine.getWidgetController('btnPercentual').getButton().setIcon(FontAwesome.PLUS);
+ engine.getWidgetController('btnRemoverPercentual').getButton().setIcon(FontAwesome.MINUS);
//engine.getFieldLocked('idAjuda', false); // pode ser erro no componente, aberto caso Eduardo = 20108
telaInicial();
@@ -276,7 +303,7 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
engine.getGlobalVariable('carregarCampos')(id);
engine.getGlobalVariable('habilitaCampos')(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
- engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
+ engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
}
}, 'pencil');
@@ -385,12 +412,135 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
-
+
+
+
+
+
+
+
+
+
+
+
+
+ NOME
+ NOME
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ USUARIO_ID
+ NOME
+
+
+
+
-
@@ -404,14 +554,79 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
if (engine.getGlobalVariable('validarDuplicidade')(engine.getField('idDescricao').getValue())) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe uma operação cadastrada com este nome.');
} else {
- var config = engine.getGlobalVariable('config');
- var id = engine.getField('idChave').getConvertedValue();
- var lib = libService.loadScript('lib_cadastro_padrao');
- var retorno = lib.fncGravarRegistro(config, id);
-
- if (retorno) {
- engine.getGlobalVariable('fncLimpaCampos')();
- }
+ var containerSocio = engine.getField("socioLista").getContainerDataSource();
+ var containerPercentual = engine.getField("socioPercentual").getContainerDataSource();
+ var ids = engine.getField('socioLista').getContainerDataSource().getItemIds();
+ var iter = ids.iterator();
+ var total = 0.00;
+ while (iter.hasNext()) {
+ var value = iter.next();
+ total = parseFloat(total) + parseFloat(String(engine.getField('socioPercentual').getContainerDataSource().getItem(value)).replace(',','.'));
+ }
+
+ if (total != 100.00) {
+ MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Percentual deve ser igual a 100%.');
+ } else {
+
+ var config = engine.getGlobalVariable('config');
+ var id = engine.getField('idChave').getConvertedValue();
+ var lib = libService.loadScript('lib_cadastro_padrao');
+ var retorno = lib.fncGravarRegistro(config, id);
+
+ var db = libService.loadScript('db');
+ var dbVitruvio = new db('vitruvio');
+ var sql;
+ var socio;
+ var percentual;
+ var iter2 = ids.iterator();
+
+ dbVitruvio.transaction(function() {
+ sql = "delete from operacao_socio where codigo_operacao = :operacao";
+ this.update(sql, {
+ operacao: Number(retorno)
+ });
+ });
+
+ while (iter2.hasNext()) {
+ var value = iter2.next();
+ var row = dbVitruvio.queryRow("Select codigo from socios where nome = '" + String(engine.getField('socioLista').getContainerDataSource().getItem(value)) + "'");
+ if (row.codigo) {
+ socio = row.codigo
+ }
+ percentual = parseFloat(String(engine.getField('socioPercentual').getContainerDataSource().getItem(value)).replace(',','.'));
+ dbVitruvio.transaction(function() {
+ sql = "insert into operacao_socio (codigo,codigo_operacao,codigo_socio,participacao) values (" + dbVitruvio.getSequenceNextValSql('operacao_socios_seq') + ",:operacao,:socio,:participacao)";
+ this.update(sql, {
+ operacao: Number(retorno),
+ socio: Number(socio),
+ participacao: percentual
+ });
+ });
+ }
+
+ dbVitruvio.transaction(function() {
+ sql = "delete from operacao_usuario where codigo_operacao = :operacao";
+ this.update(sql, {
+ operacao: Number(retorno)
+ });
+ });
+
+ var u = engine.getField('twinUsuario').getValue();
+ var i = u.iterator();
+ while (i.hasNext()) {
+ dbVitruvio.transaction(function() {
+ sql = "insert into operacao_usuario (codigo,codigo_operacao,codigo_usuario) values (" + dbVitruvio.getSequenceNextValSql('operacao_usuario_seq') + ",:operacao,:usuario)";
+ this.update(sql, {
+ operacao: Number(retorno),
+ usuario: Number(i.next())
+ });
+ });
+ }
+
+ if (retorno) {
+ engine.getGlobalVariable('fncLimpaCampos')();
+ }
+ }
}
}
}
@@ -422,8 +637,9 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
diff --git a/03 - Painéis/CADASTRO - Socio.xml b/03 - Painéis/CADASTRO - Socio.xml
index 5278264..4f42cd5 100644
--- a/03 - Painéis/CADASTRO - Socio.xml
+++ b/03 - Painéis/CADASTRO - Socio.xml
@@ -12,12 +12,14 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
"nome" : "socios" ,
"sequence" : "socio_seq" ,
"idTabela" : "CODIGO",
- "campos" : ["CODIGO", "NOME" ],
- "camposTable" : ["CODIGO", "NOME" ]
+ "campos" : ["CODIGO", "NOME", "PERCENTUAL_PARTICIPACAO" ],
+ "camposTable" : ["CODIGO", "NOME", "PERCENTUAL_PARTICIPACAO" ],
+ "condicao" : "CODIGO > 0"
},
"relaciona" : [ ["CODIGO","idChave","Number"] ,
- ["NOME","idDescricao","String"]
+ ["NOME","idDescricao","String"],
+ ["PERCENTUAL_PARTICIPACAO","idParticipacao","Number" ]
] ,
"validacaoExclusao" : [ ["SELECT 0 AS CONTAR FROM SOCIOS WHERE CODIGO = ", "Existem registros ligados a esta tabela"],
["SELECT COUNT(CHAVE_RESPONSAVEL) AS CONTAR FROM CONTROLE_DESPESAS_PESSOAIS WHERE CHAVE_RESPONSAVEL = ", "Existem registros ligados a esta tabela."]
@@ -152,6 +154,18 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
return true
}
}
+
+ var validarPercentual = function(id) {
+ var sql = "Select sum(percentual_participacao) ct from socios where codigo <> " + id;
+ var db = libService.loadScript('db');
+ var dbVitruvio = new db('vitruvio');
+ var row = dbVitruvio.queryRow(sql);
+ if ((parseFloat(row.ct) + parseFloat(engine.getField('idParticipacao').getValue())) > 100) {
+ return false;
+ } else {
+ return true
+ }
+ }
function run() {
@@ -168,6 +182,7 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
engine.setGlobalVariable('deletarRegistro', deletarRegistro);
engine.setGlobalVariable('validarDuplicidade', validarDuplicidade);
engine.setGlobalVariable('painelLista',1);
+ engine.setGlobalVariable('validarPercentual',validarPercentual);
habilitaCampos(false);
@@ -206,18 +221,21 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
var getSql = function() {
- var config = { "tabela" :
- {
- "conexao" : "vitruvio",
- "nome" : "socios" ,
- "sequence" : "socio_seq" ,
- "idTabela" : "CODIGO",
- "campos" : ["CODIGO", "NOME" ],
- "camposTable" : ["CODIGO", "NOME" ]
- },
- "relaciona" : [ ["CODIGO","idChave","Number"] ,
- ["NOME","idDescricao","String"]
- ] ,
+ var config = { "tabela" :
+ {
+ "conexao" : "vitruvio",
+ "nome" : "socios" ,
+ "sequence" : "socio_seq" ,
+ "idTabela" : "CODIGO",
+ "campos" : ["CODIGO", "NOME", "PERCENTUAL_PARTICIPACAO" ],
+ "camposTable" : ["CODIGO", "NOME", "PERCENTUAL_PARTICIPACAO" ],
+ "condicao" : "CODIGO > 0"
+
+ },
+ "relaciona" : [ ["CODIGO","idChave","Number"] ,
+ ["NOME","idDescricao","String"],
+ ["PERCENTUAL_PARTICIPACAO","idParticipacao","Number"]
+ ] ,
"validacaoExclusao" :
[ ["SELECT 0 AS CONTAR FROM SOCIOS WHERE CODIGO = ", "Existem registros ligados a esta tabela"],
@@ -343,7 +361,7 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
0
]]>
@@ -351,7 +369,7 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
0 ORDER BY codigo
]]>
CODIGO
@@ -379,8 +397,10 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
-
-
+
+
+
+
@@ -399,15 +419,23 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
if (engine.isValid()) {
if ((engine.getGlobalVariable('validarDuplicidade')(engine.getField('idDescricao').getValue())) && (!engine.getField('idChave').getValue())) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe um sócio cadastrado com este nome.');
- } else {
- var config = engine.getGlobalVariable('config');
- var id = engine.getField('idChave').getConvertedValue();
- var lib = libService.loadScript('lib_cadastro_padrao');
- var retorno = lib.fncGravarRegistro(config, id);
-
- if (retorno) {
- engine.getGlobalVariable('fncLimpaCampos')();
- }
+ } else {
+ var socio = engine.getField('idChave').getValue();
+ if (!socio) {
+ socio = 0;
+ }
+ if (engine.getGlobalVariable('validarPercentual')(socio)) {
+ var config = engine.getGlobalVariable('config');
+ var id = engine.getField('idChave').getConvertedValue();
+ var lib = libService.loadScript('lib_cadastro_padrao');
+ var retorno = lib.fncGravarRegistro(config, id);
+
+ if (retorno) {
+ engine.getGlobalVariable('fncLimpaCampos')();
+ }
+ } else {
+ MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Percentual de participação dos sócios ultrapassa 100%.');
+ }
}
}
}
diff --git a/03 - Painéis/CADASTRO - Sub_Categoria.xml b/03 - Painéis/CADASTRO - Sub_Categoria.xml
index 060322e..71ba27b 100644
--- a/03 - Painéis/CADASTRO - Sub_Categoria.xml
+++ b/03 - Painéis/CADASTRO - Sub_Categoria.xml
@@ -412,7 +412,7 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
function run() {
if (engine.isValid()) {
if (engine.getGlobalVariable('validarDuplicidade')(engine.getField('idDescricao').getValue())) {
- MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe uma operação cadastrada com este nome.');
+ MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe uma sub-categoria cadastrada com este nome.');
} else {
var config = engine.getGlobalVariable('config');
var id = engine.getField('idChave').getConvertedValue();
diff --git a/03 - Painéis/CADASTRO - Veiculos.xml b/03 - Painéis/CADASTRO - Veiculos.xml
index 7fa7d1d..fd597d8 100644
--- a/03 - Painéis/CADASTRO - Veiculos.xml
+++ b/03 - Painéis/CADASTRO - Veiculos.xml
@@ -410,7 +410,7 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
function run() {
if (engine.isValid()) {
if (engine.getGlobalVariable('validarDuplicidade')(engine.getField('idPlaca').getValue())) {
- MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe uma operação cadastrada com este nome.');
+ MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe um veículo cadastrado com este nome.');
} else {
var config = engine.getGlobalVariable('config');
var id = engine.getField('idChave').getConvertedValue();
diff --git a/03 - Painéis/DRE.xml b/03 - Painéis/DRE.xml
new file mode 100644
index 0000000..61cae89
--- /dev/null
+++ b/03 - Painéis/DRE.xml
@@ -0,0 +1,205 @@
+
+
+
+
\ No newline at end of file
diff --git a/03 - Painéis/LANÇAMENTO - Despesas.xml b/03 - Painéis/LANÇAMENTO - Despesas.xml
index f03793b..5c9d6ed 100644
--- a/03 - Painéis/LANÇAMENTO - Despesas.xml
+++ b/03 - Painéis/LANÇAMENTO - Despesas.xml
@@ -272,7 +272,7 @@
CODIGO
- NOME
+ RAZAO_SOCIAL