| @ -0,0 +1,812 @@ | |||
| <?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="sqlFaturamentoDespesasTotal" language="JavaScript" workOnline="true"> | |||
| <![CDATA[ | |||
| function buildDataSource(params) { | |||
| var sql = "SELECT 0 AS CHAVE, 'Faturamento' AS DESC, CAST(COALESCE(SUM(CRF.VALOR_LIQUIDO),0) AS NUMERIC(15,2)) AS VALOR "; | |||
| sql = sql + " FROM CONTROLE_RECEITAS_FRETES CRF "; | |||
| sql = sql + " WHERE CRF.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| if (params[4] != 'A') { | |||
| sql = sql + " AND CRF.FROTA_TERCEIRO = ? "; | |||
| } | |||
| if (params[5] != 'A') { | |||
| sql = sql + " AND CRF.CAMINHAO_CARRETA = ? "; | |||
| } | |||
| sql = sql + " UNION ALL "; | |||
| sql = sql + "SELECT 1 AS CHAVE, 'Despesas Operacionais' AS DESC, CAST(COALESCE(SUM(CDO.VALOR),0) AS NUMERIC(15,2)) AS VALOR "; | |||
| sql = sql + " FROM CONTROLE_DESPESAS_OPERACIONAIS CDO "; | |||
| sql = sql + " WHERE CDO.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| if (params[4] != 'A') { | |||
| sql = sql + " AND CDO.FROTA_TERCEIRO = ? "; | |||
| } | |||
| if (params[5] != 'A') { | |||
| sql = sql + " AND CDO.CAMINHAO_CARRETA = ? "; | |||
| } | |||
| sql = sql + " UNION ALL "; | |||
| sql = sql + "SELECT 2 AS CHAVE, 'Despesas Particulares' AS DESC, CAST(COALESCE(SUM(CDP.VALOR),0) AS NUMERIC(15,2)) AS VALOR "; | |||
| sql = sql + " FROM CONTROLE_DESPESAS_PESSOAIS CDP "; | |||
| sql = sql + " WHERE CDP.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| sql = sql + " UNION ALL "; | |||
| sql = sql + "SELECT 3 AS CHAVE, 'Despesas com Combustíveis' AS DESC, CAST(COALESCE(SUM(CDC.TOTAL_COMBUSTIVEL),0) AS NUMERIC(15,2)) AS VALOR "; | |||
| sql = sql + " FROM CONTROLE_DESPESAS_COMBUSTIVEIS CDC "; | |||
| sql = sql + " WHERE CDC.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| if (params[4] != 'A') { | |||
| sql = sql + " AND CDC.FROTA_TERCEIRO = ? "; | |||
| } | |||
| if (params[5] != 'A') { | |||
| sql = sql + " AND CDC.CAMINHAO_CARRETA = ? "; | |||
| } | |||
| /* */ | |||
| var fmt = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); | |||
| var dataInicioFat = new java.sql.Date(fmt.parse(params[0]).getTime()); | |||
| var dataFinalFat = new java.sql.Date(fmt.parse(params[1]).getTime()); | |||
| var dataInicioDesp = new java.sql.Date(fmt.parse(params[2]).getTime()); | |||
| var dataFinalDesp = new java.sql.Date(fmt.parse(params[3]).getTime()); | |||
| var frotaTerceiro = ""; | |||
| if (params[4] != "A") { | |||
| frotaTerceiro = params[4]; | |||
| } | |||
| var caminhaoCarreta = ""; | |||
| if (params[5] != "A") { | |||
| caminhaoCarreta = params[5]; | |||
| } | |||
| var frotaTerceiro2 = ""; | |||
| if (params[4] != "A") { | |||
| frotaTerceiro2 = params[4]; | |||
| } | |||
| var caminhaoCarreta2 = ""; | |||
| if (params[5] != "A") { | |||
| caminhaoCarreta2 = params[5]; | |||
| } | |||
| var frotaTerceiro3 = ""; | |||
| if (params[4] != "A") { | |||
| frotaTerceiro2 = params[4]; | |||
| } | |||
| var caminhaoCarreta3 = ""; | |||
| if (params[5] != "A") { | |||
| caminhaoCarreta2 = params[5]; | |||
| } | |||
| /* */ | |||
| var prm = new java.util.ArrayList(); | |||
| prm.add(dataInicioFat); | |||
| prm.add(dataFinalFat); | |||
| if (params[4] != "A") { | |||
| prm.add(frotaTerceiro); | |||
| } | |||
| if (params[5] != "A") { | |||
| prm.add(caminhaoCarreta); | |||
| } | |||
| prm.add(dataInicioDesp); | |||
| prm.add(dataFinalDesp); | |||
| if (params[4] != "A") { | |||
| prm.add(frotaTerceiro2); | |||
| } | |||
| if (params[5] != "A") { | |||
| prm.add(caminhaoCarreta2); | |||
| } | |||
| prm.add(dataInicioDesp); | |||
| prm.add(dataFinalDesp); | |||
| prm.add(dataInicioDesp); | |||
| prm.add(dataFinalDesp); | |||
| if (params[4] != "A") { | |||
| prm.add(frotaTerceiro3); | |||
| } | |||
| if (params[5] != "A") { | |||
| prm.add(caminhaoCarreta3); | |||
| } | |||
| return vQueryService.executeQuery('vitruvio', sql, prm); | |||
| } | |||
| ]]> | |||
| </ScriptDataSource> | |||
| <ScriptDataSource id="sqlDespesaOperacional" language="JavaScript" workOnline="true"> | |||
| <![CDATA[ | |||
| function buildDataSource(params) { | |||
| var sql = "SELECT CLI.NOME AS DESCRICAO "; | |||
| sql = sql + " ,CAST(SUM(CDO.VALOR) AS NUMERIC(15,2)) AS VALOR "; | |||
| sql = sql + " FROM CONTROLE_DESPESAS_OPERACIONAIS CDO "; | |||
| sql = sql + " ,CLIENTES CLI "; | |||
| sql = sql + " WHERE CDO.CHAVE_CLIENTE = CLI.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 CLI.NOME "; | |||
| sql = sql + " ORDER BY 2 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); | |||
| } | |||
| return vQueryService.executeQuery('vitruvio', sql, prm); | |||
| } | |||
| ]]> | |||
| </ScriptDataSource> | |||
| <ScriptDataSource id="sqlDespesaParticular" language="JavaScript" workOnline="true"> | |||
| <![CDATA[ | |||
| function buildDataSource(params) { | |||
| var sql = "SELECT S.NOME AS DESCRICAO "; | |||
| sql = sql + " ,CAST(SUM(CDP.VALOR) AS NUMERIC(15,2)) AS VALOR "; | |||
| sql = sql + " FROM CONTROLE_DESPESAS_PESSOAIS CDP "; | |||
| sql = sql + " ,SOCIOS S "; | |||
| sql = sql + " WHERE CDP.CHAVE_RESPONSAVEL = S.CODIGO "; | |||
| sql = sql + " AND CDP.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| sql = sql + " GROUP BY S.NOME "; | |||
| sql = sql + " ORDER BY 2 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 prm = new java.util.ArrayList(); | |||
| prm.add(dataInicio); | |||
| prm.add(dataFinal); | |||
| return vQueryService.executeQuery('vitruvio', sql, prm); | |||
| } | |||
| ]]> | |||
| </ScriptDataSource> | |||
| <ScriptDataSource id="sqlDespesaCombustivel" language="JavaScript" workOnline="true"> | |||
| <![CDATA[ | |||
| function buildDataSource(params) { | |||
| var sql = "SELECT C.CODIGO, C.NOME AS DESCRICAO "; | |||
| sql = sql + " ,CAST(SUM(CDC.TOTAL_COMBUSTIVEL) AS NUMERIC(15,2)) AS VALOR "; | |||
| sql = sql + " FROM CONTROLE_DESPESAS_COMBUSTIVEIS CDC "; | |||
| sql = sql + " ,CLIENTES C "; | |||
| sql = sql + " WHERE CDC.CHAVE_CLIENTE = C.CODIGO "; | |||
| 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 C.CODIGO, 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 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); | |||
| } | |||
| return vQueryService.executeQuery('vitruvio', sql, prm); | |||
| } | |||
| ]]> | |||
| </ScriptDataSource> | |||
| <ScriptDataSource id="sqlFaturamento" language="JavaScript" workOnline="true"> | |||
| <![CDATA[ | |||
| function buildDataSource(params) { | |||
| var sql = "SELECT C.NOME AS DESCRICAO "; | |||
| sql = sql + " ,CAST(SUM(CDF.VALOR_LIQUIDO) AS NUMERIC(15,2)) AS VALOR "; | |||
| sql = sql + " FROM CONTROLE_RECEITAS_FRETES CDF "; | |||
| sql = sql + " ,CLIENTES C "; | |||
| sql = sql + " WHERE CDF.CHAVE_CLIENTE = C.CODIGO "; | |||
| sql = sql + " AND CDF.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| if (params[2] != 'A') { | |||
| sql = sql + " AND CDF.FROTA_TERCEIRO = ? "; | |||
| } | |||
| if (params[3] != 'A') { | |||
| sql = sql + " AND CDF.CAMINHAO_CARRETA = ? "; | |||
| } | |||
| sql = sql + " GROUP BY C.NOME "; | |||
| sql = sql + " ORDER BY 2 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); | |||
| } | |||
| return vQueryService.executeQuery('vitruvio', sql, prm); | |||
| } | |||
| ]]> | |||
| </ScriptDataSource> | |||
| <ScriptDataSource id="sqlDespesaVeiculos" language="JavaScript" workOnline="true"> | |||
| <![CDATA[ | |||
| function buildDataSource(params) { | |||
| var sql = "SELECT 'PLACA: '||V.PLACA AS DESCRICAO "; | |||
| sql = sql + " ,CAST(SUM(CDC.TOTAL_COMBUSTIVEL) AS NUMERIC(15,2)) + CAST(SUM(CDO.VALOR) AS NUMERIC(15,2)) AS VALOR "; | |||
| sql = sql + " FROM CONTROLE_DESPESAS_COMBUSTIVEIS CDC "; | |||
| sql = sql + " ,CONTROLE_DESPESAS_OPERACIONAIS CDO "; | |||
| sql = sql + " ,VEICULO V "; | |||
| sql = sql + " WHERE CDC.CHAVE_VEICULO = V.CODIGO "; | |||
| sql = sql + " AND CDO.CHAVE_VEICULO = V.CODIGO "; | |||
| 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 + " 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 V.MARCA, V.PLACA "; | |||
| sql = sql + " ORDER BY 2 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> | |||
| <ScriptDataSource id="sqlDespesaVeiculosBarra" language="JavaScript" workOnline="true"> | |||
| <![CDATA[ | |||
| function buildDataSource(params) { | |||
| var sql = "SELECT * FROM (SELECT * "; | |||
| sql = sql + " FROM (SELECT V.PLACA "; | |||
| sql = sql + " ,CAST(COALESCE((SELECT SUM(CDF.VALOR_LIQUIDO) "; | |||
| sql = sql + " FROM CONTROLE_RECEITAS_FRETES CDF "; | |||
| sql = sql + " WHERE CDF.CHAVE_VEICULO = V.CODIGO "; | |||
| sql = sql + " AND CDF.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| if (params[4] != 'A') { | |||
| sql = sql + " AND CDF.FROTA_TERCEIRO = ? "; | |||
| } | |||
| if (params[5] != 'A') { | |||
| sql = sql + " AND CDF.CAMINHAO_CARRETA = ? "; | |||
| } | |||
| sql = sql + " ),0) AS NUMERIC(15, 2)) AS FATURAMENTO "; | |||
| sql = sql + " ,CAST(COALESCE((SELECT SUM(CDC.TOTAL_COMBUSTIVEL)"; | |||
| sql = sql + " FROM CONTROLE_DESPESAS_COMBUSTIVEIS CDC "; | |||
| sql = sql + " WHERE CDC.CHAVE_VEICULO = V.CODIGO "; | |||
| sql = sql + " AND CDC.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| if (params[4] != 'A') { | |||
| sql = sql + " AND CDC.FROTA_TERCEIRO = ? "; | |||
| } | |||
| if (params[5] != 'A') { | |||
| sql = sql + " AND CDC.CAMINHAO_CARRETA = ? "; | |||
| } | |||
| sql = sql + " ),0)"; | |||
| sql = sql + " + COALESCE((SELECT SUM(CDO.VALOR)"; | |||
| sql = sql + " FROM CONTROLE_DESPESAS_OPERACIONAIS CDO "; | |||
| sql = sql + " WHERE CDO.CHAVE_VEICULO = V.CODIGO "; | |||
| sql = sql + " AND CDO.DATA BETWEEN CAST(? AS DATE) AND CAST(? AS DATE) "; | |||
| if (params[4] != 'A') { | |||
| sql = sql + " AND CDO.FROTA_TERCEIRO = ? "; | |||
| } | |||
| if (params[5] != 'A') { | |||
| sql = sql + " AND CDO.CAMINHAO_CARRETA = ? "; | |||
| } | |||
| sql = sql + " ),0) AS NUMERIC(15, 2)) AS DESPESA "; | |||
| sql = sql + " FROM VEICULO V) V "; | |||
| sql = sql + " WHERE ((V.FATURAMENTO > 0) OR (V.DESPESA > 0)) ORDER BY 2 DESC) A ORDER BY 2 ASC"; | |||
| var fmt = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); | |||
| var dataInicioFat = new java.sql.Date(fmt.parse(params[0]).getTime()); | |||
| var dataFinalFat = new java.sql.Date(fmt.parse(params[1]).getTime()); | |||
| var dataInicioDesp = new java.sql.Date(fmt.parse(params[2]).getTime()); | |||
| var dataFinalDesp = new java.sql.Date(fmt.parse(params[3]).getTime()); | |||
| var frotaTerceiro = ""; | |||
| if (params[4] != "A") { | |||
| frotaTerceiro = params[4]; | |||
| } | |||
| var caminhaoCarreta = ""; | |||
| if (params[5] != "A") { | |||
| caminhaoCarreta = params[5]; | |||
| } | |||
| var frotaTerceiro2 = ""; | |||
| if (params[4] != "A") { | |||
| frotaTerceiro2 = params[4]; | |||
| } | |||
| var caminhaoCarreta2 = ""; | |||
| if (params[5] != "A") { | |||
| caminhaoCarreta2 = params[5]; | |||
| } | |||
| var frotaTerceiro3 = ""; | |||
| if (params[4] != "A") { | |||
| frotaTerceiro3 = params[4]; | |||
| } | |||
| var caminhaoCarreta3 = ""; | |||
| if (params[5] != "A") { | |||
| caminhaoCarreta3 = params[5]; | |||
| } | |||
| var prm = new java.util.ArrayList(); | |||
| prm.add(dataInicioFat); | |||
| prm.add(dataFinalFat); | |||
| if (params[4] != "A") { | |||
| prm.add(frotaTerceiro); | |||
| } | |||
| if (params[5] != "A") { | |||
| prm.add(caminhaoCarreta); | |||
| } | |||
| prm.add(dataInicioDesp); | |||
| prm.add(dataFinalDesp); | |||
| if (params[4] != "A") { | |||
| prm.add(frotaTerceiro2); | |||
| } | |||
| if (params[5] != "A") { | |||
| prm.add(caminhaoCarreta2); | |||
| } | |||
| prm.add(dataInicioDesp); | |||
| prm.add(dataFinalDesp); | |||
| if (params[4] != "A") { | |||
| prm.add(frotaTerceiro3); | |||
| } | |||
| if (params[5] != "A") { | |||
| prm.add(caminhaoCarreta3); | |||
| } | |||
| return vQueryService.executeQuery('vitruvio', sql, prm); | |||
| } | |||
| ]]> | |||
| </ScriptDataSource> | |||
| </DataSources> | |||
| </ServerSide> | |||
| <initScript language="JavaScript"> | |||
| <![CDATA[ | |||
| function run() { | |||
| engine.getComponent('scpFaturamentoCliente').setVisible(false); | |||
| /*engine.getComponent('scpFaturamentoPlaca').setVisible(false);*/ | |||
| 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="dataInicioFat" caption="Início faturamento" type="date" required="false" format="dd/MM/yyyy"/> | |||
| <DateField id="dataFinalFat" caption="Final faturamento" type="date" required="false" format="dd/MM/yyyy"/> | |||
| </HorizontalLayout> | |||
| <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"> | |||
| <!-- Faturamento Geral --> | |||
| <Tab id="faturamento_despesas" caption="Gráfico Faturamento x Despesas"> | |||
| <ScriptWidget id="scpFaturamentoGeral"> | |||
| <factory> | |||
| <LayoutFactory type="VerticalLayout" width="100%" /> | |||
| </factory> | |||
| <InitScript language="JavaScript"> | |||
| <![CDATA[ | |||
| function chartFaturamentoDespesas(periodo, callback) { | |||
| var arrayLegenda = []; | |||
| var arrayDados = []; | |||
| var vendaLoja = 0; | |||
| vQueryService.executeDataSource("sqlFaturamentoDespesasTotal", periodo).then(dsFaturamento=>{ | |||
| while (dsFaturamento.next()) { | |||
| vendaLoja = (dsFaturamento.getNumber("VALOR")); | |||
| var legenda = "" + dsFaturamento.getString("DESC") + ' - ' + accounting.formatMoney(vendaLoja, "", 2, ".", ","); | |||
| arrayLegenda.push(legenda); | |||
| arrayDados.push({ | |||
| value: vendaLoja, | |||
| name: legenda | |||
| } | |||
| ); | |||
| } | |||
| var json = chartAPI.pie({ | |||
| legend: { | |||
| orient: 'horizontal', | |||
| data: arrayLegenda | |||
| }, | |||
| data: arrayDados | |||
| }, "highcharts"); | |||
| callback(json, null); | |||
| }).catch(error=>{ | |||
| callback(null, error); | |||
| }); | |||
| } | |||
| function init(base) { | |||
| var dataInicioFat = engine.getField("dataInicioFat").getValue(); | |||
| var dataFinalFat = engine.getField("dataFinalFat").getValue(); | |||
| var dataInicioDesp = engine.getField("dataInicioDesp").getValue(); | |||
| var dataFinalDesp = engine.getField("dataFinalDesp").getValue(); | |||
| var frotaTerceiro = engine.getField("frotaTerceiro").getValue(); | |||
| var caminhaoCarreta = engine.getField("caminhaoCarreta").getValue(); | |||
| chartFaturamentoDespesas([dataInicioFat, dataFinalFat, dataInicioDesp, dataFinalDesp, frotaTerceiro, caminhaoCarreta], function(chart,error){ | |||
| if(!error){ | |||
| chart.setWidth("100%"); | |||
| chart.setHeight("610px"); | |||
| chart.setCaption("Totais"); | |||
| chart.id = "chartKpiOrcadoRealizado"+new Date().getTime(); | |||
| if(base.components.length == 0){ | |||
| base.addComponent(chart); | |||
| }else{ | |||
| base.components[0] = chart; | |||
| } | |||
| } | |||
| }); | |||
| } | |||
| ]]> | |||
| </InitScript> | |||
| </ScriptWidget> | |||
| </Tab> | |||
| <!-- Faturamento Geral --> | |||
| <Tab id="faturamento_despesas" caption="Gráfico por placas"> | |||
| <ScriptWidget id="scpFaturamentoGeral"> | |||
| <factory> | |||
| <LayoutFactory type="VerticalLayout" width="100%" height="5000px" /> | |||
| </factory> | |||
| <InitScript language="JavaScript"> | |||
| <![CDATA[ | |||
| function chartBarraPlaca(periodo, callback) { | |||
| var arrayLegenda = ['Faturamento', 'Despesas']; | |||
| var arrayLabel = []; | |||
| var arrayFaturamento = []; | |||
| var arrayDepesas = []; | |||
| var faturamento = 0; | |||
| var despesas = 0; | |||
| vQueryService.executeDataSource("sqlDespesaVeiculosBarra", periodo).then(dsFaturamento=>{ | |||
| while (dsFaturamento.next()) { | |||
| faturamento = dsFaturamento.getNumber("FATURAMENTO"); | |||
| despesas = dsFaturamento.getNumber("DESPESA"); | |||
| var label = dsFaturamento.getString("PLACA"); | |||
| arrayLabel.push(label); | |||
| arrayFaturamento.push(faturamento); | |||
| arrayDepesas.push(despesas); | |||
| } | |||
| var json = chartAPI.bar({ | |||
| orientation: 'horizontal', | |||
| color: ['#228B22', '#FF0000'], | |||
| legend: arrayLegenda, | |||
| labels: arrayLabel, | |||
| data: [ | |||
| { name: 'Faturamento', data: arrayFaturamento }, | |||
| { name: 'Despesas', data: arrayDepesas } | |||
| ] | |||
| }); | |||
| callback(json, null); | |||
| }).catch(error=>{ | |||
| callback(null, error); | |||
| }); | |||
| } | |||
| function init(base) { | |||
| var dataInicioFat = engine.getField("dataInicioFat").getValue(); | |||
| var dataFinalFat = engine.getField("dataFinalFat").getValue(); | |||
| var dataInicioDesp = engine.getField("dataInicioDesp").getValue(); | |||
| var dataFinalDesp = engine.getField("dataFinalDesp").getValue(); | |||
| var frotaTerceiro = engine.getField("frotaTerceiro").getValue(); | |||
| var caminhaoCarreta = engine.getField("caminhaoCarreta").getValue(); | |||
| chartBarraPlaca([dataInicioFat, dataFinalFat, dataInicioDesp, dataFinalDesp, frotaTerceiro, caminhaoCarreta], function(chart,error){ | |||
| if(!error){ | |||
| chart.setWidth("100%"); | |||
| chart.setHeight("5000px"); /* era 650 */ | |||
| chart.setCaption("Faturamento x Depesas placas"); | |||
| chart.id = "chartBarraPlaca"+new Date().getTime(); | |||
| if(base.components.length == 0){ | |||
| base.addComponent(chart); | |||
| }else{ | |||
| base.components[0] = chart; | |||
| } | |||
| base.addComponent(chart); | |||
| } | |||
| }); | |||
| } | |||
| ]]> | |||
| </InitScript> | |||
| </ScriptWidget> | |||
| </Tab> | |||
| <!-- Faturamento Geral por cliente --> | |||
| <Tab id="faturamento_despesas_cliente" caption="Filtro por cliente"> | |||
| <ScriptWidget id="scpFaturamentoCliente"> | |||
| <factory> | |||
| <LayoutFactory type="VerticalLayout" width="100%" /> | |||
| </factory> | |||
| <InitScript language="JavaScript"> | |||
| <![CDATA[ | |||
| function init(base) { | |||
| var dataInicioFat = engine.getField("dataInicioFat").getValue(); | |||
| var dataFinalFat = engine.getField("dataFinalFat").getValue(); | |||
| var dataInicioDesp = engine.getField("dataInicioDesp").getValue(); | |||
| var dataFinalDesp = engine.getField("dataFinalDesp").getValue(); | |||
| var frotaTerceiro = engine.getField("frotaTerceiro").getValue(); | |||
| var caminhaoCarreta = engine.getField("caminhaoCarreta").getValue(); | |||
| var exibeLabel = false; | |||
| /*Valor Faturamento Geral*/ | |||
| vQueryService.executeDataSource("sqlFaturamentoDespesasTotal", [dataInicioFat, dataFinalFat, dataInicioDesp, dataFinalDesp, frotaTerceiro, caminhaoCarreta]).then(dsFaturamento=>{ | |||
| var texto = '<p style="text-align: center;"><span style=""><strong>Totais<span style=""></span></strong></span></p>'; | |||
| texto += '<table border="0" width="90%"><tbody>'; | |||
| while(dsFaturamento.next()){ | |||
| texto += '<tr>'; | |||
| texto += '<td width="65%">' + dsFaturamento.getString("DESC") + '</td>'; | |||
| texto += '<td align="left">' + 'R$ ' + accounting.formatMoney(dsFaturamento.getNumber("VALOR"), "", 2, ".", ",") + '</td>'; | |||
| texto += '</tr>'; | |||
| } | |||
| texto += '</tbody></table>'; | |||
| engine.getLabel('lblFaturamentoGeralCli').setValue(texto); | |||
| }).catch(error=>{ | |||
| }); | |||
| /*Faturamento*/ | |||
| vQueryService.executeDataSource("sqlFaturamento", [dataInicioFat, dataFinalFat, frotaTerceiro, caminhaoCarreta]).then(dsFaturamento=>{ | |||
| var texto = '<p style="text-align: center;"><span style=""><strong>Faturamento<span style=""></span></strong></span></p>'; | |||
| exibeLabel = false; | |||
| texto += '<table border="0" width="90%"><tbody>'; | |||
| while(dsFaturamento.next()){ | |||
| if(dsFaturamento.getNumber("VALOR") > 0){ | |||
| exibeLabel = true; | |||
| } | |||
| texto += '<tr>'; | |||
| texto += '<td width="65%">' + dsFaturamento.getString("DESCRICAO") + '</td>'; | |||
| texto += '<td align="left">' + 'R$ ' + accounting.formatMoney(dsFaturamento.getNumber("VALOR"), "", 2, ".", ",") + '</td>'; | |||
| texto += '</tr>'; | |||
| } | |||
| texto += '</tbody></table>'; | |||
| engine.getLabel('lblFaturamento').setValue(texto); | |||
| engine.getLabel('lblFaturamento').setVisible(exibeLabel); | |||
| }).catch(error=>{ | |||
| }); | |||
| /*Despesa Operacional*/ | |||
| vQueryService.executeDataSource("sqlDespesaOperacional", [dataInicioDesp, dataFinalDesp, frotaTerceiro, caminhaoCarreta]).then(dsFaturamento=>{ | |||
| var texto = '<p style="text-align: center;"><span style=""><strong>Despesas Operacionais<span style=""></span></strong></span></p>'; | |||
| exibeLabel = false; | |||
| texto += '<table border="0" width="90%"><tbody>'; | |||
| while(dsFaturamento.next()){ | |||
| if(dsFaturamento.getNumber("VALOR") > 0){ | |||
| exibeLabel = true; | |||
| } | |||
| texto += '<tr>'; | |||
| texto += '<td width="65%">' + dsFaturamento.getString("DESCRICAO") + '</td>'; | |||
| texto += '<td align="left">' + 'R$ ' + accounting.formatMoney(dsFaturamento.getNumber("VALOR"), "", 2, ".", ",") + '</td>'; | |||
| texto += '</tr>'; | |||
| } | |||
| texto += '</tbody></table>'; | |||
| engine.getLabel('lblDespOperacional').setValue(texto); | |||
| engine.getLabel('lblDespOperacional').setVisible(exibeLabel); | |||
| }).catch(error=>{ | |||
| }); | |||
| /*Despesa Particular*/ | |||
| vQueryService.executeDataSource("sqlDespesaParticular", [dataInicioDesp, dataFinalDesp, frotaTerceiro, caminhaoCarreta]).then(dsFaturamento=>{ | |||
| var texto = '<p style="text-align: center;"><span style=""><strong>Despesas Particulares<span style=""></span></strong></span></p>'; | |||
| exibeLabel = false; | |||
| texto += '<table border="0" width="90%"><tbody>'; | |||
| while(dsFaturamento.next()){ | |||
| if(dsFaturamento.getNumber("VALOR") > 0){ | |||
| exibeLabel = true; | |||
| } | |||
| texto += '<tr>'; | |||
| texto += '<td width="65%">' + dsFaturamento.getString("DESCRICAO") + '</td>'; | |||
| texto += '<td align="left">' + 'R$ ' + accounting.formatMoney(dsFaturamento.getNumber("VALOR"), "", 2, ".", ",") + '</td>'; | |||
| texto += '</tr>'; | |||
| } | |||
| texto += '</tbody></table>'; | |||
| engine.getLabel('lblDespParticular').setValue(texto); | |||
| engine.getLabel('lblDespParticular').setVisible(exibeLabel); | |||
| }).catch(error=>{ | |||
| }); | |||
| var texto = '<p style="text-align: center;"><span style=""><strong>Despesas por Combustíveis<span style=""></span></strong></span></p>'; | |||
| engine.getLabel('lblDespCombustivel').setValue(texto); | |||
| } | |||
| ]]> | |||
| </InitScript> | |||
| </ScriptWidget> | |||
| <VerticalLayout width="100%" margin="false" spacing="true"> | |||
| <HorizontalLayout width="100%" margin="false" spacing="true" > | |||
| <Label id="lblFaturamentoGeralCli" value="" visible="true" align="CENTER"/> | |||
| </HorizontalLayout> | |||
| <HorizontalLayout width="100%" margin="false" spacing="true" caption="Faturamento"> | |||
| <Label id="lblFaturamento" value="" visible="true" align="CENTER"/> | |||
| </HorizontalLayout> | |||
| <HorizontalLayout width="100%" margin="false" spacing="true" caption="Despesas Operacionais"> | |||
| <Label id="lblDespOperacional" value="" visible="true" align="CENTER"/> | |||
| </HorizontalLayout> | |||
| <HorizontalLayout width="100%" margin="false" spacing="true" caption="Despesas Particulares"> | |||
| <Label id="lblDespParticular" value="" visible="true" align="CENTER"/> | |||
| </HorizontalLayout> | |||
| <Label id="lblDespCombustivel" value="" visible="true" align="CENTER"/> | |||
| <!-- Gasto por cliente dos combustíveis--> | |||
| <Tab id="despesas_cliente" caption=""> | |||
| <DBTable type="string" id="dbDespCliente" caption="" editable="false" visible="true" rows="10" width="100%" requireFilter="false"> | |||
| <datasource> | |||
| <form-datasource ref="sqlDespesaCombustivel"/> | |||
| </datasource> | |||
| <key-field>CODIGO</key-field> | |||
| <bind property="0" ref="dataInicioDesp" /> | |||
| <bind property="1" ref="dataFinalDesp" /> | |||
| <bind property="3" ref="frotaTerceiro" /> | |||
| <bind property="4" ref="caminhaoCarreta" /> | |||
| <columns> | |||
| <column name="DESCRICAO" caption="Nome" expand-ratio="0.05" align="LEFT"/> | |||
| <column name="VALOR" caption="Valor" type="decimal" format="#,##0.00" decimalSeparator="," groupingSeparator="." expand-ratio="0.20"/> | |||
| </columns> | |||
| <styleGenerator> | |||
| <scriptGenerator language="JavaScript"> | |||
| <![CDATA[ | |||
| function getStyle(itemId, columnId, item) { | |||
| if(columnId == 'DESCRICAO'){ | |||
| return {'text-decoration': 'underline', 'color' : 'blue'}; | |||
| } | |||
| } | |||
| ]]> | |||
| </scriptGenerator> | |||
| </styleGenerator> | |||
| <events> | |||
| <columnClick> | |||
| <script language="JavaScript"> | |||
| <![CDATA[ | |||
| function run(event) { | |||
| var item = event.item; | |||
| var column = event.column; | |||
| if(column.name == "DESCRICAO"){ | |||
| var dataInicioParam = engine.getField("dataInicioDesp").getValue(); | |||
| var dataFinalParm = engine.getField("dataFinalDesp").getValue(); | |||
| var frotaTerceiroParam = engine.getField("frotaTerceiro").getValue(); | |||
| var caminhaoCarretaParam = engine.getField("caminhaoCarreta").getValue(); | |||
| engine.openPanel("faturamento_despesas_detalhes",{idCodigo: item['CODIGO'], idNomeCliente: item['DESCRICAO'], idDataInicio: dataInicioParam, idDataFim: dataFinalParm, idFrotaTerceiro: frotaTerceiroParam, idCaminhaoCarreta: caminhaoCarretaParam}); | |||
| } | |||
| } | |||
| ]]> | |||
| </script> | |||
| </columnClick> | |||
| </events> | |||
| </DBTable> | |||
| </Tab> | |||
| </VerticalLayout> | |||
| </Tab> | |||
| </TabLayout> | |||
| </VerticalLayout> | |||
| </components> | |||
| </form> | |||
| </panel-form> | |||