diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendaEmbarcada.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendaEmbarcada.java new file mode 100644 index 000000000..92015d51d --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendaEmbarcada.java @@ -0,0 +1,439 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; + +import com.rjconsultores.ventaboletos.constantes.Constantes.FiltroEnviadosSefaz; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioVendaEmbarcada extends Relatorio { + + private Date datInicial; + private Date datFinal; + private Integer estadoId; + private Integer empresaId; + private Integer puntoVendaId; + private String serie; + private String numBpe; + private Boolean bloqueado; + private FiltroEnviadosSefaz envioSefaz; + private FiltroEnviadosSefaz vendaEmbarcada; + private Boolean quebraSequencia; + private Boolean ultimoBpe; + + private static Logger log = Logger.getLogger(RelatorioVendaEmbarcada.class); + + public RelatorioVendaEmbarcada(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new ArrayDataSource(this) { + + @Override + public void initDados() throws Exception { + try { + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); + + Connection conexao = this.relatorio.getConexao(); + + Map parametros = this.relatorio.getParametros(); + + estadoId = (Integer)parametros.get("ESTADO_ID"); + empresaId = (Integer)parametros.get("EMPRESA_ID"); + puntoVendaId = (Integer)parametros.get("PUNTOVENTA_ID"); + serie = (String)parametros.get("SERIE"); + numBpe = (String)parametros.get("NUMBPE"); + bloqueado = (Boolean)parametros.get("BLOQUEADO"); + envioSefaz = (FiltroEnviadosSefaz)parametros.get("ENVIOSEFAZ"); + vendaEmbarcada = (FiltroEnviadosSefaz)parametros.get("VENDAEMBARCADA"); + quebraSequencia = (Boolean)parametros.get("QUEBRASEQ"); + ultimoBpe = (Boolean)parametros.get("ULTIMOBPE"); + + String sql = getSql(); + + Date dtInicio = sdf.parse(DateUtil.getStringDate((Date) parametros.get("DATA_INICIAL"), "dd/MM/yyyy") + " 00:00:00"); + Date dtFim = sdf.parse(DateUtil.getStringDate((Date) parametros.get("DATA_FINAL"), "dd/MM/yyyy") + " 23:59:59"); + + NamedParameterStatement ps = new NamedParameterStatement(conexao, sql.toString()); + ps.setDate("fecInicio", new java.sql.Date(dtInicio.getTime())); + ps.setDate("fecFinal", new java.sql.Date(dtFim.getTime())); + + if (estadoId != null){ + ps.setLong("estadoId", estadoId); + } + if (empresaId != null){ + ps.setLong("empresaId", empresaId); + } + if (puntoVendaId != null){ + ps.setLong("puntoventaId", puntoVendaId); + } + if (StringUtils.isNotBlank(serie)){ + ps.setString("serie", serie); + } + if (StringUtils.isNotBlank(numBpe)){ + ps.setString("bpe", numBpe); + } + if (bloqueado != null && bloqueado){ + ps.setInt("bloqueado", 1); + } + + ResultSet rset = ps.executeQuery(); + + Map dataResult = null; + Map aux = null; + while (rset.next()) { + if (ultimoBpe){ + if (dataResult == null){ + dataResult = extractRow(rset); + } else { + aux = extractRow(rset); + if (aux.get("cveestado").equals(dataResult.get("cveestado"))){ + if (aux.get("numserie_bpe").equals(dataResult.get("numserie_bpe"))){ + if (Integer.parseInt(aux.get("num_bpe").toString()) > Integer.parseInt(dataResult.get("num_bpe").toString())){ + dataResult = aux; + } + } else { + this.dados.add(dataResult); + dataResult = aux; + } + } else { + this.dados.add(dataResult); + dataResult = aux; + } + } + } else { + dataResult = extractRow(rset); + this.dados.add(dataResult); + } + } + } catch (Exception e){ + log.error("", e); + } + } + }); + } + + private Map extractRow(ResultSet rset) throws SQLException{ + Map dataResult = new HashMap(); + + + dataResult.put("nombempresa", rset.getString("nombempresa")); + dataResult.put("puntoventa_id", rset.getString("puntoventa_id")); + dataResult.put("nombpuntoventa", rset.getString("nombpuntoventa")); + dataResult.put("cveusuario", rset.getString("cveusuario")); + dataResult.put("nombusuario", rset.getString("nombusuario")); + dataResult.put("feccorte", rset.getString("feccorte")); + dataResult.put("numserie_bpe", rset.getString("numserie_bpe")); + dataResult.put("num_bpe", rset.getString("num_bpe")); + dataResult.put("cveestado", rset.getString("cveestado")); + dataResult.put("ruta_id", rset.getString("ruta_id")); + dataResult.put("numruta", rset.getString("numruta")); + dataResult.put("descruta", rset.getString("descruta")); + dataResult.put("origenId", rset.getString("origenId")); + dataResult.put("origen", rset.getString("origen")); + dataResult.put("destinoId", rset.getString("destinoId")); + dataResult.put("destino", rset.getString("destino")); + dataResult.put("fechorventa", rset.getString("fechorventa")); + dataResult.put("fechorviaje", rset.getString("fechorviaje")); + dataResult.put("corrida_id", rset.getString("corrida_id")); + dataResult.put("tarifa", rset.getDouble("tarifa")); + dataResult.put("seguro", rset.getDouble("seguro")); + dataResult.put("taxaembarque", rset.getDouble("taxaembarque")); + dataResult.put("importepedagio", rset.getDouble("importepedagio")); + dataResult.put("tpp", rset.getDouble("tpp")); + dataResult.put("total", rset.getDouble("total")); + + Integer codstat = rset.getInt("statussefaz"); + if (codstat == -1){ + dataResult.put("statussefaz", "Pendente"); + } else if (codstat == 100){ + dataResult.put("statussefaz", "Enviado"); + } else if (codstat == 150){ + dataResult.put("statussefaz", "Enviado em contingência"); + } + dataResult.put("chbpe", rset.getString("chbpe")); + dataResult.put("nprot", rset.getString("nprot")); + + return dataResult; + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql() { + + StringBuilder sql = new StringBuilder(); + if (quebraSequencia){ + sql.append("select * from ( "); + } + sql.append("select "); + sql.append(" e.nombempresa, "); + sql.append(" p.puntoventa_id, "); + sql.append(" p.nombpuntoventa, "); + sql.append(" u.cveusuario, "); + sql.append(" u.nombusuario, "); + sql.append(" c.feccorte, "); + sql.append(" b.numserie_bpe, "); + sql.append(" b.num_bpe as num_bpe, "); + sql.append(" est.cveestado, "); + sql.append(" b.ruta_id, "); + sql.append(" r.numruta, "); + sql.append(" r.descruta, "); + sql.append(" ori.parada_id origenId, "); + sql.append(" ori.descparada origen, "); + sql.append(" dest.parada_id destinoId, "); + sql.append(" dest.descparada destino, "); + sql.append(" b.fechorventa, "); + sql.append(" b.fechorviaje, "); + sql.append(" b.corrida_id, "); + sql.append(" b.preciopagado as tarifa, "); + sql.append(" b.importeseguro as seguro, "); + sql.append(" b.importetaxaembarque as taxaembarque, "); + sql.append(" b.importepedagio, "); + sql.append(" b.importetpp as tpp, "); + sql.append(" b.preciopagado + nvl(b.importeoutros,0) + nvl(b.importepedagio,0) + nvl(b.importeseguro,0) + nvl(b.importetaxaembarque,0) + nvl(b.importetpp,0) as total, "); + sql.append(" bp.codstat as statussefaz, "); + sql.append(" bp.chbpe, "); + sql.append(" bp.nprot "); + sql.append("from "); + sql.append(" boleto b "); + sql.append(" inner join marca m on m.marca_id = b.marca_id "); + sql.append(" inner join empresa e on e.empresa_id = m.empresa_id "); + sql.append(" inner join punto_venta p on p.puntoventa_id = b.puntoventa_id "); + sql.append(" inner join usuario u on u.usuario_id = b.usuario_id "); + sql.append(" inner join caja c on c.transacao_id = b.boleto_id "); + sql.append(" inner join bpe bp on bp.boleto_id = b.boleto_id "); + sql.append(" left join colonia col on col.colonia_id = p.colonia_id "); + sql.append(" left join ciudad cid on cid.ciudad_id = col.ciudad_id "); + sql.append(" left join estado est on cid.estado_id = est.estado_id "); + sql.append(" inner join ruta r on r.ruta_id = b.ruta_id "); + sql.append(" inner join parada ori on ori.parada_id = b.origen_id "); + sql.append(" inner join parada dest on dest.parada_id = b.destino_id "); + sql.append(" left join dispositivo_embarcada disp on disp.imei = b.IMEI_DISPOSITIVO_EMBARCADA "); + sql.append("where "); + sql.append(" b.fechorventa between :fecInicio and :fecFinal "); + sql.append(" and b.motivocancelacion_id is null "); + sql.append(" and bp.TIPOSUBSTITUICAO is null "); + if (empresaId != null){ + sql.append(" and e.empresa_id = :empresaId "); + } + if (puntoVendaId != null){ + sql.append(" and p.puntoventa_id = :puntoventaId "); + } + if (estadoId != null){ + sql.append(" and est.estado_id = :estadoId "); + } + if (StringUtils.isNotBlank(serie)){ + sql.append(" and b.numserie_bpe = :serie "); + } + if (StringUtils.isNotBlank(numBpe)){ + sql.append(" and b.num_bpe = :bpe "); + } + if (bloqueado != null && bloqueado){ + sql.append(" and disp.ind_disp_bloqueado = :bloqueado "); + } else { + sql.append(" and (disp.ind_disp_bloqueado = 0 or disp.ind_disp_bloqueado is null) "); + } + if (envioSefaz == FiltroEnviadosSefaz.SIM) { + sql.append(" and bp.codstat in (100, 150) "); + } else if (envioSefaz == FiltroEnviadosSefaz.NAO) { + sql.append(" and bp.codstat = -1 "); + } else { + sql.append(" and bp.codstat in (-1, 100,150) "); + } + if (vendaEmbarcada == FiltroEnviadosSefaz.SIM) { + sql.append(" and b.IMEI_DISPOSITIVO_EMBARCADA is not null "); + } else if (envioSefaz == FiltroEnviadosSefaz.NAO) { + sql.append(" and b.IMEI_DISPOSITIVO_EMBARCADA is null "); + } + if (quebraSequencia){ + sql.append("union "); + sql.append("select "); + sql.append(" null as nombempresa, "); + sql.append(" null as puntoventa_id, "); + sql.append(" null as nombpuntoventa, "); + sql.append(" null as cveusuario, "); + sql.append(" null as nombusuario, "); + sql.append(" null as feccorte, "); + sql.append(" bd.serie as numserie_bpe, "); + sql.append(" bd.numero as num_bpe, "); + sql.append(" bd.cveestado as cveestado, "); + sql.append(" null as ruta_id, "); + sql.append(" null as numruta, "); + sql.append(" null as descruta, "); + sql.append(" null as origenId, "); + sql.append(" null as origen, "); + sql.append(" null as destinoId, "); + sql.append(" null as destino, "); + sql.append(" null as fechorventa, "); + sql.append(" null as fechorviaje, "); + sql.append(" null as corrida_id, "); + sql.append(" null as tarifa, "); + sql.append(" null as seguro, "); + sql.append(" null as taxaembarque, "); + sql.append(" null as importepedagio, "); + sql.append(" null as tpp, "); + sql.append(" null as total, "); + sql.append(" null as statussefaz, "); + sql.append(" null as chbpe, "); + sql.append(" null as nprot "); + sql.append("from "); + sql.append(" boleto b "); + sql.append(" inner join marca m on m.marca_id = b.marca_id "); + sql.append(" inner join empresa e on e.empresa_id = m.empresa_id "); + sql.append(" inner join punto_venta p on p.puntoventa_id = b.puntoventa_id "); + sql.append(" inner join usuario u on u.usuario_id = b.usuario_id "); + sql.append(" inner join caja c on c.transacao_id = b.boleto_id "); + sql.append(" inner join bpe bp on bp.boleto_id = b.boleto_id "); + sql.append(" left join colonia col on col.colonia_id = p.colonia_id "); + sql.append(" left join ciudad cid on cid.ciudad_id = col.ciudad_id "); + sql.append(" left join estado est on cid.estado_id = est.estado_id "); + sql.append(" inner join ruta r on r.ruta_id = b.ruta_id "); + sql.append(" inner join parada ori on ori.parada_id = b.origen_id "); + sql.append(" inner join parada dest on dest.parada_id = b.destino_id "); + sql.append(" left join dispositivo_embarcada disp on disp.imei = b.IMEI_DISPOSITIVO_EMBARCADA "); + sql.append(" inner join bpe_ctrl_disponibilidade bd on bd.serie = b.numserie_bpe "); + sql.append("where "); + sql.append(" b.fechorventa between :fecInicio and :fecFinal "); + sql.append(" and b.motivocancelacion_id is null "); + sql.append(" and bp.TIPOSUBSTITUICAO is null "); + if (empresaId != null){ + sql.append(" and e.empresa_id = :empresaId "); + } + if (puntoVendaId != null){ + sql.append(" and p.puntoventa_id = :puntoventaId "); + } + if (estadoId != null){ + sql.append(" and est.estado_id = :estadoId "); + } + if (StringUtils.isNotBlank(serie)){ + sql.append(" and b.numserie_bpe = :serie "); + } + if (StringUtils.isNotBlank(numBpe)){ + sql.append(" and b.num_bpe = :bpe "); + } + if (bloqueado != null && bloqueado){ + sql.append(" and disp.ind_disp_bloqueado = :bloqueado "); + } else { + sql.append(" and (disp.ind_disp_bloqueado = 0 or disp.ind_disp_bloqueado is null) "); + } + if (envioSefaz == FiltroEnviadosSefaz.SIM) { + sql.append(" and bp.codstat in (100, 150) "); + } else if (envioSefaz == FiltroEnviadosSefaz.NAO) { + sql.append(" and bp.codstat = -1 "); + } else { + sql.append(" and bp.codstat in (-1, 100,150) "); + } + if (vendaEmbarcada == FiltroEnviadosSefaz.SIM) { + sql.append(" and b.IMEI_DISPOSITIVO_EMBARCADA is not null "); + } else if (envioSefaz == FiltroEnviadosSefaz.NAO) { + sql.append(" and b.IMEI_DISPOSITIVO_EMBARCADA is null "); + } + sql.append(") "); + } + sql.append("order by "); + sql.append(" cveestado, "); + sql.append(" to_number(numserie_bpe), "); + sql.append(" to_number(num_bpe) "); + return sql.toString(); + } + + public Date getDatInicial() { + return datInicial; + } + + public void setDatInicial(Date datInicial) { + this.datInicial = datInicial; + } + + public Date getDatFinal() { + return datFinal; + } + + public void setDatFinal(Date datFinal) { + this.datFinal = datFinal; + } + + public Integer getEstadoId() { + return estadoId; + } + + public void setEstadoId(Integer estadoId) { + this.estadoId = estadoId; + } + + public Integer getEmpresaId() { + return empresaId; + } + + public void setEmpresaId(Integer empresaId) { + this.empresaId = empresaId; + } + + public Integer getPuntoVendaId() { + return puntoVendaId; + } + + public void setPuntoVendaId(Integer puntoVendaId) { + this.puntoVendaId = puntoVendaId; + } + + public String getSerie() { + return serie; + } + + public void setSerie(String serie) { + this.serie = serie; + } + + public String getNumBpe() { + return numBpe; + } + + public void setNumBpe(String numBpe) { + this.numBpe = numBpe; + } + + public Boolean getBloqueado() { + return bloqueado; + } + + public void setBloqueado(Boolean bloqueado) { + this.bloqueado = bloqueado; + } + + public FiltroEnviadosSefaz getEnvioSefaz() { + return envioSefaz; + } + + public void setEnvioSefaz(FiltroEnviadosSefaz envioSefaz) { + this.envioSefaz = envioSefaz; + } + + public Boolean getQuebraSequencia() { + return quebraSequencia; + } + + public void setQuebraSequencia(Boolean quebraSequencia) { + this.quebraSequencia = quebraSequencia; + } + + public Boolean getUltimoBpe() { + return ultimoBpe; + } + + public void setUltimoBpe(Boolean ultimoBpe) { + this.ultimoBpe = ultimoBpe; + } +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendaEmbarcada_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendaEmbarcada_es.properties new file mode 100644 index 000000000..01f6ecc2b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendaEmbarcada_es.properties @@ -0,0 +1,13 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + + +#Labels cabeçalho +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendaEmbarcada_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendaEmbarcada_pt_BR.properties new file mode 100644 index 000000000..01f6ecc2b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendaEmbarcada_pt_BR.properties @@ -0,0 +1,13 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + + +#Labels cabeçalho +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendaEmbarcada.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendaEmbarcada.jasper new file mode 100644 index 000000000..453bf0b12 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendaEmbarcada.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendaEmbarcada.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendaEmbarcada.jrxml new file mode 100644 index 000000000..e81a8fc6b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendaEmbarcada.jrxml @@ -0,0 +1,668 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendaEmbarcadaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendaEmbarcadaController.java new file mode 100644 index 000000000..4ea863a07 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendaEmbarcadaController.java @@ -0,0 +1,311 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.text.SimpleDateFormat; +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.Checkbox; +import org.zkoss.zul.Comboitem; +import org.zkoss.zul.Datebox; +import org.zkoss.zul.Radio; + +import com.rjconsultores.ventaboletos.constantes.Constantes.FiltroEnviadosSefaz; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Estado; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioVendaEmbarcada; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EstadoService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEmpresa; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox; + +@Controller("relatorioVendaEmbarcadaController") +@Scope("prototype") +public class RelatorioVendaEmbarcadaController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + private static Logger log = Logger.getLogger(RelatorioVendaEmbarcadaController.class); + + @Autowired + private DataSource dataSourceRead; + @Autowired + private EstadoService estadoService; + + private MyComboboxEmpresa cmbEmpresa; + private MyComboboxPuntoVenta cmbPuntoVenta; + private Datebox datInicial; + private Datebox datFinal; + private Checkbox chkBloqueado; + private Radio radEnvioSim; + private Radio radEnvioNao; + private Radio radEnvioAmbos; + private Radio radVendaEmbarcadaSim; + private Radio radVendaEmbarcadaNao; + private Radio radVendaEmbarcadaAmbos; + private MyComboboxEstandar cmbEstado; + private Checkbox chkQuebraSequencia; + private MyTextbox txtSerie; + private Checkbox chkUltimoBpe; + private MyTextbox txtNumBpe; + + private Integer estadoId; + private Integer empresaId; + private Integer puntoVendaId; + private String serie; + private String numBpe; + private Boolean bloqueado; + private FiltroEnviadosSefaz envioSefaz; + private Boolean quebraSequencia; + private Boolean ultimoBpe; + + private List lsEstados; + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsEstados = estadoService.obtenerTodos(); + super.doAfterCompose(comp); + } + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + executarRelatorio(); + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + private void executarRelatorio() throws Exception { + + //Map parametros = new HashMap(); + StringBuilder filtro = new StringBuilder(); + + Map parametros = new HashMap(); + parametros.put("TITULO", Labels.getLabel("relatorioVendaEmbarcadaController.window.title")); + parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioVendaEmbarcadaController.window.title")); + parametros.put("USUARIO_ID", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString()); + parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getNombusuario()); + parametros.put("DATA_INICIAL", datInicial.getValue()); + parametros.put("DATA_FINAL", datFinal.getValue()); + + Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); + if (itemEmpresa != null) { + Empresa empresa = (Empresa) itemEmpresa.getValue(); + empresaId = empresa.getEmpresaId(); + parametros.put("EMPRESA", empresa.getNombempresa()); + parametros.put("EMPRESA_ID", empresa.getEmpresaId()); + } + + Comboitem itemPuntoVenta = cmbPuntoVenta.getSelectedItem(); + if (itemPuntoVenta != null) { + PuntoVenta ptovta = (PuntoVenta) itemPuntoVenta.getValue(); + puntoVendaId = ptovta.getPuntoventaId(); + parametros.put("PUNTOVENTA", ptovta.getNombpuntoventa()); + parametros.put("PUNTOVENTA_ID", ptovta.getPuntoventaId()); + } + + Comboitem itemEstado = cmbEstado.getSelectedItem(); + if (itemEstado != null) { + Estado estado = (Estado) itemEstado.getValue(); + estadoId = estado.getEstadoId(); + parametros.put("ESTADO", estado.getNombestado()); + parametros.put("ESTADO_ID", estado.getEstadoId()); + } + + if (radEnvioAmbos.isChecked()){ + parametros.put("ENVIOSEFAZ", FiltroEnviadosSefaz.TODOS); + } else if (radEnvioNao.isChecked()){ + parametros.put("ENVIOSEFAZ", FiltroEnviadosSefaz.NAO); + } else { + parametros.put("ENVIOSEFAZ", FiltroEnviadosSefaz.SIM); + } + + if (radVendaEmbarcadaAmbos.isChecked()){ + parametros.put("VENDAEMBARCADA", FiltroEnviadosSefaz.TODOS); + } else if (radVendaEmbarcadaNao.isChecked()){ + parametros.put("VENDAEMBARCADA", FiltroEnviadosSefaz.NAO); + } else { + parametros.put("VENDAEMBARCADA", FiltroEnviadosSefaz.SIM); + } + + parametros.put("QUEBRASEQ", chkQuebraSequencia.isChecked()); + + SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy"); + filtro.append(" DATA: " + df.format(new Date())); + parametros.put("DATA", new Date()); + + serie = txtSerie.getText(); + parametros.put("SERIE", serie); + numBpe = txtNumBpe.getText(); + parametros.put("NUMBPE", numBpe); + bloqueado = chkBloqueado.isChecked(); + parametros.put("BLOQUEADO", bloqueado); + quebraSequencia = chkQuebraSequencia.isChecked(); + ultimoBpe = chkUltimoBpe.isChecked(); + parametros.put("ULTIMOBPE", ultimoBpe); + + Relatorio relatorio = new RelatorioVendaEmbarcada(parametros, dataSourceRead.getConnection()); + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("relatorioVendaEmbarcadaController.window.title"), args, MODAL); + } + + public EstadoService getEstadoService() { + return estadoService; + } + + public void setEstadoService(EstadoService estadoService) { + this.estadoService = estadoService; + } + + public MyComboboxEmpresa getCmbEmpresa() { + return cmbEmpresa; + } + + public void setCmbEmpresa(MyComboboxEmpresa cmbEmpresa) { + this.cmbEmpresa = cmbEmpresa; + } + + public MyComboboxPuntoVenta getCmbPuntoVenta() { + return cmbPuntoVenta; + } + + public void setCmbPuntoVenta(MyComboboxPuntoVenta cmbPuntoVenta) { + this.cmbPuntoVenta = cmbPuntoVenta; + } + + public Datebox getDatInicial() { + return datInicial; + } + + public void setDatInicial(Datebox datInicial) { + this.datInicial = datInicial; + } + + public Datebox getDatFinal() { + return datFinal; + } + + public void setDatFinal(Datebox datFinal) { + this.datFinal = datFinal; + } + + public List getLsEstados() { + return lsEstados; + } + + public void setLsEstados(List lsEstados) { + this.lsEstados = lsEstados; + } + + public Checkbox getChkBloqueado() { + return chkBloqueado; + } + + public void setChkBloqueado(Checkbox chkBloqueado) { + this.chkBloqueado = chkBloqueado; + } + + public Radio getRadEnvioSim() { + return radEnvioSim; + } + + public void setRadEnvioSim(Radio radEnvioSim) { + this.radEnvioSim = radEnvioSim; + } + + public Radio getRadEnvioNao() { + return radEnvioNao; + } + + public void setRadEnvioNao(Radio radEnvioNao) { + this.radEnvioNao = radEnvioNao; + } + + public Radio getRadEnvioAmbos() { + return radEnvioAmbos; + } + + public void setRadEnvioAmbos(Radio radEnvioAmbos) { + this.radEnvioAmbos = radEnvioAmbos; + } + + public MyComboboxEstandar getCmbEstado() { + return cmbEstado; + } + + public void setCmbEstado(MyComboboxEstandar cmbEstado) { + this.cmbEstado = cmbEstado; + } + + public Checkbox getChkQuebraSequencia() { + return chkQuebraSequencia; + } + + public void setChkQuebraSequencia(Checkbox chkQuebraSequencia) { + this.chkQuebraSequencia = chkQuebraSequencia; + } + + public MyTextbox getTxtSerie() { + return txtSerie; + } + + public void setTxtSerie(MyTextbox txtSerie) { + this.txtSerie = txtSerie; + } + + public Checkbox getChkUltimoBpe() { + return chkUltimoBpe; + } + + public void setChkUltimoBpe(Checkbox chkUltimoBpe) { + this.chkUltimoBpe = chkUltimoBpe; + } + + public MyTextbox getTxtNumBpe() { + return txtNumBpe; + } + + public void setTxtNumBpe(MyTextbox txtNumBpe) { + this.txtNumBpe = txtNumBpe; + } + + public Radio getRadVendaEmbarcadaSim() { + return radVendaEmbarcadaSim; + } + + public void setRadVendaEmbarcadaSim(Radio radVendaEmbarcadaSim) { + this.radVendaEmbarcadaSim = radVendaEmbarcadaSim; + } + + public Radio getRadVendaEmbarcadaNao() { + return radVendaEmbarcadaNao; + } + + public void setRadVendaEmbarcadaNao(Radio radVendaEmbarcadaNao) { + this.radVendaEmbarcadaNao = radVendaEmbarcadaNao; + } + + public Radio getRadVendaEmbarcadaAmbos() { + return radVendaEmbarcadaAmbos; + } + + public void setRadVendaEmbarcadaAmbos(Radio radVendaEmbarcadaAmbos) { + this.radVendaEmbarcadaAmbos = radVendaEmbarcadaAmbos; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendaEmbarcada.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendaEmbarcada.java new file mode 100644 index 000000000..c30b058a5 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendaEmbarcada.java @@ -0,0 +1,26 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.constantes.ConstantesFuncionSistema; +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuRelatorioVendaEmbarcada extends DefaultItemMenuSistema { + + public ItemMenuRelatorioVendaEmbarcada() { + super("indexController.mniRelatorioVendaEmbarcada.label"); + } + + @Override + public String getClaveMenu() { + return ConstantesFuncionSistema.CLAVE_RELATORIO_VENDA_EMBARCADA; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioVendaEmbarcada.zul", + Labels.getLabel("relatorioVendaEmbarcadaController.window.title"), getArgs(), desktop); + + } +} 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 56d94e10d..a008e322b 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 @@ -169,6 +169,7 @@ analitico.gerenciais.estatisticos.gratuidadesIdosoDeficiente=com.rjconsultores.v analitico.gerenciais.estatisticos.relatorioMovimentoPorOrgaoConcedente=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioMovimentoPorOrgaoConcedente analitico.gerenciais.estatisticos.checkin=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioCheckin analitico.gerenciais.estatisticos.relatorioBaixasVendasInternet=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioBaixasVendasInternet +analitico.gerenciais.estatisticos.relatorioVendaEmbarcada=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioVendaEmbarcada analitico.gerenciais.financeiro=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.financeiro.SubMenuRelatorioFinanceiro analitico.gerenciais.financeiro.receitaDiariaAgencia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioReceitaDiariaAgencia analitico.gerenciais.financeiro.taxas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioTaxasLinha diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 90ba63de5..b1e77720b 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -322,7 +322,7 @@ indexController.mniRelatorioVendasConexao.label = Reporte Ventas Conexion indexController.mniRelatorioVendasRequisicao.label = Relatório Vendas Requisição(Ordem de Serviço) indexController.mniRelatorioHistoricoCompras.label = Reporte Histórico de Compras indexController.mniRelatorioPosicaoVendaBilheteIdoso.label = Reporte Posición de Venta del Billete Anciano - +indexController.mniRelatorioVendaEmbarcada.label = Venda Embarcada indexController.mniRelatorioRemessaCNAB.label = Remessa de Lote (CNAB 400) indexController.mnSubMenuImpressaoFiscal.label=Impresión fiscal @@ -8033,6 +8033,30 @@ busquedaOperadorEmbarcada.mensage.operadorSalvo=Operador Cadastrado com sucesso. busquedaOperadorEmbarcada.mensage.operadorSalvo.title=Sucesso busquedaOperadorEmbarcada.MSG.borrarPergunta= Eliminar o operador? busquedaOperadorEmbarcada.MSG.borrarPergunta.title=Apagar + +busquedaOperadorEmbarcada.MSG..borrarOK=Registro excluído. + +# Relatório Venda Embarcada +relatorioVendaEmbarcadaController.window.title = Relatório Venda Embarcada +relatorioVendaEmbarcadaController.lbDePeriodoViagem.value = Data Inicial +relatorioVendaEmbarcadaController.lbAtePeriodoViagem.value = Data Final +relatorioVendaEmbarcadaController.lbEmpresa.value = Empresa +relatorioVendaEmbarcadaController.lbPontoVenda.value = Ponto de Venda +relatorioVendaEmbarcadaController.lbUf.value = Estado +relatorioVendaEmbarcadaController.lbSerie.value = Série +relatorioVendaEmbarcadaController.lbNumBpe.value = N° Bpe +relatorioVendaEmbarcadaController.lbBloqueado.value = Dispositivo Bloqueado +relatorioVendaEmbarcadaController.lbEnvioSefaz.value = Mostrar Status de Envio Sefaz +relatorioVendaEmbarcadaController.lbQuebraSequencia.value = Mostrar Quebra de Sequência +relatorioVendaEmbarcadaController.lbUltimoBpe.value = Mostar apenas o último Bpe +relatorioVendaEmbarcadaController.label.enviosefaz.sim = Enviados +relatorioVendaEmbarcadaController.label.enviosefaz.nao = Não Enviados +relatorioVendaEmbarcadaController.label.enviosefaz.ambos = Todos +relatorioVendaEmbarcadaController.lbVendaEmbarcada.value = Venda Embarcada +relatorioVendaEmbarcadaController.label.VendaEmbarcada.sim = Sim +relatorioVendaEmbarcadaController.label.VendaEmbarcada.nao = Não +relatorioVendaEmbarcadaController.label.VendaEmbarcada.ambos = Todos + busquedaOperadorEmbarcada.MSG.borrarOK=Registro excluído. # @@ -8073,4 +8097,4 @@ editarAutorizacaoUsoSerieEmbarcadaController.window.title = Autorização de uso editarAutorizacaoUsoSerieEmbarcadaController.MSG.borrarPergunta = Eliminar autorización? editarAutorizacaoUsoSerieEmbarcadaController.MSG.borrarOK = Autorización se eliminó exitosamente -editarAutorizacaoUsoSerieEmbarcadaController.MSG.erroJaCadastrado=Dispositivo já autorizado para esta UF \ No newline at end of file +editarAutorizacaoUsoSerieEmbarcadaController.MSG.erroJaCadastrado=Dispositivo já autorizado para esta UF diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index c9c7b0bcf..0fec7ada8 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -338,6 +338,7 @@ indexController.mniRelatorioVendasConexao.label = Relatório Vendas de Conexão indexController.mniRelatorioVendasRequisicao.label = Relatório Vendas Requisição(Ordem de Serviço) indexController.mniRelatorioHistoricoCompras.label = Relatório Histórico de Compras indexController.mniRelatorioPosicaoVendaBilheteIdoso.label = Relatório Posição de Venda do Bilhete Idoso +indexController.mniRelatorioVendaEmbarcada.label = Venda Embarcada indexController.mnSubMenuImpressaoFiscal.label=Impressão Fiscal indexController.mnSubMenuRelatorioImpressaoFiscal.label=Importação Fiscal @@ -8528,6 +8529,28 @@ busquedaOperadorEmbarcada.MSG.borrarPergunta= Eliminar o operador? busquedaOperadorEmbarcada.MSG.borrarPergunta.title=Apagar busquedaOperadorEmbarcada.MSG..borrarOK=Registro excluído. + +# Relatório Venda Embarcada +relatorioVendaEmbarcadaController.window.title = Relatório Venda Embarcada +relatorioVendaEmbarcadaController.lbDePeriodoViagem.value = Data Inicial +relatorioVendaEmbarcadaController.lbAtePeriodoViagem.value = Data Final +relatorioVendaEmbarcadaController.lbEmpresa.value = Empresa +relatorioVendaEmbarcadaController.lbPontoVenda.value = Ponto de Venda +relatorioVendaEmbarcadaController.lbUf.value = Estado +relatorioVendaEmbarcadaController.lbSerie.value = Série +relatorioVendaEmbarcadaController.lbNumBpe.value = N° Bpe +relatorioVendaEmbarcadaController.lbBloqueado.value = Dispositivo Bloqueado +relatorioVendaEmbarcadaController.lbEnvioSefaz.value = Mostrar Status de Envio Sefaz +relatorioVendaEmbarcadaController.lbQuebraSequencia.value = Mostrar Quebra de Sequência +relatorioVendaEmbarcadaController.lbUltimoBpe.value = Mostar apenas o último Bpe +relatorioVendaEmbarcadaController.label.enviosefaz.sim = Enviados +relatorioVendaEmbarcadaController.label.enviosefaz.nao = Não Enviados +relatorioVendaEmbarcadaController.label.enviosefaz.ambos = Todos +relatorioVendaEmbarcadaController.lbVendaEmbarcada.value = Venda Embarcada +relatorioVendaEmbarcadaController.label.VendaEmbarcada.sim = Sim +relatorioVendaEmbarcadaController.label.VendaEmbarcada.nao = Não +relatorioVendaEmbarcadaController.label.VendaEmbarcada.ambos = Todos + # autorizacaoUsoSerieEmbarcadaController.window.title = Autorização de uso de série por dispositivo editarAutorizacaoUsoSerieEmbarcadaController.window.title = Autorização de uso de série por dispositivo @@ -8566,4 +8589,4 @@ editarAutorizacaoUsoSerieEmbarcadaController.window.title = Autorização de uso editarAutorizacaoUsoSerieEmbarcadaController.MSG.borrarPergunta = Eliminar autorização? editarAutorizacaoUsoSerieEmbarcadaController.MSG.borrarOK = Autorização excluida com Sucesso. -editarAutorizacaoUsoSerieEmbarcadaController.MSG.erroJaCadastrado=Dispositivo já autorizado para esta UF \ No newline at end of file +editarAutorizacaoUsoSerieEmbarcadaController.MSG.erroJaCadastrado=Dispositivo já autorizado para esta UF diff --git a/web/gui/relatorios/filtroRelatorioVendaEmbarcada.zul b/web/gui/relatorios/filtroRelatorioVendaEmbarcada.zul new file mode 100644 index 000000000..9e2ec1e59 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioVendaEmbarcada.zul @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +