2254 - Incluir Estado de Origem na aba de Impostos

Outra tarefa também vinculada a este painel:
2255 - Criar uma lista para os valores de frete;
This commit is contained in:
Ana Elisa dos Santos
2019-02-22 12:15:29 +00:00
parent 58d3392b8e
commit a26f0fa1d0
+467 -282
View File
@@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd"> xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd">
<form formKey="formCadastroPadrao" height="100%" width="100%"> <form formKey="formCadastroPadrao" height="100%" width="100%">
@@ -13,11 +12,12 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
"nome" : "CLIENTES" , "nome" : "CLIENTES" ,
"sequence" : "CLIENTES_SEQ" , "sequence" : "CLIENTES_SEQ" ,
"idTabela" : "CODIGO", "idTabela" : "CODIGO",
"campos" : ["CODIGO", "NOME" ], "campos" : ["CODIGO", "NOME", "INATIVO" ],
"camposTable" : ["CODIGO", "DESCRICAO"] "camposTable" : ["CODIGO", "DESCRICAO", "INATIVO"]
}, },
"relaciona" : [ ["CODIGO","idChave","Number"] , "relaciona" : [ ["CODIGO","idChave","Number"] ,
["NOME","idDescricao","String"] ["NOME","idDescricao","String"] ,
["INATIVO","idInativo","Boolean"]
] , ] ,
"validacaoExclusao" : [ ["SELECT 0 AS CONTAR FROM CLIENTES WHERE CODIGO = ", "Existem registros ligados a esta tabela."], "validacaoExclusao" : [ ["SELECT 0 AS CONTAR FROM CLIENTES WHERE CODIGO = ", "Existem registros ligados a esta tabela."],
["SELECT COUNT(CHAVE_CLIENTE) AS CONTAR FROM CONTROLE_DESPESAS_OPERACIONAIS WHERE CHAVE_CLIENTE = ", "Existem registros ligados a esta tabela."], ["SELECT COUNT(CHAVE_CLIENTE) AS CONTAR FROM CONTROLE_DESPESAS_OPERACIONAIS WHERE CHAVE_CLIENTE = ", "Existem registros ligados a esta tabela."],
@@ -69,6 +69,10 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
engine.getField('socioPercentual').getContainerDataSource().removeAllItems(); engine.getField('socioPercentual').getContainerDataSource().removeAllItems();
engine.getField('pracaLista').getContainerDataSource().removeAllItems(); engine.getField('pracaLista').getContainerDataSource().removeAllItems();
engine.getField('pracaPercentual').getContainerDataSource().removeAllItems(); engine.getField('pracaPercentual').getContainerDataSource().removeAllItems();
engine.getField('pracaListaFrete').getContainerDataSource().removeAllItems();
engine.getField('pracaFrete').getContainerDataSource().removeAllItems();
engine.getField('twinUsuario')["setValue(java.lang.Object)"](null); engine.getField('twinUsuario')["setValue(java.lang.Object)"](null);
engine.getField('idPesquisaLista')['setValue(java.lang.String)'](null); engine.getField('idPesquisaLista')['setValue(java.lang.String)'](null);
}; };
@@ -110,6 +114,7 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false); engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true); engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
//engine.getWidgetController('btnVoltar').getButton().setVisible(true); //engine.getWidgetController('btnVoltar').getButton().setVisible(true);
engine.getField('idInativo').setValue(false);
engine.getField('idPesquisaLista')['setValue(java.lang.String)'](null); engine.getField('idPesquisaLista')['setValue(java.lang.String)'](null);
engine.getField('listaPrincipal').refresh(); engine.getField('listaPrincipal').refresh();
@@ -124,33 +129,50 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
var sql = lib.fncCarregarCampos(config, id); var sql = lib.fncCarregarCampos(config, id);
var sql = "Select s.nome, os.participacao from clientes_socio os inner join clientes o on o.codigo = os.codigo_cliente inner join socios s on s.codigo = os.codigo_socio where os.codigo_cliente = " + id; var sql = "Select s.nome, os.participacao from clientes_socio os inner join clientes o on o.codigo = os.codigo_cliente inner join socios s on s.codigo = os.codigo_socio where os.codigo_cliente = " + id;
var db = libService.loadScript('db'); var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio'); var dbVitruvio = new db('vitruvio');
var containerPercentual = engine.getField("socioPercentual").getContainerDataSource(); var containerPercentual = engine.getField("socioPercentual").getContainerDataSource();
var containerSocio = engine.getField("socioLista").getContainerDataSource(); var containerSocio = engine.getField("socioLista").getContainerDataSource();
dbVitruvio.query(sql).each(function (r) { dbVitruvio.query(sql).each(function (r) {
if (r.nome) { if (r.nome) {
containerSocio.addItem(r.nome).getItemProperty("caption").setValue(r.nome); containerSocio.addItem(r.nome).getItemProperty("caption").setValue(r.nome);
containerPercentual.addItem(r.nome).getItemProperty("caption").setValue(String(r.participacao)); containerPercentual.addItem(r.nome).getItemProperty("caption").setValue(String(r.participacao));
} }
}); });
sql = "Select codigo_usuario from clientes_usuario where codigo_cliente = " + id; sql = "Select codigo_usuario from clientes_usuario where codigo_cliente = " + id;
var ids = new java.util.ArrayList(); var ids = new java.util.ArrayList();
dbVitruvio.query(sql).each(function (r) { dbVitruvio.query(sql).each(function (r) {
if (r.codigo_usuario) { if (r.codigo_usuario) {
ids.add(r.codigo_usuario); ids.add(r.codigo_usuario);
} }
}); });
engine.getField('twinUsuario').setValue(ids); engine.getField('twinUsuario').setValue(ids);
var sql = "Select e.nome, os.chave_estado, os.percentual_impostos from clientes_praca os inner join estados e on e.chave_estado = os.chave_estado where os.chave_cliente = " + id; var sql = "Select (select nome from estados where chave_estado=os.chave_estado_origem) || ' - ' || (select nome from estados where chave_estado=os.chave_estado) as nome, ";
var containerPercentual = engine.getField("pracaPercentual").getContainerDataSource(); sql += " os.chave_estado, to_char(os.percentual_impostos,'999G999G999D99') as percentual_impostos from clientes_praca os where os.chave_cliente = " + id;
var containerSocio = engine.getField("pracaLista").getContainerDataSource(); var containerSocio = engine.getField("pracaLista").getContainerDataSource();
dbVitruvio.query(sql).each(function (r) { var containerPercentual = engine.getField("pracaPercentual").getContainerDataSource();
if (r.nome) {
containerSocio.addItem(r.nome).getItemProperty("caption").setValue(r.nome); dbVitruvio.query(sql).each(function (r) {
containerPercentual.addItem(r.nome).getItemProperty("caption").setValue(String(r.percentual_impostos)); if (r.nome) {
} containerSocio.addItem(r.nome).getItemProperty("caption").setValue(r.nome);
}); containerPercentual.addItem(r.nome).getItemProperty("caption").setValue(String(r.percentual_impostos));
}
});
//var sql = "Select chave_frete, descricao, to_char(os.valor_frete,'999G999G999D99') as valor_frete from clientes_frete os where os.chave_cliente = " + id;
var sql = "Select chave_frete, descricao, os.valor_frete::varchar from clientes_frete os where os.chave_cliente = " + id;
//var sql = "Select chave_frete, descricao, os.valor_frete from clientes_frete os where os.chave_cliente = " + id;
//var sql = "Select chave_frete, descricao, ltrim(to_char(os.valor_frete,'999G999G999D99'),' ') as valor_frete from clientes_frete os where os.chave_cliente = " + id;
var containerFreteLista = engine.getField("pracaListaFrete").getContainerDataSource();
var containerFrete = engine.getField("pracaFrete").getContainerDataSource();
dbVitruvio.query(sql).each(function (r) {
if (r.descricao) {
containerFreteLista.addItem(r.descricao).getItemProperty("caption").setValue(r.descricao);
//containerFrete.addItem(r.descricao).getItemProperty("caption").setValue(String(r.valor_frete));
containerFrete.addItem(r.descricao).getItemProperty("caption").setValue(r.valor_frete);
}
});
}; };
var telaInicial = function() { var telaInicial = function() {
@@ -166,7 +188,6 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
botaoSalvar.setVisible(false); botaoSalvar.setVisible(false);
botaoExcluir.setVisible(false); botaoExcluir.setVisible(false);
botaoVoltar.setVisible(false); botaoVoltar.setVisible(false);
} }
var deletarRegistro = function(id) { var deletarRegistro = function(id) {
@@ -225,7 +246,14 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
engine.getWidgetController('btnRemoverPercentual').getButton().setIcon(FontAwesome.MINUS); engine.getWidgetController('btnRemoverPercentual').getButton().setIcon(FontAwesome.MINUS);
engine.getWidgetController('btnPraca').getButton().setIcon(FontAwesome.PLUS); engine.getWidgetController('btnPraca').getButton().setIcon(FontAwesome.PLUS);
engine.getWidgetController('btnRemoverPraca').getButton().setIcon(FontAwesome.MINUS); engine.getWidgetController('btnRemoverPraca').getButton().setIcon(FontAwesome.MINUS);
engine.getWidgetController('btnFrete').getButton().setIcon(FontAwesome.PLUS);
engine.getWidgetController('btnFreteRemover').getButton().setIcon(FontAwesome.MINUS);
//engine.getFieldLocked('idAjuda', false); // pode ser erro no componente, aberto caso Eduardo = 20108 //engine.getFieldLocked('idAjuda', false); // pode ser erro no componente, aberto caso Eduardo = 20108
engine.getField('valorImpostos').setValue(0);
engine.getField('valorFrete').setValue(0);
telaInicial(); telaInicial();
} }
@@ -262,12 +290,13 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
"nome" : "clientes" , "nome" : "clientes" ,
"sequence" : "clientes_seq" , "sequence" : "clientes_seq" ,
"idTabela" : "CODIGO", "idTabela" : "CODIGO",
"campos" : ["CODIGO", "NOME"], "campos" : ["CODIGO", "NOME", "INATIVO"],
"camposTable" : ["CODIGO", "NOME"] "camposTable" : ["CODIGO", "NOME", "INATIVO"]
}, },
"relaciona" : "relaciona" :
[ ["CODIGO","idChave","Number"] [ ["CODIGO","idChave","Number"]
, ["NOME","idDescricao","String"] , ["NOME","idDescricao","String"]
, ["INATIVO","idInativo","Boolean"]
] , ] ,
"validacaoExclusao" : "validacaoExclusao" :
[ ["SELECT 0 AS CONTAR FROM clientes WHERE CODIGO = ", "Existem registros ligados a esta tabela."], [ ["SELECT 0 AS CONTAR FROM clientes WHERE CODIGO = ", "Existem registros ligados a esta tabela."],
@@ -319,11 +348,15 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
engine.getField('idChave').setValue(id); engine.getField('idChave').setValue(id);
if (id != null) { if (id != null) {
engine.setGlobalVariable('painelLista',0); engine.setGlobalVariable('painelLista',0);
engine.getGlobalVariable('carregarCampos')(id); engine.getGlobalVariable('carregarCampos')(id);
engine.getGlobalVariable('habilitaCampos')(true); engine.getGlobalVariable('habilitaCampos')(true);
engine.getLayout('pnlInclusao').getRootComposition().setVisible(true); engine.getLayout('pnlInclusao').getRootComposition().setVisible(true);
engine.getLayout('pnlTitulo').getRootComposition().setVisible(false); engine.getLayout('pnlTitulo').getRootComposition().setVisible(false);
engine.setGlobalVariable('persistirSocio', 0);
engine.setGlobalVariable('persistirImposto', 0);
engine.setGlobalVariable('persistirFrete', 0);
} }
}, 'pencil'); }, 'pencil');
@@ -395,15 +428,15 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
<datasource> <datasource>
<freeQuery connection-key="vitruvio"> <freeQuery connection-key="vitruvio">
<![CDATA[ <![CDATA[
SELECT * FROM clientes SELECT * FROM clientes ORDER BY NOME
]]> ]]>
</freeQuery> </freeQuery>
</datasource> </datasource>
<loadItemQuery> <loadItemQuery>
<![CDATA[ <![CDATA[
SELECT * SELECT *
FROM clientes FROM clientes
nome = ? ORDER BY codigo nome = ? ORDER BY NOME
]]> ]]>
</loadItemQuery> </loadItemQuery>
<key-field>CODIGO</key-field> <key-field>CODIGO</key-field>
@@ -429,10 +462,11 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
</events> </events>
</DBSearchField> </DBSearchField>
<HorizontalLayout spacing="true" width="100%" > <HorizontalLayout spacing="true" width="100%" >
<TextField type="number" id="idChave" width="100%" caption="Código" expandRatio="0.08" /> <TextField type="number" id="idChave" width="100%" caption="Código" expandRatio="0.08" />
<TextField type="string" id="idDescricao" text-transform="uppercase" caption="Descrição" required="true" width="100%" expandRatio="1" /> <TextField type="string" id="idDescricao" text-transform="uppercase" caption="Descrição" required="true" width="100%" expandRatio="1" />
<CheckBox id="idInativo" caption="Inativar" type="boolean" expandRatio="0.1"></CheckBox>
</HorizontalLayout> </HorizontalLayout>
<TabLayout compact="true" width="100%"> <TabLayout width="100%">
<Tab caption="Sócios"> <Tab caption="Sócios">
<VerticalLayout spacing="true" width="100%"> <VerticalLayout spacing="true" width="100%">
<Label id="lb1" > <Label id="lb1" >
@@ -459,36 +493,37 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox); importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() { function run() {
var containerPercentual = engine.getField("socioPercentual").getContainerDataSource(); var containerPercentual = engine.getField("socioPercentual").getContainerDataSource();
var containerSocio = engine.getField("socioLista").getContainerDataSource(); var containerSocio = engine.getField("socioLista").getContainerDataSource();
var ids = engine.getField('socioLista').getContainerDataSource().getItemIds(); var ids = engine.getField('socioLista').getContainerDataSource().getItemIds();
var iter = ids.iterator(); var iter = ids.iterator();
var total = 0.00; var total = 0.00;
var definido = 0; var definido = 0;
while (iter.hasNext()) { while (iter.hasNext()) {
var value = iter.next(); var value = iter.next();
if (engine.getField('socios').getValue() == value) { if (engine.getField('socios').getValue() == value) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'O sócio já possui percentual definido.'); MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'O sócio já possui percentual definido.');
definido = 1; definido = 1;
} }
total = parseFloat(total) + parseFloat(String(engine.getField('socioPercentual').getContainerDataSource().getItem(value)).replace(',','.')); total = parseFloat(total) + parseFloat(String(engine.getField('socioPercentual').getContainerDataSource().getItem(value)).replace(',','.'));
} }
if (engine.getField('socioPercentual').getContainerDataSource().getItem(value)) { if (engine.getField('socioPercentual').getContainerDataSource().getItem(value)) {
var valor = String(engine.getField('percentualSocio').getValue()); var valor = String(engine.getField('percentualSocio').getValue());
total = (parseFloat(total) + parseFloat(engine.getField('percentualSocio').getConvertedValue())); total = (parseFloat(total) + parseFloat(engine.getField('percentualSocio').getConvertedValue()));
} else { } else {
total = engine.getField('percentualSocio').getConvertedValue(); total = engine.getField('percentualSocio').getConvertedValue();
} }
if (definido == 0) { if (definido == 0) {
if (total <= 100.00) { if (total <= 100.00) {
containerSocio.addItem(engine.getField('socios').getValue()).getItemProperty("caption").setValue(engine.getField('socios').getValue()); containerSocio.addItem(engine.getField('socios').getValue()).getItemProperty("caption").setValue(engine.getField('socios').getValue());
containerPercentual.addItem(engine.getField('socios').getValue()).getItemProperty("caption").setValue(String(engine.getField('percentualSocio').getValue())); containerPercentual.addItem(engine.getField('socios').getValue()).getItemProperty("caption").setValue(String(engine.getField('percentualSocio').getValue()));
engine.getField('percentualSocio')['setValue(java.lang.String)'](null); engine.getField('percentualSocio')['setValue(java.lang.String)'](null);
engine.getField('socios')['setValue(java.lang.Object)'](null); engine.getField('socios')['setValue(java.lang.Object)'](null);
} else { engine.setGlobalVariable('persistirSocio', 1);
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Percentual não pode ultrapassar 100%.'); } else {
} MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Percentual não pode ultrapassar 100%.');
} }
}
} }
]]> ]]>
</onClickScript> </onClickScript>
@@ -502,12 +537,13 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
if (texto != '') { if (texto != '') {
try { try {
var container = engine.getField("socioLista").getContainerDataSource(); var container = engine.getField("socioLista").getContainerDataSource();
container.removeItem(texto); container.removeItem(texto);
var container2 = engine.getField("socioPercentual").getContainerDataSource(); var container2 = engine.getField("socioPercentual").getContainerDataSource();
container2.removeItem(texto); container2.removeItem(texto);
} catch(e) { engine.setGlobalVariable('persistirSocio', 1);
MessageBox.show('Alerta', 'Dados inválidos!'); } catch(e) {
} MessageBox.show('Alerta', 'Dados inválidos!');
}
} }
}; };
]]> ]]>
@@ -534,118 +570,212 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
</HorizontalLayout> </HorizontalLayout>
</VerticalLayout> </VerticalLayout>
</Tab> </Tab>
<Tab caption="Usuários" visible="false">
<VerticalLayout margin="false" width="100%" >
<Label id="lb2">
<value>
</value>
</Label>
<DBTwinColSelect type="number" id="twinUsuario" allowNullSelection="true" multivalue="true" width="70%" align="TOP_LEFT" >
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select usuario_id, nome from nauth.usuario where ativo = true
]]>
</freeQuery>
</datasource>
<key-field>USUARIO_ID</key-field>
<caption-field>NOME</caption-field>
</DBTwinColSelect>
</VerticalLayout>
</Tab>
<Tab caption="Impostos" visible="true" > <Tab caption="Impostos" visible="true" >
<VerticalLayout width="100%" margin="true" spacing="true" > <VerticalLayout width="100%" margin="true" spacing="true" >
<HorizontalLayout width="420" spacing="true" margin="false" > <HorizontalLayout width="100%" spacing="true" margin="false" >
<DBComboBox type="string" id="idPraca" caption="Praça" width="100%" expandRatio="0.8" allowNullSelection="true"> <DBComboBox type="string" id="idOrigem" caption="Estado de Origem" width="100%" expandRatio="0.8" allowNullSelection="true">
<datasource> <datasource>
<freeQuery connection-key="vitruvio"> <freeQuery connection-key="vitruvio">
<![CDATA[ <![CDATA[
Select * from estados Select * from estados ORDER BY NOME
]]> ]]>
</freeQuery> </freeQuery>
</datasource> </datasource>
<key-field>NOME</key-field> <key-field>NOME</key-field>
<caption-field>NOME</caption-field> <caption-field>NOME</caption-field>
</DBComboBox> </DBComboBox>
<DecimalField type="decimal" id="valorImpostos" caption="% Impostos" expandRatio="0.2" width="100%" maximumValue="100" maxLength="6" />
<ButtonWidget id="btnPraca" description="Adicionar praça" height="25" align="BOTTOM_LEFT" >
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() { <DBComboBox type="string" id="idPraca" caption="Estado de Destino" width="100%" expandRatio="0.8" allowNullSelection="true" >
var containerPercentual = engine.getField("pracaPercentual").getContainerDataSource(); <datasource>
var containerSocio = engine.getField("pracaLista").getContainerDataSource(); <freeQuery connection-key="vitruvio">
var ids = engine.getField('pracaLista').getContainerDataSource().getItemIds(); <![CDATA[
var iter = ids.iterator(); Select * from estados ORDER BY NOME
var total = 0.00; ]]>
var definido = 0; </freeQuery>
while (iter.hasNext()) { </datasource>
var value = iter.next(); <key-field>NOME</key-field>
if (engine.getField('idPraca').getValue() == value) { <caption-field>NOME</caption-field>
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'A praça já foi definida.'); </DBComboBox>
definido = 1;
}
total = parseFloat(total) + parseFloat(String(engine.getField('pracaPercentual').getContainerDataSource().getItem(value)).replace(',','.'));
}
if (engine.getField('pracaPercentual').getContainerDataSource().getItem(value)) {
var valor = String(engine.getField('valorImpostos').getValue());
total = (parseFloat(total) + parseFloat(engine.getField('valorImpostos').getConvertedValue()));
} else {
total = engine.getField('valorImpostos').getConvertedValue();
}
if (definido == 0) {
containerSocio.addItem(engine.getField('idPraca').getValue()).getItemProperty("caption").setValue(engine.getField('idPraca').getValue());
containerPercentual.addItem(engine.getField('idPraca').getValue()).getItemProperty("caption").setValue(String(engine.getField('valorImpostos').getValue()));
engine.getField('valorImpostos')['setValue(java.lang.String)'](null);
engine.getField('idPraca')['setValue(java.lang.Object)'](null);
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget id="btnRemoverPraca" description="Remover praça" height="25" align="BOTTOM_LEFT" >
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() {
var texto = engine.getField('pracaLista').getValue();
if (texto != '') {
try {
var container = engine.getField("pracaLista").getContainerDataSource();
container.removeItem(texto);
var container2 = engine.getField("pracaPercentual").getContainerDataSource();
container2.removeItem(texto);
} catch(e) {
MessageBox.show('Alerta', 'Dados inválidos!');
}
}
};
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
<HorizontalLayout width="420" >
<ListSelect type="string" id="pracaLista" readOnly="true" width="100%" expandRatio="0.8" allowNullSelection="true" rows="5">
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
engine.getField('pracaPercentual').setValue(engine.getField('pracaLista').getValue());
}
]]>
</script>
</valueChange>
</events>
</ListSelect>
<ListSelect type="string" id="pracaPercentual" readOnly="true" width="100%" expandRatio="0.2" allowNullSelection="true" rows="5">
</ListSelect> <DecimalField type="decimal" id="valorImpostos" caption="% Impostos" expandRatio="0.4" width="100%" maximumValue="100" maxLength="6" />
</HorizontalLayout> <!--<DecimalField type="decimal" id="valorFrete" caption="R$ Frete" expandRatio="0.4" width="100%" />-->
<ButtonWidget id="btnPraca" description="Adicionar praça" height="25" align="BOTTOM_LEFT" >
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() {
var containerPercentual = engine.getField("pracaPercentual").getContainerDataSource();
var containerLista = engine.getField("pracaLista").getContainerDataSource();
var ids = engine.getField('pracaLista').getContainerDataSource().getItemIds();
var iter = ids.iterator();
var definido = 0;
while (iter.hasNext()) {
var value = iter.next();
if (engine.getField('idOrigem').getValue() + ' - ' + engine.getField('idPraca').getValue() == value) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'A praça já foi definida.');
definido = 1;
}
}
if (definido == 0) {
containerLista.addItem(engine.getField('idOrigem').getValue() + ' - ' + engine.getField('idPraca').getValue()).getItemProperty("caption").setValue(engine.getField('idOrigem').getValue() + ' - ' + engine.getField('idPraca').getValue());
containerPercentual.addItem(engine.getField('idOrigem').getValue() + ' - ' + engine.getField('idPraca').getValue()).getItemProperty("caption").setValue(String(engine.getField('valorImpostos').getValue()));
engine.getField('valorImpostos').setValue(0);
engine.getField('idPraca')['setValue(java.lang.Object)'](null);
engine.getField('idOrigem')['setValue(java.lang.Object)'](null);
engine.setGlobalVariable('persistirImposto', 1);
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget id="btnRemoverPraca" description="Remover praça" height="25" align="BOTTOM_LEFT" >
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() {
var texto = engine.getField('pracaLista').getValue();
if (texto != '') {
try {
var container = engine.getField("pracaLista").getContainerDataSource();
container.removeItem(texto);
var container2 = engine.getField("pracaPercentual").getContainerDataSource();
container2.removeItem(texto);
engine.setGlobalVariable('persistirImposto', 1);
} catch(e) {
MessageBox.show('Alerta', 'Dados inválidos!');
}
}
};
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
<HorizontalLayout width="100%" >
<ListSelect type="string" id="pracaLista" readOnly="true" width="100%" expandRatio="0.8" allowNullSelection="true" rows="5" caption="Estado de Origem - Destino">
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
engine.getField('pracaPercentual').setValue(engine.getField('pracaLista').getValue());
}
]]>
</script>
</valueChange>
</events>
</ListSelect>
<ListSelect type="string" id="pracaPercentual" readOnly="true" width="100%" expandRatio="0.2" allowNullSelection="true" rows="5" caption="Imposto (%):">
</ListSelect>
</HorizontalLayout>
</VerticalLayout> </VerticalLayout>
</Tab> </Tab>
<Tab caption="Frete" visible="true" >
<VerticalLayout width="100%" margin="true" spacing="true" >
<HorizontalLayout width="100%" spacing="true" margin="false" >
<TextField type="string" id="idNomeFrete" caption="Descrição do frete" text-transform="uppercase" expandRatio="1" width="100%"></TextField>
<DecimalField type="decimal" id="valorFrete" caption="R$ Frete" expandRatio="1" width="100%" />
<ButtonWidget id="btnFrete" description="Adicionar frete" height="25" align="BOTTOM_LEFT" >
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() {
var containerFrete = engine.getField("pracaFrete").getContainerDataSource();
var containerLista = engine.getField("pracaListaFrete").getContainerDataSource();
var ids = engine.getField('pracaListaFrete').getContainerDataSource().getItemIds();
var iter = ids.iterator();
var definido = 0;
while (iter.hasNext()) {
var value = iter.next();
if (engine.getField('valorFrete').getValue() == value) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Valor do frete já adicionado para este cliente!');
definido = 1;
}
}
if (definido == 0) {
containerLista.addItem(engine.getField('idNomeFrete').getValue()).getItemProperty("caption").setValue(engine.getField('idNomeFrete').getValue());
containerFrete.addItem(engine.getField('idNomeFrete').getValue()).getItemProperty("caption").setValue(String(engine.getField('valorFrete').getValue()));
engine.getField('idNomeFrete')['setValue(java.lang.Object)'](null);
engine.getField('valorFrete').setValue(0);
engine.setGlobalVariable('persistirFrete', 1);
}
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget id="btnFreteRemover" description="Remover frete" height="25" align="BOTTOM_LEFT" >
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() {
var texto = engine.getField('pracaListaFrete').getValue();
if (texto != '') {
try {
var container = engine.getField("pracaListaFrete").getContainerDataSource();
container.removeItem(texto);
var container2 = engine.getField("pracaFrete").getContainerDataSource();
container2.removeItem(texto);
engine.setGlobalVariable('persistirFrete', 1);
} catch(e) {
MessageBox.show('Alerta', 'Dados inválidos!');
}
}
};
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
<HorizontalLayout width="100%" >
<ListSelect type="string" id="pracaListaFrete" readOnly="true" width="100%" expandRatio="0.8" allowNullSelection="true" rows="5" caption="Descrição do Frete">
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
engine.getField('pracaFrete').setValue(engine.getField('pracaListaFrete').getValue());
}
]]>
</script>
</valueChange>
</events>
</ListSelect>
<ListSelect type="string" id="pracaFrete" readOnly="true" width="100%" expandRatio="0.2" allowNullSelection="true" rows="5" caption="Frete (R$):" >
</ListSelect>
</HorizontalLayout>
</VerticalLayout>
</Tab>
<Tab caption="Usuários" visible="false">
<VerticalLayout margin="false" width="100%" >
<Label id="lb2">
<value>
</value>
</Label>
<DBTwinColSelect type="number" id="twinUsuario" allowNullSelection="true" multivalue="true" width="70%" align="TOP_LEFT" >
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select usuario_id, nome from nauth.usuario where ativo = true
]]>
</freeQuery>
</datasource>
<key-field>USUARIO_ID</key-field>
<caption-field>NOME</caption-field>
</DBTwinColSelect>
</VerticalLayout>
</Tab>
</TabLayout> </TabLayout>
</VerticalLayout> </VerticalLayout>
</Tab> </Tab>
@@ -655,132 +785,187 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
<Panel width="100%" margin="false" id="pnlBotoes" > <Panel width="100%" margin="false" id="pnlBotoes" >
<VerticalLayout width="100%" > <VerticalLayout width="100%" >
<HorizontalLayout margin="true" spacing="true" align="MIDDLE_CENTER" > <HorizontalLayout margin="true" spacing="true" align="MIDDLE_CENTER" >
<ButtonWidget id="btnSalvar" caption="Salvar" expandRatio="0.2" description="Salva os dados das Informações Adicionais do Cargo " align="MIDDLE_CENTER"> <ButtonWidget id="btnSalvar" caption="Salvar" expandRatio="0.2" description="Salva os dados" align="MIDDLE_CENTER">
<onClickScript language="JavaScript"> <onClickScript language="JavaScript">
<![CDATA[ <![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox); importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
function run() { function run() {
if (engine.isValid()) { if (engine.isValid()) {
if (engine.getGlobalVariable('validarDuplicidade')(engine.getField('idDescricao').getValue())) { if (engine.getGlobalVariable('validarDuplicidade')(engine.getField('idDescricao').getValue())) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe um cliente cadastrado com este nome.'); MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Já existe um cliente cadastrado com este nome.');
} else { } else {
// Para gravação de percentual de sócios // Para gravação de percentual de sócios
var containerSocio = engine.getField("socioLista").getContainerDataSource(); var containerSocio = engine.getField("socioLista").getContainerDataSource();
var containerPercentual = engine.getField("socioPercentual").getContainerDataSource(); var containerPercentual = engine.getField("socioPercentual").getContainerDataSource();
var ids = engine.getField('socioLista').getContainerDataSource().getItemIds(); var ids = engine.getField('socioLista').getContainerDataSource().getItemIds();
var iter = ids.iterator(); var iter = ids.iterator();
var total = 0.00; var total = 0.00;
while (iter.hasNext()) { while (iter.hasNext()) {
var value = iter.next(); var value = iter.next();
total = parseFloat(total) + parseFloat(String(engine.getField('socioPercentual').getContainerDataSource().getItem(value)).replace(',','.')); total = parseFloat(total) + parseFloat(String(engine.getField('socioPercentual').getContainerDataSource().getItem(value)).replace(',','.'));
} }
if (total != 100.00) { if (total != 100.00) {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Percentual deve ser igual a 100%.'); MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Percentual deve ser igual a 100%.');
} else { } else {
var config = engine.getGlobalVariable('config'); var config = engine.getGlobalVariable('config');
var id = engine.getField('idChave').getConvertedValue(); var id = engine.getField('idChave').getConvertedValue();
var lib = libService.loadScript('lib_cadastro_padrao'); var lib = libService.loadScript('lib_cadastro_padrao');
var retorno = lib.fncGravarRegistro(config, id); var retorno = lib.fncGravarRegistro(config, id);
var db = libService.loadScript('db'); var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio'); var dbVitruvio = new db('vitruvio');
var sql; var sql;
var socio; var socio;
var percentual; var percentual;
var iter2 = ids.iterator(); var iter2 = ids.iterator();
dbVitruvio.transaction(function() { var persistirSocio = engine.getGlobalVariable('persistirSocio');
sql = "delete from clientes_socio where codigo_cliente = :cliente"; var persistirImposto = engine.getGlobalVariable('persistirImposto');
this.update(sql, { var persistirFrete = engine.getGlobalVariable('persistirFrete');
cliente: Number(retorno)
});
});
while (iter2.hasNext()) { if(persistirSocio == 1){
var value = iter2.next(); dbVitruvio.transaction(function() {
var row = dbVitruvio.queryRow("Select codigo from socios where nome = '" + String(engine.getField('socioLista').getContainerDataSource().getItem(value)) + "'"); sql = "delete from clientes_socio where codigo_cliente = :cliente";
if (row.codigo) { this.update(sql, {
socio = row.codigo cliente: Number(retorno)
} });
percentual = parseFloat(String(engine.getField('socioPercentual').getContainerDataSource().getItem(value)).replace(',','.')); });
dbVitruvio.transaction(function() {
sql = "insert into clientes_socio (codigo,codigo_cliente,codigo_socio,participacao) values (" + dbVitruvio.getSequenceNextValSql('clientes_socios_seq') + ",:cliente,:socio,:participacao)";
this.update(sql, {
cliente: Number(retorno),
socio: Number(socio),
participacao: percentual
});
});
}
// Para gravação de praças while (iter2.hasNext()) {
dbVitruvio.transaction(function() { var value = iter2.next();
sql = "delete from clientes_praca where chave_cliente = :cliente"; var row = dbVitruvio.queryRow("Select codigo from socios where nome = '" + String(engine.getField('socioLista').getContainerDataSource().getItem(value)) + "'");
this.update(sql, { if (row.codigo) {
cliente: Number(retorno) socio = row.codigo
}); }
}); percentual = parseFloat(String(engine.getField('socioPercentual').getContainerDataSource().getItem(value)).replace(',','.'));
var containerSocio = engine.getField("pracaLista").getContainerDataSource(); dbVitruvio.transaction(function() {
var containerPercentual = engine.getField("pracaPercentual").getContainerDataSource(); sql = "insert into clientes_socio (codigo,codigo_cliente,codigo_socio,participacao) values (" + dbVitruvio.getSequenceNextValSql('clientes_socios_seq') + ",:cliente,:socio,:participacao)";
var ids = engine.getField('pracaLista').getContainerDataSource().getItemIds(); this.update(sql, {
var iter = ids.iterator(); cliente: Number(retorno),
socio: Number(socio),
participacao: percentual
});
});
}
}
var db = libService.loadScript('db'); if(persistirImposto == 1){
var dbVitruvio = new db('vitruvio'); // Para gravação de praças
var sql; dbVitruvio.transaction(function() {
var praca; sql = "delete from clientes_praca where chave_cliente = :cliente";
var percentualPraca; this.update(sql, {
var iter3 = ids.iterator(); cliente: Number(retorno)
});
});
var containerSocio = engine.getField("pracaLista").getContainerDataSource();
var containerPercentual = engine.getField("pracaPercentual").getContainerDataSource();
var ids = engine.getField('pracaLista').getContainerDataSource().getItemIds();
var iter = ids.iterator();
while (iter3.hasNext()) { var praca;
var value = iter3.next(); var percentualPraca;
var sql = "Select chave_estado from estados where nome = '" + engine.getField('pracaLista').getContainerDataSource().getItem(value) + "'"; var iter3 = ids.iterator();
var estado = dbVitruvio.queryRow(sql);
var praca = estado.chave_estado;
percentualPraca = parseFloat(String(engine.getField('pracaPercentual').getContainerDataSource().getItem(value)).replace(',','.'));
dbVitruvio.transaction(function() {
sql = "insert into clientes_praca (chave_praca,chave_cliente,chave_estado,percentual_impostos) values (" + dbVitruvio.getSequenceNextValSql('clientes_praca_seq') + ",:cliente,:praca,:percentual)";
this.update(sql, {
cliente: Number(retorno),
praca: Number(praca),
percentual: percentualPraca
});
});
}
//***************************** while (iter3.hasNext()) {
var value = iter3.next();
var pos = String(engine.getField('pracaLista').getContainerDataSource().getItem(value)).indexOf('-');
var tamanhoTotal = String(engine.getField('pracaLista').getContainerDataSource().getItem(value)).length;
var sqlOrigem = "Select chave_estado from estados where nome = RTrim('" + String(engine.getField('pracaLista').getContainerDataSource().getItem(value)).substring(0,pos-1) + "')";
var estadoOrigem = dbVitruvio.queryRow(sqlOrigem);
var pracaOrigem = estadoOrigem.chave_estado;
var sqlDestino = "Select chave_estado from estados where nome = LTrim('" + String(engine.getField('pracaLista').getContainerDataSource().getItem(value)).substring(pos+1,tamanhoTotal) + "')";
var estadoDestino = dbVitruvio.queryRow(sqlDestino);
var pracaDestino = estadoDestino.chave_estado;
percentualPraca = parseFloat(String(engine.getField('pracaPercentual').getContainerDataSource().getItem(value)).replace(',','.'));
valorFrete = parseFloat(String(engine.getField('pracaFrete').getContainerDataSource().getItem(value)).replace(',','.'));
dbVitruvio.transaction(function() {
sql = "insert into clientes_praca (chave_praca,chave_cliente,chave_estado,percentual_impostos,chave_estado_origem,descricao_praca) values (" + dbVitruvio.getSequenceNextValSql('clientes_praca_seq') + ",:cliente,:praca,:percentual,:origem,:descricao)";
this.update(sql, {
cliente: Number(retorno),
praca: Number(pracaDestino),
percentual: percentualPraca,
origem: Number(pracaOrigem),
descricao: String(engine.getField('pracaLista').getContainerDataSource().getItem(value))
});
});
}
}
dbVitruvio.transaction(function() { //*****************************
sql = "delete from clientes_usuario where codigo_cliente = :cliente";
this.update(sql, {
cliente: Number(retorno)
});
});
var u = engine.getField('twinUsuario').getValue(); // Para gravação dos fretes
if (u) { if(persistirFrete == 1){
var i = u.iterator(); dbVitruvio.transaction(function() {
while (i.hasNext()) { sql = "delete from clientes_frete where chave_cliente = :cliente";
dbVitruvio.transaction(function() { this.update(sql, {
sql = "insert into clientes_usuario (codigo,codigo_cliente,codigo_usuario) values (" + dbVitruvio.getSequenceNextValSql('clientes_usuario_seq') + ",:cliente,:usuario)"; cliente: Number(retorno)
this.update(sql, { });
cliente: Number(retorno), });
usuario: Number(i.next())
}); var containerFreteLista = engine.getField("pracaListaFrete").getContainerDataSource();
}); var containerFrete = engine.getField("pracaFrete").getContainerDataSource();
} var ids = engine.getField('pracaListaFrete').getContainerDataSource().getItemIds();
} var iter3 = ids.iterator();
while (iter3.hasNext()) {
var value = iter3.next();
//var valorFrete = parseFloat(String(engine.getField('pracaFrete').getContainerDataSource().getItem(value)).replace(',','.'));
//var valorFrete = parseFloat(engine.getField('pracaFrete').getContainerDataSource().getItem(value));
//var valorFrete = engine.getField('pracaFrete').getContainerDataSource().getItem(value);
//var valorFrete = String(engine.getField('pracaFrete').getContainerDataSource().getItem(value));
//var valorFrete2 = String(engine.getField('pracaFrete').getContainerDataSource().getItem(value)).trim();
var valorFrete = parseFloat(String(engine.getField('pracaFrete').getContainerDataSource().getItem(value)).replace(',','.'));
/*engine.debug('Separador');
engine.debug(parseFloat(String(engine.getField('pracaFrete').getContainerDataSource().getItem(value)).replace(',','.')));
engine.debug(parseFloat(engine.getField('pracaFrete').getContainerDataSource().getItem(value)));
engine.debug(valorFrete);
engine.debug(valorFrete);
engine.debug(valorFrete2);*/
dbVitruvio.transaction(function() {
sql = "insert into clientes_frete (chave_frete,chave_cliente,descricao,valor_frete) values (" + dbVitruvio.getSequenceNextValSql('clientes_frete_seq') + ",:cliente,:descricao,:frete)";
this.update(sql, {
cliente: Number(retorno),
descricao: String(engine.getField('pracaListaFrete').getContainerDataSource().getItem(value)),
frete: parseFloat(valorFrete)
});
});
}
dbVitruvio.transaction(function() {
sql = "delete from clientes_usuario where codigo_cliente = :cliente";
this.update(sql, {
cliente: Number(retorno)
});
});
var u = engine.getField('twinUsuario').getValue();
if (u) {
var i = u.iterator();
while (i.hasNext()) {
dbVitruvio.transaction(function() {
sql = "insert into clientes_usuario (codigo,codigo_cliente,codigo_usuario) values (" + dbVitruvio.getSequenceNextValSql('clientes_usuario_seq') + ",:cliente,:usuario)";
this.update(sql, {
cliente: Number(retorno),
usuario: Number(i.next())
});
});
}
}
}
if (retorno) { if (retorno) {
engine.getGlobalVariable('fncLimpaCampos')(); engine.getGlobalVariable('fncLimpaCampos')();
} }
} }
} }
} }
} }
]]> ]]>
</onClickScript> </onClickScript>
</ButtonWidget> </ButtonWidget>
@@ -826,7 +1011,7 @@ xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbuc
<onClickScript language="JavaScript"> <onClickScript language="JavaScript">
<![CDATA[ <![CDATA[
function run() { function run() {
engine.setGlobalVariable('painelLista',1); engine.setGlobalVariable('painelLista',1);
engine.getGlobalVariable('fncLimpaCampos')(); engine.getGlobalVariable('fncLimpaCampos')();
newRecord = false; newRecord = false;
saveStatus = false; saveStatus = false;