fixes bug#21352

qua:
dev:Valdevir

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@105248 d1611594-4594-4d17-8e1d-87c2c4800839
master
valdevir 2021-02-01 14:02:16 +00:00
parent fe0d844603
commit 11963c640e
5 changed files with 149 additions and 12 deletions

View File

@ -12,8 +12,10 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import com.rjconsultores.ventaboletos.entidad.Estado; import com.rjconsultores.ventaboletos.entidad.Estado;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
@ -28,13 +30,15 @@ import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
* @author Bruno H. G. Gouvêa <bruno@rjconsultores.com.br> * @author Bruno H. G. Gouvêa <bruno@rjconsultores.com.br>
* *
*/ */
public class RelatorioReceitaDiariaAgencia extends Relatorio { public class RelatorioReceitaDiariaAgencia extends Relatorio {
private Map<String, HashMap<String, Object>> mapCacheConfigComissao; private Map<String, HashMap<String, Object>> mapCacheConfigComissao;
//Mantis 16390 //Mantis 16390
//As vendas com impressão posterior não estavam sendo exibidas como prévenda pois só estavam sendo validados os tipoVendaId 18 e 39. //As vendas com impressão posterior não estavam sendo exibidas como prévenda pois só estavam sendo validados os tipoVendaId 18 e 39.
//Verifiquei a classe RelatorioImpressaoPosterior e adicionei os tipoVendaId faltantes de acordo com sua regra de negócio. //Verifiquei a classe RelatorioImpressaoPosterior e adicionei os tipoVendaId faltantes de acordo com sua regra de negócio.
private List<Integer> listaTipoVentaIdPreVenda = Arrays.asList(5, 12, 18, 41, 49, 39); private List<Integer> listaTipoVentaIdPreVenda = Arrays.asList(5, 12, 18, 41, 49, 39);
private Set<PuntoVenta> pontoVendaConfiguracao;
public RelatorioReceitaDiariaAgencia(Map<String, Object> parametros, Connection conexao) throws Exception { public RelatorioReceitaDiariaAgencia(Map<String, Object> parametros, Connection conexao) throws Exception {
@ -312,7 +316,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
@Override @Override
public void initDados() throws Exception { public void initDados() throws Exception {
pontoVendaConfiguracao = new HashSet<PuntoVenta>();
this.prepareQuery(); this.prepareQuery();
this.mapDados = new HashMap<String, HashMap<String, Object>>(); this.mapDados = new HashMap<String, HashMap<String, Object>>();
@ -432,6 +436,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
} }
} }
this.dados = new ArrayList<Map<String, Object>>(this.mapDados.values()); this.dados = new ArrayList<Map<String, Object>>(this.mapDados.values());
} }
}); });
@ -513,7 +518,7 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
else { else {
StringBuilder sqlParam = new StringBuilder(); StringBuilder sqlParam = new StringBuilder();
sqlParam.append(" SELECT EM.NOMBEMPRESA, PV.NOMBPUNTOVENTA "); sqlParam.append(" SELECT EM.NOMBEMPRESA, PV.NOMBPUNTOVENTA, PV.PUNTOVENTA_ID, PV.NUMPUNTOVENTA ");
sqlParam.append(" FROM EMPRESA EM, "); sqlParam.append(" FROM EMPRESA EM, ");
sqlParam.append(" PUNTO_VENTA PV "); sqlParam.append(" PUNTO_VENTA PV ");
sqlParam.append(" WHERE EM.EMPRESA_ID = :EMPRESA_ID "); sqlParam.append(" WHERE EM.EMPRESA_ID = :EMPRESA_ID ");
@ -525,9 +530,9 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
ResultSet rsParam = stmtParam.executeQuery(); ResultSet rsParam = stmtParam.executeQuery();
if (rsParam.next()) if (rsParam.next()){
this.addInfoMsg("Não foi possivel obter a configuração de comissão do ponto de venda: " + rsParam.getString("NOMBPUNTOVENTA") + " empresa: " + rsParam.getString("NOMBEMPRESA") + " ."); pontoVendaConfiguracao.add(new PuntoVenta(new Integer (rsParam.getString("PUNTOVENTA_ID")), rsParam.getString("NOMBPUNTOVENTA"), rsParam.getString("NUMPUNTOVENTA")));
}
rsParam.close(); rsParam.close();
stmtParam.close(); stmtParam.close();
} }
@ -745,12 +750,19 @@ public class RelatorioReceitaDiariaAgencia extends Relatorio {
sql.append(" :ISNUMPUNTOVENTATODOS = 'N') OR (:ISNUMPUNTOVENTATODOS = 'S')) "); sql.append(" :ISNUMPUNTOVENTATODOS = 'N') OR (:ISNUMPUNTOVENTATODOS = 'S')) ");
sql.append(" AND ((INSTR(:ESTADO_ID, ',' || TRIM(ES.ESTADO_ID) || ',') > 0 AND "); sql.append(" AND ((INSTR(:ESTADO_ID, ',' || TRIM(ES.ESTADO_ID) || ',') > 0 AND ");
sql.append(" :ISESTADOTODOS = 'N') OR (:ISESTADOTODOS = 'S')) "); sql.append(" :ISESTADOTODOS = 'N') OR (:ISESTADOTODOS = 'S')) ");
sql.append(" ORDER BY EC.NOMBEMPRESA, ES.CVEESTADO "); sql.append(" ORDER BY to_number(regexp_substr(PV.NUMPUNTOVENTA, '\\d+')), EC.NOMBEMPRESA, ES.CVEESTADO ");
System.out.println(sql.toString());
return sql.toString(); return sql.toString();
} }
private boolean isTipoVentaIdPreVenda(Integer tipoVentaId) { private boolean isTipoVentaIdPreVenda(Integer tipoVentaId) {
return listaTipoVentaIdPreVenda.contains(tipoVentaId); return listaTipoVentaIdPreVenda.contains(tipoVentaId);
} }
public Set<PuntoVenta> getPontoVendaConfiguracao() {
return pontoVendaConfiguracao;
}
public void setPontoVendaConfiguracao(Set<PuntoVenta> pontoVendaConfiguracao) {
this.pontoVendaConfiguracao = pontoVendaConfiguracao;
}
} }

View File

@ -12,14 +12,19 @@ import java.util.Map;
import javax.sql.DataSource; import javax.sql.DataSource;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.zkoss.util.resource.Labels; import org.zkoss.util.resource.Labels;
import org.zkoss.zhtml.Messagebox; import org.zkoss.zhtml.Messagebox;
import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.WrongValueException;
import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.Bandbox; import org.zkoss.zul.Bandbox;
import org.zkoss.zul.Button;
import org.zkoss.zul.Checkbox; import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox; import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem; import org.zkoss.zul.Comboitem;
@ -27,6 +32,8 @@ import org.zkoss.zul.Datebox;
import org.zkoss.zul.Paging; import org.zkoss.zul.Paging;
import org.zkoss.zul.Radio; import org.zkoss.zul.Radio;
import org.zkoss.zul.Textbox; import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
import org.zkoss.zul.api.Row;
import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Estado; import com.rjconsultores.ventaboletos.entidad.Estado;
@ -34,7 +41,6 @@ import com.rjconsultores.ventaboletos.entidad.GrupoRuta;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioReceitaDiariaAgencia; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioReceitaDiariaAgencia;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.EmpresaService;
import com.rjconsultores.ventaboletos.service.EstadoService; import com.rjconsultores.ventaboletos.service.EstadoService;
import com.rjconsultores.ventaboletos.service.GrupoRutaService; import com.rjconsultores.ventaboletos.service.GrupoRutaService;
@ -103,7 +109,9 @@ public class RelatorioReceitaDiariaAgenciaController extends MyGenericForwardCom
private Checkbox chkContemplarGap; private Checkbox chkContemplarGap;
private Radio rd1; private Radio rd1;
private Radio radDataFechamento; private Radio radDataFechamento;
private MyListbox puntoVentaConfiguracaoList;
private Paging pagingPuntoVentaConfiguracao;
private static Logger log;
public Checkbox getSomenteCancelados() { public Checkbox getSomenteCancelados() {
return somenteCancelados; return somenteCancelados;
} }
@ -398,7 +406,11 @@ public class RelatorioReceitaDiariaAgenciaController extends MyGenericForwardCom
parametros.put("FILTROS", filtro.toString()); parametros.put("FILTROS", filtro.toString());
Relatorio relatorio = new RelatorioReceitaDiariaAgencia(parametros, dataSourceRead.getConnection()); RelatorioReceitaDiariaAgencia relatorio = new RelatorioReceitaDiariaAgencia(parametros, dataSourceRead.getConnection());
if(relatorio.getPontoVendaConfiguracao()!=null && !relatorio.getPontoVendaConfiguracao().isEmpty() ) {
final Window dialog = (Window) Executions.createComponents("/gui/utilerias/visualizarPontoVenda.zul", null, null);
exibirDialog(dialog, new ArrayList<PuntoVenta>(relatorio.getPontoVendaConfiguracao()));
}
Map args = new HashMap(); Map args = new HashMap();
args.put("relatorio", relatorio); args.put("relatorio", relatorio);
@ -408,8 +420,50 @@ public class RelatorioReceitaDiariaAgenciaController extends MyGenericForwardCom
} }
private void exibirDialog(final Window dialog, List<PuntoVenta> puntoVentaList){
try {
Button visualizarAgencias = (Button) dialog.getFellow("visualizarAgencias");
puntoVentaConfiguracaoList = (MyListbox) dialog.getFellow("puntoVentaConfiguracaoList");
puntoVentaConfiguracaoList.setItemRenderer(new RenderPuntoVentaSimple());
puntoVentaConfiguracaoList.setData(puntoVentaList);
pagingPuntoVentaConfiguracao = (Paging) dialog.getFellow("pagingPuntoVentaConfiguracao");
pagingPuntoVentaConfiguracao.setPageSize(5);
visualizarAgencias.addEventListener("onClick", new EventListener() {
@Override
public void onEvent(Event event) throws Exception {
try{
Row puntoVentaConfiguracaoRow = (Row) dialog.getFellow("puntoVentaConfiguracaoRow");
if(puntoVentaConfiguracaoRow.isVisible()) {
puntoVentaConfiguracaoList.setVisible(false);
puntoVentaConfiguracaoRow.setVisible(false);
}else {
puntoVentaConfiguracaoList.setVisible(true);
puntoVentaConfiguracaoRow.setVisible(true);
}
}catch(Throwable t){
if (t instanceof WrongValueException){
throw (WrongValueException)t;
}
Messagebox.show(Labels.getLabel("MSG.CONSTRAINT.DECIMALBOXISNOTANUMBER"),
Labels.getLabel("editarCatalogoDeRutaController.window.title"),
Messagebox.OK, Messagebox.EXCLAMATION);
}
}
});
//dialog.setMaximizable(true);
dialog.doModal();
} catch (Exception e) {
log.error("", e);
}
}
@Override @Override
public void doAfterCompose(Component comp) throws Exception { public void doAfterCompose(Component comp) throws Exception {
log = Logger.getLogger(RelatorioReceitaDiariaAgenciaController.class);
lsEstado = estadoService.obtenerTodos(); lsEstado = estadoService.obtenerTodos();
lsEmpresa = empresaService.obtenerTodos(); lsEmpresa = empresaService.obtenerTodos();
lsGrupoRuta = grupoRutaService.obtenerTodos(); lsGrupoRuta = grupoRutaService.obtenerTodos();

View File

@ -653,6 +653,12 @@ relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbI
relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbItemReceitaEmbarque = Ingresos de abordaje relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbItemReceitaEmbarque = Ingresos de abordaje
relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbItemReceitaPedagio = Ingresos de peaje relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbItemReceitaPedagio = Ingresos de peaje
relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbItemReceitaBagagem = Ingresos de equipaje relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbItemReceitaBagagem = Ingresos de equipaje
relatorioReceitaDiariaAgenciaController.visualizarAgencias= Visualizar Agências
relatorioReceitaDiariaAgenciaController.visualizarRelatorio=Visualizar Relatório
relatorioReceitaDiariaAgenciaController.visualizarRelatorio=Visualizar Relatório
relatorioReceitaDiariaAgenciaController.numPontoVenda = Num.
relatorioReceitaDiariaAgenciaController.numPontoVenda = Nome P. Venda
relatorioReceitaDiariaAgenciaController.labelAvisoAhecnciaConfigurada = Não foi possivel obter a configuração de comissão. Para validar as agências clique em Visualizar Agências
#Relatorio Impressao RMD #Relatorio Impressao RMD
busquedaImpressaoRMDController.label.RMD = RMD busquedaImpressaoRMDController.label.RMD = RMD

View File

@ -701,6 +701,13 @@ relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbI
relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbItemReceitaEmbarque = Receita de Embarque relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbItemReceitaEmbarque = Receita de Embarque
relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbItemReceitaPedagio = Receita de Pedagio relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbItemReceitaPedagio = Receita de Pedagio
relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbItemReceitaBagagem = Receita de Bagagem relatorioReceitaDiariaAgenciaController.rdIndAgenciaDevol.cmbReceitaImposto.cmbItemReceitaBagagem = Receita de Bagagem
relatorioReceitaDiariaAgenciaController.visualizarAgencias= Visualizar Agências
relatorioReceitaDiariaAgenciaController.visualizarRelatorio=Visualizar Relatório
relatorioReceitaDiariaAgenciaController.visualizarRelatorio=Visualizar Relatório
relatorioReceitaDiariaAgenciaController.numPontoVenda = Num.
relatorioReceitaDiariaAgenciaController.numPontoVenda = Nome P. Venda
relatorioReceitaDiariaAgenciaController.labelAvisoAhecnciaConfigurada = Não foi possivel obter a configuração de comissão. Para validar as agências clique em Visualizar Agências
#Relatorio Impressao RMD #Relatorio Impressao RMD
busquedaImpressaoRMDController.mnImpressaoRMD.label = Impressão RMD busquedaImpressaoRMDController.mnImpressaoRMD.label = Impressão RMD

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<?page contentType="text/html;charset=UTF-8"?>
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c"?>
<zk xmlns="http://www.zkoss.org/2005/zul">
<window id="winVisualizarPontoVendaConfiguracao" border="normal"
contentStyle="overflow:auto"
width="350px"
title="${c:l('relatorioReceitaDiariaAgenciaController.window.title')}"
closable="true">
<toolbar>
<grid fixedLayout="true">
<columns>
<column width="13%" />
<column width="87%" />
</columns>
<rows>
<row>
<hbox spacing="5px" style="padding:1px" align="right">
<button id="btnApagar" height="20"
image="/gui/img/question24.png" width="35px"/>
</hbox>
<label value="${c:l('relatorioReceitaDiariaAgenciaController.labelAvisoAhecnciaConfigurada')}" width="100%"/>
</row>
</rows>
</grid>
</toolbar>
<grid fixedLayout="true">
<columns>
<column width="50%" />
<column width="50%" />
</columns>
<rows>
<row spans="2">
</row>
<row>
<button id="visualizarAgencias" label="${c:l('relatorioReceitaDiariaAgenciaController.visualizarAgencias')}" width="100%" />
<button id="visualizarRelatorio" label="${c:l('relatorioReceitaDiariaAgenciaController.visualizarRelatorio')}" width="100%" onClick="winVisualizarPontoVendaConfiguracao.detach()" />
</row>
<row id="puntoVentaConfiguracaoRow" spans="2" visible="false">
<listbox id="puntoVentaConfiguracaoList" use="com.rjconsultores.ventaboletos.web.utilerias.MyListbox"
vflex="true" multiple="false" height="100%" width="100%" visible="false" mold="paging" >
<listhead sizable="true">
<listheader id="lhId" width="70px" image="/gui/img/builder.gif"
label="${c:l('relatorioReceitaDiariaAgenciaController.numPontoVenda')}"
sort="auto(puntoventaId)"/>
<listheader id="lhDesc" image="/gui/img/builder.gif"
label="${c:l('relatorioReceitaDiariaAgenciaController.numPontoVenda')}"
sort="auto(nombpuntoventa)"/>
</listhead>
</listbox>
<paging id="pagingPuntoVentaConfiguracao" pageSize="5" />
</row>
</rows>
</grid>
</window>
</zk>