wilian 2017-04-28 21:05:08 +00:00
parent b02a140c9e
commit 93bdcc5dcf
5 changed files with 233 additions and 139 deletions

View File

@ -18,7 +18,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.constantes.Constantes;
import com.rjconsultores.ventaboletos.dao.BusquedaDatosTicketDAO;
import com.rjconsultores.ventaboletos.entidad.Pacote;
import com.rjconsultores.ventaboletos.enums.SituacaoVendaPacote;
@ -44,7 +43,6 @@ import com.rjconsultores.ventaboletos.vo.busquedapacotes.transformer.DatosTicket
public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote, Integer> implements BusquedaDatosTicketDAO {
private static Logger log = org.slf4j.LoggerFactory.getLogger(BusquedaDatosTicketHibernateDAO.class);
private List<Long> vendapacoteIds;
@Autowired
public BusquedaDatosTicketHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
@ -53,18 +51,17 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
@Override
public List<PacoteVO> buscaDatosTickets(Date fecInicial, Date fecFinal, Date fecVentaInicial, Date fecVentaFinal, Date fecAlteracaoInicial, Date fecAlteracaoFinal) {
vendapacoteIds = null;
List<PacoteVO> pacotes = new ArrayList<PacoteVO>();
try {
pacotes = carregarDadosPacotes(fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
if(!pacotes.isEmpty()) {
carregarDadosPagamento(pacotes);
carregarDadosServico(pacotes);
carregarDadosPassageiros(pacotes);
carregarDadosCliente(pacotes);
carregarDadosEnderecoApanhe(pacotes);
carregarDadosItemPacotes(pacotes);
carregarDadosPagamento(pacotes, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
carregarDadosServico(pacotes, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
carregarDadosPassageiros(pacotes, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
carregarDadosCliente(pacotes, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
carregarDadosEnderecoApanhe(pacotes, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
carregarDadosItemPacotes(pacotes, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
}
} catch(Exception e) {
@ -75,6 +72,7 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
return pacotes;
}
@SuppressWarnings("unchecked")
private List<PacoteVO> carregarDadosPacotes(Date fecInicial, Date fecFinal, Date fecVentaInicial, Date fecVentaFinal, Date fecAlteracaoInicial, Date fecAlteracaoFinal) {
StringBuilder sQuery = new StringBuilder();
sQuery.append("SELECT VP.VENDAPACOTE_ID, VP.DATAPACOTE, VP.DATAVENDA, VP.SUBTOTAL, VP.TOTAL, VP.DESCONTO, VP.NUMOPERACION, P.PACOTE_ID, ")
@ -93,29 +91,9 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
.append("LEFT JOIN PUNTO_VENTA PV ON PV.PUNTOVENTA_ID = VP.PUNTOVENTA_ID ")
.append("LEFT JOIN TARIFA_VENDA_PACOTE TVP ON TVP.VENDAPACOTE_ID = VP.VENDAPACOTE_ID ")
.append("LEFT JOIN BOLETO B ON B.BOLETO_ID = TVP.BOLETO_ID ")
.append("WHERE (B.BOLETO_ID IS NULL OR B.INDSTATUSBOLETO = 'V') ")
.append("AND VP.SITUACAO != :situacaoPacote ");
.append("WHERE (B.BOLETO_ID IS NULL OR B.INDSTATUSBOLETO = 'V') ");
if(fecInicial != null) {
sQuery.append("AND VP.DATAPACOTE >= :fecInicial ");
}
if(fecFinal != null) {
sQuery.append("AND VP.DATAPACOTE <= :fecFinal ");
}
if(fecVentaInicial != null) {
sQuery.append("AND VP.DATAVENDA >= :fecVentaInicial ");
}
if(fecVentaFinal != null) {
sQuery.append("AND VP.DATAVENDA <= :fecVentaFinal ");
}
if(fecAlteracaoInicial != null) {
sQuery.append("AND VP.FECMODIF >= :fecAlteracaoInicial ");
}
if(fecAlteracaoFinal != null) {
sQuery.append("AND VP.FECMODIF <= :fecAlteracaoFinal ");
}
adicionarFiltros(sQuery, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
sQuery.append("GROUP BY VP.VENDAPACOTE_ID, VP.DATAPACOTE, VP.DATAVENDA, VP.SUBTOTAL, VP.TOTAL, ")
.append("VP.DESCONTO, VP.NUMOPERACION, P.PACOTE_ID, P.NOMPACOTE, P.DESCPACOTE, E.NOMBEMPRESA, ")
@ -149,50 +127,34 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
.addScalar("INDENCARGOVENTA", BooleanType.INSTANCE);
query.setResultTransformer(new DatosTicketResultTransformer());
query.setParameter("situacaoPacote", SituacaoVendaPacote.RESERVA.getShortValue());
if(fecInicial != null) {
query.setParameter("fecInicial", fecInicial, DateType.INSTANCE);
}
if(fecFinal != null) {
query.setParameter("fecFinal", fecFinal, DateType.INSTANCE);
}
if(fecVentaInicial != null) {
query.setParameter("fecVentaInicial", fecVentaInicial, TimestampType.INSTANCE);
}
if(fecVentaFinal != null) {
query.setParameter("fecVentaFinal", fecVentaFinal, TimestampType.INSTANCE);
}
if(fecAlteracaoInicial != null) {
query.setParameter("fecAlteracaoInicial", fecAlteracaoInicial, TimestampType.INSTANCE);
}
if(fecAlteracaoFinal != null) {
query.setParameter("fecAlteracaoFinal", fecAlteracaoFinal, TimestampType.INSTANCE);
}
adicionarFiltros(query, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
return query.list();
}
private void carregarDadosPagamento(List<PacoteVO> pacotes) {
@SuppressWarnings("unchecked")
private void carregarDadosPagamento(List<PacoteVO> pacotes, Date fecInicial, Date fecFinal, Date fecVentaInicial, Date fecVentaFinal, Date fecAlteracaoInicial, Date fecAlteracaoFinal) {
StringBuilder sQuery = new StringBuilder();
sQuery.append("SELECT PFP.PACOTEFORMAPAGO_ID, PFP.VALOR, PFP.VENDAPACOTE_ID, FP.FORMAPAGO_ID, FP.DESCPAGO, CT.TIPOTARJETA, CT.NUMAUTORIZACION, CT.CANTPARCELAS, ")
.append("NC.NOTACREDITOVENDAPACOTE_ID, VPC.NUMOPERACION AS NUMOPERACAOPACOTECANCELAMENTO, CT.NOMBTITULAR, CT.FECOPERACION, CT.NUMTARJETA, CT.DESCOPERADORACARTAO, ")
.append("FP.TIPO_PAGO, CDP.CAJADIVERSOSPAGO_ID ")
.append("FROM PACOTE_FORMAPAGO PFP ")
.append("JOIN FORMA_PAGO FP ON FP.FORMAPAGO_ID = PFP.FORMAPAGO_ID ")
.append("LEFT JOIN CAJA_DIVERSOS CD ON CD.VENDAPACOTE_ID = PFP.VENDAPACOTE_ID ")
.append("LEFT JOIN CAJA_DIVERSOS_PAGO CDP ON CDP.CAJADIVERSOS_ID = CD.CAJADIVERSOS_ID ")
.append("LEFT JOIN CAJA_TARJETA CT ON CT.CAJATARJETA_ID = CDP.CAJATARJETA_ID ")
.append("LEFT JOIN NOTA_CREDITO_VENDA_PACOTE NC ON NC.VENDAPACOTEPAGAMENTO_ID = PFP.VENDAPACOTE_ID ")
.append("LEFT JOIN VENDA_PACOTE VPC ON NC.VENDAPACOTECANCELAMENTO_ID = VPC.VENDAPACOTE_ID ")
.append("WHERE PFP.VENDAPACOTE_ID IN (:vendapacoteIds) ")
.append("ORDER BY PFP.VENDAPACOTE_ID");
.append("NC.NOTACREDITOVENDAPACOTE_ID, VPC.NUMOPERACION AS NUMOPERACAOPACOTECANCELAMENTO, CT.NOMBTITULAR, CT.FECOPERACION, CT.NUMTARJETA, CT.DESCOPERADORACARTAO, ")
.append("FP.TIPO_PAGO, CDP.CAJADIVERSOSPAGO_ID, OCD.OCD_ID, OCD.NUMOPERACION AS NUMOPERACION_OCD ")
.append("FROM PACOTE_FORMAPAGO PFP ")
.append("JOIN FORMA_PAGO FP ON FP.FORMAPAGO_ID = PFP.FORMAPAGO_ID ")
.append("LEFT JOIN CAJA_DIVERSOS CD ON CD.VENDAPACOTE_ID = PFP.VENDAPACOTE_ID ")
.append("LEFT JOIN CAJA_DIVERSOS_PAGO CDP ON CDP.CAJADIVERSOS_ID = CD.CAJADIVERSOS_ID ")
.append("LEFT JOIN CAJA_TARJETA CT ON CT.CAJATARJETA_ID = CDP.CAJATARJETA_ID ")
.append("LEFT JOIN NOTA_CREDITO_VENDA_PACOTE NC ON NC.NOTACREDITOVENDAPACOTE_ID = PFP.NOTACREDITOVENDAPACOTE_ID ")
.append("LEFT JOIN OCD OCD ON OCD.OCD_ID = PFP.OCD_ID ")
.append("LEFT JOIN VENDA_PACOTE VPC ON NC.VENDAPACOTECANCELAMENTO_ID = VPC.VENDAPACOTE_ID ")
.append("LEFT JOIN VENDA_PACOTE VP ON VP.VENDAPACOTE_ID = PFP.VENDAPACOTE_ID ")
.append("WHERE 1=1 ");
adicionarFiltros(sQuery, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
sQuery.append("ORDER BY VP.VENDAPACOTE_ID");
SQLQuery query = getSession().createSQLQuery(sQuery.toString())
.addScalar("PACOTEFORMAPAGO_ID", LongType.INSTANCE)
.addScalar("CAJADIVERSOSPAGO_ID", LongType.INSTANCE)
.addScalar("VALOR", BigDecimalType.INSTANCE)
.addScalar("VENDAPACOTE_ID", LongType.INSTANCE)
.addScalar("FORMAPAGO_ID", IntegerType.INSTANCE)
@ -206,10 +168,12 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
.addScalar("FECOPERACION", DateType.INSTANCE)
.addScalar("NUMTARJETA", StringType.INSTANCE)
.addScalar("DESCOPERADORACARTAO", StringType.INSTANCE)
.addScalar("TIPO_PAGO", IntegerType.INSTANCE);
.addScalar("TIPO_PAGO", IntegerType.INSTANCE)
.addScalar("OCD_ID", LongType.INSTANCE)
.addScalar("NUMOPERACION_OCD", StringType.INSTANCE);
query.setResultTransformer(new DatosPagamentoResultTransformer());
query.setParameterList("vendapacoteIds", getVendapacoteIds(pacotes));
adicionarFiltros(query, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
List<PagamentoVO> pagamentos = query.list();
for (PacoteVO pacote : pacotes) {
@ -217,7 +181,6 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
for (PagamentoVO pagamento : pagamentos) {
if(pagamento.getVendapacoteId().equals(pacote.getVendapacoteId())) {
flag = 0;
if(pacote.getFormaspagamento() == null) {
pacote.setFormaspagamento(new ArrayList<PagamentoVO>());
@ -239,6 +202,68 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
}
}
/**
* Adiciona os filtros na query
* @param query
* @param fecInicial
* @param fecFinal
* @param fecVentaInicial
* @param fecVentaFinal
* @param fecAlteracaoInicial
* @param fecAlteracaoFinal
*/
private void adicionarFiltros(SQLQuery query, Date fecInicial, Date fecFinal, Date fecVentaInicial, Date fecVentaFinal, Date fecAlteracaoInicial, Date fecAlteracaoFinal) {
query.setParameter("situacaoPacote", SituacaoVendaPacote.RESERVA.getShortValue());
if(fecInicial != null) {
query.setParameter("fecInicial", fecInicial, DateType.INSTANCE);
}
if(fecFinal != null) {
query.setParameter("fecFinal", fecFinal, DateType.INSTANCE);
}
if(fecVentaInicial != null) {
query.setParameter("fecVentaInicial", fecVentaInicial, TimestampType.INSTANCE);
}
if(fecVentaFinal != null) {
query.setParameter("fecVentaFinal", fecVentaFinal, TimestampType.INSTANCE);
}
if(fecAlteracaoInicial != null) {
query.setParameter("fecAlteracaoInicial", fecAlteracaoInicial, TimestampType.INSTANCE);
}
if(fecAlteracaoFinal != null) {
query.setParameter("fecAlteracaoFinal", fecAlteracaoFinal, TimestampType.INSTANCE);
}
}
private void adicionarFiltros(StringBuilder sQuery, Date fecInicial, Date fecFinal, Date fecVentaInicial, Date fecVentaFinal, Date fecAlteracaoInicial, Date fecAlteracaoFinal) {
sQuery.append("AND VP.SITUACAO != :situacaoPacote ");
if(fecInicial != null) {
sQuery.append("AND VP.DATAPACOTE >= :fecInicial ");
}
if(fecFinal != null) {
sQuery.append("AND VP.DATAPACOTE <= :fecFinal ");
}
if(fecVentaInicial != null) {
sQuery.append("AND VP.DATAVENDA >= :fecVentaInicial ");
}
if(fecVentaFinal != null) {
sQuery.append("AND VP.DATAVENDA <= :fecVentaFinal ");
}
if(fecAlteracaoInicial != null) {
sQuery.append("AND VP.FECMODIF >= :fecAlteracaoInicial ");
}
if(fecAlteracaoFinal != null) {
sQuery.append("AND VP.FECMODIF <= :fecAlteracaoFinal ");
}
}
private boolean isPagamentoDeposito(PagamentoVO pagamento) {
return TipoFormapago.DEPOSITO.equals(pagamento.getTipoFormapago());
}
@ -252,7 +277,8 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
}
private void carregarDadosServico(List<PacoteVO> pacotes) {
@SuppressWarnings("unchecked")
private void carregarDadosServico(List<PacoteVO> pacotes, Date fecInicial, Date fecFinal, Date fecVentaInicial, Date fecVentaFinal, Date fecAlteracaoInicial, Date fecAlteracaoFinal) {
StringBuilder sQuery = new StringBuilder();
sQuery.append("SELECT DISTINCT VP.VENDAPACOTE_ID, B.FECHORVIAJE, B.ORIGEN_ID, CONCAT(CONCAT(ORI.CVEPARADA,' - '),ORI.DESCPARADA) AS ORIGEM, CONCAT(CONCAT(DES.CVEPARADA,' - '),DES.DESCPARADA) AS DESTINO ")
.append("FROM VENDA_PACOTE VP ")
@ -261,7 +287,9 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
.append("JOIN BOLETO B ON B.BOLETO_ID = TVP.BOLETO_ID ")
.append("JOIN PARADA ORI ON ORI.PARADA_ID = B.ORIGEN_ID ")
.append("JOIN PARADA DES ON DES.PARADA_ID = B.DESTINO_ID ")
.append("WHERE VP.VENDAPACOTE_ID IN (:vendapacoteIds) ");
.append("WHERE 1=1 ");
adicionarFiltros(sQuery, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
SQLQuery query = getSession().createSQLQuery(sQuery.toString())
.addScalar("VENDAPACOTE_ID", LongType.INSTANCE)
@ -271,7 +299,7 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
.addScalar("DESTINO", StringType.INSTANCE);
query.setResultTransformer(new DatosServicoResultTransformer());
query.setParameterList("vendapacoteIds", getVendapacoteIds(pacotes));
adicionarFiltros(query, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
List<ServicoVO> servicos = query.list();
for (PacoteVO pacote : pacotes) {
@ -284,32 +312,36 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
}
}
private void carregarDadosCliente(List<PacoteVO> pacotes) {
@SuppressWarnings("unchecked")
private void carregarDadosCliente(List<PacoteVO> pacotes, Date fecInicial, Date fecFinal, Date fecVentaInicial, Date fecVentaFinal, Date fecAlteracaoInicial, Date fecAlteracaoFinal) {
StringBuilder sQuery = new StringBuilder();
sQuery.append("SELECT DISTINCT VP.VENDAPACOTE_ID, CP.RAZAO_SOCIAL, CP.CPF_CNPJ, CP.TIPO_PESSOA, CP.DESCEMAIL, CP.DESCTELEFONE, CP.DESCFAX, CP.CEP, CP.ENDERECO, CP.NUMERO, CP.COMPLEMENTO, CP.PAIS, CP.ESTADO, CP.CIDADE, CP.BAIRRO ")
.append("FROM CLIENTE_PACOTE CP ")
.append("JOIN VENDA_PACOTE VP ON CP.CLIENTEPACOTE_ID = VP.CLIENTEPACOTE_ID ")
.append("WHERE VP.VENDAPACOTE_ID IN (:vendapacoteIds) ");
sQuery.append("SELECT VP.VENDAPACOTE_ID, C.NOMBCLIENTE, C.APELLIDOPATERNO, C.APELLIDOMATERNO, C.NUMTELEFONO, C.DESCCORREO, C.NUMIDENTIFICAUNO, ")
.append("CD.DESCCALLE, CD.DESCCALLECOMP, CD.DESCCOLONIA, CD.DESCIUDAD, CD.NUMINTERIOR, CD.CODPOSTAL, CD.DESESTADO ")
.append("FROM CLIENTE C ")
.append("JOIN VENDA_PACOTE VP ON VP.CLIENTE_ID = C.CLIENTE_ID ")
.append("LEFT JOIN CLIENTE_DIRECCION CD ON CD.CLIENTE_ID = C.CLIENTE_ID ")
.append("WHERE 1=1 ");
adicionarFiltros(sQuery, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
SQLQuery query = getSession().createSQLQuery(sQuery.toString())
.addScalar("VENDAPACOTE_ID", LongType.INSTANCE)
.addScalar("RAZAO_SOCIAL", StringType.INSTANCE)
.addScalar("CPF_CNPJ", StringType.INSTANCE)
.addScalar("TIPO_PESSOA", IntegerType.INSTANCE)
.addScalar("DESCEMAIL", StringType.INSTANCE)
.addScalar("DESCTELEFONE", StringType.INSTANCE)
.addScalar("DESCFAX", StringType.INSTANCE)
.addScalar("CEP", StringType.INSTANCE)
.addScalar("ENDERECO", StringType.INSTANCE)
.addScalar("NUMERO", StringType.INSTANCE)
.addScalar("COMPLEMENTO", StringType.INSTANCE)
.addScalar("PAIS", StringType.INSTANCE)
.addScalar("ESTADO", StringType.INSTANCE)
.addScalar("CIDADE", StringType.INSTANCE)
.addScalar("BAIRRO", StringType.INSTANCE);
.addScalar("NOMBCLIENTE", StringType.INSTANCE)
.addScalar("APELLIDOPATERNO", StringType.INSTANCE)
.addScalar("APELLIDOMATERNO", StringType.INSTANCE)
.addScalar("NUMIDENTIFICAUNO", StringType.INSTANCE)
.addScalar("DESCCORREO", StringType.INSTANCE)
.addScalar("NUMTELEFONO", StringType.INSTANCE)
.addScalar("CODPOSTAL", StringType.INSTANCE)
.addScalar("DESCCALLE", StringType.INSTANCE)
.addScalar("NUMINTERIOR", StringType.INSTANCE)
.addScalar("DESCCALLECOMP", StringType.INSTANCE)
.addScalar("DESESTADO", StringType.INSTANCE)
.addScalar("DESCIUDAD", StringType.INSTANCE)
.addScalar("DESCCOLONIA", StringType.INSTANCE);
query.setResultTransformer(new DatosClientePacoteResultTransformer());
query.setParameterList("vendapacoteIds", getVendapacoteIds(pacotes));
adicionarFiltros(query, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
List<ClientePacoteVO> clientesPacotes = query.list();
for (PacoteVO pacote : pacotes) {
@ -321,14 +353,17 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
}
}
private void carregarDadosPassageiros(List<PacoteVO> pacotes) {
@SuppressWarnings("unchecked")
private void carregarDadosPassageiros(List<PacoteVO> pacotes, Date fecInicial, Date fecFinal, Date fecVentaInicial, Date fecVentaFinal, Date fecAlteracaoInicial, Date fecAlteracaoFinal) {
StringBuilder sQuery = new StringBuilder();
sQuery.append("SELECT DISTINCT VP.VENDAPACOTE_ID, TVP.TARIFAVENDAPACOTE_ID, TVP.NOMEPASSAGEIRO, CONCAT(CONCAT(TVP.TIPODOC,' - '), TVP.DOCUMENTO) AS DOCUMENTO, B.NUMASIENTO, C.CATEGORIA_ID, C.DESCCATEGORIA, B.BOLETO_ID,C.CVECATEGORIA ")
.append("FROM VENDA_PACOTE VP ")
.append("JOIN TARIFA_VENDA_PACOTE TVP ON TVP.VENDAPACOTE_ID = VP.VENDAPACOTE_ID ")
.append("LEFT JOIN BOLETO B ON B.BOLETO_ID = TVP.BOLETO_ID ")
.append("LEFT JOIN CATEGORIA C ON C.CATEGORIA_ID = B.CATEGORIA_ID ")
.append("WHERE VP.VENDAPACOTE_ID IN (:vendapacoteIds) ");
.append("WHERE 1=1 ");
adicionarFiltros(sQuery, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
SQLQuery query = getSession().createSQLQuery(sQuery.toString())
.addScalar("VENDAPACOTE_ID", LongType.INSTANCE)
@ -342,7 +377,7 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
.addScalar("DESCCATEGORIA", StringType.INSTANCE);
query.setResultTransformer(new DatosPassageiroResultTransformer());
query.setParameterList("vendapacoteIds", getVendapacoteIds(pacotes));
adicionarFiltros(query, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
List<PassageiroVO> passageiros = query.list();
for (PacoteVO pacote : pacotes) {
@ -357,13 +392,15 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
}
}
private void carregarDadosEnderecoApanhe(List<PacoteVO> pacotes) {
@SuppressWarnings("unchecked")
private void carregarDadosEnderecoApanhe(List<PacoteVO> pacotes, Date fecInicial, Date fecFinal, Date fecVentaInicial, Date fecVentaFinal, Date fecAlteracaoInicial, Date fecAlteracaoFinal) {
StringBuilder sQuery = new StringBuilder();
sQuery.append("SELECT DISTINCT VP.VENDAPACOTE_ID, EA.LOCAL, EA.DESCHOTEL, EA.CEP, EA.ENDERECO, EA.NUMERO, EA.COMPLEMENTO, EA.CIDADE, EA.BAIRRO, EA.REFERENCIA ")
.append("FROM ENDERECO_APANHE EA ")
.append("JOIN VENDA_PACOTE VP ON EA.VENDAPACOTE_ID = VP.VENDAPACOTE_ID ")
.append("WHERE VP.VENDAPACOTE_ID IN (:vendapacoteIds) ")
.append("AND EA.ACTIVO = 1");
.append("WHERE EA.ACTIVO = 1 ");
adicionarFiltros(sQuery, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
SQLQuery query = getSession().createSQLQuery(sQuery.toString())
.addScalar("VENDAPACOTE_ID", LongType.INSTANCE)
@ -378,7 +415,7 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
.addScalar("DESCHOTEL", StringType.INSTANCE);
query.setResultTransformer(new DatosEnderecoApanheResultTransformer());
query.setParameterList("vendapacoteIds", getVendapacoteIds(pacotes));
adicionarFiltros(query, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
List<EnderecoApanheVO> enderecosApanhe = query.list();
for (PacoteVO pacote : pacotes) {
@ -390,26 +427,17 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
}
}
private List<Long> getVendapacoteIds(List<PacoteVO> pacotes) {
if(vendapacoteIds == null || vendapacoteIds.isEmpty()) {
vendapacoteIds = new ArrayList<Long>();
for (PacoteVO pacoteVO : pacotes) {
vendapacoteIds.add(pacoteVO.getVendapacoteId());
}
}
return vendapacoteIds;
}
private void carregarDadosItemPacotes(List<PacoteVO> pacotes) {
@SuppressWarnings("unchecked")
private void carregarDadosItemPacotes(List<PacoteVO> pacotes, Date fecInicial, Date fecFinal, Date fecVentaInicial, Date fecVentaFinal, Date fecAlteracaoInicial, Date fecAlteracaoFinal) {
StringBuilder sQuery = new StringBuilder();
sQuery.append("SELECT DISTINCT IA.DESCITEMADICIONAL, VP.VENDAPACOTE_ID, PI.ITEMADICIONAL_ID ")
.append("FROM ITEM_ADICIONAL IA ")
.append("JOIN PACOTE_ITEM PI ON IA.ITEMADICIONAL_ID = PI.ITEMADICIONAL_ID ")
.append("JOIN PACOTE P ON P.PACOTE_ID = PI.PACOTE_ID ")
.append("JOIN VENDA_PACOTE VP ON VP.PACOTE_ID = P.PACOTE_ID ")
.append("WHERE IA.ACTIVO = 1 ")
.append("AND VP.VENDAPACOTE_ID IN (:vendapacoteIds) ");
.append("WHERE IA.ACTIVO = 1 ");
adicionarFiltros(sQuery, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
SQLQuery query = getSession().createSQLQuery(sQuery.toString())
.addScalar("DESCITEMADICIONAL", StringType.INSTANCE)
@ -417,7 +445,7 @@ public class BusquedaDatosTicketHibernateDAO extends GenericHibernateDAO<Pacote,
.addScalar("ITEMADICIONAL_ID", LongType.INSTANCE);
query.setResultTransformer(new DatosItemAdicionalResultTransformer());
query.setParameterList("vendapacoteIds", getVendapacoteIds(pacotes));
adicionarFiltros(query, fecInicial, fecFinal, fecVentaInicial, fecVentaFinal, fecAlteracaoInicial, fecAlteracaoFinal);
List<ItemAdicionalVO> itens = query.list();
for (PacoteVO pacote : pacotes) {

View File

@ -0,0 +1,20 @@
package com.rjconsultores.ventaboletos.vo.busquedapacotes;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name = "ocd")
@XmlType(propOrder = { "voucherocd" })
public class OcdPacoteVO {
private String voucherocd;
public String getVoucherocd() {
return voucherocd;
}
public void setVoucherocd(String voucherocd) {
this.voucherocd = voucherocd;
}
}

View File

@ -13,7 +13,7 @@ import com.rjconsultores.ventaboletos.enums.TipoFormapago;
import com.rjconsultores.ventaboletos.vo.caja.PagamentoCartaoVO;
@XmlRootElement(name = "pagamento")
@XmlType(propOrder = { "formapagamento", "moeda", "valor", "notacredito", "cartao", "dadosBancarios" })
@XmlType(propOrder = { "formapagamento", "moeda", "valor", "notacredito", "ocd", "cartao", "dadosBancarios" })
public class PagamentoVO {
private String formapagamento;
@ -25,6 +25,7 @@ public class PagamentoVO {
private NotaCreditoVendaPacoteVO notacredito;
private TipoFormapago tipoFormapago;
private Long cajadiversospagoId;
private OcdPacoteVO ocd;
private List<DadosBancarioVO> dadosBancarios;
@ -139,4 +140,12 @@ public class PagamentoVO {
this.dadosBancarios = dadosBancarios;
}
public OcdPacoteVO getOcd() {
return ocd;
}
public void setOcd(OcdPacoteVO ocd) {
this.ocd = ocd;
}
}

View File

@ -7,7 +7,6 @@ import java.util.Map;
import org.hibernate.transform.ResultTransformer;
import com.rjconsultores.ventaboletos.enums.TipoPessoa;
import com.rjconsultores.ventaboletos.vo.busquedapacotes.ClientePacoteVO;
public class DatosClientePacoteResultTransformer implements ResultTransformer {
@ -49,20 +48,33 @@ public class DatosClientePacoteResultTransformer implements ResultTransformer {
}
private void setDatosClientePacote(ClientePacoteVO clientePacote, Map<String, Object> tupleMap) {
clientePacote.setRazaoSocial((String) tupleMap.get("RAZAO_SOCIAL"));
clientePacote.setCpfCnpj((String) tupleMap.get("CPF_CNPJ"));
clientePacote.setTipoPessoa(TipoPessoa.getTipoPessoa((Integer) tupleMap.get("TIPO_PESSOA")).toString());
clientePacote.setDescemail((String) tupleMap.get("DESCEMAIL"));
StringBuilder sRazaoSocial = new StringBuilder();
if(tupleMap.get("NOMBCLIENTE") != null) {
sRazaoSocial.append(tupleMap.get("NOMBCLIENTE"));
}
if(tupleMap.get("APELLIDOPATERNO") != null) {
if(sRazaoSocial.length() > 0) {
sRazaoSocial.append(" ");
}
sRazaoSocial.append(tupleMap.get("APELLIDOPATERNO"));
}
if(tupleMap.get("APELLIDOMATERNO") != null) {
if(sRazaoSocial.length() > 0) {
sRazaoSocial.append(" ");
}
sRazaoSocial.append(tupleMap.get("APELLIDOMATERNO"));
}
clientePacote.setRazaoSocial(sRazaoSocial.toString());
clientePacote.setCpfCnpj((String) tupleMap.get("NUMIDENTIFICAUNO"));
clientePacote.setDescemail((String) tupleMap.get("DESCCORREO"));
clientePacote.setDesctelefone((String) tupleMap.get("DESCTELEFONE"));
clientePacote.setDescfax((String) tupleMap.get("DESCFAX"));
clientePacote.setCep((String) tupleMap.get("CEP"));
clientePacote.setEndereco((String) tupleMap.get("ENDERECO"));
clientePacote.setNumero((String) tupleMap.get("NUMERO"));
clientePacote.setComplemento((String) tupleMap.get("COMPLEMENTO"));
clientePacote.setPais((String) tupleMap.get("PAIS"));
clientePacote.setEstado((String) tupleMap.get("ESTADO"));
clientePacote.setCidade((String) tupleMap.get("CIDADE"));
clientePacote.setBairro((String) tupleMap.get("BAIRRO"));
clientePacote.setCep((String) tupleMap.get("CODPOSTAL"));
clientePacote.setEndereco((String) tupleMap.get("DESCCALLE"));
clientePacote.setNumero((String) tupleMap.get("NUMINTERIOR"));
clientePacote.setComplemento((String) tupleMap.get("DESCCALLECOMP"));
clientePacote.setEstado((String) tupleMap.get("DESESTADO"));
clientePacote.setCidade((String) tupleMap.get("DESCIUDAD"));
clientePacote.setBairro((String) tupleMap.get("DESCCOLONIA"));
}
}

View File

@ -2,6 +2,8 @@ package com.rjconsultores.ventaboletos.vo.busquedapacotes.transformer;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@ -10,7 +12,9 @@ import java.util.Map;
import org.hibernate.transform.ResultTransformer;
import com.rjconsultores.ventaboletos.enums.TipoFormapago;
import com.rjconsultores.ventaboletos.utilerias.OcdUtil;
import com.rjconsultores.ventaboletos.vo.busquedapacotes.NotaCreditoVendaPacoteVO;
import com.rjconsultores.ventaboletos.vo.busquedapacotes.OcdPacoteVO;
import com.rjconsultores.ventaboletos.vo.busquedapacotes.PagamentoVO;
import com.rjconsultores.ventaboletos.vo.caja.PagamentoCartaoVO;
@ -26,17 +30,25 @@ public class DatosPagamentoResultTransformer implements ResultTransformer {
for(Object objmap : mapList ) {
Map<String, Object> tupleMap = (Map<String, Object>) objmap;
Long pacoteformapagoId = (Long) tupleMap.get("PACOTEFORMAPAGO_ID");
Long cajadiversospagoId = (Long) tupleMap.get("CAJADIVERSOSPAGO_ID");
if(!pacotes.containsKey(pacoteformapagoId)){
if(!pacotes.containsKey(cajadiversospagoId)){
PagamentoVO pagamento = new PagamentoVO();
setDatosPacote(pagamento, tupleMap);
pacotes.put(pacoteformapagoId, pagamento);
if(pagamento.getValor().signum() >= 0) {
pacotes.put(cajadiversospagoId, pagamento);
}
}
}
List<PagamentoVO> pacotesList = new ArrayList<PagamentoVO>();
pacotesList.addAll(pacotes.values());
Collections.sort(pacotesList, new Comparator<PagamentoVO>() {
@Override
public int compare(PagamentoVO o1, PagamentoVO o2) {
return o1.getVendapacoteId().compareTo(o2.getVendapacoteId());
}
});
return pacotesList;
}
@ -76,11 +88,20 @@ public class DatosPagamentoResultTransformer implements ResultTransformer {
pagamento.setCartao(cartao);
}
if(tupleMap.get("NOTACREDITOVENDAPACOTE_ID") != null) {
NotaCreditoVendaPacoteVO notacredito = new NotaCreditoVendaPacoteVO();
notacredito.setVouchernotacredito(((Long) tupleMap.get("NOTACREDITOVENDAPACOTE_ID")).toString());
notacredito.setNumoperacaopacotecancelamento((String) tupleMap.get("NUMOPERACAOPACOTECANCELAMENTO"));
pagamento.setNotacredito(notacredito);
if(isVentaNotaCredito(pagamento.getTipoFormapago())) {
if(tupleMap.get("NOTACREDITOVENDAPACOTE_ID") != null) {
NotaCreditoVendaPacoteVO notacredito = new NotaCreditoVendaPacoteVO();
notacredito.setVouchernotacredito(((Long) tupleMap.get("NOTACREDITOVENDAPACOTE_ID")).toString());
notacredito.setNumoperacaopacotecancelamento((String) tupleMap.get("NUMOPERACAOPACOTECANCELAMENTO"));
pagamento.setNotacredito(notacredito);
}
if(tupleMap.get("OCD_ID") != null) {
String voucherocd = OcdUtil.generaLocalizadorOCD((String) tupleMap.get("NUMOPERACION_OCD"), (Long) tupleMap.get("OCD_ID"));
OcdPacoteVO ocdPacote = new OcdPacoteVO();
ocdPacote.setVoucherocd(voucherocd);
pagamento.setOcd(ocdPacote);
}
}
}
@ -93,4 +114,8 @@ public class DatosPagamentoResultTransformer implements ResultTransformer {
return TipoFormapago.DEBITO.equals(tipoFormapago);
}
private boolean isVentaNotaCredito(TipoFormapago tipoFormapago) {
return TipoFormapago.NOTA_CREDITO.equals(tipoFormapago);
}
}