diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPricingEspecifico.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPricingEspecifico.java index f708b3771..816c72407 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPricingEspecifico.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioPricingEspecifico.java @@ -98,6 +98,12 @@ public class RelatorioPricingEspecifico extends Relatorio { Double tarifaVolta = (Double) parametros.get("TARIFAVOLTA"); + Integer ocupacaoInicial = (Integer) parametros.get("OCUPACAOINICIAL"); + Integer ocupacaoFinal = (Integer) parametros.get("OCUPACAOFINAL"); + + Double tarifaOcupacao = (Double) parametros.get("TARIFAOCUPACAO"); + Double descontoOcupacao = (Double) parametros.get("DESCONTOOCUPACAO"); + sql.append(" SELECT "); sql.append(" PE.PRICINGESPECIFICO_ID, PE.NOMBPRICING, PE.DATAINICIOVIAGEM, PE.DATAFIMVIAGEM, PE.DATAINICIOVENDA, PE.DATAFIMVENDA, "); sql.append(" PE.CORRIDA_ID, cs.DESCCLASE, m.DESCMARCA, ORIGEM.DESCPARADA as ORIGEM, DESTINO.DESCPARADA as DESTINO, "); @@ -105,7 +111,7 @@ public class RelatorioPricingEspecifico extends Relatorio { //Subquery ocupacao sql.append(" ( SELECT"); - sql.append(" LISTAGG(PEO.OCUPACIONINICIAL || ' a ' || PEO.OCUPACIONFINAL || ', ' || CASE PEO.TARIFA WHEN NULL THEN 'D: ' ||PEO.DESCUENTO ELSE 'T: ' || PEO.TARIFA END, '; ' ) "); + sql.append(" LISTAGG(PEO.OCUPACIONINICIAL || ' a ' || PEO.OCUPACIONFINAL || ', ' || CASE WHEN PEO.TARIFA IS NULL THEN 'Desconto: ' ||PEO.DESCUENTO ELSE 'Tarifa: ' || PEO.TARIFA END, '; ' ) "); sql.append(" WITHIN GROUP (ORDER BY PEO.PRICINGESPECIFICO_ID) OCUPACAO "); sql.append(" FROM "); sql.append(" PRICING_ESPECIFICO_OCUPACION PEO "); @@ -204,6 +210,26 @@ public class RelatorioPricingEspecifico extends Relatorio { sql.append(" AND pe.TARIFAREDABIERTO = ").append(tarifaVolta); } + if(ocupacaoInicial != null && ocupacaoFinal != null ) { + sql.append(" AND ( SELECT "); + sql.append(" COUNT(PEO.PRICINGESPECIFICOOCUPACION_ID) "); + sql.append(" FROM "); + sql.append(" PRICING_ESPECIFICO_OCUPACION PEO "); + sql.append(" WHERE "); + sql.append(" PEO.ACTIVO = 1 AND PEO.PRICINGESPECIFICO_ID = PE.PRICINGESPECIFICO_ID"); + + if(tarifaOcupacao != null) { + sql.append(" AND PEO.TARIFA = ").append(tarifaOcupacao); + } + + if(descontoOcupacao != null) { + sql.append(" AND PEO.DESCUENTO = ").append(descontoOcupacao); + } + + sql.append(" AND ").append(ocupacaoInicial).append(" BETWEEN PEO.OCUPACIONINICIAL AND PEO.OCUPACIONFINAL "); + sql.append(" AND ").append(ocupacaoFinal).append(" BETWEEN PEO.OCUPACIONINICIAL AND PEO.OCUPACIONFINAL ) > 0 "); + } + if (CANAL_DE_VENDA != null ) { sql.append(" AND ").append(CANAL_DE_VENDA).append(" in "); sql.append(" ( SELECT PECV.TIPOPTOVTA_ID "); diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPricingEspecifico.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPricingEspecifico.jasper index 2ea269f71..9eba6e3cf 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPricingEspecifico.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPricingEspecifico.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPricingEspecifico.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPricingEspecifico.jrxml index 0c0a81d8c..ffd657fbe 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPricingEspecifico.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioPricingEspecifico.jrxml @@ -212,7 +212,7 @@ - + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/RelatorioPricingEspecificoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/RelatorioPricingEspecificoController.java index e1caafb36..54f5205b4 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/RelatorioPricingEspecificoController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/pricing/RelatorioPricingEspecificoController.java @@ -115,6 +115,12 @@ public class RelatorioPricingEspecificoController extends MyGenericForwardCompos private Checkbox chkSexta; private Checkbox chkSabado; + private Intbox ocupacaoInicial; + private Intbox ocupacaoFinal; + + private Doublebox txtTarifaOcupacao; + private Doublebox txtDescontoOcupacao; + @Autowired private transient PagedListWrapper plwPuntoVenta; @@ -333,6 +339,35 @@ public class RelatorioPricingEspecificoController extends MyGenericForwardCompos filtro.append("; Tarifa Volta: " + tarifaVolta); } + Double tarifaOcupcao = txtTarifaOcupacao.getValue(); + if (tarifaOcupcao != null) { + parametros.put("TARIFAOCUPACAO", tarifaOcupcao); + filtro.append("; Tarifa: " + tarifaOcupcao); + } + + Double descontoOcupcao = txtDescontoOcupacao.getValue(); + if (descontoOcupcao != null) { + parametros.put("DESCONTOOCUPACAO", descontoOcupcao); + filtro.append("; Desconto: " + descontoOcupcao); + } + + Integer ocpInicial = ocupacaoInicial.getValue(); + if (ocpInicial != null) { + parametros.put("OCUPACAOINICIAL", ocpInicial); + filtro.append("; Ocupaēćo Inicial: " + ocpInicial); + } + + Integer ocpFinal = ocupacaoFinal.getValue(); + if (ocpFinal != null) { + parametros.put("OCUPACAOFINAL", ocpFinal); + filtro.append("; Ocupaēćo Final: " + ocpFinal); + } + + if((ocpInicial != null && ocpFinal == null) || (ocpFinal != null && ocpInicial == null)) { + Messagebox.show(Labels.getLabel("editarPricingController.ErroOcupacao"), Labels.getLabel("relatorioPricingEspecificoController.window.title"), Messagebox.OK, Messagebox.INFORMATION); + return; + } + parametros.put("FILTROS", filtro.toString()); relatorio = new RelatorioPricingEspecifico(parametros, dataSourceRead.getConnection()); @@ -566,4 +601,36 @@ public class RelatorioPricingEspecificoController extends MyGenericForwardCompos public void setPuntoVentaSelList(MyListbox puntoVentaSelList) { this.puntoVentaSelList = puntoVentaSelList; } + + public Intbox getOcupacaoInicial() { + return ocupacaoInicial; + } + + public void setOcupacaoInicial(Intbox ocupacaoInicial) { + this.ocupacaoInicial = ocupacaoInicial; + } + + public Intbox getOcupacaoFinal() { + return ocupacaoFinal; + } + + public void setOcupacaoFinal(Intbox ocupacaoFinal) { + this.ocupacaoFinal = ocupacaoFinal; + } + + public Doublebox getTxtTarifaOcupacao() { + return txtTarifaOcupacao; + } + + public void setTxtTarifaOcupacao(Doublebox txtTarifaOcupacao) { + this.txtTarifaOcupacao = txtTarifaOcupacao; + } + + public Doublebox getTxtDescontoOcupacao() { + return txtDescontoOcupacao; + } + + public void setTxtDescontoOcupacao(Doublebox txtDescontoOcupacao) { + this.txtDescontoOcupacao = txtDescontoOcupacao; + } } diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index b4cc85e03..e62cc416c 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -3667,6 +3667,13 @@ editarPricingController.lhQuinta.label= Qui editarPricingController.lhSexta.label= Sex editarPricingController.lhSabado.label= Sab +editarPricingController.ocupacao=Ocupação +editarPricingController.ocupacaoInicial=OcupaƧao Inicial +editarPricingController.ocupacaoFinal=OcupaƧao Inicial +editarPricingController.TarifaOcupacao=Tarifa +editarPricingController.DescontoOcupacao=Desconto +editarPricingController.ErroOcupacao= Ɖ necessĆ”rio preencher a ocupação inicial e final ou nenhuma delas. + editarPricingController.lhPorcSen.label = Porcentaje ida editarPricingController.lhPorcRed.label = Porcentaje viaje ida y regreso editarPricingController.lhCantDias.label = DĆ­as de anticipación diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 09dd1399f..6e7e22e7c 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -3961,6 +3961,13 @@ editarPricingController.lhQuinta.label= Qui editarPricingController.lhSexta.label= Sex editarPricingController.lhSabado.label= Sab +editarPricingController.ocupacao=Ocupação +editarPricingController.ocupacaoInicial=OcupaƧao Inicial +editarPricingController.ocupacaoFinal=OcupaƧao Inicial +editarPricingController.TarifaOcupacao=Tarifa +editarPricingController.DescontoOcupacao=Desconto +editarPricingController.ErroOcupacao= Ɖ necessĆ”rio preencher a ocupação inicial e final ou nenhuma delas. + editarPricingController.lhPorcSen.label = Porcentagem Ida editarPricingController.lhPorcRed.label = Porcentagem Viagem Ida e Volta editarPricingController.lhCantDias.label = Dias de Antecipação diff --git a/web/gui/pricing/relatorioPricingEspecifico.zul b/web/gui/pricing/relatorioPricingEspecifico.zul index b8fc52d24..eb66ec1bc 100644 --- a/web/gui/pricing/relatorioPricingEspecifico.zul +++ b/web/gui/pricing/relatorioPricingEspecifico.zul @@ -112,6 +112,23 @@ + + +