16516: Tabela de Preço diferenciada para VENDA EMBARCADA

fixes bug#16516
dev:valdir
qua:cleverson

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@98341 d1611594-4594-4d17-8e1d-87c2c4800839
master
leonardo 2019-10-18 18:50:03 +00:00
parent 5917a6c9ad
commit dbd9c3da69
5 changed files with 44 additions and 16 deletions

View File

@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.dao;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
@ -13,8 +14,8 @@ public interface OperadorEmbarcadaServicoDAO extends GenericDAO<OperadorEmbarcad
public List<OperadorEmbarcadaServico> buscarPorOperador(OperadorEmbarcada operador); public List<OperadorEmbarcadaServico> buscarPorOperador(OperadorEmbarcada operador);
// public OperadorEmbarcada buscarOperadorEmbarcadaPorUsuario(Integer idUsuario); // public OperadorEmbarcada buscarOperadorEmbarcadaPorUsuario(Integer idUsuario);
public List<CorridaVO> getListaCorridaVO(Integer operador, Integer empresa, Date dtIni, Date dtFim, PuntoVenta puntoVenta); public List<CorridaVO> getListaCorridaVO(Integer operador, Empresa empresa, Date dtIni, Date dtFim, PuntoVenta puntoVenta);
public List<CorridaVO> getListaCorridaProxyVO(Integer operador, Integer empresa, Date dtIni, Date dtFim); public List<CorridaVO> getListaCorridaProxyVO(Integer operador, Empresa empresa, Date dtIni, Date dtFim);
public void preencherCorrida(CorridaVO corrida, PuntoVenta puntoVenta); public void preencherCorrida(CorridaVO corrida, PuntoVenta puntoVenta, Empresa empresa);
} }

View File

@ -23,6 +23,7 @@ import com.rjconsultores.ventaboletos.dao.CategoriaDescuentoDAO;
import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO; import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO;
import com.rjconsultores.ventaboletos.dao.util.DBUtil; import com.rjconsultores.ventaboletos.dao.util.DBUtil;
import com.rjconsultores.ventaboletos.entidad.CategoriaDescuento; import com.rjconsultores.ventaboletos.entidad.CategoriaDescuento;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
@ -59,11 +60,11 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
} }
@Override @Override
public List<CorridaVO> getListaCorridaVO(Integer operador, Integer empresa, Date dtIni, Date dtFim, PuntoVenta puntoVenta) { public List<CorridaVO> getListaCorridaVO(Integer operador, Empresa empresa, Date dtIni, Date dtFim, PuntoVenta puntoVenta) {
List<CorridaVO> corridas = getCorridas(operador, empresa, dtIni, dtFim); List<CorridaVO> corridas = getCorridas(operador, empresa, dtIni, dtFim);
for (CorridaVO corrida : corridas) { for (CorridaVO corrida : corridas) {
preencherTramosSequencias(corrida, puntoVenta); preencherTramosSequencias(corrida, puntoVenta, empresa);
preencherSequencias(corrida); preencherSequencias(corrida);
} }
@ -71,18 +72,18 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
} }
@Override @Override
public List<CorridaVO> getListaCorridaProxyVO(Integer operador, Integer empresa, Date dtIni, Date dtFim) { public List<CorridaVO> getListaCorridaProxyVO(Integer operador, Empresa empresa, Date dtIni, Date dtFim) {
return getCorridas(operador, empresa, dtIni, dtFim); return getCorridas(operador, empresa, dtIni, dtFim);
} }
@Override @Override
public void preencherCorrida(CorridaVO corrida, PuntoVenta puntoVenta) { public void preencherCorrida(CorridaVO corrida, PuntoVenta puntoVenta, Empresa empresa) {
preencherTramosSequencias(corrida, puntoVenta); preencherTramosSequencias(corrida, puntoVenta, empresa);
preencherSequencias(corrida); preencherSequencias(corrida);
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private List<CorridaVO> getCorridas(Integer operador, Integer empresa, Date dtIni, Date dtFim) { private List<CorridaVO> getCorridas(Integer operador, Empresa empresa, Date dtIni, Date dtFim) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("select * from (SELECT"); sb.append("select * from (SELECT");
@ -114,7 +115,11 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
sb.append(" JOIN CORRIDA_TRAMO CRT ON CRT.CORRIDA_ID = COR.CORRIDA_ID AND CRT.FECCORRIDA = COR.FECCORRIDA"); sb.append(" JOIN CORRIDA_TRAMO CRT ON CRT.CORRIDA_ID = COR.CORRIDA_ID AND CRT.FECCORRIDA = COR.FECCORRIDA");
sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = CRT.TRAMO_ID"); sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = CRT.TRAMO_ID");
sb.append(" JOIN RUTA_COMBINACION RC ON RC.RUTA_ID = COR.RUTA_ID AND RC.INDVENTA = 1"); sb.append(" JOIN RUTA_COMBINACION RC ON RC.RUTA_ID = COR.RUTA_ID AND RC.INDVENTA = 1");
sb.append(" JOIN TARIFA TA ON TA.TRAMO_ID = RC.TRAMO_ID AND TA.MARCA_ID = COR.MARCA_ID AND TA.RUTA_ID = COR.RUTA_ID"); if (empresa.getIndTabelaPrecoEmbarcada() != null && empresa.getIndTabelaPrecoEmbarcada()) {
sb.append(" JOIN TARIFA_EMBARCADA TA ON TA.TRAMO_ID = RC.TRAMO_ID AND TA.MARCA_ID = COR.MARCA_ID AND TA.RUTA_ID = COR.RUTA_ID");
} else {
sb.append(" JOIN TARIFA TA ON TA.TRAMO_ID = RC.TRAMO_ID AND TA.MARCA_ID = COR.MARCA_ID AND TA.RUTA_ID = COR.RUTA_ID");
}
sb.append(" JOIN VIGENCIA_TARIFA VT ON VT.VIGENCIATARIFA_ID = TA.VIGENCIATARIFA_ID"); sb.append(" JOIN VIGENCIA_TARIFA VT ON VT.VIGENCIATARIFA_ID = TA.VIGENCIATARIFA_ID");
sb.append(" JOIN PARADA ORI ON ORI.PARADA_ID = COR.ORIGEN_ID"); sb.append(" JOIN PARADA ORI ON ORI.PARADA_ID = COR.ORIGEN_ID");
sb.append(" JOIN CIUDAD ORICID ON ORICID.CIUDAD_ID = ORI.CIUDAD_ID"); sb.append(" JOIN CIUDAD ORICID ON ORICID.CIUDAD_ID = ORI.CIUDAD_ID");
@ -188,7 +193,11 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
sb.append(" JOIN CORRIDA_TRAMO CRT ON CRT.CORRIDA_ID = COR.CORRIDA_ID AND CRT.FECCORRIDA = COR.FECCORRIDA "); sb.append(" JOIN CORRIDA_TRAMO CRT ON CRT.CORRIDA_ID = COR.CORRIDA_ID AND CRT.FECCORRIDA = COR.FECCORRIDA ");
sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = CRT.TRAMO_ID "); sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = CRT.TRAMO_ID ");
sb.append(" JOIN RUTA_COMBINACION RC ON RC.RUTA_ID = COR.RUTA_ID AND RC.INDVENTA = 1"); sb.append(" JOIN RUTA_COMBINACION RC ON RC.RUTA_ID = COR.RUTA_ID AND RC.INDVENTA = 1");
sb.append(" JOIN TARIFA TA ON TA.TRAMO_ID = RC.TRAMO_ID AND TA.MARCA_ID = COR.MARCA_ID AND TA.RUTA_ID = COR.RUTA_ID"); if (empresa.getIndTabelaPrecoEmbarcada() != null && empresa.getIndTabelaPrecoEmbarcada()) {
sb.append(" JOIN TARIFA_EMBARCADA TA ON TA.TRAMO_ID = RC.TRAMO_ID AND TA.MARCA_ID = COR.MARCA_ID AND TA.RUTA_ID = COR.RUTA_ID");
} else {
sb.append(" JOIN TARIFA TA ON TA.TRAMO_ID = RC.TRAMO_ID AND TA.MARCA_ID = COR.MARCA_ID AND TA.RUTA_ID = COR.RUTA_ID");
}
sb.append(" JOIN VIGENCIA_TARIFA VT ON VT.VIGENCIATARIFA_ID = TA.VIGENCIATARIFA_ID "); sb.append(" JOIN VIGENCIA_TARIFA VT ON VT.VIGENCIATARIFA_ID = TA.VIGENCIATARIFA_ID ");
sb.append(" JOIN PARADA ORI ON ORI.PARADA_ID = COR.ORIGEN_ID "); sb.append(" JOIN PARADA ORI ON ORI.PARADA_ID = COR.ORIGEN_ID ");
sb.append(" JOIN CIUDAD ORICID ON ORICID.CIUDAD_ID = ORI.CIUDAD_ID "); sb.append(" JOIN CIUDAD ORICID ON ORICID.CIUDAD_ID = ORI.CIUDAD_ID ");
@ -294,7 +303,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
}); });
query.setInteger("usuarioId", operador); query.setInteger("usuarioId", operador);
query.setInteger("empresaId", empresa); query.setInteger("empresaId", empresa.getEmpresaId());
query.setDate("dtIni", new java.sql.Date(dtIni.getTime())); query.setDate("dtIni", new java.sql.Date(dtIni.getTime()));
query.setDate("dtFim", new java.sql.Date(dtFim.getTime())); query.setDate("dtFim", new java.sql.Date(dtFim.getTime()));
@ -302,7 +311,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void preencherTramosSequencias(CorridaVO corrida, PuntoVenta puntoVenta) { private void preencherTramosSequencias(CorridaVO corrida, PuntoVenta puntoVenta, Empresa empresa) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append(" SELECT"); sb.append(" SELECT");
@ -419,7 +428,11 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
sb.append(" JOIN VIA VIA ON VIA.VIA_ID = TRM.VIA_ID"); sb.append(" JOIN VIA VIA ON VIA.VIA_ID = TRM.VIA_ID");
sb.append(" JOIN empresa emp ON emp.empresa_id = :empresaId "); sb.append(" JOIN empresa emp ON emp.empresa_id = :empresaId ");
sb.append(" JOIN marca mar on mar.empresa_id = emp.empresa_id "); sb.append(" JOIN marca mar on mar.empresa_id = emp.empresa_id ");
sb.append(" JOIN TARIFA TA ON TA.MARCA_ID = mar.marca_Id AND TA.TRAMO_ID = TRM.TRAMO_ID AND TA.RUTA_ID = RC.RUTA_ID"); if (empresa.getIndTabelaPrecoEmbarcada() != null && empresa.getIndTabelaPrecoEmbarcada()) {
sb.append(" JOIN TARIFA_EMBARCADA TA ON TA.MARCA_ID = mar.marca_Id AND TA.TRAMO_ID = TRM.TRAMO_ID AND TA.RUTA_ID = RC.RUTA_ID");
} else {
sb.append(" JOIN TARIFA TA ON TA.MARCA_ID = mar.marca_Id AND TA.TRAMO_ID = TRM.TRAMO_ID AND TA.RUTA_ID = RC.RUTA_ID");
}
sb.append(" JOIN VIGENCIA_TARIFA VT ON VT.VIGENCIATARIFA_ID = TA.VIGENCIATARIFA_ID"); sb.append(" JOIN VIGENCIA_TARIFA VT ON VT.VIGENCIATARIFA_ID = TA.VIGENCIATARIFA_ID");
sb.append(" WHERE "); sb.append(" WHERE ");
sb.append(" RC.ACTIVO = 1"); sb.append(" RC.ACTIVO = 1");

View File

@ -294,6 +294,10 @@ public class Empresa implements Serializable {
@Column(name = "INDIMPSEGOPCIONALENTVDAPOSTERI") @Column(name = "INDIMPSEGOPCIONALENTVDAPOSTERI")
private Boolean indImprimirSeguroOpcionalEntregaVdaImpPosterior; private Boolean indImprimirSeguroOpcionalEntregaVdaImpPosterior;
@Column(name = "INDTABELAPRECOEMBARCADA")
private Boolean indTabelaPrecoEmbarcada;
public Empresa() { public Empresa() {
super(); super();
} }
@ -1107,5 +1111,13 @@ public class Empresa implements Serializable {
public void setIndImprimirSeguroOpcionalEntregaVdaImpPosterior(Boolean indImprimirSeguroOpcionalEntregaVdaImpPosterior) { public void setIndImprimirSeguroOpcionalEntregaVdaImpPosterior(Boolean indImprimirSeguroOpcionalEntregaVdaImpPosterior) {
this.indImprimirSeguroOpcionalEntregaVdaImpPosterior = indImprimirSeguroOpcionalEntregaVdaImpPosterior; this.indImprimirSeguroOpcionalEntregaVdaImpPosterior = indImprimirSeguroOpcionalEntregaVdaImpPosterior;
} }
public Boolean getIndTabelaPrecoEmbarcada() {
return indTabelaPrecoEmbarcada == null ? false : indTabelaPrecoEmbarcada;
}
public void setIndTabelaPrecoEmbarcada(Boolean indTabelaPrecoEmbarcada) {
this.indTabelaPrecoEmbarcada = indTabelaPrecoEmbarcada;
}
} }

View File

@ -3,6 +3,7 @@ package com.rjconsultores.ventaboletos.service;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaLinha; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaLinha;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico;
@ -21,5 +22,5 @@ public interface OperadorEmbarcadaService {
public PuntoVentaVO getPuntoVentaVO(Integer operador); public PuntoVentaVO getPuntoVentaVO(Integer operador);
public List<CorridaVO> getListaCorridaVO(Integer operador, Integer empresa, Date dtIni, Date dtFim, PuntoVenta puntoVenta); public List<CorridaVO> getListaCorridaVO(Integer operador, Empresa empresa, Date dtIni, Date dtFim, PuntoVenta puntoVenta);
} }

View File

@ -10,6 +10,7 @@ import org.springframework.transaction.annotation.Transactional;
import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaDAO; import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaDAO;
import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaLinhaDAO; import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaLinhaDAO;
import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO; import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaLinha; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaLinha;
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico; import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico;
@ -79,7 +80,7 @@ public class OperadorEmbarcadaServiceImpl implements OperadorEmbarcadaService {
} }
@Override @Override
public List<CorridaVO> getListaCorridaVO(Integer operador, Integer empresa, Date dtIni, Date dtFim, PuntoVenta puntoVenta) { public List<CorridaVO> getListaCorridaVO(Integer operador, Empresa empresa, Date dtIni, Date dtFim, PuntoVenta puntoVenta) {
return opServicoDAO.getListaCorridaVO(operador, empresa, dtIni, dtFim, puntoVenta); return opServicoDAO.getListaCorridaVO(operador, empresa, dtIni, dtFim, puntoVenta);
} }