From c5ce66cf391502ec93b0f6676b9c5163e41880b5 Mon Sep 17 00:00:00 2001 From: Lucas Date: Fri, 17 Aug 2018 09:01:53 -0300 Subject: [PATCH] 1609 - DRE --- 03 - Painéis/CADASTRO - Operacoes.xml | 248 +++++++++++++++++++-- 03 - Painéis/CADASTRO - Socio.xml | 84 ++++--- 03 - Painéis/CADASTRO - Sub_Categoria.xml | 2 +- 03 - Painéis/CADASTRO - Veiculos.xml | 2 +- 03 - Painéis/DRE.xml | 205 +++++++++++++++++ 03 - Painéis/LANÇAMENTO - Despesas.xml | 2 +- 6 files changed, 496 insertions(+), 47 deletions(-) create mode 100644 03 - Painéis/DRE.xml 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 @@ + + +
+ Lançar Valor + Geral X Dia + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NOME + + + + + + + + + + + + + + + + + + + + + + + + INDICADOR + + + + + + + + + + + + + + + + + +
+
\ 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