<?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">
|
|
<;
|
|
engine.getField('cliente')["setValue(java.lang.Object)"](null);
|
|
engine.getField('frotaTerceiroOperacional')["setValue(java.lang.Object)"](null);
|
|
engine.getField('caminhaoCarretaOperacional')["setValue(java.lang.Object)"](null);
|
|
engine.getField('categoria')["setValue(java.lang.Object)"](null);
|
|
engine.getField('subCategoria')["setValue(java.lang.Object)"](null);
|
|
engine.getField('nrDocumento')['setValue(java.lang.String)'](null);
|
|
engine.getField('formaPagamento')["setValue(java.lang.Object)"](null);
|
|
engine.getField('placa')["setValue(java.lang.Object)"](null);
|
|
engine.getField('funcionario')["setValue(java.lang.Object)"](null);
|
|
engine.getField('fornecedor')["setValue(java.lang.Object)"](null);
|
|
engine.getField('valor')['setValue(java.lang.String)'](null);
|
|
engine.getField('observacao')['setValue(java.lang.String)'](null);
|
|
|
|
engine.getField('dataPessoal')["setValue(java.lang.Object)"](null);
|
|
engine.getField('categoriaPessoal')["setValue(java.lang.Object)"](null);
|
|
engine.getField('responsavelPessoal')["setValue(java.lang.Object)"](null);
|
|
engine.getField('valorPessoal')['setValue(java.lang.String)'](null);
|
|
engine.getField('observacaoPessoal')['setValue(java.lang.String)'](null);
|
|
|
|
engine.getField('dataCombustivel')["setValue(java.lang.Object)"](null);
|
|
engine.getField('placaCombustivel')["setValue(java.lang.Object)"](null);
|
|
engine.getField('clienteCombustivel')["setValue(java.lang.Object)"](null);
|
|
engine.getField('frotaTerceiroCombustivel')["setValue(java.lang.Object)"](null);
|
|
engine.getField('caminhaoCarretaCombustivel')["setValue(java.lang.Object)"](null);
|
|
engine.getField('observacaoCombustivel')['setValue(java.lang.String)'](null);
|
|
engine.getField('combustivel')["setValue(java.lang.Object)"](null);
|
|
engine.getField('litrosCombustivel')['setValue(java.lang.String)'](null);
|
|
engine.getField('valorCombustivel')['setValue(java.lang.String)'](null);
|
|
engine.getField('totalCombustivel')['setValue(java.lang.String)'](null);
|
|
engine.getField('kmInicial')['setValue(java.lang.String)'](null);
|
|
engine.getField('kmFinal')['setValue(java.lang.String)'](null);
|
|
engine.getField('kmRodado')['setValue(java.lang.String)'](null);
|
|
engine.getField('posto')["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(cdo.valor), 'L9G999G990D99'),',','-' ),'.',','),'-','.') total from controle_despesas_operacionais cdo where cdo.data between '" + engine.getField('dataInicio') + "' and '" + engine.getField('dataFinal') + "'";
|
|
if (engine.getField('ftFuncionario').getValue()) {
|
|
sql += " and cdo.chave_funcionario = " + engine.getField('ftFuncionario').getValue();
|
|
}
|
|
if (engine.getField('ftPlaca').getValue()) {
|
|
sql += " and cdo.chave_veiculo = " + engine.getField('ftPlaca').getValue();
|
|
}
|
|
if (engine.getField('ftClientes').getValue() && engine.getField('ftClientes').getValue() != '[]') {
|
|
sql += " and cdo.chave_cliente in (" + engine.getField('ftClientes').getValue().toString().replace('[','').replace(']','') + ")";
|
|
}
|
|
if (engine.getField('ftFornecedor').getValue()) {
|
|
sql += " and cdo.chave_fornecedor = " + engine.getField('ftFornecedor').getValue();
|
|
}
|
|
if (engine.getField('ftCategoria').getValue()) {
|
|
sql += " and cdo.chave_categoria = " + engine.getField('ftCategoria').getValue();
|
|
}
|
|
if (engine.getField('ftSubCategoria').getValue()) {
|
|
sql += " and cdo.chave_subcategoria = " + engine.getField('ftSubCategoria').getValue();
|
|
}
|
|
if (engine.getField('ftFrotaTerceiroOperacional').getValue() == 'F') {
|
|
sql += " and cdo.frota_terceiro = 'F'";
|
|
} else if (engine.getField('ftFrotaTerceiroOperacional').getValue() == 'T') {
|
|
sql += " and cdo.frota_terceiro = 'T'";
|
|
}
|
|
if (engine.getField('ftCaminhaoCarretaOperacional').getValue() == 'C') {
|
|
sql += " and cdo.caminhao_carreta = 'C'";
|
|
} else if (engine.getField('ftCaminhaoCarretaOperacional').getValue() == 'T') {
|
|
sql += " and cdo.caminhao_carreta = 'T'";
|
|
} else if (engine.getField('ftCaminhaoCarretaOperacional').getValue() == 'O') {
|
|
sql += " and cdo.caminhao_carreta = 'O'";
|
|
}
|
|
//sql += " order by data desc";
|
|
vitruvio.query(sql).each(function (r) {
|
|
if (r.total) {
|
|
engine.getLabel('sub').setValue('<b><font color="red">Subtotal R' + r.total + '</font></b>');
|
|
} else {
|
|
engine.getLabel('sub').setValue('<b><font color="red">Subtotal R$ 0,00</font></b>');
|
|
}
|
|
});
|
|
}
|
|
|
|
function fncSubTotalPessoal() {
|
|
var params = {id: 0};
|
|
var db = vScriptService.loadScript('db', 'javascript');
|
|
var vitruvio = new db('vitruvio');
|
|
var sql = "Select replace(replace(replace(to_char(sum(cdp.valor), 'L9G999G990D99'),',','-' ),'.',','),'-','.') total from controle_despesas_pessoais cdp where cdp.data between '" + engine.getField('dataInicioPessoal') + "' and '" + engine.getField('dataFinalPessoal') + "'";
|
|
if (engine.getField('ftResponsavelPessoal').getValue()) {
|
|
sql += " and cdp.chave_responsavel = " + engine.getField('ftResponsavelPessoal').getValue();
|
|
}
|
|
vitruvio.query(sql).each(function (r) {
|
|
if (r.total) {
|
|
engine.getLabel('subPessoal').setValue('<b><font color="red">Subtotal R' + r.total + '</font></b>');
|
|
} else {
|
|
engine.getLabel('subPessoal').setValue('<b><font color="red">Subtotal R$ 0,00</font></b>');
|
|
}
|
|
});
|
|
}
|
|
|
|
function fncSubTotalCombustivel() {
|
|
var params = {id: 0};
|
|
var db = vScriptService.loadScript('db', 'javascript');
|
|
var vitruvio = new db('vitruvio');
|
|
var sql = "Select replace(replace(replace(to_char(sum(cdc.total_combustivel), 'L9G999G990D99'),',','-' ),'.',','),'-','.') total from controle_despesas_combustiveis cdc where cdc.data between '" + engine.getField('dataInicioCombustivel') + "' and '" + engine.getField('dataFinalCombustivel') + "'";
|
|
if (engine.getField('ftPlacaCombustivel').getValue()) {
|
|
sql += " and cdc.chave_veiculo = " + engine.getField('ftPlacaCombustivel').getValue();
|
|
}
|
|
if (engine.getField('ftCombustivel').getValue()) {
|
|
sql += " and cdc.chave_combustivel = " + engine.getField('ftCombustivel').getValue();
|
|
}
|
|
if (engine.getField('ftClientesCombustivel').getValue() && engine.getField('ftClientesCombustivel').getValue() != '[]') {
|
|
sql += " and cdc.chave_cliente in (" + engine.getField('ftClientesCombustivel').getValue().toString().replace('[','').replace(']','') + ")";
|
|
}
|
|
if (engine.getField('ftposto').getValue()) {
|
|
sql += " and cdc.chave_posto = " + engine.getField('ftposto').getValue();
|
|
}
|
|
if (engine.getField('ftFrotaTerceiroOperacionalCombustivel').getValue() == 'F') {
|
|
sql += " and cdc.frota_terceiro = 'F'";
|
|
} else if (engine.getField('ftFrotaTerceiroOperacionalCombustivel').getValue() == 'T') {
|
|
sql += " and cdc.frota_terceiro = 'T'";
|
|
}
|
|
if (engine.getField('ftCaminhaoCarretaOperacionalCombustivel').getValue() == 'C') {
|
|
sql += " and cdc.caminhao_carreta = 'C'";
|
|
} else if (engine.getField('ftCaminhaoCarretaOperacionalCombustivel').getValue() == 'T') {
|
|
sql += " and cdc.caminhao_carreta = 'T'";
|
|
} else if (engine.getField('ftCaminhaoCarretaOperacionalCombustivel').getValue() == 'O') {
|
|
sql += " and cdc.caminhao_carreta = 'O'";
|
|
}
|
|
vitruvio.query(sql).each(function (r) {
|
|
if (r.total) {
|
|
engine.getLabel('subCombustivel').setValue('<b><font color="red">Subtotal R' + r.total + '</font></b>');
|
|
} else {
|
|
engine.getLabel('subCombustivel').setValue('<b><font color="red">Subtotal R$ 0,00</font></b>');
|
|
}
|
|
});
|
|
}
|
|
|
|
function run() {
|
|
engine.getField('totalCombustivel').setEnabled(false);
|
|
engine.getField('kmRodado').setEnabled(false);
|
|
engine.getField('mediaCombustivel').setEnabled(false);
|
|
engine.getField('ftFrotaTerceiroOperacional').setValue('A');
|
|
engine.getField('ftFrotaTerceiroOperacionalCombustivel').setValue('A');
|
|
engine.getField('ftCaminhaoCarretaOperacional').setValue('A');
|
|
engine.getField('ftCaminhaoCarretaOperacionalCombustivel').setValue('A');
|
|
|
|
var d = new java.util.Date();
|
|
engine.setGlobalVariable('fncLimpaCampos', fncLimpaCampos);
|
|
engine.setGlobalVariable('fncSubTotal', fncSubTotal);
|
|
engine.setGlobalVariable('fncSubTotalPessoal', fncSubTotalPessoal);
|
|
engine.setGlobalVariable('fncSubTotalCombustivel', fncSubTotalCombustivel);
|
|
engine.getField('dataInicio').setValue(d);
|
|
engine.getField('dataFinal').setValue(d);
|
|
engine.getField('dataInicioPessoal').setValue(d);
|
|
engine.getField('dataFinalPessoal').setValue(d);
|
|
engine.getField('dataInicioCombustivel').setValue(d);
|
|
engine.getField('dataFinalCombustivel').setValue(d);
|
|
engine.getField('tbLancamentos').refresh();
|
|
engine.getField('tbPessoal').refresh();
|
|
engine.getField('tbTotalSocios').refresh();
|
|
engine.getField('tbCombustivel').refresh();
|
|
engine.getField('tbTotalCombustivel').refresh();
|
|
engine.getGlobalVariable('fncSubTotal')();
|
|
engine.getGlobalVariable('fncSubTotalPessoal')();
|
|
engine.getGlobalVariable('fncSubTotalCombustivel')();
|
|
|
|
// 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));
|
|
engine.getWidgetController('btnGravarPessoal').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.SALVAR));
|
|
engine.getWidgetController('btnFiltrarPessoal').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.FILTRAR));
|
|
engine.getWidgetController('btnLimparFiltroPessoal').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.LIMPAR));
|
|
engine.getWidgetController('btnGravarCombustivel').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.SALVAR));
|
|
engine.getWidgetController('btnFiltrarCombustivel').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.FILTRAR));
|
|
engine.getWidgetController('btnLimparFiltroCombustivel').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.LIMPAR));
|
|
}
|
|
]]>
|
|
</initScript>
|
|
|
|
<components>
|
|
<VerticalLayout margin="true" width="100%" height="100%" >
|
|
<TabLayout align="BOTTOM_LEFT" id="credito" compact="true" width="100%" height="100%" expandRatio="1" >
|
|
<TabChangeScript language="JavaScript">
|
|
<![CDATA[
|
|
function run() {
|
|
var index = engine.getLayout('credito').getSelectedTab();
|
|
if (index == 0) {
|
|
engine.getField('dataLancamento').setRequired(true);
|
|
engine.getField('dataPessoal').setRequired(false);
|
|
engine.getField('dataCombustivel').setRequired(false);
|
|
engine.getField('placa').setRequired(false);
|
|
engine.getField('cliente').setRequired(true);
|
|
engine.getField('frotaTerceiroOperacional').setRequired(true);
|
|
engine.getField('frotaTerceiroCombustivel').setRequired(false);
|
|
engine.getField('caminhaoCarretaOperacional').setRequired(true);
|
|
engine.getField('caminhaoCarretaCombustivel').setRequired(false);
|
|
engine.getField('categoria').setRequired(true);
|
|
engine.getField('valor').setRequired(true);
|
|
engine.getField('categoriaPessoal').setRequired(false);
|
|
engine.getField('responsavelPessoal').setRequired(false);
|
|
engine.getField('valorPessoal').setRequired(false);
|
|
engine.getField('placaCombustivel').setRequired(false);
|
|
engine.getField('clienteCombustivel').setRequired(false);
|
|
engine.getField('combustivel').setRequired(false);
|
|
} else if (index == 1) {
|
|
engine.getField('dataLancamento').setRequired(false);
|
|
engine.getField('dataPessoal').setRequired(true);
|
|
engine.getField('dataCombustivel').setRequired(false);
|
|
engine.getField('placa').setRequired(false);
|
|
engine.getField('cliente').setRequired(false);
|
|
engine.getField('categoria').setRequired(false);
|
|
engine.getField('valor').setRequired(false);
|
|
engine.getField('categoriaPessoal').setRequired(true);
|
|
engine.getField('responsavelPessoal').setRequired(true);
|
|
engine.getField('valorPessoal').setRequired(true);
|
|
engine.getField('placaCombustivel').setRequired(false);
|
|
engine.getField('clienteCombustivel').setRequired(false);
|
|
engine.getField('combustivel').setRequired(false);
|
|
} else if (index == 2) {
|
|
engine.getField('dataLancamento').setRequired(false);
|
|
engine.getField('dataPessoal').setRequired(false);
|
|
engine.getField('dataCombustivel').setRequired(true);
|
|
engine.getField('placa').setRequired(false);
|
|
engine.getField('cliente').setRequired(false);
|
|
engine.getField('frotaTerceiroOperacional').setRequired(false);
|
|
engine.getField('frotaTerceiroCombustivel').setRequired(true);
|
|
engine.getField('caminhaoCarretaOperacional').setRequired(false);
|
|
engine.getField('caminhaoCarretaCombustivel').setRequired(true);
|
|
engine.getField('categoria').setRequired(false);
|
|
engine.getField('valor').setRequired(false);
|
|
engine.getField('categoriaPessoal').setRequired(false);
|
|
engine.getField('responsavelPessoal').setRequired(false);
|
|
engine.getField('valorPessoal').setRequired(false);
|
|
engine.getField('placaCombustivel').setRequired(true);
|
|
engine.getField('clienteCombustivel').setRequired(true);
|
|
engine.getField('combustivel').setRequired(true);
|
|
}
|
|
}
|
|
]]>
|
|
</TabChangeScript>
|
|
<Tab caption="Operacionais">
|
|
<VerticalLayout spacing="true" width="100%" height="100%">
|
|
<Panel caption=" " width="100%" expandRatio="0.9" align="TOP_LEFT" height="100%">
|
|
<VerticalLayout spacing="true" margin="true" expandRatio="1">
|
|
<HorizontalLayout width="100%" spacing="true" expandRatio="1">
|
|
|
|
<ImageWidget id="img1" height="46" width="68" align="TOP_LEFT">
|
|
<image>
|
|
<base64 extension="jpg">
|
|
<![CDATA[
|
|
,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdEMDlDODk3OTE5MTExRTg4MzcwQTA0Q0Y5OERBNkI2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdEMDlDODk4OTE5MTExRTg4MzcwQTA0Q0Y5OERBNkI2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0QwOUM4OTU5MTkxMTFFODgzNzBBMDRDRjk4REE2QjYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6N0QwOUM4OTY5MTkxMTFFODgzNzBBMDRDRjk4REE2QjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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
|
|
]]>
|
|
</base64>
|
|
</image>
|
|
</ImageWidget>
|
|
|
|
<DateField type="date" id="dataLancamento" align="TOP_LEFT" caption="Data" width="100%" expandRatio=".5" required="true" resolution="DAY" description="Informe a data do lançamento" format="dd/MM/yyyy" />
|
|
|
|
<DBComboBox type="string" id="placa" width="100%" required="false" align="TOP_LEFT" caption="Placa" expandRatio="1">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from veiculo where inativo is false order by placa
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>PLACA</caption-field>
|
|
</DBComboBox>
|
|
|
|
<DBComboBox type="string" id="cliente" required="true" width="100%" align="TOP_LEFT" caption="Cliente" expandRatio="1">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from clientes where inativo is false order by nome
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>NOME</caption-field>
|
|
</DBComboBox>
|
|
|
|
<OptionGroup type="string" id="frotaTerceiroOperacional" disposition="vertical" required="true" width="60" expandRatio=".5">
|
|
<entry value="Frota" key="F"/>
|
|
<entry value="Terceiro" key="T"/>
|
|
</OptionGroup>
|
|
<OptionGroup type="string" id="caminhaoCarretaOperacional" disposition="vertical" required="true" width="75" expandRatio=".5">
|
|
<entry value="Caminhão" key="C"/>
|
|
<entry value="Carreta" key="T"/>
|
|
<entry value="Outros" key="O"/>
|
|
</OptionGroup>
|
|
|
|
<DBComboBox type="string" id="categoria" required="true" width="100%" align="TOP_LEFT" caption="Categoria" expandRatio="1">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from categoria
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>DESCRICAO</caption-field>
|
|
</DBComboBox>
|
|
|
|
<DBComboBox type="string" id="subCategoria" width="100%" align="TOP_LEFT" caption="Sub-Categoria" expandRatio="1">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from subcategoria where codigo_categoria = ${categoria}
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>DESCRICAO</caption-field>
|
|
<bind>
|
|
<parameter value-type="number" defaultValue="-1" parameterName="categoria" field-ref="categoria" expandRatio="1" />
|
|
</bind>
|
|
</DBComboBox>
|
|
|
|
<DBComboBox type="string" id="funcionario" width="100%" align="TOP_LEFT" caption="Funcionário" expandRatio="1">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from funcionario where inativo is false order by nome
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>NOME</caption-field>
|
|
</DBComboBox>
|
|
</HorizontalLayout>
|
|
|
|
<HorizontalLayout spacing="true" width="100%" height="100%" >
|
|
<TextField type="string" id="nrDocumento" caption="Número do documento" width="100%" expandRatio="0.25" align="TOP_LEFT" />
|
|
<DBComboBox type="string" id="formaPagamento" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Forma pagamento" >
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from forma_pagamento
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>NOME</caption-field>
|
|
</DBComboBox>
|
|
<DBComboBox type="string" id="fornecedor" width="100%" expandRatio="0.3" align="TOP_LEFT" caption="Fornecedor">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from fornecedor where inativo is false order by razao_social
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>RAZAO_SOCIAL</caption-field>
|
|
</DBComboBox>
|
|
<DecimalField type="decimal" id="valor" caption="Valor (R$)" format="#,##0.00" required="true" description="Valor da despesa" width="100%" expandRatio="0.2" />
|
|
<TextField type="string" id="observacao" text-transform="uppercase" align="TOP_LEFT" width="100%" expandRatio="1" caption="Observações" >
|
|
<events>
|
|
<valueChange>
|
|
<script language="JavaScript">
|
|
<![CDATA[
|
|
function run() {
|
|
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_despesas_operacionais (chave_despesa_operacional,data,chave_cliente,chave_categoria,chave_subcategoria,numero_documento,chave_forma_pagamento,chave_veiculo,chave_funcionario,chave_fornecedor,observacoes,valor,usuario,frota_terceiro,caminhao_carreta) " +
|
|
" values (" + dbVitruvio.getSequenceNextValSql('controle_desp_op_seq') + ",:data,:chave_cliente,:chave_categoria,:chave_subcategoria,:numero_documento,0,:chave_veiculo,:chave_funcionario,:chave_fornecedor,:observacoes,:valor,:usuario,:frota_terceiro,:caminhao_carreta)";
|
|
this.update(sql, {
|
|
data: engine.getField('dataLancamento').getValue(),
|
|
chave_cliente: Number(engine.getField('cliente').getValue()),
|
|
chave_categoria: Number(engine.getField('categoria').getValue()),
|
|
chave_subcategoria: Number(engine.getField('subCategoria').getValue()),
|
|
numero_documento: engine.getField('nrDocumento').getValue(),
|
|
chave_forma_pagamento: Number(engine.getField('formaPagamento').getValue()),
|
|
chave_veiculo: Number(engine.getField('placa').getValue()),
|
|
chave_funcionario: Number(engine.getField('funcionario').getValue()),
|
|
chave_fornecedor: Number(engine.getField('fornecedor').getValue()),
|
|
observacoes: engine.getField('observacao').getValue(),
|
|
valor: engine.getField('valor').getConvertedValue(),
|
|
usuario: engine.getLoggedUser().getLogin(),
|
|
frota_terceiro: engine.getField('frotaTerceiroOperacional').getValue(),
|
|
caminhao_carreta: engine.getField('caminhaoCarretaOperacional').getValue()
|
|
});
|
|
});
|
|
engine.getField('tbLancamentos').refresh();
|
|
engine.getGlobalVariable('fncLimpaCampos')();
|
|
engine.getGlobalVariable('fncSubTotal')();
|
|
Notification.show(null, 'Dados salvos', Notification.Type.TRAY_NOTIFICATION);
|
|
}
|
|
}
|
|
}
|
|
]]>
|
|
</script>
|
|
</valueChange>
|
|
</events>
|
|
</TextField>
|
|
<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() {
|
|
engine.getField('frotaTerceiroCombustivel').setRequired(false);
|
|
engine.getField('caminhaoCarretaCombustivel').setRequired(false);
|
|
if (engine.isValid()) {
|
|
var db = libService.loadScript('db');
|
|
var dbVitruvio = new db('vitruvio');
|
|
var sql;
|
|
dbVitruvio.transaction(function() {
|
|
sql = "insert into controle_despesas_operacionais (chave_despesa_operacional,data,chave_cliente,chave_categoria,chave_subcategoria,numero_documento,chave_forma_pagamento,chave_veiculo,chave_funcionario,chave_fornecedor,observacoes,valor,usuario,frota_terceiro,caminhao_carreta) " +
|
|
" values (" + dbVitruvio.getSequenceNextValSql('controle_desp_op_seq') + ",:data,:chave_cliente,:chave_categoria,:chave_subcategoria,:numero_documento,0,:chave_veiculo,:chave_funcionario,:chave_fornecedor,:observacoes,:valor,:usuario,:frota_terceiro,:caminhao_carreta)";
|
|
this.update(sql, {
|
|
data: engine.getField('dataLancamento').getValue(),
|
|
chave_cliente: Number(engine.getField('cliente').getValue()),
|
|
chave_categoria: Number(engine.getField('categoria').getValue()),
|
|
chave_subcategoria: Number(engine.getField('subCategoria').getValue()),
|
|
numero_documento: engine.getField('nrDocumento').getValue(),
|
|
chave_forma_pagamento: Number(engine.getField('formaPagamento').getValue()),
|
|
chave_veiculo: Number(engine.getField('placa').getValue()),
|
|
chave_funcionario: Number(engine.getField('funcionario').getValue()),
|
|
chave_fornecedor: Number(engine.getField('fornecedor').getValue()),
|
|
observacoes: engine.getField('observacao').getValue(),
|
|
valor: engine.getField('valor').getConvertedValue(),
|
|
usuario: engine.getLoggedUser().getLogin(),
|
|
frota_terceiro: engine.getField('frotaTerceiroOperacional').getValue(),
|
|
caminhao_carreta: engine.getField('caminhaoCarretaOperacional').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" height="100%" expandRatio="2" >
|
|
<VerticalLayout width="100%" height="100%" spacing="true" align="TOP_LEFT" >
|
|
<HorizontalLayout width="100%" height="100%" spacing="true" align="TOP_LEFT" expandRatio="0.4">
|
|
<DBTwinColSelect type="string" id="ftClientes" rows="5" width="100%" expandRatio="0.8" allowNullSelection="true" align="TOP_LEFT" caption="Clientes" multivalue="true">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from clientes order by nome
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>NOME</caption-field>
|
|
</DBTwinColSelect>
|
|
<VerticalLayout width="100%" spacing="true" expandRatio="1" align="TOP_LEFT">
|
|
<HorizontalLayout width="100%" spacing="true">
|
|
<DateField type="date" id="dataInicio" caption="Data inicial" align="TOP_LEFT" width="100%" expandRatio="0.2" description="Data inicial 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="number" id="ftFuncionario" caption="Funcionários" width="100%" expandRatio="0.2" allowNullSelection="true" >
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select codigo, nome from funcionario order by nome
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>NOME</caption-field>
|
|
</DBComboBox>
|
|
<DBComboBox type="number" id="ftPlaca" caption="Placa" width="100%" expandRatio="0.15" allowNullSelection="true" >
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select codigo, placa from veiculo order by placa
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>PLACA</caption-field>
|
|
</DBComboBox>
|
|
<DBComboBox type="number" id="ftFornecedor" caption="Fornecedores" width="100%" expandRatio="0.5" allowNullSelection="true" >
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select codigo, razao_social from fornecedor order by razao_social
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>RAZAO_SOCIAL</caption-field>
|
|
</DBComboBox>
|
|
</HorizontalLayout>
|
|
|
|
<HorizontalLayout width="100%" spacing="true" expandRatio="1.5" >
|
|
<OptionGroup type="string" id="ftFrotaTerceiroOperacional" disposition="vertical" width="60" align="BOTTOM_LEFT" >
|
|
<entry value="Ambos" key="A" />
|
|
<entry value="Frota" key="F"/>
|
|
<entry value="Terceiro" key="T"/>
|
|
</OptionGroup>
|
|
<OptionGroup type="string" id="ftCaminhaoCarretaOperacional" disposition="vertical" width="60" align="BOTTOM_LEFT" height="100%">
|
|
<entry value="Todos" key="A" />
|
|
<entry value="Caminhão" key="C"/>
|
|
<entry value="Carreta" key="T"/>
|
|
<entry value="Outros" key="O"/>
|
|
</OptionGroup>
|
|
<DBComboBox type="number" id="ftCategoria" caption="Categorias" width="100%" align="BOTTOM_LEFT" allowNullSelection="true" >
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from categoria
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>DESCRICAO</caption-field>
|
|
</DBComboBox>
|
|
|
|
<DBComboBox type="string" id="ftSubCategoria" width="100%" align="BOTTOM_LEFT" caption="Sub-Categoria" allowNullSelection="true">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from subcategoria
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>DESCRICAO</caption-field>
|
|
</DBComboBox>
|
|
|
|
<ButtonWidget id="btnFiltrar" caption="Filtrar" align="BOTTOM_LEFT" description="Aplica filtro de data" width="100" >
|
|
<onClickScript language="JavaScript">
|
|
<![CDATA[
|
|
function run() {
|
|
engine.getField('tbLancamentos').refresh();
|
|
engine.getGlobalVariable('fncSubTotal')();
|
|
}
|
|
]]>
|
|
</onClickScript>
|
|
</ButtonWidget>
|
|
<ButtonWidget id="btnLimparFiltro" caption="Limpar" align="BOTTOM_LEFT" description="Limpar filtro" width="100" >
|
|
<onClickScript language="JavaScript">
|
|
<;
|
|
engine.getField('ftPlaca')["setValue(java.lang.Object)"](null);
|
|
engine.getField('ftClientes')["setValue(java.lang.Object)"](null);
|
|
engine.getField('ftFornecedor')["setValue(java.lang.Object)"](null);
|
|
engine.getField('ftCategoria')["setValue(java.lang.Object)"](null);
|
|
engine.getField('ftSubCategoria')["setValue(java.lang.Object)"](null);
|
|
engine.getField('tbLancamentos').refresh();
|
|
engine.getGlobalVariable('fncSubTotal')();
|
|
}
|
|
]]>
|
|
</onClickScript>
|
|
</ButtonWidget>
|
|
<Label id="sub" align="BOTTOM_RIGHT" width="90%" contentMode="HTML">
|
|
<value>
|
|
|
|
</value>
|
|
</Label>
|
|
</HorizontalLayout>
|
|
</VerticalLayout>
|
|
</HorizontalLayout>
|
|
<DBTable id="tbLancamentos" type="number" width="100%" height="100%" expandRatio=".8" exportXLS="true" editable="true" >
|
|
<datasource>
|
|
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
|
|
<![CDATA[
|
|
function buildSQL(params) {
|
|
var sql = "Select cdo.chave_despesa_operacional," +
|
|
" cdo.data," +
|
|
" (select co.nome from clientes co where co.codigo = cdo.chave_cliente) cliente," +
|
|
" (select cc.descricao from categoria cc where cc.codigo = cdo.chave_categoria) categoria," +
|
|
" (select cs.descricao from subcategoria cs where cs.codigo = cdo.chave_subcategoria) subcategoria," +
|
|
" cdo.numero_documento," +
|
|
" (select cfp.nome from forma_pagamento cfp where cfp.codigo = cdo.chave_forma_pagamento) formapagamento," +
|
|
" (select cv.placa from veiculo cv where cv.codigo = cdo.chave_veiculo) veiculo," +
|
|
" (select cf.nome from funcionario cf where cf.codigo = cdo.chave_funcionario) funcionario," +
|
|
" (select cf.razao_social from fornecedor cf where cf.codigo = cdo.chave_fornecedor) fornecedor," +
|
|
" cdo.observacoes," +
|
|
" replace(replace(replace(to_char(cdo.valor, 'L9G999G990D99'),',','-' ),'.',','),'-','.') valor, " +
|
|
" cdo.frota_terceiro, " +
|
|
" cdo.caminhao_carreta " +
|
|
" from controle_despesas_operacionais cdo where 1=2";
|
|
if (engine) {
|
|
sql = "Select cdo.chave_despesa_operacional," +
|
|
" cdo.data," +
|
|
" (select co.nome from clientes co where co.codigo = cdo.chave_cliente) cliente," +
|
|
" (select cc.descricao from categoria cc where cc.codigo = cdo.chave_categoria) categoria," +
|
|
" (select cs.descricao from subcategoria cs where cs.codigo = cdo.chave_subcategoria) subcategoria," +
|
|
" cdo.numero_documento," +
|
|
" (select cfp.nome from forma_pagamento cfp where cfp.codigo = cdo.chave_forma_pagamento) formapagamento," +
|
|
" (select cv.placa from veiculo cv where cv.codigo = cdo.chave_veiculo) veiculo," +
|
|
" (select cf.nome from funcionario cf where cf.codigo = cdo.chave_funcionario) funcionario," +
|
|
" (select cf.razao_social from fornecedor cf where cf.codigo = cdo.chave_fornecedor) fornecedor," +
|
|
" cdo.observacoes," +
|
|
" cdo.frota_terceiro," +
|
|
" cdo.caminhao_carreta, " +
|
|
" cdo.valor valor from controle_despesas_operacionais cdo ";
|
|
if (engine.getField('dataInicio').getValue()) {
|
|
sql += " where cdo.data between '" + engine.getField('dataInicio').getValue() + "' and '" + engine.getField('dataFinal').getValue() + "'";
|
|
}
|
|
if (engine.getField('ftFuncionario').getValue()) {
|
|
sql += " and cdo.chave_funcionario = " + engine.getField('ftFuncionario').getValue();
|
|
}
|
|
if (engine.getField('ftPlaca').getValue()) {
|
|
sql += " and cdo.chave_veiculo = " + engine.getField('ftPlaca').getValue();
|
|
}
|
|
if (engine.getField('ftClientes').getValue() && engine.getField('ftClientes').getValue() != '[]') {
|
|
sql += " and cdo.chave_cliente in (" + engine.getField('ftClientes').getValue().toString().replace('[','').replace(']','') + ")";
|
|
}
|
|
if (engine.getField('ftFornecedor').getValue()) {
|
|
sql += " and cdo.chave_fornecedor = " + engine.getField('ftFornecedor').getValue();
|
|
}
|
|
if (engine.getField('ftCategoria').getValue()) {
|
|
sql += " and cdo.chave_categoria = " + engine.getField('ftCategoria').getValue();
|
|
}
|
|
if (engine.getField('ftSubCategoria').getValue()) {
|
|
sql += " and cdo.chave_subcategoria = " + engine.getField('ftSubCategoria').getValue();
|
|
}
|
|
if (engine.getField('ftFrotaTerceiroOperacional').getValue() == 'F') {
|
|
sql += " and cdo.frota_terceiro = 'F'";
|
|
} else if (engine.getField('ftFrotaTerceiroOperacional').getValue() == 'T') {
|
|
sql += " and cdo.frota_terceiro = 'T'";
|
|
}
|
|
if (engine.getField('ftCaminhaoCarretaOperacional').getValue() == 'C') {
|
|
sql += " and cdo.caminhao_carreta = 'C'";
|
|
} else if (engine.getField('ftCaminhaoCarretaOperacional').getValue() == 'T') {
|
|
sql += " and cdo.caminhao_carreta = 'T'";
|
|
} else if (engine.getField('ftCaminhaoCarretaOperacional').getValue() == 'O') {
|
|
sql += " and cdo.caminhao_carreta = 'O'";
|
|
}
|
|
sql += " order by data desc";
|
|
}
|
|
return sql;
|
|
}
|
|
]]>
|
|
</sqlBuilderDataSource>
|
|
</datasource>
|
|
<key-field>chave_despesa_operacional</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 sqlAtualiza = "UPDATE controle_despesas_operacionais SET usuario = ?, blindar = ? "+
|
|
" WHERE CHAVE_DESPESA_OPERACIONAL = ? "
|
|
|
|
var params = new java.util.ArrayList();
|
|
params.add(engine.getLoggedUser().getLogin());
|
|
params.add(1);
|
|
params.add(idRegistro);
|
|
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
|
|
|
|
var sql = 'delete from controle_despesas_operacionais where chave_despesa_operacional = :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" editable="true" editValueRequired="false" 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) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_operacionais SET chave_cliente = ? "+
|
|
" WHERE CHAVE_DESPESA_OPERACIONAL = ? ";
|
|
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());
|
|
};
|
|
|
|
function generate(itemId, columnId, item, container) {
|
|
|
|
var sql = "Select codigo, nome from clientes order by nome";
|
|
|
|
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("120");
|
|
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_DESPESA_OPERACIONAL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
<generated name="CATEGORIA" caption="Categoria" 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) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_operacionais SET chave_categoria = ? "+
|
|
" WHERE CHAVE_DESPESA_OPERACIONAL = ? ";
|
|
var sql = "Select codigo from categoria 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());
|
|
};
|
|
|
|
function generate(itemId, columnId, item, container) {
|
|
|
|
var sql = "Select codigo, descricao from categoria";
|
|
|
|
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("120");
|
|
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
|
|
|
|
var linha = item;
|
|
if(linha.getItemProperty('CATEGORIA').getValue()) {
|
|
combo.setValue(linha.getItemProperty('CATEGORIA').getValue());
|
|
}
|
|
|
|
|
|
combo.addValueChangeListener(new Property.ValueChangeListener() {
|
|
valueChange: function(event) {
|
|
setUsuario(linha.getItemProperty('CHAVE_DESPESA_OPERACIONAL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
<generated name="SUBCATEGORIA" caption="Sub-categoria" 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) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_operacionais SET chave_subcategoria = ? "+
|
|
" WHERE CHAVE_DESPESA_OPERACIONAL = ? ";
|
|
var sql = "Select codigo from subcategoria 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());
|
|
};
|
|
|
|
function generate(itemId, columnId, item, container) {
|
|
|
|
var sql = "Select codigo, descricao from subcategoria";
|
|
|
|
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("130");
|
|
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
|
|
|
|
var linha = item;
|
|
if(linha.getItemProperty('SUBCATEGORIA').getValue()) {
|
|
combo.setValue(linha.getItemProperty('SUBCATEGORIA').getValue());
|
|
}
|
|
|
|
|
|
combo.addValueChangeListener(new Property.ValueChangeListener() {
|
|
valueChange: function(event) {
|
|
setUsuario(linha.getItemProperty('CHAVE_DESPESA_OPERACIONAL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
<column name="NUMERO_DOCUMENTO" caption="Nr. documento" commitOnEnter="true" commitOnValueChange="true" editable="true" />
|
|
<generated name="FORMAPAGAMENTO" 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);
|
|
|
|
var setUsuario = function(chave, cliente) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_operacionais SET chave_forma_pagamento = ? "+
|
|
" WHERE CHAVE_DESPESA_OPERACIONAL = ? ";
|
|
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());
|
|
};
|
|
|
|
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("120");
|
|
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
|
|
|
|
var linha = item;
|
|
if(linha.getItemProperty('FORMAPAGAMENTO').getValue()) {
|
|
combo.setValue(linha.getItemProperty('FORMAPAGAMENTO').getValue());
|
|
}
|
|
|
|
|
|
combo.addValueChangeListener(new Property.ValueChangeListener() {
|
|
valueChange: function(event) {
|
|
setUsuario(linha.getItemProperty('CHAVE_DESPESA_OPERACIONAL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
<generated name="VEICULO" caption="Placa" 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) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_operacionais SET chave_veiculo = ? "+
|
|
" WHERE CHAVE_DESPESA_OPERACIONAL = ? ";
|
|
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());
|
|
};
|
|
|
|
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_DESPESA_OPERACIONAL').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_despesas_operacionais SET frota_terceiro = ? "+
|
|
" WHERE CHAVE_DESPESA_OPERACIONAL = ? ";
|
|
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_DESPESA_OPERACIONAL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
|
|
<generated name="CAMINHAO_CARRETA" caption="Caminhão/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);
|
|
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
|
|
|
|
var setUsuario = function(chave, cliente) {
|
|
if (cliente) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_operacionais SET caminhao_carreta = ? "+
|
|
" WHERE CHAVE_DESPESA_OPERACIONAL = ? ";
|
|
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', 'Caminhão / Carreta não pode ser vazio.');
|
|
}
|
|
};
|
|
|
|
function generate(itemId, columnId, item, container) {
|
|
|
|
var map = new java.util.LinkedHashMap();
|
|
|
|
map.put('C', 'Caminhão');
|
|
map.put('T', 'Carreta');
|
|
map.put('O', 'Outros');
|
|
|
|
var combo = new ComboBox();
|
|
combo.setWidth("100%");
|
|
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
|
|
|
|
var linha = item;
|
|
if(linha.getItemProperty('CAMINHAO_CARRETA').getValue()) {
|
|
combo.setValue(linha.getItemProperty('CAMINHAO_CARRETA').getValue());
|
|
}
|
|
|
|
|
|
combo.addValueChangeListener(new Property.ValueChangeListener() {
|
|
valueChange: function(event) {
|
|
setUsuario(linha.getItemProperty('CHAVE_DESPESA_OPERACIONAL').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) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_operacionais SET chave_funcionario = ? "+
|
|
" WHERE CHAVE_DESPESA_OPERACIONAL = ? ";
|
|
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());
|
|
};
|
|
|
|
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_DESPESA_OPERACIONAL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
<generated name="FORNECEDOR" caption="Fornecedor" 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) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_operacionais SET chave_fornecedor = ? "+
|
|
" WHERE CHAVE_DESPESA_OPERACIONAL = ?";
|
|
var sql = "Select codigo from fornecedor where razao_social = '" + 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());
|
|
};
|
|
|
|
function generate(itemId, columnId, item, container) {
|
|
|
|
var sql = "Select codigo, razao_social from fornecedor";
|
|
|
|
var ds = vQueryService.executeQuery('vitruvio', sql);
|
|
|
|
if(ds == null){
|
|
return null;
|
|
}
|
|
|
|
var map = new java.util.LinkedHashMap();
|
|
|
|
while(ds.next()) {
|
|
map.put(ds.getString('RAZAO_SOCIAL'), ds.getString('RAZAO_SOCIAL'));
|
|
}
|
|
|
|
var combo = new ComboBox();
|
|
combo.setWidth("120");
|
|
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
|
|
|
|
var linha = item;
|
|
if(linha.getItemProperty('FORNECEDOR').getValue()) {
|
|
combo.setValue(linha.getItemProperty('FORNECEDOR').getValue());
|
|
}
|
|
|
|
|
|
combo.addValueChangeListener(new Property.ValueChangeListener() {
|
|
valueChange: function(event) {
|
|
setUsuario(linha.getItemProperty('CHAVE_DESPESA_OPERACIONAL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
<column name="VALOR" caption="Valor" format="#.##0,00" editable="true" commitOnEnter="true" commitOnValueChange="true" align="RIGHT" decimalSeparator="," />
|
|
<generated name="OBSERVACOES" caption="Observações" >
|
|
<scriptColumnGenerator language="JavaScript">
|
|
importClass(Packages.br.com.davinti.vitruvio.ui.core.VitruvioTheme);
|
|
importClass(Packages.com.vaadin.ui.VerticalLayout);
|
|
|
|
function Generator() {
|
|
var com = libService.loadScript('vaadinComponents');
|
|
this.generate = function(itemId, columnId, item, container) {
|
|
var titulo = item.getItemProperty('OBSERVACOES').getValue();
|
|
if (titulo.length() >= 20) {
|
|
titulo = titulo.substring(0,19) + '...';
|
|
}
|
|
var btn = com.linkButton(titulo, function(){
|
|
var subContent = new VerticalLayout();
|
|
subContent.setId('teste');
|
|
subContent.setMargin(true);
|
|
var linha = item;
|
|
|
|
var textArea = com.textArea(null, item.getItemProperty('OBSERVACOES').getValue());
|
|
var instGravar = function run() {
|
|
var sqlAtualiza = 'UPDATE controle_despesas_operacionais SET observacoes = ? ' +
|
|
' WHERE CHAVE_DESPESA_OPERACIONAL = ? ';
|
|
var params = new java.util.ArrayList();
|
|
params.add(textArea.getValue());
|
|
params.add(linha.getItemProperty('CHAVE_DESPESA_OPERACIONAL').getValue().longValue());
|
|
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
|
|
engine.getField('tbLancamentos').refresh();
|
|
window.close();
|
|
};
|
|
var gravar = com.button('Gravar',instGravar,null);
|
|
subContent.addComponent(textArea);
|
|
subContent.addComponent(gravar);
|
|
var window = com.openWindow(item.getItemProperty('CLIENTE').getValue(), subContent,500,200);
|
|
|
|
textArea.setSizeFull();
|
|
textArea.addStyleName(com.theme().TEXTAREA_BORDERLESS);
|
|
window.setModal(true);
|
|
});
|
|
btn.setDescription(item.getItemProperty('OBSERVACOES').getValue());
|
|
var container = com.horizontalLayout([btn]);
|
|
container.setSpacing(false);
|
|
return container;
|
|
}
|
|
}
|
|
var script = new Generator();
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
</columns>
|
|
<events>
|
|
<itemChange>
|
|
<script language="JavaScript">
|
|
<![CDATA[
|
|
function onChange(event) {
|
|
var db = libService.loadScript('db');
|
|
var dbVitruvio = new db('vitruvio');
|
|
dbVitruvio.transaction(function() {
|
|
var sqlAtualiza = "UPDATE controle_despesas_operacionais SET data = :data, numero_documento = :nrDocumento, valor = :valor, usuario = :usuario " +
|
|
" WHERE CHAVE_DESPESA_OPERACIONAL = :chave";
|
|
this.update(sqlAtualiza, {
|
|
chave: Number(event.getItemId()),
|
|
data: event.getField('DATA').getValue(),
|
|
nrDocumento: event.getField('NUMERO_DOCUMENTO').getValue(),
|
|
valor: event.getField('VALOR').getConvertedValue(),
|
|
usuario: engine.getLoggedUser().getLogin()
|
|
});
|
|
});
|
|
engine.getGlobalVariable('fncSubTotal')();
|
|
event.commit();
|
|
}
|
|
]]>
|
|
</script>
|
|
</itemChange>
|
|
</events>
|
|
</DBTable>
|
|
</VerticalLayout>
|
|
</Panel>
|
|
</VerticalLayout>
|
|
</Tab>
|
|
|
|
|
|
<!-- AQUI INICIA PAINEL PARTICULARES -->
|
|
|
|
|
|
<Tab caption="Particulares">
|
|
<VerticalLayout width="100%" spacing="true">
|
|
<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="46" align="TOP_LEFT">
|
|
<image>
|
|
<base64 extension="jpg">
|
|
<![CDATA[
|
|
,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjM5ODI5MTUwOTFEQTExRTg4NjlCRTA3Njc1QzE0NjE3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjM5ODI5MTUxOTFEQTExRTg4NjlCRTA3Njc1QzE0NjE3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Mzk4MjkxNEU5MURBMTFFODg2OUJFMDc2NzVDMTQ2MTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Mzk4MjkxNEY5MURBMTFFODg2OUJFMDc2NzVDMTQ2MTciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCAAxADEDAREAAhEBAxEB/8QAdAAAAgIDAQEAAAAAAAAAAAAACAkABwMFBgIEAQEBAAAAAAAAAAAAAAAAAAAAARAAAQMDBAADAwoHAAAAAAAAAQIDBBEFBgAhEgcxQQgiExVhcTIj05S0VXU3UZFCFCQ0GBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8A+r1H+o7I8fyJ/DsPeREeiIT8TuYSHHUuuALDTXMFCeKCOSqHxpsRoB4a7T7YdcS21l9+ccUaJQm4zCon5AHNUb683f1HWOEJ14uOW2+Go8RIkybi03UitOSlgeA0GGwZF6hMhQ45YbvlV0bZp71cSVcHkprUCpQsjyOg1k/sjuK3y3Yc/Kshiy2FFD0d64TW3EKSaEKSpwEEEaC3ehvUzlrWSWzGMwm/E7TPcTEYuMneSw45RDRW7SriSrYle+9SrbQGJqBa3bH7p5l+uXL8W5qjsvTh2djGC5eteQ29lyJcQhpN4KOb8JQJ9pPj9Wqvt8fa2B8qEDLe7L6vksLZfyS0vMOpKXGnJLCkqSobhSSqhBHkdQeYfYnVUJhMaFkFnjR014MsyI7aBU1NEpIG50At+qntrDssuEexY/EjzV21zlJyJKRzWriUlhlY+k0K1UTsSBx8KmgftA1PUC1u2P3TzL9cuX4tzVFq+mfoKDmhdyjKWVrx2OstQoftITLdFQtRWkpV7ts7ez4q89joCFkenXoqOw4/IxqMyw0krddckSUoSkbkqUXqADUGK2dAdAXSAxcLbYIkyDJTzjymJMhxtafCqVJeIOgqH1H+m+yWSwHLMJiKjRoIAu1rQVuoDO9ZKCtSljh/WN9t9qHVAvaBqeoFrdsfunmX65cvxbmqGB9ZWKHYuvsftkQEMsQWD7QSFFTiAtRVxCRUqUfLUFe+prHMrvVmsZtUGTdbHDkuvZDbIj3uVvMBsFBVunklNFfz8NBz/pQfwlERUa1TrnHvyrcw5dLBNUf7Mnl/uREKT4LJrUK8F+GgIC5QI1xt8mBJTzjy2lsvJIBqhxJSdlAjwPmNAsG9QkQLzPgt8iiLIdYQV/So2spHKlN9tUNG1AtjtZSk9q5ipOyk325EH5RMc1Qw/DLk1c8Rs1waeQ+iTCjue+bIKVEtp5EU+XUHNdq9fX7KYsaVj2QyrDd7eF+6DSlGNJC6fVyGeaUKFK0J/jvtoOf6X6fu2PC25Dl0oSskh2tm02+GhKEtQIaByLXJtSg64VqVycr82gtt11tppbrqghttJUtZ2ASkVJPzaBYmWT/iOU3if7xLwlTZDodT9FQW6ohQp5EaoZ7qAO/U10NkjWWzcwxm2OTrTc/8i4MRE83GJJoHVlpI5FLqjzJFd+RNNUVZhvefaOH234ZYr2tq3inu4zzbUlDdCTRoPJc4AlRrx8dB0H/VfeH5639yh/ZaCf8AVfeH5639yh/ZaDV5H6iO38itTlruN/WIb1Q8iM0zGUtJSUlClsoQopIVumtNBvehuhsky7JLZd7tbHGMQjuJkyH5SeCJSEUWlppKhVxLlRUgceNd66A7tQTQTQTQTQTQTQTQf//Z
|
|
]]>
|
|
</base64>
|
|
</image>
|
|
</ImageWidget>
|
|
<DateField type="date" id="dataPessoal" align="TOP_LEFT" caption="Data" width="100%" expandRatio="0.15" required="false" resolution="DAY" description="Informe a data do lançamento" format="dd/MM/yyyy" />
|
|
<DBComboBox type="string" id="categoriaPessoal" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Categoria">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from categoria
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>DESCRICAO</caption-field>
|
|
</DBComboBox>
|
|
<DBComboBox type="string" id="responsavelPessoal" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Responsável">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from socios
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>NOME</caption-field>
|
|
</DBComboBox>
|
|
<DecimalField type="decimal" id="valorPessoal" caption="Valor (R$)" format="#,##0.00" description="Valor da despesa" width="100%" expandRatio="0.15" />
|
|
</HorizontalLayout>
|
|
<HorizontalLayout spacing="true" width="100%" height="100%" >
|
|
<TextField type="string" id="observacaoPessoal" caption="Observações" width="100%" expandRatio="1" />
|
|
<ButtonWidget id="btnGravarPessoal" caption="Gravar" align="BOTTOM_RIGHT" description="Grava o lançamento" width="100" >
|
|
<onClickScript language="JavaScript">
|
|
<![CDATA[
|
|
importClass(Packages.com.vaadin.ui.Notification);
|
|
function run() {
|
|
engine.getField('frotaTerceiroOperacional').setRequired(false);
|
|
engine.getField('frotaTerceiroCombustivel').setRequired(false);
|
|
engine.getField('caminhaoCarretaOperacional').setRequired(false);
|
|
engine.getField('caminhaoCarretaCombustivel').setRequired(false);
|
|
if (engine.isValid()) {
|
|
var db = libService.loadScript('db');
|
|
var dbVitruvio = new db('vitruvio');
|
|
var sql;
|
|
dbVitruvio.transaction(function() {
|
|
sql = "insert into controle_despesas_pessoais (chave_pessoal,data,chave_categoria,chave_responsavel,valor,observacoes,usuario) " +
|
|
" values (" + dbVitruvio.getSequenceNextValSql('controle_desp_pes_seq') + ",:data,:chave_categoria,:chave_responsavel,:valor,:observacoes,:usuario)";
|
|
this.update(sql, {
|
|
data: engine.getField('dataPessoal').getValue(),
|
|
chave_categoria: Number(engine.getField('categoriaPessoal').getValue()),
|
|
chave_responsavel: Number(engine.getField('responsavelPessoal').getValue()),
|
|
valor: engine.getField('valorPessoal').getConvertedValue(),
|
|
observacoes: engine.getField('observacaoPessoal').getValue(),
|
|
usuario: engine.getLoggedUser().getLogin()
|
|
});
|
|
});
|
|
engine.getField('tbPessoal').refresh();
|
|
engine.getField('tbTotalSocios').refresh();
|
|
engine.getGlobalVariable('fncLimpaCampos')();
|
|
engine.getGlobalVariable('fncSubTotalPessoal')();
|
|
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="80%" spacing="true" align="TOP_LEFT">
|
|
<DateField type="date" id="dataInicioPessoal" caption="Data inicial" align="TOP_LEFT" width="100%" expandRatio="0.3" description="Data iniacial da exibição" format="dd/MM/yyyy" />
|
|
<DateField type="date" id="dataFinalPessoal" caption="Data final" align="TOP_LEFT" width="100%" expandRatio="0.3" description="Data final da exibição" format="dd/MM/yyyy" />
|
|
<DBComboBox type="string" id="ftResponsavelPessoal" width="100%" expandRatio="0.6" align="TOP_LEFT" caption="Responsável" allowNullSelection="true">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from socios
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>NOME</caption-field>
|
|
</DBComboBox>
|
|
<ButtonWidget id="btnFiltrarPessoal" caption="Filtrar" align="BOTTOM_RIGHT" description="Aplica filtro de data" width="100" >
|
|
<onClickScript language="JavaScript">
|
|
<![CDATA[
|
|
function run() {
|
|
engine.getField('tbPessoal').refresh();
|
|
engine.getField('tbTotalSocios').refresh();
|
|
engine.getGlobalVariable('fncSubTotalPessoal')();
|
|
}
|
|
]]>
|
|
</onClickScript>
|
|
</ButtonWidget>
|
|
<ButtonWidget id="btnLimparFiltroPessoal" caption="Limpar" align="BOTTOM_LEFT" description="Limpar filtro" width="100" >
|
|
<onClickScript language="JavaScript">
|
|
<;
|
|
engine.getField('tbPessoal').refresh();
|
|
engine.getField('tbTotalSocios').refresh();
|
|
engine.getGlobalVariable('fncSubTotalPessoal')();
|
|
}
|
|
]]>
|
|
</onClickScript>
|
|
</ButtonWidget>
|
|
<Label id="subPessoal" align="BOTTOM_RIGHT" width="100%" expandRatio="1" contentMode="HTML">
|
|
<value>
|
|
|
|
</value>
|
|
</Label>
|
|
</HorizontalLayout>
|
|
<HorizontalLayout width="100%" spacing="true">
|
|
<DBTable id="tbPessoal" type="number" width="100%" height="100%" expandRatio="1" rows="10" selectable="false" exportXLS="true" editable="true" >
|
|
<datasource>
|
|
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
|
|
<![CDATA[
|
|
function buildSQL(params) {
|
|
var sql = "Select cdp.chave_pessoal," +
|
|
" cdp.data," +
|
|
" (select cc.descricao from categoria cc where cc.codigo = cdp.chave_categoria) categoria," +
|
|
" (select cs.nome from socios cs where cs.codigo = cdp.chave_responsavel) responsavel," +
|
|
" cdp.observacoes," +
|
|
" cdp.valor" +
|
|
" from controle_despesas_pessoais cdp where 1=2";
|
|
if (engine) {
|
|
sql = "Select cdp.chave_pessoal," +
|
|
" cdp.data," +
|
|
" (select cc.descricao from categoria cc where cc.codigo = cdp.chave_categoria) categoria," +
|
|
" (select cs.nome from socios cs where cs.codigo = cdp.chave_responsavel) responsavel," +
|
|
" cdp.observacoes," +
|
|
" cdp.valor valor" +
|
|
" from controle_despesas_pessoais cdp ";
|
|
if (engine.getField('dataInicioPessoal').getValue()) {
|
|
sql += "where cdp.data between '" + engine.getField('dataInicioPessoal').getValue() + "' and '" + engine.getField('dataFinalPessoal').getValue() + "'";
|
|
}
|
|
if (engine.getField('ftResponsavelPessoal').getValue()) {
|
|
sql += " and cdp.chave_responsavel = " + engine.getField('ftResponsavelPessoal').getValue();
|
|
}
|
|
sql += " order by data desc";
|
|
}
|
|
return sql;
|
|
}
|
|
]]>
|
|
</sqlBuilderDataSource>
|
|
</datasource>
|
|
<key-field>chave_pessoal</key-field>
|
|
<columns>
|
|
<generated name="EXCLUIR" caption="Excluir" >
|
|
<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 sqlAtualiza = "UPDATE controle_despesas_pessoais SET usuario = ?, blindar = ? "+
|
|
" WHERE CHAVE_PESSOAL = ? ";
|
|
var params = new java.util.ArrayList();
|
|
params.add(engine.getLoggedUser().getLogin());
|
|
params.add(1);
|
|
params.add(idRegistro);
|
|
|
|
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
|
|
|
|
var sql = 'delete from controle_despesas_pessoais where chave_pessoal = :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('tbPessoal').refresh();
|
|
engine.getField('tbTotalSocios').refresh();
|
|
engine.getGlobalVariable('fncSubTotalPessoal')();
|
|
}
|
|
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="CATEGORIA" caption="Categoria" 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) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_pessoais SET chave_categoria = ? "+
|
|
" WHERE CHAVE_PESSOAL = ? ";
|
|
var sql = "Select codigo from categoria 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());
|
|
};
|
|
|
|
function generate(itemId, columnId, item, container) {
|
|
|
|
var sql = "Select codigo, descricao from categoria";
|
|
|
|
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('CATEGORIA').getValue()) {
|
|
combo.setValue(linha.getItemProperty('CATEGORIA').getValue());
|
|
}
|
|
|
|
|
|
combo.addValueChangeListener(new Property.ValueChangeListener() {
|
|
valueChange: function(event) {
|
|
setUsuario(linha.getItemProperty('CHAVE_PESSOAL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
<generated name="RESPONSAVEL" caption="Responsável" 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) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_pessoais SET chave_responsavel = ? "+
|
|
" WHERE CHAVE_PESSOAL = ? ";
|
|
var sql = "Select codigo from socios 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());
|
|
};
|
|
|
|
function generate(itemId, columnId, item, container) {
|
|
|
|
var sql = "Select codigo, nome from socios";
|
|
|
|
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('RESPONSAVEL').getValue()) {
|
|
combo.setValue(linha.getItemProperty('RESPONSAVEL').getValue());
|
|
}
|
|
|
|
|
|
combo.addValueChangeListener(new Property.ValueChangeListener() {
|
|
valueChange: function(event) {
|
|
setUsuario(linha.getItemProperty('CHAVE_PESSOAL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
<column name="VALOR" caption="Valor" format="#.##0,00" commitOnValueChange="true" editable="true" align="RIGHT" decimalSeparator="," />
|
|
<generated name="OBSERVACOES" caption="Observações" >
|
|
<scriptColumnGenerator language="JavaScript">
|
|
importClass(Packages.br.com.davinti.vitruvio.ui.core.VitruvioTheme);
|
|
importClass(Packages.com.vaadin.ui.VerticalLayout);
|
|
|
|
function Generator() {
|
|
var com = libService.loadScript('vaadinComponents');
|
|
this.generate = function(itemId, columnId, item, container) {
|
|
var titulo = item.getItemProperty('OBSERVACOES').getValue();
|
|
if (titulo.length() >= 20) {
|
|
titulo = titulo.substring(0,19) + '...';
|
|
}
|
|
var btn = com.linkButton(titulo, function(){
|
|
var subContent = new VerticalLayout();
|
|
subContent.setId('teste');
|
|
subContent.setMargin(true);
|
|
var linha = item;
|
|
|
|
var textArea = com.textArea(null, item.getItemProperty('OBSERVACOES').getValue());
|
|
var instGravar = function run() {
|
|
var sqlAtualiza = 'UPDATE controle_despesas_pessoais SET observacoes = ? ' +
|
|
' WHERE CHAVE_PESSOAL = ? ';
|
|
var params = new java.util.ArrayList();
|
|
params.add(textArea.getValue());
|
|
params.add(linha.getItemProperty('CHAVE_PESSOAL').getValue().longValue());
|
|
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
|
|
engine.getField('tbPessoal').refresh();
|
|
window.close();
|
|
};
|
|
var gravar = com.button('Gravar',instGravar,null);
|
|
subContent.addComponent(textArea);
|
|
subContent.addComponent(gravar);
|
|
var window = com.openWindow(item.getItemProperty('CATEGORIA').getValue(), subContent,500,200);
|
|
|
|
textArea.setSizeFull();
|
|
textArea.addStyleName(com.theme().TEXTAREA_BORDERLESS);
|
|
window.setModal(true);
|
|
});
|
|
btn.setDescription(item.getItemProperty('OBSERVACOES').getValue());
|
|
var container = com.horizontalLayout([btn]);
|
|
container.setSpacing(false);
|
|
return container;
|
|
}
|
|
}
|
|
var script = new Generator();
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
</columns>
|
|
<events>
|
|
<itemChange>
|
|
<script language="JavaScript">
|
|
<![CDATA[
|
|
function onChange(event) {
|
|
var db = libService.loadScript('db');
|
|
var dbVitruvio = new db('vitruvio');
|
|
dbVitruvio.transaction(function() {
|
|
//if (event.isChanged('DATA')) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_pessoais SET data = :data, valor = :valor, usuario = :usuario " +
|
|
" WHERE CHAVE_PESSOAL = :chave";
|
|
//}
|
|
this.update(sqlAtualiza, {
|
|
chave: Number(event.getItemId()),
|
|
data: event.getField('DATA').getValue(),
|
|
valor: event.getField('VALOR').getConvertedValue(),
|
|
usuario: engine.getLoggedUser().getLogin()
|
|
});
|
|
});
|
|
engine.getGlobalVariable('fncSubTotalPessoal')();
|
|
engine.getField('tbTotalSocios').refresh();
|
|
event.commit();
|
|
}
|
|
]]>
|
|
</script>
|
|
</itemChange>
|
|
</events>
|
|
</DBTable>
|
|
<DBTable id="tbTotalSocios" align="TOP_LEFT" type="string" width="100%" expandRatio="0.3" rows="10" exportXLS="true" editable="false" selectable="false">
|
|
<datasource>
|
|
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
|
|
<![CDATA[
|
|
function buildSQL(params) {
|
|
var sql = "Select cs.nome, sum(cdp.valor) total " +
|
|
"from controle_despesas_pessoais " +
|
|
"cdp inner join socios cs on cs.codigo = cdp.chave_responsavel " +
|
|
"where 1=2 group by cs.nome";
|
|
if (engine) {
|
|
sql = "Select cs.nome, replace(replace(replace(to_char(sum(cdp.valor), '9999999999D99'),',','-' ),'.',','),'-','.') total " +
|
|
"from controle_despesas_pessoais " +
|
|
"cdp inner join socios cs on cs.codigo = cdp.chave_responsavel ";
|
|
if (engine.getField('dataInicioPessoal').getValue()) {
|
|
sql += " where cdp.data between '" + engine.getField('dataInicioPessoal').getValue() + "' and '" + engine.getField('dataFinalPessoal').getValue() + "'";
|
|
}
|
|
if (engine.getField('ftResponsavelPessoal').getValue()) {
|
|
sql += " and cdp.chave_responsavel = " + engine.getField('ftResponsavelPessoal').getValue();
|
|
}
|
|
sql += " group by cs.nome";
|
|
}
|
|
return sql;
|
|
}
|
|
]]>
|
|
</sqlBuilderDataSource>
|
|
</datasource>
|
|
<key-field>NOME</key-field>
|
|
<columns>
|
|
<column name="NOME" caption="Responsável" />
|
|
<column name="TOTAL" caption="Total" />
|
|
</columns>
|
|
</DBTable>
|
|
</HorizontalLayout>
|
|
</VerticalLayout>
|
|
</Panel>
|
|
</VerticalLayout>
|
|
</Tab>
|
|
|
|
|
|
<!-- AQUI INICIA O PAINEL COMBUSTÍVEIS -->
|
|
|
|
<Tab caption="Combustíveis">
|
|
<VerticalLayout width="100%" spacing="true" height="100%">
|
|
<Panel caption=" " width="100%" expandRatio="0.45" align="TOP_LEFT" height="100%">
|
|
<VerticalLayout spacing="true" margin="true" expandRatio="1">
|
|
<HorizontalLayout width="100%" spacing="true" height="100%" expandRatio="1">
|
|
<ImageWidget id="img1" height="46" width="46" align="TOP_LEFT">
|
|
<image>
|
|
<base64 extension="jpg">
|
|
<![CDATA[
|
|
,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QMraHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjI0RTQ4NkEwOTQzNzExRTg4RDg2QzBBQ0MyNDc5NDZGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjI0RTQ4NkExOTQzNzExRTg4RDg2QzBBQ0MyNDc5NDZGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjRFNDg2OUU5NDM3MTFFODhEODZDMEFDQzI0Nzk0NkYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjRFNDg2OUY5NDM3MTFFODhEODZDMEFDQzI0Nzk0NkYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYG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
|
|
]]>
|
|
</base64>
|
|
</image>
|
|
</ImageWidget>
|
|
|
|
<DateField type="date" id="dataCombustivel" align="TOP_LEFT" caption="Data" width="100%" expandRatio="0.15" required="false" resolution="DAY" description="Informe a data do lançamento" format="dd/MM/yyyy" />
|
|
<DBComboBox type="string" id="placaCombustivel" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Placa">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from veiculo where inativo is false order by placa
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>PLACA</caption-field>
|
|
<events>
|
|
<valueChange>
|
|
<script language="JavaScript">
|
|
<;
|
|
}
|
|
});
|
|
}
|
|
]]>
|
|
</script>
|
|
</valueChange>
|
|
</events>
|
|
</DBComboBox>
|
|
<DBComboBox type="number" id="posto" width="100%" required="false" expandRatio="0.2" align="TOP_LEFT" caption="Posto">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from posto order by nome
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>NOME</caption-field>
|
|
</DBComboBox>
|
|
<DBComboBox type="string" id="clienteCombustivel" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Cliente">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from clientes where inativo is false order by nome
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>NOME</caption-field>
|
|
</DBComboBox>
|
|
|
|
<OptionGroup type="string" id="frotaTerceiroCombustivel" disposition="vertical" required="true" width="100%" expandRatio="0.1">
|
|
<entry value="Frota" key="F"/>
|
|
<entry value="Terceiro" key="T"/>
|
|
</OptionGroup>
|
|
|
|
<OptionGroup type="string" id="caminhaoCarretaCombustivel" disposition="vertical" required="true" width="100%" expandRatio="0.13">
|
|
<entry value="Caminhão" key="C"/>
|
|
<entry value="Carreta" key="T"/>
|
|
<entry value="Outros" key="O"/>
|
|
</OptionGroup>
|
|
|
|
<TextField type="string" id="observacaoCombustivel" caption="Observações" width="100%" expandRatio=".7" />
|
|
</HorizontalLayout>
|
|
|
|
<HorizontalLayout spacing="true" width="100%" height="100%" >
|
|
<DBComboBox type="string" id="combustivel" width="100%" align="TOP_LEFT" caption="Combustível">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from combustivel order by descricao
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>DESCRICAO</caption-field>
|
|
</DBComboBox>
|
|
|
|
<DecimalField type="decimal" id="litrosCombustivel" caption="Litros" format="#,##0.000" immediate="true" groupingSeparator="." updatable="true" width="100%">
|
|
<events>
|
|
<valueChange>
|
|
<script language="JavaScript">
|
|
<![CDATA[
|
|
function run() {
|
|
var total = engine.getField('litrosCombustivel').getConvertedValue() * engine.getField('valorCombustivel').getConvertedValue();
|
|
var media = engine.getField('kmRodado').getConvertedValue() / engine.getField('litrosCombustivel').getConvertedValue()
|
|
engine.getField('mediaCombustivel').setValue(media);
|
|
engine.getField('totalCombustivel').setValue(total);
|
|
}
|
|
]]>
|
|
</script>
|
|
</valueChange>
|
|
</events>
|
|
</DecimalField>
|
|
|
|
<DecimalField type="decimal" id="valorCombustivel" caption="Valor/Litro" format="#,##0.000" immediate="true" updatable="true" groupingSeparator="." width="100%" >
|
|
<events>
|
|
<valueChange>
|
|
<script language="JavaScript">
|
|
<![CDATA[
|
|
function run() {
|
|
var total = engine.getField('litrosCombustivel').getConvertedValue() * engine.getField('valorCombustivel').getConvertedValue();
|
|
engine.getField('totalCombustivel').setValue(total);
|
|
}
|
|
]]>
|
|
</script>
|
|
</valueChange>
|
|
</events>
|
|
</DecimalField>
|
|
|
|
<DecimalField type="decimal" id="totalCombustivel" caption="Valor Total" format="#,##0.00" width="100%" />
|
|
<DecimalField type="decimal" id="kmInicial" caption="Km Inicial" immediate="true" updatable="true" groupingSeparator="." width="100%" >
|
|
<events>
|
|
<valueChange>
|
|
<script language="JavaScript">
|
|
<![CDATA[
|
|
function run() {
|
|
var rodado = engine.getField('kmFinal').getConvertedValue() - engine.getField('kmInicial').getConvertedValue();
|
|
engine.getField('kmRodado').setValue(rodado);
|
|
var media = engine.getField('kmRodado').getConvertedValue() / engine.getField('litrosCombustivel').getConvertedValue()
|
|
engine.getField('mediaCombustivel').setValue(media);
|
|
}
|
|
]]>
|
|
</script>
|
|
</valueChange>
|
|
</events>
|
|
</DecimalField>
|
|
|
|
<DecimalField type="decimal" id="kmFinal" caption="Km Final" immediate="true" updatable="true" groupingSeparator="." width="100%" >
|
|
<events>
|
|
<valueChange>
|
|
<script language="JavaScript">
|
|
<![CDATA[
|
|
function run() {
|
|
var rodado = engine.getField('kmFinal').getConvertedValue() - engine.getField('kmInicial').getConvertedValue();
|
|
engine.getField('kmRodado').setValue(rodado);
|
|
var media = engine.getField('kmRodado').getConvertedValue() / engine.getField('litrosCombustivel').getConvertedValue()
|
|
engine.getField('mediaCombustivel').setValue(media);
|
|
}
|
|
]]>
|
|
</script>
|
|
</valueChange>
|
|
</events>
|
|
</DecimalField>
|
|
|
|
<DecimalField type="decimal" id="kmRodado" caption="Km Rodados" width="100%" />
|
|
<DecimalField type="decimal" id="mediaCombustivel" caption="Média Consumo" width="100%" />
|
|
|
|
<ButtonWidget id="btnGravarCombustivel" caption="Gravar" align="BOTTOM_RIGHT" description="Grava o lançamento" width="100%" >
|
|
<onClickScript language="JavaScript">
|
|
<![CDATA[
|
|
importClass(Packages.com.vaadin.ui.Notification);
|
|
function run() {
|
|
engine.getField('frotaTerceiroOperacional').setRequired(false);
|
|
engine.getField('caminhaoCarretaOperacional').setRequired(false);
|
|
if (engine.isValid()) {
|
|
var db = libService.loadScript('db');
|
|
var dbVitruvio = new db('vitruvio');
|
|
var sql;
|
|
dbVitruvio.transaction(function() {
|
|
sql = "insert into controle_despesas_combustiveis (chave_despesa_combustivel,data,chave_veiculo,chave_cliente,observacoes,chave_combustivel,litros,valor_litro,total_combustivel,km_inicial,km_final,km_rodado,media_consumo, chave_posto, usuario, frota_terceiro,caminhao_carreta) " +
|
|
" values (" + dbVitruvio.getSequenceNextValSql('controle_desp_comb_seq') + ",:data,:chave_veiculo,:chave_cliente,:observacoes,:chave_combustivel,:litro,:valor_litro,:total_combustivel,:km_inicial,:km_final,:km_rodado,:media_combustivel,:chave_posto,:usuario,:frota_terceiro,:caminhao_carreta)";
|
|
this.update(sql, {
|
|
data: engine.getField('dataCombustivel').getValue(),
|
|
chave_veiculo: Number(engine.getField('placaCombustivel').getValue()),
|
|
chave_cliente: Number(engine.getField('clienteCombustivel').getValue()),
|
|
observacoes: engine.getField('observacaoCombustivel').getValue(),
|
|
chave_combustivel: Number(engine.getField('combustivel').getValue()),
|
|
litro: engine.getField('litrosCombustivel').getConvertedValue(),
|
|
valor_litro: engine.getField('valorCombustivel').getConvertedValue(),
|
|
total_combustivel: engine.getField('totalCombustivel').getConvertedValue(),
|
|
km_inicial: engine.getField('kmInicial').getConvertedValue(),
|
|
km_final: engine.getField('kmFinal').getConvertedValue(),
|
|
km_rodado: engine.getField('kmRodado').getConvertedValue(),
|
|
media_combustivel: engine.getField('mediaCombustivel').getConvertedValue(),
|
|
chave_posto: engine.getField('posto').getConvertedValue(),
|
|
usuario: engine.getLoggedUser().getLogin(),
|
|
frota_terceiro: engine.getField('frotaTerceiroCombustivel').getValue(),
|
|
caminhao_carreta: engine.getField('caminhaoCarretaCombustivel').getValue()
|
|
});
|
|
});
|
|
engine.getField('tbCombustivel').refresh();
|
|
engine.getField('tbTotalCombustivel').refresh();
|
|
engine.getGlobalVariable('fncLimpaCampos')();
|
|
engine.getGlobalVariable('fncSubTotalCombustivel')();
|
|
Notification.show(null, 'Dados salvos', Notification.Type.TRAY_NOTIFICATION);
|
|
}
|
|
}
|
|
]]>
|
|
</onClickScript>
|
|
</ButtonWidget>
|
|
</HorizontalLayout>
|
|
</VerticalLayout>
|
|
</Panel>
|
|
|
|
<Panel width="100%" margin="true" height="100%" expandRatio="1" >
|
|
<VerticalLayout width="100%" spacing="true" align="TOP_LEFT" height="100%">
|
|
<HorizontalLayout width="100%" spacing="true" align="TOP_LEFT" height="100%" expandRatio="0.5">
|
|
<DBTwinColSelect type="string" id="ftClientesCombustivel" rows="5" width="100%" expandRatio="0.8" allowNullSelection="true" align="TOP_LEFT" caption="Clientes" multivalue="true">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from clientes where inativo is false order by nome
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>NOME</caption-field>
|
|
</DBTwinColSelect>
|
|
<VerticalLayout width="100%" spacing="true" expandRatio="1" align="TOP_LEFT">
|
|
<HorizontalLayout width="100%" spacing="true">
|
|
<DateField type="date" id="dataInicioCombustivel" caption="Data inicial" align="TOP_LEFT" width="100%" expandRatio="0.15" description="Data iniacial da exibição" format="dd/MM/yyyy" />
|
|
<DateField type="date" id="dataFinalCombustivel" caption="Data final" align="TOP_LEFT" width="100%" expandRatio="0.15" description="Data final da exibição" format="dd/MM/yyyy" />
|
|
<DBComboBox type="string" id="ftPlacaCombustivel" width="100%" expandRatio="0.15" align="TOP_LEFT" caption="Placa" allowNullSelection="true">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from veiculo where inativo is false order by placa
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>PLACA</caption-field>
|
|
</DBComboBox>
|
|
<DBComboBox type="string" id="ftCombustivel" width="100%" expandRatio="0.2" align="TOP_LEFT" caption="Combustível" allowNullSelection="true">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from combustivel order by descricao
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>DESCRICAO</caption-field>
|
|
</DBComboBox>
|
|
</HorizontalLayout>
|
|
|
|
<HorizontalLayout width="100%" spacing="true">
|
|
<OptionGroup type="string" id="ftFrotaTerceiroOperacionalCombustivel" disposition="vertical" width="60" align="BOTTOM_LEFT" expandRatio=".5">
|
|
<entry value="Ambos" key="A" />
|
|
<entry value="Frota" key="F"/>
|
|
<entry value="Terceiro" key="T"/>
|
|
</OptionGroup>
|
|
<OptionGroup type="string" id="ftCaminhaoCarretaOperacionalCombustivel" disposition="vertical" width="75" align="BOTTOM_LEFT" expandRatio=".5">
|
|
<entry value="Todos" key="A"/>
|
|
<entry value="Caminhão" key="C"/>
|
|
<entry value="Carreta" key="T"/>
|
|
<entry value="Outros" key="O"/>
|
|
</OptionGroup>
|
|
<DBComboBox type="number" id="ftposto" width="100%" required="false" align="BOTTOM_LEFT" caption="Posto" expandRatio="1">
|
|
<datasource>
|
|
<freeQuery connection-key="vitruvio">
|
|
<![CDATA[
|
|
Select * from posto order by nome
|
|
]]>
|
|
</freeQuery>
|
|
</datasource>
|
|
<key-field>CODIGO</key-field>
|
|
<caption-field>NOME</caption-field>
|
|
</DBComboBox>
|
|
<ButtonWidget id="btnFiltrarCombustivel" caption="Filtrar" align="BOTTOM_RIGHT" description="Aplica filtro de data" width="100" >
|
|
<onClickScript language="JavaScript">
|
|
<![CDATA[
|
|
function run() {
|
|
engine.getField('tbCombustivel').refresh();
|
|
engine.getField('tbTotalCombustivel').refresh();
|
|
engine.getGlobalVariable('fncSubTotalCombustivel')();
|
|
}
|
|
]]>
|
|
</onClickScript>
|
|
</ButtonWidget>
|
|
<ButtonWidget id="btnLimparFiltroCombustivel" caption="Limpar" align="BOTTOM_RIGHT" description="Limpar filtro" width="100" >
|
|
<onClickScript language="JavaScript">
|
|
<;
|
|
engine.getField('ftCombustivel')["setValue(java.lang.Object)"](null);
|
|
engine.getField('ftClientesCombustivel')["setValue(java.lang.Object)"](null);
|
|
engine.getField('ftposto')["setValue(java.lang.Object)"](null);
|
|
engine.getField('tbCombustivel').refresh();
|
|
engine.getField('tbTotalCombustivel').refresh();
|
|
engine.getGlobalVariable('fncSubTotalCombustivel')();
|
|
}
|
|
]]>
|
|
</onClickScript>
|
|
</ButtonWidget>
|
|
<Label id="subCombustivel" align="BOTTOM_RIGHT" width="100%" expandRatio="1" contentMode="HTML">
|
|
<value>
|
|
|
|
</value>
|
|
</Label>
|
|
</HorizontalLayout>
|
|
</VerticalLayout>
|
|
</HorizontalLayout>
|
|
<HorizontalLayout width="100%" spacing="true" height="100%" expandRatio=".9">
|
|
<DBTable id="tbCombustivel" requireFilter="true" showRowCount="true" type="number" width="100%" height="100%" expandRatio="0.75" rows="7" selectable="false" exportXLS="true" editable="true" >
|
|
<datasource>
|
|
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
|
|
<![CDATA[
|
|
function buildSQL(params) {
|
|
var sql = "select cdc.chave_despesa_combustivel, " +
|
|
"cdc.data, " +
|
|
"(Select v.placa from veiculo v where v.codigo = cdc.chave_veiculo) placa, " +
|
|
"(Select o.nome from clientes o where o.codigo = cdc.chave_cliente) cliente, " +
|
|
"cdc.observacoes, " +
|
|
"(Select c.descricao from combustivel c where c.codigo = cdc.chave_combustivel) combustivel, " +
|
|
"(Select p.nome from posto p where p.codigo = cdc.chave_posto) posto, " +
|
|
"cdc.litros, " +
|
|
"cdc.valor_litro, " +
|
|
"cdc.total_combustivel, " +
|
|
"cdc.km_inicial, " +
|
|
"cdc.km_final, " +
|
|
"cdc.km_rodado, " +
|
|
"cdc.media_consumo, " +
|
|
"cdc.frota_terceiro, " +
|
|
"cdc.caminhao_carreta " +
|
|
"from controle_despesas_combustiveis cdc where 1=2";
|
|
if (engine) {
|
|
sql = "select cdc.chave_despesa_combustivel, " +
|
|
"cdc.data, " +
|
|
"(Select v.placa from veiculo v where v.codigo = cdc.chave_veiculo) placa, " +
|
|
"(Select o.nome from clientes o where o.codigo = cdc.chave_cliente) cliente, " +
|
|
"cdc.observacoes, " +
|
|
"(Select c.descricao from combustivel c where c.codigo = cdc.chave_combustivel) combustivel, " +
|
|
"(Select p.nome from posto p where p.codigo = cdc.chave_posto) posto, " +
|
|
"cdc.litros, " +
|
|
"cdc.valor_litro valor_litro, " +
|
|
"cdc.total_combustivel total_combustivel, " +
|
|
"cdc.km_inicial, " +
|
|
"cdc.km_final, " +
|
|
"cdc.km_rodado, " +
|
|
"cdc.media_consumo, " +
|
|
"cdc.frota_terceiro, " +
|
|
"cdc.caminhao_carreta " +
|
|
"from controle_despesas_combustiveis cdc where chave_despesa_combustivel > 0 ";
|
|
if (engine.getField('dataInicioCombustivel').getValue()) {
|
|
sql += " and cdc.data between '" + engine.getField('dataInicioCombustivel').getValue() + "' and '" + engine.getField('dataFinalCombustivel').getValue() + "'";
|
|
}
|
|
if (engine.getField('ftPlacaCombustivel').getValue()) {
|
|
sql += " and cdc.chave_veiculo = " + engine.getField('ftPlacaCombustivel').getValue();
|
|
}
|
|
if (engine.getField('ftCombustivel').getValue()) {
|
|
sql += " and cdc.chave_combustivel = " + engine.getField('ftCombustivel').getValue();
|
|
}
|
|
if (engine.getField('ftClientesCombustivel').getValue() && engine.getField('ftClientesCombustivel').getValue() != '[]') {
|
|
sql += " and cdc.chave_cliente in (" + engine.getField('ftClientesCombustivel').getValue().toString().replace('[','').replace(']','') + ")";
|
|
}
|
|
if (engine.getField('ftposto').getValue()) {
|
|
sql += " and cdc.chave_posto = " + engine.getField('ftposto').getValue();
|
|
}
|
|
if (engine.getField('ftFrotaTerceiroOperacionalCombustivel').getValue() == 'F') {
|
|
sql += " and cdc.frota_terceiro = 'F'";
|
|
} else if (engine.getField('ftFrotaTerceiroOperacionalCombustivel').getValue() == 'T') {
|
|
sql += " and cdc.frota_terceiro = 'T'";
|
|
}
|
|
if (engine.getField('ftCaminhaoCarretaOperacionalCombustivel').getValue() == 'C') {
|
|
sql += " and cdc.caminhao_carreta = 'C'";
|
|
} else if (engine.getField('ftCaminhaoCarretaOperacionalCombustivel').getValue() == 'T') {
|
|
sql += " and cdc.caminhao_carreta = 'T'";
|
|
} else if (engine.getField('ftCaminhaoCarretaOperacionalCombustivel').getValue() == 'O') {
|
|
sql += " and cdc.caminhao_carreta = 'O'";
|
|
}
|
|
|
|
sql += " order by data desc";
|
|
}
|
|
return sql;
|
|
}
|
|
]]>
|
|
</sqlBuilderDataSource>
|
|
</datasource>
|
|
<key-field>chave_despesa_combustivel</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 sqlAtualiza = "UPDATE controle_despesas_combustiveis SET usuario = ?, blindar = ? "+
|
|
" WHERE CHAVE_DESPESA_combustiveis = ? "
|
|
|
|
var params = new java.util.ArrayList();
|
|
params.add(engine.getLoggedUser().getLogin());
|
|
params.add(1);
|
|
params.add(idRegistro);
|
|
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
|
|
|
|
var sql = 'delete from controle_despesas_combustiveis where chave_despesa_combustivel = :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('tbCombustivel').refresh();
|
|
engine.getField('tbTotalCombustivel').refresh();
|
|
engine.getGlobalVariable('fncSubTotalCombustivel')();
|
|
}
|
|
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="PLACA" caption="Veículo" 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) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_combustiveis SET chave_veiculo = ? "+
|
|
" WHERE CHAVE_DESPESA_COMBUSTIVEL = ? ";
|
|
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());
|
|
};
|
|
|
|
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('PLACA').getValue()) {
|
|
combo.setValue(linha.getItemProperty('PLACA').getValue());
|
|
}
|
|
|
|
|
|
combo.addValueChangeListener(new Property.ValueChangeListener() {
|
|
valueChange: function(event) {
|
|
setUsuario(linha.getItemProperty('CHAVE_DESPESA_COMBUSTIVEL').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_despesas_combustiveis SET frota_terceiro = ? "+
|
|
" WHERE CHAVE_DESPESA_COMBUSTIVEL = ? ";
|
|
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_DESPESA_COMBUSTIVEL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
|
|
<generated name="CAMINHAO_CARRETA" caption="Caminhão/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);
|
|
importClass(Packages.br.com.davinti.base.vaadin.components.layout.MessageBox);
|
|
|
|
var setUsuario = function(chave, cliente) {
|
|
if (cliente) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_combustiveis SET caminhao_carreta = ? "+
|
|
" WHERE CHAVE_DESPESA_COMBUSTIVEL = ? ";
|
|
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', 'Caminhão / Carreta não pode ser vazio.');
|
|
}
|
|
};
|
|
|
|
function generate(itemId, columnId, item, container) {
|
|
|
|
var map = new java.util.LinkedHashMap();
|
|
|
|
map.put('C', 'Caminhão');
|
|
map.put('T', 'Carreta');
|
|
map.put('O', 'Outros');
|
|
|
|
var combo = new ComboBox();
|
|
combo.setWidth("100%");
|
|
ContainerUtils.createAndConfigureContainerFromCaptionMap(map, combo);
|
|
|
|
var linha = item;
|
|
if(linha.getItemProperty('CAMINHAO_CARRETA').getValue()) {
|
|
combo.setValue(linha.getItemProperty('CAMINHAO_CARRETA').getValue());
|
|
}
|
|
|
|
combo.addValueChangeListener(new Property.ValueChangeListener() {
|
|
valueChange: function(event) {
|
|
setUsuario(linha.getItemProperty('CHAVE_DESPESA_COMBUSTIVEL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
|
|
<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) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_combustiveis SET chave_cliente = ? "+
|
|
" WHERE CHAVE_DESPESA_COMBUSTIVEL = ? ";
|
|
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());
|
|
};
|
|
|
|
function generate(itemId, columnId, item, container) {
|
|
|
|
var sql = "Select codigo, nome from clientes order by nome";
|
|
|
|
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_DESPESA_COMBUSTIVEL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
<generated name="OBSERVACOES" caption="Observações" >
|
|
<scriptColumnGenerator language="JavaScript">
|
|
importClass(Packages.br.com.davinti.vitruvio.ui.core.VitruvioTheme);
|
|
importClass(Packages.com.vaadin.ui.VerticalLayout);
|
|
|
|
function Generator() {
|
|
var com = libService.loadScript('vaadinComponents');
|
|
this.generate = function(itemId, columnId, item, container) {
|
|
var titulo = item.getItemProperty('OBSERVACOES').getValue();
|
|
if (titulo.length() >= 20) {
|
|
titulo = titulo.substring(0,19) + '...';
|
|
}
|
|
var btn = com.linkButton(titulo, function(){
|
|
var subContent = new VerticalLayout();
|
|
subContent.setId('teste');
|
|
subContent.setMargin(true);
|
|
var linha = item;
|
|
|
|
var textArea = com.textArea(null, item.getItemProperty('OBSERVACOES').getValue());
|
|
var instGravar = function run() {
|
|
var sqlAtualiza = 'UPDATE controle_despesas_combustiveis SET observacoes = ? ' +
|
|
' WHERE CHAVE_DESPESA_COMBUSTIVEL = ? ';
|
|
var params = new java.util.ArrayList();
|
|
params.add(textArea.getValue());
|
|
params.add(linha.getItemProperty('CHAVE_DESPESA_COMBUSTIVEL').getValue().longValue());
|
|
vQueryService.executePSUpdateQuery('vitruvio', sqlAtualiza, params.toArray());
|
|
engine.getField('tbCombustivel').refresh();
|
|
engine.getField('tbTotalCombustivel').refresh();
|
|
engine.getGlobalVariable('fncSubTotalCombustivel')();
|
|
window.close();
|
|
};
|
|
var gravar = com.button('Gravar',instGravar,null);
|
|
subContent.addComponent(textArea);
|
|
subContent.addComponent(gravar);
|
|
var window = com.openWindow(item.getItemProperty('CLIENTE').getValue(), subContent,500,200);
|
|
|
|
textArea.setSizeFull();
|
|
textArea.addStyleName(com.theme().TEXTAREA_BORDERLESS);
|
|
window.setModal(true);
|
|
});
|
|
btn.setDescription(item.getItemProperty('OBSERVACOES').getValue());
|
|
var container = com.horizontalLayout([btn]);
|
|
container.setSpacing(false);
|
|
return container;
|
|
}
|
|
}
|
|
var script = new Generator();
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
<generated name="COMBUSTIVEL" caption="Combustível" 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) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_combustiveis SET chave_combustivel = ? "+
|
|
" WHERE CHAVE_DESPESA_COMBUSTIVEL = ? ";
|
|
var sql = "Select codigo from combustivel 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());
|
|
};
|
|
|
|
function generate(itemId, columnId, item, container) {
|
|
|
|
var sql = "Select codigo, descricao from combustivel";
|
|
|
|
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('COMBUSTIVEL').getValue()) {
|
|
combo.setValue(linha.getItemProperty('COMBUSTIVEL').getValue());
|
|
}
|
|
|
|
|
|
combo.addValueChangeListener(new Property.ValueChangeListener() {
|
|
valueChange: function(event) {
|
|
setUsuario(linha.getItemProperty('CHAVE_DESPESA_COMBUSTIVEL').getValue().longValue(),
|
|
event.getProperty().getValue());
|
|
},
|
|
hashCode: function() {
|
|
return combo.hashCode();
|
|
}
|
|
});
|
|
|
|
return combo;
|
|
}
|
|
]]>
|
|
</scriptColumnGenerator>
|
|
</generated>
|
|
<column name="POSTO" caption="Posto" />
|
|
<column name="LITROS" caption="Litros" commitOnEnter="true" editable="true" align="RIGHT" decimalSeparator="," />
|
|
<column name="VALOR_LITRO" caption="Vlr. litro" commitOnEnter="true" editable="true" align="RIGHT" decimalSeparator=","/>
|
|
<column name="TOTAL_COMBUSTIVEL" format="###0.00" caption="Total" align="RIGHT" decimalSeparator=","/>
|
|
<column name="KM_INICIAL" format="#.##0,00" caption="Km inicial" commitOnEnter="true" editable="true" align="RIGHT" decimalSeparator=","/>
|
|
<column name="KM_FINAL" format="#.##0,00" caption="Km final" commitOnEnter="true" editable="true" align="RIGHT" decimalSeparator=","/>
|
|
<column name="KM_RODADO" format="###0.00" caption="Km Rodado" align="RIGHT" decimalSeparator="," />
|
|
<column name="MEDIA_CONSUMO" format="###0.00" caption="Média consumo" align="RIGHT" decimalSeparator="," />
|
|
</columns>
|
|
<events>
|
|
<itemChange>
|
|
<script language="JavaScript">
|
|
<![CDATA[
|
|
function onChange(event) {
|
|
var db = libService.loadScript('db');
|
|
var dbVitruvio = new db('vitruvio');
|
|
dbVitruvio.transaction(function() {
|
|
//if (event.isChanged('DATA')) {
|
|
var sqlAtualiza = "UPDATE controle_despesas_combustiveis SET data = :data, litros = :litros, valor_litro = :valor_litro, total_combustivel = :total_combustivel, km_inicial = :km_inicial, km_final = :km_final, km_rodado = :km_rodado, media_consumo = :media_consumo, usuario = :usuario " +
|
|
" WHERE CHAVE_DESPESA_COMBUSTIVEL = :chave";
|
|
//}
|
|
this.update(sqlAtualiza, {
|
|
chave: Number(event.getItemId()),
|
|
data: event.getField('DATA').getValue(),
|
|
litros: event.getField('LITROS').getConvertedValue(),
|
|
valor_litro: event.getField('VALOR_LITRO').getConvertedValue(),
|
|
total_combustivel: event.getField('LITROS').getConvertedValue() * event.getField('VALOR_LITRO').getConvertedValue(),
|
|
km_inicial: event.getField('KM_INICIAL').getConvertedValue(),
|
|
km_final: event.getField('KM_FINAL').getConvertedValue(),
|
|
km_rodado: event.getField('KM_FINAL').getConvertedValue() - event.getField('KM_INICIAL').getConvertedValue(),
|
|
media_consumo: (event.getField('KM_FINAL').getConvertedValue() - event.getField('KM_INICIAL').getConvertedValue()) / event.getField('LITROS').getConvertedValue(),
|
|
usuario: engine.getLoggedUser().getLogin()
|
|
});
|
|
});
|
|
engine.getField('tbCombustivel').refresh();
|
|
engine.getGlobalVariable('fncSubTotalCombustivel')();
|
|
engine.getField('tbTotalCombustivel').refresh();
|
|
event.commit();
|
|
}
|
|
]]>
|
|
</script>
|
|
</itemChange>
|
|
</events>
|
|
</DBTable>
|
|
<DBTable id="tbTotalCombustivel" type="string" width="100%" expandRatio="0.25" rows="10" selectable="false" exportXLS="true" editable="false" >
|
|
<datasource>
|
|
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
|
|
<![CDATA[
|
|
function buildSQL(params) {
|
|
var sql = "Select c.descricao, " +
|
|
"sum(cdc.litros) litros, " +
|
|
"sum(cdc.total_combustivel) total " +
|
|
"from combustivel c inner join controle_despesas_combustiveis cdc on c.codigo = cdc.chave_combustivel " +
|
|
"where 1=2 " +
|
|
"group by c.descricao";
|
|
if (engine) {
|
|
sql = "Select c.descricao, " +
|
|
"sum(cdc.litros) litros, " +
|
|
"replace(replace(replace(to_char(sum(cdc.total_combustivel), '9999999999D99'),',','-' ),'.',','),'-','.') total " +
|
|
"from combustivel c inner join controle_despesas_combustiveis cdc on c.codigo = cdc.chave_combustivel ";
|
|
if (engine.getField('dataInicioCombustivel').getValue()) {
|
|
sql += " where cdc.data between '" + engine.getField('dataInicioCombustivel').getValue() + "' and '" + engine.getField('dataFinalCombustivel').getValue() + "'";
|
|
}
|
|
if (engine.getField('ftPlacaCombustivel').getValue()) {
|
|
sql += " and cdc.chave_veiculo = " + engine.getField('ftPlacaCombustivel').getValue();
|
|
}
|
|
if (engine.getField('ftCombustivel').getValue()) {
|
|
sql += " and cdc.chave_combustivel = " + engine.getField('ftCombustivel').getValue();
|
|
}
|
|
if (engine.getField('ftClientesCombustivel').getValue() && engine.getField('ftClientesCombustivel').getValue() != '[]') {
|
|
sql += " and cdc.chave_cliente in (" + engine.getField('ftClientesCombustivel').getValue().toString().replace('[','').replace(']','') + ")";
|
|
}
|
|
sql += " group by c.descricao ";
|
|
sql += "union " +
|
|
"Select 'TOTAL' descricao, " +
|
|
"sum(cdc.litros) litros, " +
|
|
"replace(replace(replace(to_char(sum(cdc.total_combustivel), '9999999999D99'),',','-' ),'.',','),'-','.') total " +
|
|
"from combustivel c inner join controle_despesas_combustiveis cdc on c.codigo = cdc.chave_combustivel ";
|
|
if (engine.getField('dataInicioCombustivel').getValue()) {
|
|
sql += " where cdc.data between '" + engine.getField('dataInicioCombustivel').getValue() + "' and '" + engine.getField('dataFinalCombustivel').getValue() + "'";
|
|
}
|
|
if (engine.getField('ftPlacaCombustivel').getValue()) {
|
|
sql += " and cdc.chave_veiculo = " + engine.getField('ftPlacaCombustivel').getValue();
|
|
}
|
|
if (engine.getField('ftCombustivel').getValue()) {
|
|
sql += " and cdc.chave_combustivel = " + engine.getField('ftCombustivel').getValue();
|
|
}
|
|
if (engine.getField('ftClientesCombustivel').getValue() && engine.getField('ftClientesCombustivel').getValue() != '[]') {
|
|
sql += " and cdc.chave_cliente in (" + engine.getField('ftClientesCombustivel').getValue().toString().replace('[','').replace(']','') + ")";
|
|
}
|
|
sql += " order by 1";
|
|
}
|
|
return sql;
|
|
}
|
|
]]>
|
|
</sqlBuilderDataSource>
|
|
</datasource>
|
|
<key-field>DESCRICAO</key-field>
|
|
<columns>
|
|
<column name="DESCRICAO" caption="Combustível" />
|
|
<column name="LITROS" caption="Litros" />
|
|
<column name="TOTAL" caption="Total" />
|
|
</columns>
|
|
</DBTable>
|
|
</HorizontalLayout>
|
|
</VerticalLayout>
|
|
</Panel>
|
|
</VerticalLayout>
|
|
</Tab>
|
|
</TabLayout>
|
|
</VerticalLayout>
|
|
</components>
|
|
|
|
</form>
|
|
</panel-form>
|