| @ -0,0 +1,228 @@ | |||
| <?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="dashboardDespesas" width="100%" backgroundColor="#ffffff"> | |||
| <name>Indicador Controle de Gastos</name> | |||
| <description>Indicadores Controle de Gastos</description> | |||
| <ServerSide> | |||
| <DataSources> | |||
| <ScriptDataSource id="sqlDespesaCategoria" language="JavaScript" workOnline="true"> | |||
| <![CDATA[ | |||
| function buildDataSource(params) { | |||
| var sql = "SELECT CDO.CHAVE_CATEGORIA "; | |||
| sql = sql + " ,C.DESCRICAO AS NOME_CATEGORIA "; | |||
| sql = sql + " ,CAST(COALESCE(SUM(CDO.VALOR),0) AS NUMERIC(15,2)) AS VALOR "; | |||
| sql = sql + " FROM CONTROLE_DESPESAS_OPERACIONAIS CDO "; | |||
| sql = sql + " ,CATEGORIA C "; | |||
| sql = sql + " WHERE CDO.CHAVE_CATEGORIA = C.CODIGO "; | |||
| sql = sql + " AND CDO.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| if (params[2] != 'A') { | |||
| sql = sql + " AND CDO.FROTA_TERCEIRO = ?"; | |||
| } | |||
| if (params[3] != 'A') { | |||
| sql = sql + " AND CDO.CAMINHAO_CARRETA = ?"; | |||
| } | |||
| sql = sql + " GROUP BY CDO.CHAVE_CATEGORIA "; | |||
| sql = sql + " ,C.DESCRICAO "; | |||
| sql = sql + " UNION ALL "; | |||
| sql = sql + "SELECT CDP.CHAVE_CATEGORIA "; | |||
| sql = sql + " ,C.DESCRICAO AS NOME_CATEGORIA "; | |||
| sql = sql + " ,CAST(COALESCE(SUM(CDP.VALOR),0) AS NUMERIC(15,2)) AS VALOR "; | |||
| sql = sql + " FROM CONTROLE_DESPESAS_PESSOAIS CDP "; | |||
| sql = sql + " ,CATEGORIA C "; | |||
| sql = sql + " WHERE CDP.CHAVE_CATEGORIA = C.CODIGO "; | |||
| sql = sql + " AND CDP.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| sql = sql + " GROUP BY CDP.CHAVE_CATEGORIA "; | |||
| sql = sql + " ,C.DESCRICAO "; | |||
| sql = sql + " ORDER BY 3 DESC "; | |||
| var fmt = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); | |||
| var dataInicio = new java.sql.Date(fmt.parse(params[0]).getTime()); | |||
| var dataFinal = new java.sql.Date(fmt.parse(params[1]).getTime()); | |||
| var frotaTerceiro = ""; | |||
| if (params[2] != "A") { | |||
| frotaTerceiro = params[2]; | |||
| } | |||
| var caminhaoCarreta = ""; | |||
| if (params[3] != "A") { | |||
| caminhaoCarreta = params[3]; | |||
| } | |||
| var prm = new java.util.ArrayList(); | |||
| prm.add(dataInicio); | |||
| prm.add(dataFinal); | |||
| if (params[2] != "A") { | |||
| prm.add(frotaTerceiro); | |||
| } | |||
| if (params[3] != "A") { | |||
| prm.add(caminhaoCarreta); | |||
| } | |||
| prm.add(dataInicio); | |||
| prm.add(dataFinal); | |||
| return vQueryService.executeQuery('vitruvio', sql, prm); | |||
| } | |||
| ]]> | |||
| </ScriptDataSource> | |||
| <ScriptDataSource id="sqlDespesaCliente" language="JavaScript" workOnline="true"> | |||
| <![CDATA[ | |||
| function buildDataSource(params) { | |||
| var sql = "SELECT CDO.CHAVE_CLIENTE "; | |||
| sql = sql + " ,C.NOME AS NOME_CLIENTE "; | |||
| sql = sql + " ,CAST(SUM(CDO.VALOR) + "; | |||
| sql = sql + " COALESCE((SELECT sum(CDC.total_combustivel) "; | |||
| sql = sql + " FROM controle_despesas_combustiveis CDC "; | |||
| sql = sql + " WHERE CDC.chave_cliente = CDO.chave_cliente "; | |||
| sql = sql + " AND CDC.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| if (params[2] != 'A') { | |||
| sql = sql + " AND CDC.FROTA_TERCEIRO = ?"; | |||
| } | |||
| if (params[3] != 'A') { | |||
| sql = sql + " AND CDC.CAMINHAO_CARRETA = ?"; | |||
| } | |||
| sql = sql + " GROUP BY CDC.CHAVE_CLIENTE),0) "; | |||
| sql = sql + " AS NUMERIC(15,2)) AS VALOR "; | |||
| sql = sql + "FROM CONTROLE_DESPESAS_OPERACIONAIS CDO "; | |||
| sql = sql + ",CLIENTES C "; | |||
| sql = sql + "WHERE CDO.CHAVE_CLIENTE = C.CODIGO "; | |||
| sql = sql + "AND CDO.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| if (params[2] != 'A') { | |||
| sql = sql + " AND CDO.FROTA_TERCEIRO = ?"; | |||
| } | |||
| if (params[3] != 'A') { | |||
| sql = sql + " AND CDO.CAMINHAO_CARRETA = ?"; | |||
| } | |||
| sql = sql + "GROUP BY CDO.CHAVE_CLIENTE "; | |||
| sql = sql + ",C.NOME "; | |||
| sql = sql + "ORDER BY 3 DESC"; | |||
| var fmt = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); | |||
| var dataInicio = new java.sql.Date(fmt.parse(params[0]).getTime()); | |||
| var dataFinal = new java.sql.Date(fmt.parse(params[1]).getTime()); | |||
| var frotaTerceiro = ""; | |||
| if (params[2] != "A") { | |||
| frotaTerceiro = params[2]; | |||
| } | |||
| var caminhaoCarreta = ""; | |||
| if (params[3] != "A") { | |||
| caminhaoCarreta = params[3]; | |||
| } | |||
| var frotaTerceiro2 = ""; | |||
| if (params[2] != "A") { | |||
| frotaTerceiro2 = params[2]; | |||
| } | |||
| var caminhaoCarreta2 = ""; | |||
| if (params[3] != "A") { | |||
| caminhaoCarreta2 = params[3]; | |||
| } | |||
| var prm = new java.util.ArrayList(); | |||
| prm.add(dataInicio); | |||
| prm.add(dataFinal); | |||
| if (params[2] != "A") { | |||
| prm.add(frotaTerceiro); | |||
| } | |||
| if (params[3] != "A") { | |||
| prm.add(caminhaoCarreta) | |||
| } | |||
| prm.add(dataInicio); | |||
| prm.add(dataFinal); | |||
| if (params[2] != "A") { | |||
| prm.add(frotaTerceiro2); | |||
| } | |||
| if (params[3] != "A") { | |||
| prm.add(caminhaoCarreta2); | |||
| } | |||
| return vQueryService.executeQuery('vitruvio', sql, prm); | |||
| } | |||
| ]]> | |||
| </ScriptDataSource> | |||
| </DataSources> | |||
| </ServerSide> | |||
| <initScript language="JavaScript"> | |||
| <![CDATA[ | |||
| function run() { | |||
| engine.getField('frotaTerceiro').setValue("A"); | |||
| engine.getField('caminhaoCarreta').setValue("A"); | |||
| } | |||
| ]]> | |||
| </initScript> | |||
| <components> | |||
| <VerticalLayout width="100%" margin="false" spacing="true"> | |||
| <HorizontalLayout spacing="true" width="80%" align="TOP_LEFT"> | |||
| <DateField id="dataInicioDesp" caption="Início despesa" type="date" required="false" format="dd/MM/yyyy"/> | |||
| <DateField id="dataFinalDesp" caption="Final despesa" type="date" required="false" format="dd/MM/yyyy"/> | |||
| </HorizontalLayout> | |||
| <HorizontalLayout spacing="true" width="80%" align="TOP_LEFT"> | |||
| <OptionGroup type="string" id="frotaTerceiro" caption="Tipo de frota" disposition="vertical" width="100%" > | |||
| <entry value="Ambos" key="A"/> | |||
| <entry value="Frota" key="F"/> | |||
| <entry value="Terceiro" key="T"/> | |||
| </OptionGroup> | |||
| <OptionGroup type="string" id="caminhaoCarreta" caption="Tipo de transporte" disposition="vertical" width="100%"> | |||
| <entry value="Todos" key="A"/> | |||
| <entry value="Caminhão" key="C"/> | |||
| <entry value="Carreta" key="T"/> | |||
| <entry value="Outros" key="O"/> | |||
| </OptionGroup> | |||
| </HorizontalLayout> | |||
| <TabLayout id="tabLayout" width="100%" framed="true"> | |||
| <!-- Gasto por categoria --> | |||
| <Tab id="despesas_categoria" caption="Despesa por Categoria"> | |||
| <DBTable type="string" id="dbDespCategoria" caption="Despesa por Categoria" editable="false" visible="true" rows="10" width="100%" requireFilter="false"> | |||
| <datasource> | |||
| <form-datasource ref="sqlDespesaCategoria"/> | |||
| </datasource> | |||
| <key-field>CHAVE_CATEGORIA</key-field> | |||
| <bind property="0" ref="dataInicioDesp" /> | |||
| <bind property="1" ref="dataFinalDesp" /> | |||
| <bind property="2" ref="frotaTerceiro" /> | |||
| <bind property="3" ref="caminhaoCarreta" /> | |||
| <columns> | |||
| <column name="NOME_CATEGORIA" caption="Categoria" expand-ratio="0.05" align="LEFT"/> | |||
| <column name="VALOR" caption="Valor" type="decimal" format="#,##0.00" decimalSeparator="," groupingSeparator="." expand-ratio="0.20"/> | |||
| </columns> | |||
| </DBTable> | |||
| </Tab> | |||
| <!-- Gasto por cliente --> | |||
| <Tab id="despesas_cliente" caption="Despesa por Cliente"> | |||
| <DBTable type="string" id="dbDespCliente" caption="Despesa por Cliente" editable="false" visible="true" rows="10" width="100%" requireFilter="false"> | |||
| <datasource> | |||
| <form-datasource ref="sqlDespesaCliente"/> | |||
| </datasource> | |||
| <key-field>CHAVE_CLIENTE</key-field> | |||
| <bind property="0" ref="dataInicioDesp" /> | |||
| <bind property="1" ref="dataFinalDesp" /> | |||
| <bind property="2" ref="frotaTerceiro" /> | |||
| <bind property="3" ref="caminhaoCarreta" /> | |||
| <columns> | |||
| <column name="NOME_CLIENTE" caption="Cliente" expand-ratio="0.05" align="LEFT"/> | |||
| <column name="VALOR" caption="Valor" type="decimal" format="#,##0.00" decimalSeparator="," groupingSeparator="." expand-ratio="0.20"/> | |||
| </columns> | |||
| </DBTable> | |||
| </Tab> | |||
| </TabLayout> | |||
| </VerticalLayout> | |||
| </components> | |||
| </form> | |||
| </panel-form> | |||