diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMensalDAER.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMensalDAER.java new file mode 100644 index 000000000..096f0eb14 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMensalDAER.java @@ -0,0 +1,203 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.math.BigDecimal; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioMensalDAERBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioMensalDAER extends Relatorio { + + private List lsDadosRelatorio; + private static Logger log = Logger.getLogger(RelatorioMensalDAER.class); + + /** + * @param parametros + * @param conexao + */ + public RelatorioMensalDAER(final Map parametros, final Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new DataSource(this) { + @Override + public void initDados() throws Exception { + try { + String agencia = parametros.get("AGENCIA") != null ? parametros.get("AGENCIA").toString() : null; + Empresa empresa = parametros.get("EMPRESA") != null ? (Empresa) (parametros.get("EMPRESA")) : null; + + // Executa query relatório e preenche objeto relatório + lsDadosRelatorio = preencheAgrupaRelatorioBean(preparaExecutaQuery(parametros, conexao, empresa, agencia)); + + parametros.put("RELATORIOLIST", lsDadosRelatorio); + setLsDadosRelatorio(lsDadosRelatorio); + + } catch (Exception e) { + log.error("Erro ao executar relatório", e); + } + } + + /** + * @param parametros + * @param conexao + * @param agencia + * @param empresa + * @return + * @throws SQLException + */ + private ResultSet preparaExecutaQuery(Map parametros, Connection conexao, Empresa empresa, String agencia) throws SQLException { + String sql = getSql(); + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + ResultSet rset = null; + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + + if (parametros.get("DATA_INICIO") != null) { + Date dataInicio = (Date) parametros.get("DATA_INICIO"); + stmt.setString("DATA_INICIO", sdf.format(dataInicio)); + } + + if (parametros.get("DATA_FINAL") != null) { + Date dataFinal = (Date) parametros.get("DATA_FINAL"); + stmt.setString("DATA_FINAL", sdf.format(dataFinal)); + } + stmt.setInt("EMPRESA", empresa.getEmpresaId()); + stmt.setString("AGENCIA", agencia); + rset = stmt.executeQuery(); + return rset; + } + + }); + } + + /** + * @param lsDadosRelatorio + */ + protected void setLsDadosRelatorio(List lsDadosRelatorio) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + this.lsDadosRelatorio = lsDadosRelatorio; + } + + protected List preencheAgrupaRelatorioBean(ResultSet rset) throws SQLException { + lsDadosRelatorio = new ArrayList(); + Integer qtBilhetes=null; + while (rset.next()) { + RelatorioMensalDAERBean relatorioMensalDAER = new RelatorioMensalDAERBean(rset.getInt("corrida_id")); + qtBilhetes = rset.getInt("qtdbilhetes"); + if (!lsDadosRelatorio.contains(relatorioMensalDAER) && !qtBilhetes.equals(0)) { + String sentido = rset.getString("sentidoida").equals("0") ? "1" : "2"; + float manifbilhetes = rset.getFloat("manifbilhetes"); + BigDecimal comissaoDAER = BigDecimal.valueOf(manifbilhetes * (11.0f / 100.0f)); + float comissao = comissaoDAER.floatValue(); + BigDecimal taxaFiscal = BigDecimal.valueOf(comissao * (3.0f / 100.0f)); + + relatorioMensalDAER.setFecHorSalida(retornaHora(rset.getTimestamp("partida"),true)); + relatorioMensalDAER.setFecMinSalida(retornaHora(rset.getTimestamp("partida"),false)); + relatorioMensalDAER.setFecHorInicio(retornaHora(rset.getTimestamp("inicio"),true)); + relatorioMensalDAER.setFecMinInicio(retornaHora(rset.getTimestamp("inicio"),false)); + relatorioMensalDAER.setFecCorrida(rset.getDate("feccorrida")); + relatorioMensalDAER.setIndSentidoIda(sentido); + relatorioMensalDAER.setNumRuta(rset.getString("linha")); + relatorioMensalDAER.setModal(rset.getString("modal")); + relatorioMensalDAER.setCatVeiculo(rset.getString("catVeiculo")); + relatorioMensalDAER.setCodDER(rset.getInt("codemp")); + relatorioMensalDAER.setQtdServNormal(rset.getInt("normal")); + relatorioMensalDAER.setQtdServExtra(rset.getInt("extra")); + relatorioMensalDAER.setQtdBilhetes(rset.getInt("qtdbilhetes")); + relatorioMensalDAER.setManifBilhetes(rset.getBigDecimal("manifbilhetes")); + relatorioMensalDAER.setEncomendas(null); + relatorioMensalDAER.setComissaoPassagem(comissaoDAER); + relatorioMensalDAER.setTaxaFiscalizacao(taxaFiscal); + relatorioMensalDAER.setTaxaManutencao(rset.getBigDecimal("embarque")); + + lsDadosRelatorio.add(relatorioMensalDAER); + } + } + return lsDadosRelatorio; + + } + + protected String getSql() { + StringBuilder sql = new StringBuilder(); + sql.append("SELECT "); + sql.append("( case when ct.numsecuencia = 1 then null "); + sql.append(" else (SELECT cot.fechorsalida FROM corrida cot "); + sql.append(" INNER JOIN corrida_tramo ctt ON ( cot.corrida_id = ctt.corrida_id AND cot.feccorrida = ctt.feccorrida AND ctt.activo = 1 ) "); + sql.append(" where cot.feccorrida = co.feccorrida and cot.corrida_id = co.corrida_id and ctt.numsecuencia = 1) END ) AS inicio, "); + sql.append(" ct.fechorsalida AS partida, "); + sql.append(" co.feccorrida, "); + sql.append(" co.corrida_id, "); + sql.append(" ct.numsecuencia, "); + sql.append(" rut.indsentidoida AS sentidoida, "); + sql.append(" rut.numruta AS linha, "); + sql.append(" cs.claseservicio_id AS modal, "); + sql.append(" ' ' as catVeiculo, "); + sql.append(" e.codder AS codemp, "); + sql.append(" ( SELECT COUNT(cn.corrida_id) FROM corrida cn WHERE cn.corrida_id = co.corrida_id AND cn.tiposervicio_id = 1 "); + sql.append(" AND cn.feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY')) as normal, "); + sql.append(" ( SELECT COUNT(ce.corrida_id) FROM corrida ce WHERE ce.corrida_id = co.corrida_id AND ce.tiposervicio_id = 2 "); + sql.append(" AND ce.feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY')) as extra, "); + sql.append(" ( SELECT COUNT(caja_id) FROM caja WHERE corrida_id = co.corrida_id AND ruta_id = co.ruta_id "); + sql.append(" AND feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY')) AS qtdbilhetes, "); + sql.append(" ( SELECT SUM(caja.preciobase+caja.importeseguro)FROM caja WHERE corrida_id = co.corrida_id AND ruta_id = co.ruta_id "); + sql.append(" AND feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY')) AS manifbilhetes, "); + sql.append(" ( SELECT SUM(caja.importetaxaembarque)FROM caja WHERE corrida_id = co.corrida_id AND ruta_id = co.ruta_id "); + sql.append(" AND feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY')) AS embarque, "); + sql.append(" ' ' as encomendas "); + sql.append("FROM corrida co"); + sql.append(" INNER JOIN empresa e ON ( e.empresa_id = co.empresacorrida_id) "); + sql.append(" INNER JOIN tipo_servicio ts ON ( ts.tiposervicio_id = co.tiposervicio_id) "); + sql.append(" INNER JOIN corrida_tramo ct ON ( co.corrida_id = ct.corrida_id AND co.feccorrida = ct.feccorrida AND ct.activo = 1 ) "); + sql.append(" INNER JOIN ruta rut ON ( rut.ruta_id = co.ruta_id AND rut.activo = 1 ) "); + sql.append(" INNER JOIN ORGAO_CONCEDENTE oc ON (rut.ORGAOCONCEDENTE_ID = OC.ORGAOCONCEDENTE_ID) "); + sql.append(" INNER JOIN clase_servicio cs ON ( cs.claseservicio_id = co.claseservicio_id ) "); + sql.append(" LEFT OUTER JOIN punto_venta pv ON ( pv.PARADA_ID = ct.origen_id ) "); + sql.append("WHERE co.activo = 1 "); + sql.append(" AND cs.descclase in ('CONVENCIONAL', 'EXECUTIVO', 'SEMI-DIRETO') "); + sql.append(" AND oc.descorgao like '%ANTT%' "); + sql.append(" AND co.empresacorrida_id = :EMPRESA "); + sql.append(" AND pv.puntoventa_Id = :AGENCIA "); + sql.append(" AND co.feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY') "); + sql.append("ORDER BY "); + sql.append(" co.corrida_id, "); + sql.append(" rut.numruta, "); + sql.append(" ct.fechorsalida,"); + sql.append(" ct.numsecuencia "); + + return sql.toString(); + } + + public String retornaHora(Date horaCompleta, boolean ishora) { + String horaMin = null; + if(horaCompleta == null) { + return horaMin; + } else if (ishora) { + SimpleDateFormat simpleTimeFormat = new SimpleDateFormat("HH"); + horaMin = simpleTimeFormat.format(horaCompleta); + return horaMin; + } else { + SimpleDateFormat simpleTimeFormat = new SimpleDateFormat("mm"); + horaMin = simpleTimeFormat.format(horaCompleta); + return horaMin; + } + + } + + @Override + protected void processaParametros() throws Exception { + + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMensalDAER_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMensalDAER_pt_BR.properties new file mode 100644 index 000000000..636d9be3e --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMensalDAER_pt_BR.properties @@ -0,0 +1,35 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. +msg.a=à + +#Labels header +header.titulo.relatorio=BOLETIM ESTATÍSTICO MENSAL DE ESTAÇÕES RODIVIÁRIAS +header.mes=M-S +header.ano=ANO +header.tr=TR +header.tl=TL +header.nl=NL +header.estacao=NUM.ESTAC. +header.filtro.rodoviaria= Rodoviária de: + +#Labels detail + +detail.horarioInicial=HORARIO INICIAL +detail.hora=HH +detail.min=MM +detail.horarioPartida=HORARIO PARTIDA +detail.sentido=SENTIDO +detail.numeroLinha=NUMERO DA LINHA +detail.modal=MODAL +detail.empresa=NUM DA EMPRESA +detail.categoria=CAT VEIC +detail.viagens=NUM DE VIAGENS +detail.viagensNormais=NORM +detail.viagensExtras=EXTRA +detail.qtdViagens=QTDE PASS VENDIDAS +detail.valorManifest=VALOR MANIFESTADO R$ +detail.passagens=PASSAGENS +detail.encom=ENCOMENDAS +detail.comissoes=COMISSOES +detail.taxa=TAXA MANUTENÇÃO +detail.taxaF=TAXA FISCALIZAÇÃO diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jasper new file mode 100644 index 000000000..450b6c1eb Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jrxml new file mode 100644 index 000000000..3e9208776 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMensalDAER.jrxml @@ -0,0 +1,672 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioMensalDAERBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioMensalDAERBean.java new file mode 100644 index 000000000..f85291879 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioMensalDAERBean.java @@ -0,0 +1,226 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +import java.math.BigDecimal; +import java.util.Date; + +public class RelatorioMensalDAERBean { + private Integer corridaId; + private String fecHorSalida; + private String fecMinSalida; + private String fecHorInicio; + private String fecMinInicio; + private String empresaId; + private Date fecCorrida; + private String indSentidoIda; + private String numRuta; + private String modal; + private String catVeiculo; + private Integer codDER; + private Integer qtdServNormal; + private Integer qtdServExtra; + private Integer qtdBilhetes; + private BigDecimal manifBilhetes; + private Integer encomendas; + private BigDecimal comissaoPassagem; + private BigDecimal comissaoEncomenda; + private BigDecimal taxaFiscalizacao; + private BigDecimal taxaManutencao; + + public String getEmpresaId() { + return empresaId; + } + + public void setEmpresaId(String empresaId) { + this.empresaId = empresaId; + } + + public Integer getCorridaId() { + return corridaId; + } + + public RelatorioMensalDAERBean(Integer corridaId) { + this.corridaId = corridaId; + } + + public void setCorridaId(Integer corridaId) { + this.corridaId = corridaId; + } + + public String getFecHorSalida() { + return fecHorSalida; + } + + public void setFecHorSalida(String fecHorSalida) { + this.fecHorSalida = fecHorSalida; + } + + public String getFecHorInicio() { + return fecHorInicio; + } + + public void setFecHorInicio(String fecHorInicio) { + this.fecHorInicio = fecHorInicio; + } + + public String getFecMinSalida() { + return fecMinSalida; + } + + public void setFecMinSalida(String fecMinSalida) { + this.fecMinSalida = fecMinSalida; + } + + public String getFecMinInicio() { + return fecMinInicio; + } + + public void setFecMinInicio(String fecMinInicio) { + this.fecMinInicio = fecMinInicio; + } + + public Date getFecCorrida() { + return fecCorrida; + } + + public void setFecCorrida(Date fecCorrida) { + this.fecCorrida = fecCorrida; + } + + public String getIndSentidoIda() { + return indSentidoIda; + } + + public void setIndSentidoIda(String indRentidoIda) { + this.indSentidoIda = indRentidoIda; + } + + public String getNumRuta() { + return numRuta; + } + + public void setNumRuta(String numRuta) { + this.numRuta = numRuta; + } + + public String getModal() { + return modal; + } + + public void setModal(String modal) { + this.modal = modal; + } + + public String getCatVeiculo() { + return catVeiculo; + } + + public void setCatVeiculo(String catVeiculo) { + this.catVeiculo = catVeiculo; + } + + public Integer getCodDER() { + return codDER; + } + + public void setCodDER(Integer codDER) { + this.codDER = codDER; + } + + public Integer getQtdServNormal() { + return qtdServNormal; + } + + public void setQtdServNormal(Integer qtdServNormal) { + this.qtdServNormal = qtdServNormal; + } + + public Integer getQtdServExtra() { + return qtdServExtra; + } + + public void setQtdServExtra(Integer qtdServExtra) { + this.qtdServExtra = qtdServExtra; + } + + public Integer getQtdBilhetes() { + return qtdBilhetes; + } + + public void setQtdBilhetes(Integer qtdBilhetes) { + this.qtdBilhetes = qtdBilhetes; + } + + public BigDecimal getManifBilhetes() { + return manifBilhetes; + } + + public void setManifBilhetes(BigDecimal manifBilhetes) { + this.manifBilhetes = manifBilhetes; + } + + public Integer getEncomendas() { + return encomendas; + } + + public void setEncomendas(Integer encomendas) { + this.encomendas = encomendas; + } + + public BigDecimal getTaxaFiscalizacao() { + return taxaFiscalizacao; + } + + public void setTaxaFiscalizacao(BigDecimal taxaFiscalizacao) { + this.taxaFiscalizacao = taxaFiscalizacao; + } + + public BigDecimal getTaxaManutencao() { + return taxaManutencao; + } + + public void setTaxaManutencao(BigDecimal taxaManutencao) { + this.taxaManutencao = taxaManutencao; + } + + public BigDecimal getComissaoPassagem() { + return comissaoPassagem; + } + + public void setComissaoPassagem(BigDecimal comissaoPassagem) { + this.comissaoPassagem = comissaoPassagem; + } + + public BigDecimal getComissaoEncomenda() { + return comissaoEncomenda; + } + + public void setComissaoEcomenda(BigDecimal comissaoEncomenda) { + this.comissaoEncomenda = comissaoEncomenda; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((corridaId == null) ? 0 : corridaId.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + RelatorioMensalDAERBean other = (RelatorioMensalDAERBean) obj; + if (corridaId == null) { + if (other.corridaId != null) + return false; + } else if (!corridaId.equals(other.corridaId)) + return false; + return true; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMensalDAERController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMensalDAERController.java new file mode 100644 index 000000000..22cc1ca92 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMensalDAERController.java @@ -0,0 +1,141 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.util.resource.Labels; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Combobox; +import org.zkoss.zul.Textbox; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.UsuarioUbicacion; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioMensalDAER; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("relatorioMensalDAERController") +@Scope("prototype") +public class RelatorioMensalDAERController extends MyGenericForwardComposer { + private static final long serialVersionUID = 1L; + private static Logger log = Logger.getLogger(RelatorioMensalDAERController.class); + + @Autowired + private DataSource dataSourceRead; + + @Autowired + private EmpresaService empresaService; + + //private Datebox datCompetencia; + private Textbox txtCompetencia; + private List lsEmpresas; + private Combobox cmbEmpresa; + private List lsAgencias; + private String agenciasUsuario; + + + + private void executarRelatorio(boolean enviarEmail) throws Exception { + try { + Map parametros = new HashMap(); + + // Filtro Data Inicial + String competencia = txtCompetencia.getValue().toString(); + Date periodo = DateUtil.getDateFromString("01/"+competencia, "dd/MM/yyyy"); + Date dateInicio = DateUtil.inicioFecha(periodo); + parametros.put("DATA_INICIO", dateInicio); + + // Filtro Data Final + competencia = txtCompetencia.getValue().toString(); + parametros.put("MES", competencia.substring(0,2)); + parametros.put("ANO", competencia.substring(3)); + + Date dateFim = DateUtil.getDataFinalCompetencia(competencia); + parametros.put("DATA_FINAL", dateFim); + + // Filtro Empresa + Empresa empresa = null; + if (cmbEmpresa.getSelectedItem() != null) { + empresa = (Empresa) cmbEmpresa.getSelectedItem().getValue(); + } + parametros.put("EMPRESA", empresa); + parametros.put("NOMBEMPRESA", empresa != null ? empresa.getNombempresa() : "TODOS"); + + // Filtro Usuário Id + parametros.put("USUARIO_ID", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString()); + + // Filtro nome usuário + parametros.put("NOME_USUARIO", UsuarioLogado.getUsuarioLogado().getNombusuario().toString()); + parametros.put("AGENCIA", agenciasUsuario); + parametros.put("RODOVIARIA", UsuarioLogado.getUsuarioLogado().getUsuarioUbicacionList().get(0).getPuntoVenta().getNombpuntoventa().toString()); + parametros.put("ESTACION", ""); + + // Instancia o relatório + Relatorio relatorio = new RelatorioMensalDAER(parametros, dataSourceRead.getConnection()); + Map args = new HashMap(); + args.put("relatorio", relatorio); + + // Abre a janela do relatório + openWindow("/component/reportView.zul", + Labels.getLabel("relatorioMensalDAERController.window.title"), args, MODAL); + } catch (Exception e) { + log.error("Erro ao executar relatório", e); + } + + } + + public void onClick$btnEnviarEmailMensalDAER(Event ev) throws Exception { + executarRelatorio(true); + } + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + executarRelatorio(false); + } + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + lsEmpresas = UsuarioLogado.getUsuarioLogado().getEmpresa(); + lsAgencias = UsuarioLogado.getUsuarioLogado().getUsuarioUbicacionActivoList(); + StringBuilder agencias = new StringBuilder(); + + for (int i =0; i< lsAgencias.size() ; i++) { + agencias.append(lsAgencias.get(i).getPuntoVenta().getPuntoventaId().toString()); + if(lsAgencias.size() > 1 && i < lsAgencias.size() -1) { + agencias.append(", "); + } + } + this.agenciasUsuario = agencias.toString(); + } + + public List getLsEmpresas() { + return lsEmpresas; + } + + public void setLsEmpresa(List lsEmpresas) { + this.lsEmpresas = lsEmpresas; + } + + public List getLsAgencias() { + return lsAgencias; + } + + public void setLsAgencia(List lsAgencias) { + this.lsAgencias = lsAgencias; + } + + + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMensalDAER.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMensalDAER.java new file mode 100644 index 000000000..454632033 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMensalDAER.java @@ -0,0 +1,25 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuRelatorioMensalDAER extends DefaultItemMenuSistema { + + public ItemMenuRelatorioMensalDAER() { + super("indexController.mniRelatorioMensalDAER.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOMENSALDAER"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioMensalDAER.zul", + Labels.getLabel("relatorioMensalDAERController.window.title"), getArgs() ,desktop); + } + +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties index bf9f4a5d3..44890cb04 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties @@ -178,6 +178,7 @@ analitico.gerenciais.estatisticos.passageirosViajar=com.rjconsultores.ventabolet analitico.gerenciais.estatisticos.origemDestino=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioOrigemDestino analitico.gerenciais.estatisticos.relatorioCorridas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioCorridas analitico.gerenciais.estatisticos.gratuidades=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeANTT +analitico.gerenciais.estatisticos.mensalDAER=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioMensalDAER analitico.gerenciais.estatisticos.gratuidadeARTESP=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeARTESP analitico.gerenciais.estatisticos.gratuidadeAGER=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidadeAGER analitico.gerenciais.estatisticos.gratuidadesANTT=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioGratuidade diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 08ffa7316..8423252a5 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -526,6 +526,9 @@ editarGrupoRutaController.MSG.borrarOK = Grupo de linha excluido com sucesso. #Relatório IRK relatorioIRKController.window.title= Relatório Indice IRK +#Relatório Mensal DAER +relatorioMensalDAERController.window.title= Boletim Estatistico Mensal DAER + #Resumo de linhas relatorioResumoLinhasController.window.title = Relatório Resumo de Linhas relatorioResumoLinhasAnaliticoSumarizadoCompletoController.window.title = Relatório Resumo de Linhas Analítico Sumarizado Completo @@ -684,6 +687,19 @@ relatorioIndiceIRKController.rdTodos.label = Todos relatorioIndiceIRKController.lbHoraSaidaInicial.value = Hora Saída relatorioIndiceIRKController.lbHoraSaidaFinal.value = à +#Relatório Mensal DAER +relatorioMensalDAERController.window.title= Boletim Estatistico Mensal Rodoviarias DAER +relatorioMensalDAERController.lbCompetenciaLayout.label = (MM/YYYY) +relatorioMensalDAERController.lbCompetencia.label = Mes e Ano +relatorioMensalDAERController.lbEmpresa.value = Empresa +relatorioMensalDAERController.labelTipoPassagems.value=Tipos de Passagens +relatorioMensalDAERController.tipo.obrigatoria = Tipo de passagens é obrigatório +relatorioMensalDAERController.lbTipoPassgens.value = Tipos de Passagens +relatorioMensalDAERController.labelRemoveTipoPassagem.value = Remover tipo Passagem +relatorioMensalDAERController.labelAdicionaTipoPassagem.value = Adicionar tipo Passagem +relatorioMensalDAERController.lbRelatorio.value = Emitir Relatório +relatorioMensalDAERController.lbEnviarEmailDAER.label = E-mail Recibo + #Relatorio Trecho Vendido relatorioTrechoVendidoController.lbDataIni.value = Data Inicial relatorioTrechoVendidoController.lbDataFin.value = Data Final diff --git a/web/gui/relatorios/filtroRelatorioMensalDAER.zul b/web/gui/relatorios/filtroRelatorioMensalDAER.zul new file mode 100644 index 000000000..21f9a5fd2 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioMensalDAER.zul @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +