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

163 lines
14 KiB

<?xml version="1.0" encoding="UTF-8"?>
<panel-form xmlns="http://www.davinti.com.br/vitruvio/form/panel"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.davinti.com.br/vitruvio/form/panel https://bitbucket.org/davinTI/vitruvio-xds/raw/master/vitruvio-panel-form.xsd"
>
<form formKey="formCadastro" width="100%" height="100%">
<name>Lançar Valor</name>
<description>Geral X Dia</description>
<initScript language="JavaScript">
<![CDATA[
importClass(Packages.br.com.davinti.base.vaadin.components.icons.IconFactory);
importClass(Packages.br.com.davinti.base.vaadin.components.resources.icons16x16.IconLibraryAPISmall);
importClass(Packages.java.util.Calendar);
function fncLimpaCampos(){
}
function run() {
var d = new java.util.Date();
var c = java.util.Calendar.getInstance();
c.setTime(new java.util.Date());
c.set(Calendar.DAY_OF_MONTH, 1);
var data = c.getTime();
engine.setGlobalVariable('fncLimpaCampos', fncLimpaCampos);
engine.getField('dataInicio').setValue(data);
engine.getField('dataFinal').setValue(d);
engine.getField('tbLancamentos').refresh();
// Registrando icones
engine.getWidgetController('btnFiltrar').getButton().setIcon(IconFactory.instance().getIconAsResource(IconLibraryAPISmall.FILTRAR));
}
]]>
</initScript>
<components>
<VerticalLayout margin="true" width="100%" >
<VerticalLayout spacing="true" width="100%" height="100%">
<Panel 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="75" align="TOP_LEFT">
<image>
<base64 extension="jpg">
<![CDATA[
,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QNvaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjMtYzAxMSA2Ni4xNDU2NjEsIDIwMTIvMDIvMDYtMTQ6NTY6MjcgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ODU2ODhBNUI5QjlDRTgxMTg5ODhEODAwRjUzMjIyMzIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjE2MThDNzdBMjRFMTFFODhBMTBCQ0E3NkFEMzdGQzEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjE2MThDNzZBMjRFMTFFODhBMTBCQ0E3NkFEMzdGQzEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpENDZCNEY4QTlDQTcxMUU4QkE0QkFGQkY0OTRFRDlDMSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENDZCNEY4QjlDQTcxMUU4QkE0QkFGQkY0OTRFRDlDMSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6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
]]>
</base64>
</image>
</ImageWidget>
<HorizontalLayout width="450" spacing="true" align="BOTTOM_RIGHT" >
<DateField type="date" id="dataInicio" caption="Data inicial" width="150" expandRatio="0.5" description="Data inicial da exibição" format="dd/MM/yyyy" />
<DateField type="date" id="dataFinal" caption="Data final" width="150" expandRatio="0.5" description="Data final da exibição" format="dd/MM/yyyy" />
<ButtonWidget id="btnFiltrar" caption="Filtrar" description="Aplica filtro de data" width="100" >
<onClickScript language="JavaScript">
<![CDATA[
function run() {
engine.getField('tbLancamentos').refresh();
}
]]>
</onClickScript>
</ButtonWidget>
</HorizontalLayout>
</HorizontalLayout>
</VerticalLayout>
</Panel>
<Panel width="100%" margin="true" >
<VerticalLayout width="100%" spacing="true" align="TOP_LEFT" >
<DBTable id="tbLancamentos" type="number" showRowCount="true" width="100%" rows="14" selectable="false" exportXLS="true" editable="false" >
<datasource>
<sqlBuilderDataSource connection-key="vitruvio" language="JavaScript">
<![CDATA[
function buildSQL(params) {
if(engine) {
var sql = "";
if (engine.getField('dataInicio').getValue() && engine.getField('dataFinal').getValue()) {
var c = java.util.Calendar.getInstance();
var formatter = new java.text.SimpleDateFormat("dd/MM/yyyy");
c.setTime(engine.getField('dataInicio').getValue());
var data = c.getTime();
var dataInicio = formatter.format(data);
var f = java.util.Calendar.getInstance();
f.setTime(engine.getField('dataFinal').getValue());
data = f.getTime();
var dataFinal = formatter.format(data);
sql = "select fnc_geraldia_pivot(to_date('"+dataInicio+"','dd/MM/yyyy'),to_date('"+dataFinal+"','dd/MM/yyyy')) as sql_return ";
var ds = vQueryService.executeQuery('vitruvio', sql);
ds.next();
return ds.getString('sql_return');
} else {
return "select 0 as chave, '01/01/1900' as dt, 0 as valor_frete";
}
}else{
return "select 0 as chave, '01/01/1900' as dt, 0 as valor_frete";
}
}
]]>
</sqlBuilderDataSource>
</datasource>
<key-field>CHAVE</key-field>
<columns>
<generated name="DATA" align="CENTER">
<scriptColumnGenerator language="JavaScript">
<![CDATA[
function Generator() {
this.generate = function(itemId, columnId, item, container) {
if (item.getItemProperty('CHAVE').getValue() != 0) {
var c = java.util.Calendar.getInstance();
var formatter = new java.text.SimpleDateFormat("dd/MM/yyyy");
c.setTime(item.getItemProperty('DT').getValue());
var data = c.getTime();
var dataInicio = formatter.format(data);
return dataInicio;
} else {
return 'TOTAL';
}
}
}
var script = new Generator();
]]>
</scriptColumnGenerator>
</generated>
<column name="VALOR_FRETE" caption="Valor do Frete" align="CENTER" decimalSeparator="," groupingSeparator="." format="#.##0,00"/>
<dynamicColumn matchColumnTag="C_" matchColumnBy="STARTS_WITH" align="CENTER" decimalSeparator="," groupingSeparator="." format="#.##0,00"/>
<column name="LIQUIDO" caption="Lucro (Frete - Despesas)" align="CENTER" decimalSeparator="," groupingSeparator="." format="#.##0,00"/>
</columns>
<styleGenerator>
<scriptGenerator language="JavaScript">
<![CDATA[
function getStyle(itemId, columnId, item) {
if(item) {
if (item.getItemProperty('CHAVE').getValue() == '0') {
var coluna = columnId;
if (columnId.substring(0,2) == 'C_') {
var coluna = 'DINAMICA';
}
switch(coluna) {
case 'DATA':
return 'background-dark-gray';
case 'VALOR_FRETE':
return 'background-light-green';
case 'DINAMICA' :
return 'background-light-red';
case 'LIQUIDO' :
return 'background-light-blue';
}
}
}
}
]]>
</scriptGenerator>
</styleGenerator>
</DBTable>
</VerticalLayout>
</Panel>
</VerticalLayout>
</VerticalLayout>
</components>
</form>
</panel-form>