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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+