93 lines
3.7 KiB
Java
93 lines
3.7 KiB
Java
package com.rjconsultores.ventaboletos.dao.hibernate;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import org.hibernate.Query;
|
|
import org.hibernate.SessionFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
import org.springframework.stereotype.Repository;
|
|
|
|
import com.rjconsultores.ventaboletos.dao.NotaCreditoVendaPacoteDAO;
|
|
import com.rjconsultores.ventaboletos.entidad.CajaDiversos;
|
|
import com.rjconsultores.ventaboletos.entidad.CajaDiversosPago;
|
|
import com.rjconsultores.ventaboletos.entidad.CajaTarjeta;
|
|
import com.rjconsultores.ventaboletos.entidad.NotaCreditoVendaPacote;
|
|
import com.rjconsultores.ventaboletos.enums.SituacaoVendaPacote;
|
|
import com.rjconsultores.ventaboletos.vo.reembolsoocdnotacredito.ReembolsoOcdNotaCreditoVO;
|
|
|
|
@Repository("notaCreditoVendaPacoteDAO")
|
|
public class NotaCreditoVendaPacoteHibernateDAO extends GenericHibernateDAO<NotaCreditoVendaPacote, Integer>
|
|
implements NotaCreditoVendaPacoteDAO {
|
|
|
|
@Autowired
|
|
public NotaCreditoVendaPacoteHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
|
setSessionFactory(factory);
|
|
}
|
|
|
|
@SuppressWarnings("unchecked")
|
|
@Override
|
|
public List<ReembolsoOcdNotaCreditoVO> busquedaDatosReembolsoOcdNotaCreditoRS(Date fecInicial, Date fecFinal, Date fecPagamentoInicial, Date fecPagamentoFinal, Boolean indPago) {
|
|
|
|
Map<String, Object> params = new HashMap<String,Object>();
|
|
StringBuilder queryString = new StringBuilder("SELECT n FROM NotaCreditoVendaPacote n ");
|
|
queryString.append("LEFT JOIN FETCH n.ocdDatosPagamentoList ")
|
|
.append("LEFT JOIN FETCH n.vendapacotecancelamento vpc ")
|
|
.append("WHERE 1=1 ");
|
|
|
|
if (fecInicial != null) {
|
|
queryString.append("AND n.datanotacredito >= :fecInicial ");
|
|
params.put("fecInicial", fecInicial);
|
|
}
|
|
if (fecFinal != null) {
|
|
queryString.append("AND n.datanotacredito <= :fecFinal ");
|
|
params.put("fecFinal", fecFinal);
|
|
}
|
|
|
|
if (fecPagamentoInicial != null) {
|
|
queryString.append("AND n.datapagamento >= :fecPagamentoInicial ");
|
|
params.put("fecPagamentoInicial", fecPagamentoInicial);
|
|
}
|
|
if (fecPagamentoFinal != null) {
|
|
queryString.append("AND n.datapagamento <= :fecPagamentoFinal ");
|
|
params.put("fecPagamentoFinal", fecPagamentoFinal);
|
|
}
|
|
if (indPago != null) {
|
|
if (indPago) {
|
|
queryString.append("AND n.situacao = :indPago ");
|
|
} else {
|
|
queryString.append("AND (n.situacao != :indPago OR n.situacao IS NULL) ");
|
|
}
|
|
params.put("indPago", SituacaoVendaPacote.PAGO.getShortValue());
|
|
}
|
|
|
|
Query query = getSession().createQuery(queryString.toString());
|
|
for (String p : query.getNamedParameters()) {
|
|
query.setParameter(p, params.get(p));
|
|
}
|
|
|
|
List<ReembolsoOcdNotaCreditoVO> result = new ArrayList<ReembolsoOcdNotaCreditoVO>();
|
|
List<NotaCreditoVendaPacote> listNotaCredito = query.list();
|
|
for (NotaCreditoVendaPacote notaCredito :listNotaCredito) {
|
|
List<CajaTarjeta> cajaTarjetaList = new ArrayList<CajaTarjeta>();
|
|
List<CajaDiversos> listCajaDiversos = notaCredito.getCajaDiversosList();
|
|
for (CajaDiversos cajaDiversos : listCajaDiversos) {
|
|
List<CajaDiversosPago> listCajaDiversosPago = cajaDiversos.getCajaDiversosPagosList();
|
|
for (CajaDiversosPago cajaDiversosPago : listCajaDiversosPago) {
|
|
cajaTarjetaList.add(cajaDiversosPago.getCajaTarjeta());
|
|
}
|
|
}
|
|
ReembolsoOcdNotaCreditoVO vo = ReembolsoOcdNotaCreditoVO.builder().notaCredito(notaCredito)
|
|
.datosPagamento(notaCredito.getOcdDatosPagamentoList()).cajaTarjeta(cajaTarjetaList).build();
|
|
result.add(vo);
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
}
|