You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1176 lines
62 KiB

<?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"
xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd"
>
<form formKey="formCadastro" width="100%" height="100%">
<name>Lançar Valor</name>
<description>Regras Contábeis</description>
<initScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
function fncLimpaCampos(){
engine.getField('dataLancamento')["setValue(java.lang.Object)"](null);
engine.getField('cliente')["setValue(java.lang.Object)"](null);
engine.getField('placa')["setValue(java.lang.Object)"](null);
engine.getField('funcionario')["setValue(java.lang.Object)"](null);
engine.getField('valorFrete')['setValue(java.lang.String)'](null);
engine.getField('valorImposto')['setValue(java.lang.String)'](null);
engine.getField('valorLiquido')['setValue(java.lang.String)'](null);
engine.getField('tipoFrete')["setValue(java.lang.Object)"](null);
engine.getField('cte')['setValue(java.lang.String)'](null);
engine.getField('ufOrigem')["setValue(java.lang.Object)"](null);
engine.getField('ufDestino')["setValue(java.lang.Object)"](null);
engine.getField('formaPagamento')["setValue(java.lang.Object)"](null);
engine.getField('placaCarreta')["setValue(java.lang.Object)"](null);
}
function fncSubTotal() {
var params = {id: 0};
var db = vScriptService.loadScript('db', 'javascript');
var vitruvio = new db('vitruvio');
var sql = "Select replace(replace(replace(to_char(sum(ccf.valor_frete), '9999999999D99'),',','-' ),'.',','),'-','.') total_frete, " +
"replace(replace(replace(to_char(sum(ccf.valor_imposto), '9999999999D99'),',','-' ),'.',','),'-','.') total_imposto, " +
"replace(replace(replace(to_char(sum(ccf.valor_liquido), '9999999999D99'),',','-' ),'.',','),'-','.') total_liquido " +
"from controle_receitas_fretes ccf where ccf.data between '" + engine.getField('dataInicio') + "' and '" + engine.getField('dataFinal') + "'";
if (engine.getField('ftFuncionario').getValue()) {
sql += " and ccf.chave_funcionario = " + engine.getField('ftFuncionario').getValue();
}
if (engine.getField('ftPlaca').getValue()) {
sql += " and ccf.chave_veiculo = " + engine.getField('ftPlaca').getValue();
}
if (engine.getField('ftCliente').getValue()) {
sql += " and ccf.chave_cliente = " + engine.getField('ftCliente').getValue();
}
if (engine.getField('ftFrotaTerceiro').getValue() == 'F') {
sql += " and ccf.frota_terceiro = 'F'";
}
if (engine.getField('ftFrotaTerceiro').getValue() == 'T') {
sql += " and ccf.frota_terceiro = 'T'";
}
if (engine.getField('ftUfDestino').getValue()) {
sql += " and ccf.uf_destino = '" + engine.getField('ftUfDestino').getValue() + "'";
}
vitruvio.query(sql).each(function (r) {
if (r.total_frete) {
engine.getLabel('sub').setValue('<b><font color="blue">Subtotal Frete <br>R$ ' + r.total_frete + '</font></b>');
} else {
engine.getLabel('sub').setValue('<b><font color="blue">Subtotal Frete <br>R$ 0,00</font></b>');
}
if (r.total_imposto) {
engine.getLabel('subImposto').setValue('<b><font color="red">Subtotal Impostos <br>R$ ' + r.total_imposto + '</font></b>');
} else {
engine.getLabel('subImposto').setValue('<b><font color="red">Subtotal Impostos <br>R$ 0,00</font></b>');
}
if (r.total_liquido) {
engine.getLabel('subLiquido').setValue('<b><font color="green">Subtotal (Frete - Impostos) <br>R$ ' + r.total_liquido + '</font></b>');
} else {
engine.getLabel('subLiquido').setValue('<b><font color="green">Subtotal (Frete - Impostos) <br>R$ 0,00</font></b>');
}
});
}
function run() {
engine.getField('valorImposto').setEnabled(false);
engine.getField('valorLiquido').setEnabled(false);
engine.setGlobalVariable('abertura',1);
engine.getField('frotaTerceiro').setValue('F');
engine.getField('ftFrotaTerceiro').setValue('A');
var d = new java.util.Date();
engine.setGlobalVariable('fncLimpaCampos', fncLimpaCampos);
engine.setGlobalVariable('fncSubTotal', fncSubTotal);
engine.getField('dataInicio').setValue(d);
engine.getField('dataFinal').setValue(d);
engine.getField('tbLancamentos').refresh();
engine.getGlobalVariable('fncSubTotal')();
// Registrando icones
engine.getWidgetController('btnGravar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.SALVAR));
engine.getWidgetController('btnFiltrar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.FILTRAR));
engine.getWidgetController('btnLimparFiltro').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.LIMPAR));
}
]]>
</initScript>
<components>
<VerticalLayout margin="true" width="100%" >
<TabLayout align="BOTTOM_LEFT" id="credito" compact="true" width="100%" height="100%" >
<Tab caption="Fretes">
<VerticalLayout spacing="true" width="100%" height="100%">
<Panel caption=" " width="100%" expandRatio="0.1" align="TOP_LEFT" height="100%">
<VerticalLayout width="100%" margin="true" spacing="true">
<HorizontalLayout width="100%" spacing="true" height="100%">
<ImageWidget id="img1" height="46" width="68" align="TOP_LEFT">
<image>
<base64 extension="jpg">
<![CDATA[
,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVFQTIxQTExOTRFODExRThCQTY5OUIwNzFEMDlCNzIxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVFQTIxQTEyOTRFODExRThCQTY5OUIwNzFEMDlCNzIxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUVBMjFBMEY5NEU4MTFFOEJBNjk5QjA3MUQwOUI3MjEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUVBMjFBMTA5NEU4MTFFOEJBNjk5QjA3MUQwOUI3MjEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCAA5AE0DAREAAhEBAxEB/8QAowAAAgIDAQEAAAAAAAAAAAAAAAYBCAQFBwMCAQACAwEBAQAAAAAAAAAAAAAABQEEBgMCBxAAAgECBAMCCQkJAAAAAAAAAQIDAAQREgUGITEHUhNBUWGRoSIyQhRxgbFyk+M0VReSorLC0jNTlCYRAAIBAwEEBgYLAQAAAAAAAAABAhEDBAUhMVESQWFxgaEVkdHhIkITscEyUmJykjNjBhbw/9oADAMBAAIRAxEAPwC1NAEZ07Q89FCKhnTtDz1NAqGdO0PPRQKhnTtDz0UCoZ07Q89FAqTUEhQAUAFABQBVm+mlN5MS5JLsSSePOt3FKiPlk23J9p495J2jUnmpttB29qusi6a2jmaO2heTPHG0gaRACsWI95seFcL+RG3StNr/AOZbxcS5eryp7E+iu3gapmmVir5ldSQyngQRwIIrvsKrqiBLJj7RqSKljNhTSSbN0mSaQu5gALucScCQOJ8grG5ypelTifRtLk3jQb4G/wA6doeeqlC9UmgkKACgCq95+Lm+ufprdx3I+Vz3vtPCvR5Ou7Tvk1Pbdra6PrKade2NlJBJp74RZrliuFyXBxZR8h51nsqHJcbnDmjKVa9XA12DdV2yo258koxa5d3vfeEPfVvuOPcEsmvwpFeTKCrRKBE6L6uZCOflx401wpW3bpbexCHU43lebvKknw3C+KuC8cd33Vwu1trW6yMIfhGkKAnAtnIxw5cqX4kV824+nmHGoTfybKrs5X9IoLNKpBDEEcqv0FFWWE6dbmGu7chaR819aYQXWJxYkD1HOJY+svMnm2NZHUcb5Vx0+y9qPoOkZvz7Kr9qOx+vvGiqI0CgCq95+Lm+ufprdx3I+Vz3vtPCvR5Ogbd1DY97bTd/Y3Njfw6ZNDefBlDFJCuUM694S3eHy/PjSjIt34tUalFzVK76+o0GJdxZxdYyjNW2ny7muO3pNFvXc1prlzZLZQyRWWnwfD25nbNK44Es/E8eHjq3h4ztJ8z96Trs3FHUcyN+UeVNRgqKu/vF0VcFo37xH/L7Ubx2kg80lL8P9y7+ZDfUf2bP5X9In0wFI0dPd0PoG4IZHbCyuSIbtSeARj7fI+wePo8NUs/G+bba+JbUMtKzXYvJ/DLY/X3Fh8Rhj4Kx59DCgDhGodJ95C8m7u3jmjLErKsqBSD9cqfRWqhqtmi2tdxg7mhZKk6JNdpjL0q3qwBWzRgeRE0R/mr35pY4+DPC0PK+6vSj4fphvBGyvbRo3iM8IP8AFUrUrL6X6GQ9FyV0L9SI/TPdn+CH/Yh/qo8ys8X6GR5NkcF+pAvTLdhYAwwgEjE/EQ8P3qPMrPF+hh5NkcF+pDtuLptqOo7e0e00+7gnudKiaKVScqsXOY5WGbkeHGluPqMYXJuSaU2OszR53LVuMJJu2qClL0j3kiFlhhlYe4kyZj+1lHpq+tVsvpfoFMtByUtyfeK1xYXlhqLWd5E0NzC+WSNuYNX4zU480XVMVztStz5ZKkky0fufNWGPqHQTUEnGesut6m2sppZzxWEKLIi8llZhiX5ccPZ+Y1pdHsxVvn+J+BjP7FkTd1W9qglXt6/qNP0t1S+tt3WlvFKRDdExzx4nKwwJHDxirGpWoysttbUU9FvzhkxSeyWxj1rnSa41jVLjULnWW7ydiwTucQq+BRjJyA4Urs6qrcFFQ3dfsHmToLvXHOVza+r2mB+hq/nJ+w+8rp53+Dx9hw/zP8nh7Q/Q1fzk/YfeUed/g8fYH+Z/k8PabDXdIl2Z06u4NOuXN08i99dgBGPeMFOGGJUZeHPGuVi8snJTktnDsLGVjvCwpKD96u/tZxq3vLqCeOeGVkmjYMjqSGDA4ggitG4pqjWwxsZyi6p0aOra1tTW956Zt/WIoo4L1oSl88xKMwB9STALyOBbgPepDZyoY05wbrGuw1eTg3cy3auJJSp71fB/X3nUcPVw8mFIjUk0AaHdOy9F3JHEL5XSaH+3cRELIF7JJDAjHjyq3i5s7NeXc+goZ2m2slLn3rpW8xNr9OtA29dG8tjLPdZcqyzMDlB55VUKOPlrpk6jcvLldEuo44WkWceXNGrl1jTVAahQAUAYup6ZY6nYy2N7EJraYYOh9BB8BHgNdLVyUJKUdjRyvWY3YOElWLEm26L7bhvVme4uJrdSCLdygxIOJDMqg4HyYfLTOWs3XGlEnxEkP65YUqtya4D9FFHFGkUShI41CoijBVUDAAAcgKUtturH8YpKi3H1UEhQAUAFABQAUAFABQAUAFABQB//2Q==
]]>
</base64>
</image>
</ImageWidget>
<DateField type="date" id="dataLancamento" align="TOP_LEFT" caption="Data" width="100%" expandRatio="0.15" required="true" resolution="DAY" description="Informe a data do lançamento" format="dd/MM/yyyy" >
</DateField>
<DBComboBox type="string" id="placa" width="100%" required="true" expandRatio="0.2" align="TOP_LEFT" caption="Placa">
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from veiculo
]]>
</freeQuery>
</datasource>
<key-field>CODIGO</key-field>
<caption-field>PLACA</caption-field>
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
var sql = "Select placa_carreta from veiculo where codigo = " + engine.getField('placa').getValue();
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
if (row && row.placa_carreta) {
engine.getField('placaCarreta').setValue(row.placa_carreta);
}
}
]]>
</script>
</valueChange>
</events>
</DBComboBox>
<DBComboBox type="string" id="placaCarreta" width="100%" required="true" expandRatio="0.2" align="TOP_LEFT" caption="Placa carreta">
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from veiculo where placa_carreta is not null
]]>
</freeQuery>
</datasource>
<key-field>PLACA_CARRETA</key-field>
<caption-field>PLACA_CARRETA</caption-field>
</DBComboBox>
<DBComboBox type="string" id="funcionario" required="true" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Funcionário">
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from funcionario
]]>
</freeQuery>
</datasource>
<key-field>CODIGO</key-field>
<caption-field>NOME</caption-field>
</DBComboBox>
<NumericField type="number" id="cte" caption="CTE" />
<DBComboBox type="string" id="cliente" required="true" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Cliente">
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from clientes
]]>
</freeQuery>
</datasource>
<key-field>CODIGO</key-field>
<caption-field>NOME</caption-field>
</DBComboBox>
<DBComboBox type="string" id="tipoFrete" required="true" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Tipo de frete">
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from tipo_frete
]]>
</freeQuery>
</datasource>
<key-field>CODIGO</key-field>
<caption-field>DESCRICAO</caption-field>
</DBComboBox>
</HorizontalLayout>
<HorizontalLayout width="100%" spacing="true">
<OptionGroup type="string" id="frotaTerceiro" disposition="vertical" required="true" width="60" >
<entry value="Frota" key="F"/>
<entry value="Terceiro" key="T"/>
</OptionGroup>
<DecimalField type="decimal" id="valorFrete" required="true" immediate="true" caption="Valor frete (R$)" format="#,##0.00" description="Valor frete" width="100%" expandRatio="0.2" >
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
var pImpostos;
var sql = "Select percentual_impostos from clientes_praca where chave_estado = " + engine.getField('ufDestino').getValue() + " and chave_cliente = " + engine.getField('cliente').getValue();
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
if (row && row.percentual_impostos) {
pImpostos = row.percentual_impostos/100;
} else {
pImpostos = 0;
}
var impostos = engine.getField('valorFrete').getConvertedValue() * pImpostos;
var liquido = engine.getField('valorFrete').getConvertedValue() - impostos;
engine.getField('valorImposto').setValue(impostos);
engine.getField('valorLiquido').setValue(liquido);
}
]]>
</script>
</valueChange>
</events>
</DecimalField>
<DBComboBox type="number" id="ufOrigem" caption="UF Origem" width="100%" expandRatio="0.1">
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from estados
]]>
</freeQuery>
</datasource>
<key-field>CHAVE_ESTADO</key-field>
<caption-field>SIGLA</caption-field>
</DBComboBox>
<DBComboBox type="string" id="ufDestino" caption="UF Destino" width="100%" expandRatio="0.1" >
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select cp.chave_estado, e.sigla from clientes_praca cp inner join estados e on e.chave_estado = cp.chave_estado where cp.chave_cliente = ${codigo}
]]>
</freeQuery>
</datasource>
<key-field>CHAVE_ESTADO</key-field>
<caption-field>SIGLA</caption-field>
<bind>
<parameter value-type="number" defaultValue="-1" parameterName="codigo" field-ref="cliente"/>
</bind>
<events>
<valueChange>
<script language="JavaScript">
<![CDATA[
function run() {
var pImpostos;
var sql = "Select percentual_impostos, chave_estado from clientes_praca where chave_estado = " + engine.getField('ufDestino').getValue() + " and chave_cliente = " + engine.getField('cliente').getValue();
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
if (row) {
engine.setGlobalVariable('praca',row.chave_estado);
}
if (row && row.percentual_impostos) {
pImpostos = row.percentual_impostos/100;
} else {
pImpostos = 0;
}
var impostos = engine.getField('valorFrete').getConvertedValue() * pImpostos;
var liquido = engine.getField('valorFrete').getConvertedValue() - impostos;
engine.getField('valorImposto').setValue(impostos);
engine.getField('valorLiquido').setValue(liquido);
}
]]>
</script>
</valueChange>
</events>
</DBComboBox>
<DBComboBox type="string" id="formaPagamento" required="true" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Forma de pagamento">
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from forma_pagamento
]]>
</freeQuery>
</datasource>
<key-field>CODIGO</key-field>
<caption-field>NOME</caption-field>
</DBComboBox>
<DecimalField type="decimal" id="valorImposto" caption="Valor impostos (R$)" format="#,##0.00" description="Valor impostos" width="100%" expandRatio="0.2" />
<DecimalField type="decimal" id="valorLiquido" caption="Valor Líquido (Frete - Impostos) (R$)" format="#,##0.00" description="Valor frete menos o valor dos impostos" width="100%" expandRatio="0.2" />
<ButtonWidget id="btnGravar" caption="Gravar" align="BOTTOM_RIGHT" description="Grava o lançamento" width="100" >
<onClickScript language="JavaScript">
<![CDATA[
importClass(Packages.com.vaadin.ui.Notification);
function run() {
if (engine.isValid()) {
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var sql;
dbVitruvio.transaction(function() {
sql = "insert into controle_receitas_fretes (chave_receita_frete,data,chave_cliente,chave_veiculo,chave_funcionario,valor_frete,valor_imposto,valor_liquido,chave_tipo_frete,cte,frota_terceiro,uf_origem,uf_destino,chave_forma_pagamento,placa_carreta) " +
" values (" + dbVitruvio.getSequenceNextValSql('controle_rec_fr_seq') + ",:data,:chave_cliente,:chave_veiculo,:chave_funcionario,:valor_frete,:valor_imposto,:valor_liquido,:tipo_frete,:cte,:frota_terceiro,:uf_origem,:uf_destino,:forma_pagamento,:placa_carreta)";
this.update(sql, {
data: engine.getField('dataLancamento').getValue(),
chave_cliente: Number(engine.getField('cliente').getValue()),
chave_veiculo: Number(engine.getField('placa').getValue()),
chave_funcionario: Number(engine.getField('funcionario').getValue()),
valor_frete: engine.getField('valorFrete').getConvertedValue(),
valor_imposto: engine.getField('valorImposto').getConvertedValue(),
valor_liquido: engine.getField('valorLiquido').getConvertedValue(),
tipo_frete: engine.getField('tipoFrete').getValue(),
cte: Number(engine.getField('cte').getValue()),
frota_terceiro: String(engine.getField('frotaTerceiro').getValue()),
uf_origem: Number(engine.getField('ufOrigem').getValue()),
uf_destino: Number(engine.getGlobalVariable('praca')),
forma_pagamento: engine.getField('formaPagamento').getValue(),
placa_carreta: engine.getField('placaCarreta').getValue()
});
});
engine.getField('tbLancamentos').refresh();
engine.getGlobalVariable('fncLimpaCampos')();
engine.getGlobalVariable('fncSubTotal')();
Notification.show(null, 'Dados salvos', Notification.Type.TRAY_NOTIFICATION);
}
}
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
</VerticalLayout>
</Panel>
<Panel width="100%" margin="true" >
<VerticalLayout width="100%" spacing="true" align="TOP_LEFT" >
<HorizontalLayout width="100%" spacing="true" align="TOP_LEFT">
<DateField type="date" id="dataInicio" caption="Data inicial" align="TOP_LEFT" width="100%" expandRatio="0.2" description="Data iniacial da exibição" format="dd/MM/yyyy" />
<DateField type="date" id="dataFinal" caption="Data final" align="TOP_LEFT" width="100%" expandRatio="0.2" description="Data final da exibição" format="dd/MM/yyyy" />
<DBComboBox type="string" id="ftFuncionario" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Funcionário" allowNullSelection="true">
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from funcionario
]]>
</freeQuery>
</datasource>
<key-field>CODIGO</key-field>
<caption-field>NOME</caption-field>
</DBComboBox>
<DBComboBox type="string" id="ftPlaca" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Placa" allowNullSelection="true">
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from veiculo
]]>
</freeQuery>
</datasource>
<key-field>CODIGO</key-field>
<caption-field>PLACA</caption-field>
</DBComboBox>
<DBComboBox type="string" id="ftCliente" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Cliente" allowNullSelection="true" >
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from clientes
]]>
</freeQuery>
</datasource>
<key-field>CODIGO</key-field>
<caption-field>NOME</caption-field>
</DBComboBox>
<OptionGroup type="string" id="ftFrotaTerceiro" disposition="vertical" width="60" >
<entry value="Ambos" key="A"/>
<entry value="Frota" key="F"/>
<entry value="Terceiro" key="T"/>
</OptionGroup>
<DBComboBox type="number" id="ftUfDestino" caption="UF destino" width="100%" expandRatio="0.1" allowNullSelection="true" align="TOP_LEFT" >
<datasource>
<freeQuery connection-key="vitruvio">
<![CDATA[
Select * from estados
]]>
</freeQuery>
</datasource>
<key-field>CHAVE_ESTADO</key-field>
<caption-field>SIGLA</caption-field>
</DBComboBox>
<ButtonWidget id="btnFiltrar" caption="Filtrar" align="MIDDLE_LEFT" description="Aplica filtro" width="100" >
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.getField('tbLancamentos').refresh();
engine.getGlobalVariable('fncSubTotal')();
}
]]>
</onClickScript>
</ButtonWidget>
<ButtonWidget id="btnLimparFiltro" caption="Limpar" align="MIDDLE_LEFT" description="Limpar filtro" width="100" >
<onClickScript language="JavaScript">
<![CDATA[
function run() {
var d = new java.util.Date();
engine.getField('dataInicio').setValue(d);
engine.getField('dataFinal').setValue(d);
engine.getField('ftFuncionario')["setValue(java.lang.Object)"](null);
engine.getField('ftPlaca')["setValue(java.lang.Object)"](null);
engine.getField('ftCliente')["setValue(java.lang.Object)"](null);
engine.getField('ftFrotaTerceiro').setValue('A');
engine.getField('ftUfDestino')["setValue(java.lang.Object)"](null);
engine.getField('tbLancamentos').refresh();
engine.getGlobalVariable('fncSubTotal')();
}
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
<HorizontalLayout width="70%" spacing="true" align="TOP_LEFT">
<Label id="sub" align="BOTTOM_RIGHT" width="100%" expandRatio="1" contentMode="HTML">
<value>
</value>
</Label>
<Label id="subImposto" align="BOTTOM_RIGHT" width="100%" expandRatio="1" contentMode="HTML">
<value>
</value>
</Label>
<Label id="subLiquido" align="BOTTOM_RIGHT" width="100%" expandRatio="1" contentMode="HTML">
<value>
</value>
</Label>
</HorizontalLayout>
<DBTable id="tbLancamentos" type="number" showRowCount="true" width="100%" rows="6" selectable="false" exportXLS="true" editable="true" >
<datasource>
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
<![CDATA[
function buildSQL(params) {
var sql = "Select ccf.chave_receita_frete, ccf.data, " +
" (select co.nome from clientes co where co.codigo = ccf.chave_cliente) cliente," +
" (select cv.placa from veiculo cv where cv.codigo = ccf.chave_veiculo) veiculo," +
" (select cf.nome from funcionario cf where cf.codigo = ccf.chave_funcionario) funcionario," +
" ccf.cte," +
" (select descricao from tipo_frete where codigo = ccf.chave_tipo_frete) tipo_frete," +
" ccf.frota_terceiro," +
" (select e.sigla from estados e where e.chave_estado = ccf.uf_origem) uf_origem," +
" (Select e.sigla from estados e where e.chave_estado = ccf.uf_destino) uf_destino," +
" (select nome from forma_pagamento where codigo = ccf.chave_forma_pagamento) forma_pagamento," +
" replace(replace(replace(to_char(ccf.valor_frete, '9999999999D99'),',','-' ),'.',','),'-','.') valor_frete, " +
" replace(replace(replace(to_char(ccf.valor_imposto, '9999999999D99'),',','-' ),'.',','),'-','.') valor_imposto, " +
" replace(replace(replace(to_char(ccf.valor_liquido, '9999999999D99'),',','-' ),'.',','),'-','.') valor_liquido, " +
" ccf.placa_carreta placa_carreta " +
" from controle_receitas_fretes ccf" +
" where 1 = 2";
if (engine) {
var datainicio = engine.getField('dataInicio').getValue();
var datafinal = engine.getField('dataFinal').getValue();
sql = "Select ccf.chave_receita_frete, ccf.data, " +
" (select co.nome from clientes co where co.codigo = ccf.chave_cliente) cliente," +
" (select cv.placa from veiculo cv where cv.codigo = ccf.chave_veiculo) veiculo," +
" (select cf.nome from funcionario cf where cf.codigo = ccf.chave_funcionario) funcionario," +
" ccf.cte," +
" (select descricao from tipo_frete where codigo = ccf.chave_tipo_frete) tipo_frete," +
" ccf.frota_terceiro," +
" (select e.sigla from estados e where e.chave_estado = ccf.uf_origem) uf_origem," +
" (Select e.sigla from estados e where e.chave_estado = ccf.uf_destino) uf_destino," +
" (select nome from forma_pagamento where codigo = ccf.chave_forma_pagamento) forma_pagamento," +
" ccf.valor_frete valor_frete, " +
" ccf.valor_imposto valor_imposto, " +
" ccf.valor_liquido valor_liquido, " +
" ccf.placa_carreta placa_carreta " +
" from controle_receitas_fretes ccf";
if (datainicio && datafinal) {
sql += " where ccf.data between '" + engine.getField('dataInicio') + "' and '" + engine.getField('dataFinal') + "'";
}
if (engine.getField('ftFuncionario').getValue()) {
sql += " and ccf.chave_funcionario = " + engine.getField('ftFuncionario').getValue();
}
if (engine.getField('ftPlaca').getValue()) {
sql += " and ccf.chave_veiculo = " + engine.getField('ftPlaca').getValue();
}
if (engine.getField('ftCliente').getValue()) {
sql += " and ccf.chave_cliente = " + engine.getField('ftCliente').getValue();
}
if (engine.getField('ftFrotaTerceiro').getValue() && engine.getField('ftFrotaTerceiro').getValue() == 'F') {
sql += " and ccf.frota_terceiro = 'F'";
}
if (engine.getField('ftFrotaTerceiro').getValue() && engine.getField('ftFrotaTerceiro').getValue() == 'T') {
sql += " and ccf.frota_terceiro = 'T'";
}
if (engine.getField('ftUfDestino').getValue()) {
sql += " and ccf.uf_destino = '" + engine.getField('ftUfDestino').getValue() + "'";
}
sql += " order by data desc";
}
return sql;
}
]]>
</sqlBuilderDataSource>
</datasource>
<key-field>chave_receita_frete</key-field>
<columns>
<generated name="EXCLUIR" caption="">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.layout.ConfirmationBox);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
importClass(Packages.br.com.davinti.vitruvio.spi.is.DatabaseSnippet);
function Generator() {
var comp = libService.loadScript('vaadinComponents');
this.generate = function (itemId, columnId, item, container) {
var btn = comp.buttonIcon('excluir', function () {
var deletar = function(idRegistro) {
var sql = 'delete from controle_receitas_fretes where chave_receita_frete = :id';
vQueryService.doInTransaction('vitruvio', new DatabaseSnippet() {
execute: function(db, transaction) {
var params = new java.util.HashMap();
params.put('id', idRegistro);
db.update(sql, params);
}
});
engine.getField('tbLancamentos').refresh();
engine.getGlobalVariable('fncSubTotal')();
}
var msg = 'Confirma a exclusão?'
ConfirmationBox.show( 'Confirmar operação'
, msg
, new ConfirmationBox.ConfirmationBoxListener() {
dialogEnd: function(context, action) {
if(action == ConfirmationBox.Action.YES) {
if(deletar){
deletar(itemId);
}
}
}
}
);
}, 'trash');
return btn;
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<column name="DATA" caption="Data" format="dd/MM/yyyy" commitOnValueChange="true" editable="true" />
<generated name="VEICULO" caption="Veículo" cache="false" expand-ratio="0.05" >
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.com.vaadin.ui.ComboBox);
importClass(Packages.br.com.davinti.base.vaadin.components.data.container.ContainerUtils);
importClass(Packages.com.vaadin.data.Property);
var setUsuario = function(chave, cliente) {
if (cliente) {
var sqlAtualiza = "UPDATE controle_receitas_fretes SET chave_veiculo = ? "+
" WHERE CHAVE_RECEITA_FRETE = ? ";
var sql = "Select codigo from veiculo where placa = '" + cliente + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
var params = new java.util.ArrayList();
params.add(row.codigo);
params.add(chave);
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
} else {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Tipo de frete não pode ser vazio.');
}
};
function generate(itemId, columnId, item, container) {
var sql = "Select codigo, placa from veiculo";
var ds = vQueryService.executeQuery('vitruvio', sql);
if(ds == null){
return null;
}
var map = new java.util.LinkedHashMap();
while(ds.next()) {
map.put(ds.getString('PLACA'), ds.getString('PLACA'));
}
var combo = new ComboBox();
combo.setWidth("100%");
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
var linha = item;
if(linha.getItemProperty('VEICULO').getValue()) {
combo.setValue(linha.getItemProperty('VEICULO').getValue());
}
combo.addValueChangeListener(new Property.ValueChangeListener() {
valueChange: function(event) {
setUsuario(linha.getItemProperty('CHAVE_RECEITA_FRETE').getValue().longValue(),
event.getProperty().getValue());
},
hashCode: function() {
return combo.hashCode();
}
});
return combo;
}
]]>
</scriptColumnGenerator>
</generated>
<generated name="PLACA_CARRETA" caption="Placa carreta" cache="false" >
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.com.vaadin.ui.ComboBox);
importClass(Packages.br.com.davinti.base.vaadin.components.data.container.ContainerUtils);
importClass(Packages.com.vaadin.data.Property);
var setUsuario = function(chave, cliente) {
if (cliente) {
var sqlAtualiza = "UPDATE controle_receitas_fretes SET placa_carreta = ? "+
" WHERE CHAVE_RECEITA_FRETE = ? ";
var params = new java.util.ArrayList();
params.add(cliente);
params.add(chave);
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
} else {
var sqlAtualiza = "UPDATE controle_receitas_fretes SET placa_carreta = null "+
" WHERE CHAVE_RECEITA_FRETE = ? ";
var params = new java.util.ArrayList();
params.add(chave);
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
}
};
function generate(itemId, columnId, item, container) {
var sql = "Select placa_carreta from veiculo where placa_carreta is not null";
var ds = vQueryService.executeQuery('vitruvio', sql);
if(ds == null){
return null;
}
var map = new java.util.LinkedHashMap();
while(ds.next()) {
map.put(ds.getString('PLACA_CARRETA'), ds.getString('PLACA_CARRETA'));
}
var combo = new ComboBox();
combo.setWidth("100%");
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
var linha = item;
if(linha.getItemProperty('PLACA_CARRETA').getValue()) {
combo.setValue(linha.getItemProperty('PLACA_CARRETA').getValue());
}
combo.addValueChangeListener(new Property.ValueChangeListener() {
valueChange: function(event) {
setUsuario(linha.getItemProperty('CHAVE_RECEITA_FRETE').getValue().longValue(),
event.getProperty().getValue());
},
hashCode: function() {
return combo.hashCode();
}
});
return combo;
}
]]>
</scriptColumnGenerator>
</generated>
<generated name="FUNCIONARIO" caption="Funcionário" cache="false" >
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.com.vaadin.ui.ComboBox);
importClass(Packages.br.com.davinti.base.vaadin.components.data.container.ContainerUtils);
importClass(Packages.com.vaadin.data.Property);
var setUsuario = function(chave, cliente) {
if (cliente) {
var sqlAtualiza = "UPDATE controle_receitas_fretes SET chave_funcionario = ? "+
" WHERE CHAVE_RECEITA_FRETE = ? ";
var sql = "Select codigo from funcionario where nome = '" + cliente + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
var params = new java.util.ArrayList();
params.add(row.codigo);
params.add(chave);
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
} else {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Tipo de frete não pode ser vazio.');
}
};
function generate(itemId, columnId, item, container) {
var sql = "Select codigo, nome from funcionario";
var ds = vQueryService.executeQuery('vitruvio', sql);
if(ds == null){
return null;
}
var map = new java.util.LinkedHashMap();
while(ds.next()) {
map.put(ds.getString('nome'), ds.getString('nome'));
}
var combo = new ComboBox();
combo.setWidth("100%");
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
var linha = item;
if(linha.getItemProperty('FUNCIONARIO').getValue()) {
combo.setValue(linha.getItemProperty('FUNCIONARIO').getValue());
}
combo.addValueChangeListener(new Property.ValueChangeListener() {
valueChange: function(event) {
setUsuario(linha.getItemProperty('CHAVE_RECEITA_FRETE').getValue().longValue(),
event.getProperty().getValue());
},
hashCode: function() {
return combo.hashCode();
}
});
return combo;
}
]]>
</scriptColumnGenerator>
</generated>
<column name="CTE" caption="CTE" editable="true" commitOnValueChange="true"/>
<generated name="CLIENTE" caption="Cliente" cache="false" >
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.com.vaadin.ui.ComboBox);
importClass(Packages.br.com.davinti.base.vaadin.components.data.container.ContainerUtils);
importClass(Packages.com.vaadin.data.Property);
var setUsuario = function(chave, cliente) {
if (cliente) {
var sqlAtualiza = "UPDATE controle_receitas_fretes SET chave_cliente = ? "+
" WHERE CHAVE_RECEITA_FRETE = ? ";
var sql = "Select codigo from clientes where nome = '" + cliente + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
var params = new java.util.ArrayList();
params.add(row.codigo);
params.add(chave);
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
} else {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Cliente não pode ser vazio.');
}
};
function generate(itemId, columnId, item, container) {
var sql = "Select codigo, nome from clientes";
var ds = vQueryService.executeQuery('vitruvio', sql);
if(ds == null){
return null;
}
var map = new java.util.LinkedHashMap();
while(ds.next()) {
map.put(ds.getString('nome'), ds.getString('nome'));
}
var combo = new ComboBox();
combo.setWidth("100%");
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
var linha = item;
if(linha.getItemProperty('CLIENTE').getValue()) {
combo.setValue(linha.getItemProperty('CLIENTE').getValue());
}
combo.addValueChangeListener(new Property.ValueChangeListener() {
valueChange: function(event) {
setUsuario(linha.getItemProperty('CHAVE_RECEITA_FRETE').getValue().longValue(),
event.getProperty().getValue());
},
hashCode: function() {
return combo.hashCode();
}
});
return combo;
}
]]>
</scriptColumnGenerator>
</generated>
<generated name="TIPO_FRETE" caption="Tipo frete" cache="false" >
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.com.vaadin.ui.ComboBox);
importClass(Packages.br.com.davinti.base.vaadin.components.data.container.ContainerUtils);
importClass(Packages.com.vaadin.data.Property);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
var setUsuario = function(chave, cliente) {
if (cliente) {
var sqlAtualiza = "UPDATE controle_receitas_fretes SET chave_tipo_frete = ? "+
" WHERE CHAVE_RECEITA_FRETE = ? ";
var sql = "Select codigo from tipo_frete where descricao = '" + cliente + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
var params = new java.util.ArrayList();
params.add(row.codigo);
params.add(chave);
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
} else {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Tipo de frete não pode ser vazio.');
}
};
function generate(itemId, columnId, item, container) {
var sql = "Select codigo, descricao from tipo_frete";
var ds = vQueryService.executeQuery('vitruvio', sql);
if(ds == null){
return null;
}
var map = new java.util.LinkedHashMap();
while(ds.next()) {
map.put(ds.getString('descricao'), ds.getString('descricao'));
}
var combo = new ComboBox();
combo.setWidth("100%");
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
var linha = item;
if(linha.getItemProperty('TIPO_FRETE').getValue()) {
combo.setValue(linha.getItemProperty('TIPO_FRETE').getValue());
}
combo.addValueChangeListener(new Property.ValueChangeListener() {
valueChange: function(event) {
setUsuario(linha.getItemProperty('CHAVE_RECEITA_FRETE').getValue().longValue(),
event.getProperty().getValue());
},
hashCode: function() {
return combo.hashCode();
}
});
return combo;
}
]]>
</scriptColumnGenerator>
</generated>
<generated name="FROTA_TERCEIRO" caption="Frota" cache="false" >
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.com.vaadin.ui.ComboBox);
importClass(Packages.br.com.davinti.base.vaadin.components.data.container.ContainerUtils);
importClass(Packages.com.vaadin.data.Property);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
var setUsuario = function(chave, cliente) {
if (cliente) {
var sqlAtualiza = "UPDATE controle_receitas_fretes SET frota_terceiro = ? "+
" WHERE CHAVE_RECEITA_FRETE = ? ";
var params = new java.util.ArrayList();
params.add(String(cliente));
params.add(chave);
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
} else {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Frota / Terceiro não pode ser vazio.');
}
};
function generate(itemId, columnId, item, container) {
var map = new java.util.LinkedHashMap();
map.put('F', 'Frota');
map.put('T', 'Terceiro');
var combo = new ComboBox();
combo.setWidth("100%");
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
var linha = item;
if(linha.getItemProperty('FROTA_TERCEIRO').getValue()) {
combo.setValue(linha.getItemProperty('FROTA_TERCEIRO').getValue());
}
combo.addValueChangeListener(new Property.ValueChangeListener() {
valueChange: function(event) {
setUsuario(linha.getItemProperty('CHAVE_RECEITA_FRETE').getValue().longValue(),
event.getProperty().getValue());
},
hashCode: function() {
return combo.hashCode();
}
});
return combo;
}
]]>
</scriptColumnGenerator>
</generated>
<column name="VALOR_FRETE" caption="Valor frete" align="RIGHT" format="#.##0,00" commitOnValueChange="true" editable="true" decimalSeparator="," />
<generated name="UF_ORIGEM" caption="Uf Origem" cache="false" >
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.com.vaadin.ui.ComboBox);
importClass(Packages.br.com.davinti.base.vaadin.components.data.container.ContainerUtils);
importClass(Packages.com.vaadin.data.Property);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
var setUsuario = function(chave, cliente) {
var sqlAtualiza = "UPDATE controle_receitas_fretes SET uf_origem = ? "+
" WHERE CHAVE_RECEITA_FRETE = ? ";
var sql = "Select chave_estado from estados where sigla = '" + cliente + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
var params = new java.util.ArrayList();
params.add(row.chave_estado);
params.add(chave);
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
};
function generate(itemId, columnId, item, container) {
var sql = "Select chave_estado, sigla from estados";
var ds = vQueryService.executeQuery('vitruvio', sql);
if(ds == null){
return null;
}
var map = new java.util.LinkedHashMap();
while(ds.next()) {
map.put(ds.getString('SIGLA'), ds.getString('SIGLA'));
}
var combo = new ComboBox();
combo.setWidth("100%");
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
var linha = item;
if(linha.getItemProperty('UF_ORIGEM').getValue()) {
combo.setValue(linha.getItemProperty('UF_ORIGEM').getValue());
}
combo.addValueChangeListener(new Property.ValueChangeListener() {
valueChange: function(event) {
setUsuario(linha.getItemProperty('CHAVE_RECEITA_FRETE').getValue().longValue(),
event.getProperty().getValue());
},
hashCode: function() {
return combo.hashCode();
}
});
return combo;
}
]]>
</scriptColumnGenerator>
</generated>
<generated name="UF_DESTINO" caption="Uf Destino" cache="false" >
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.com.vaadin.ui.ComboBox);
importClass(Packages.br.com.davinti.base.vaadin.components.data.container.ContainerUtils);
importClass(Packages.com.vaadin.data.Property);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
var setUsuario = function(chave, cliente) {
var params = new java.util.ArrayList();
var sqlEstado = "Select chave_estado from estados where sigla = '" + cliente + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var rowEstado = dbVitruvio.queryRow(sqlEstado);
var estado = rowEstado.chave_estado;
var sql = "Select (crf.valor_frete * (cp.percentual_impostos/100)) impostos, crf.valor_frete - (crf.valor_frete * (cp.percentual_impostos/100)) liquido from controle_receitas_fretes crf inner join clientes_praca cp on cp.chave_cliente = crf.chave_cliente and cp.chave_estado = " + estado + " where crf.chave_receita_frete = " + chave;
var row = dbVitruvio.queryRow(sql);
var impostos = row.impostos;
var liquido = row.liquido;
dbVitruvio.transaction(function() {
var sqlAtualiza = "UPDATE controle_receitas_fretes SET uf_destino = :chave_estado, valor_imposto = :impostos, valor_liquido = :liquido "+
" WHERE CHAVE_RECEITA_FRETE = :chave";
this.update(sqlAtualiza, {
chave: Number(chave),
chave_estado: Number(estado),
impostos: impostos,
liquido: liquido
});
});
};
function generate(itemId, columnId, item, container) {
var sql = "Select e.sigla from clientes_praca cp inner join clientes c on c.codigo = cp.chave_cliente inner join estados e on e.chave_estado = cp.chave_estado where c.nome = '" + item.getItemProperty('CLIENTE').getValue() + "'";
var ds = vQueryService.executeQuery('vitruvio', sql);
if(ds == null){
return null;
}
var map = new java.util.LinkedHashMap();
while(ds.next()) {
map.put(ds.getString('sigla'), ds.getString('sigla'));
}
var combo = new ComboBox();
combo.setWidth("100%");
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
var linha = item;
if(linha.getItemProperty('UF_DESTINO').getValue()) {
combo.setValue(linha.getItemProperty('UF_DESTINO').getValue());
}
combo.addValueChangeListener(new Property.ValueChangeListener() {
valueChange: function(event) {
setUsuario(linha.getItemProperty('CHAVE_RECEITA_FRETE').getValue().longValue(),
event.getProperty().getValue());
engine.getField('tbLancamentos').refresh();
},
hashCode: function() {
return combo.hashCode();
}
});
return combo;
}
]]>
</scriptColumnGenerator>
</generated>
<generated name="FORMA_PAGAMENTO" caption="Forma pagamento" cache="false" >
<scriptColumnGenerator language="JavaScript">
<![CDATA[
importClass(Packages.com.vaadin.ui.ComboBox);
importClass(Packages.br.com.davinti.base.vaadin.components.data.container.ContainerUtils);
importClass(Packages.com.vaadin.data.Property);
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
var setUsuario = function(chave, cliente) {
if (cliente) {
var sqlAtualiza = "UPDATE controle_receitas_fretes SET chave_forma_pagamento = ? "+
" WHERE CHAVE_RECEITA_FRETE = ? ";
var sql = "Select codigo from forma_pagamento where nome = '" + cliente + "'";
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var row = dbVitruvio.queryRow(sql);
var params = new java.util.ArrayList();
params.add(row.codigo);
params.add(chave);
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
} else {
MessageBox.show(MessageBox.BoxType.INFO, 'Atenção', 'Forma de pagamento não pode ser vazio.');
}
};
function generate(itemId, columnId, item, container) {
var sql = "Select codigo, nome from forma_pagamento";
var ds = vQueryService.executeQuery('vitruvio', sql);
if(ds == null){
return null;
}
var map = new java.util.LinkedHashMap();
while(ds.next()) {
map.put(ds.getString('nome'), ds.getString('nome'));
}
var combo = new ComboBox();
combo.setWidth("100%");
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
var linha = item;
if(linha.getItemProperty('FORMA_PAGAMENTO').getValue()) {
combo.setValue(linha.getItemProperty('FORMA_PAGAMENTO').getValue());
}
combo.addValueChangeListener(new Property.ValueChangeListener() {
valueChange: function(event) {
setUsuario(linha.getItemProperty('CHAVE_RECEITA_FRETE').getValue().longValue(),
event.getProperty().getValue());
},
hashCode: function() {
return combo.hashCode();
}
});
return combo;
}
]]>
</scriptColumnGenerator>
</generated>
<column name="VALOR_IMPOSTO" caption="Valor impostos" format="###0.00" decimalSeparator="," />
<column name="VALOR_LIQUIDO" caption="Lucro (Frete - Impostos)" format="###0.00" decimalSeparator="," />
</columns>
<events>
<itemChange>
<script language="JavaScript">
<![CDATA[
function onChange(event) {
var db = libService.loadScript('db');
var dbVitruvio = new db('vitruvio');
var sql = "Select (" + event.getField('VALOR_FRETE').getConvertedValue() + " * (cp.percentual_impostos/100)) impostos, " + event.getField('VALOR_FRETE').getConvertedValue() + " - (" + event.getField('VALOR_FRETE').getConvertedValue() + " * (cp.percentual_impostos/100)) liquido from controle_receitas_fretes crf inner join clientes_praca cp on cp.chave_cliente = crf.chave_cliente and cp.chave_estado = crf.uf_destino where crf.chave_receita_frete = " + event.getItemId();
var row = dbVitruvio.queryRow(sql);
var impostos = row.impostos;
var liquido = row.liquido;
dbVitruvio.transaction(function() {
var sqlAtualiza = "UPDATE controle_receitas_fretes SET data = :data, cte = :cte, valor_frete = :valor_frete, valor_imposto = :valor_imposto, valor_liquido = :valor_liquido" +
" WHERE CHAVE_RECEITA_FRETE = :chave";
this.update(sqlAtualiza, {
chave: Number(event.getItemId()),
data: event.getField('DATA').getValue(),
cte: event.getField('CTE').getConvertedValue(),
valor_frete: event.getField('VALOR_FRETE').getConvertedValue(),
valor_imposto: impostos,
valor_liquido: liquido
});
});
engine.getField('tbLancamentos').refresh();
engine.getGlobalVariable('fncSubTotal')();
event.commit();
}
]]>
</script>
</itemChange>
</events>
</DBTable>
</VerticalLayout>
</Panel>
</VerticalLayout>
</Tab>
</TabLayout>
</VerticalLayout>
</components>
</form>
</panel-form>