fixes bug #8371
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@66065 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
98755d5ceb
commit
7b757d5cc4
|
@ -10,6 +10,7 @@ import com.rjconsultores.ventaboletos.entidad.Empresa;
|
|||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||
import com.rjconsultores.ventaboletos.entidad.PtovtaTipoEstoque;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVentaVO;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -26,7 +27,7 @@ public interface PuntoVentaDAO extends GenericDAO<PuntoVenta, Integer> {
|
|||
|
||||
public List<PuntoVenta> buscaPuntoVentaParada(Parada parada);
|
||||
|
||||
public List<PuntoVenta> buscaPuntoVentaEmpresa(Empresa empresa);
|
||||
public List<PuntoVentaVO> buscaPuntoVentaEmpresaSemECF(Empresa empresa);
|
||||
|
||||
public List<PuntoVenta> buscarPuntoVentaSubordinados(PuntoVenta puntoVenta);
|
||||
|
||||
|
|
|
@ -8,16 +8,16 @@ import java.math.BigDecimal;
|
|||
import java.util.List;
|
||||
|
||||
import org.hibernate.Criteria;
|
||||
import org.hibernate.FetchMode;
|
||||
import org.hibernate.Query;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.SQLQuery;
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.hibernate.criterion.Criterion;
|
||||
import org.hibernate.criterion.MatchMode;
|
||||
import org.hibernate.criterion.Order;
|
||||
import org.hibernate.criterion.Projection;
|
||||
import org.hibernate.criterion.Restrictions;
|
||||
import org.hibernate.transform.AliasToBeanResultTransformer;
|
||||
import org.hibernate.type.IntegerType;
|
||||
import org.hibernate.type.StringType;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
@ -28,7 +28,7 @@ import com.rjconsultores.ventaboletos.entidad.Empresa;
|
|||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||
import com.rjconsultores.ventaboletos.entidad.PtovtaTipoEstoque;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||
import com.rjconsultores.ventaboletos.entidad.Usuario;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVentaVO;
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -109,13 +109,49 @@ public class PuntoVentaHibernateDAO extends GenericHibernateDAO<PuntoVenta, Inte
|
|||
return c.list();
|
||||
}
|
||||
|
||||
public List<PuntoVenta> buscaPuntoVentaEmpresa(Empresa empresa) {
|
||||
Criteria c = getSession().createCriteria(getPersistentClass());
|
||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||
c.add(Restrictions.eq("empresa", empresa));
|
||||
c.addOrder(Order.asc("nombpuntoventa"));
|
||||
public List<PuntoVentaVO> buscaPuntoVentaEmpresaSemECF(Empresa empresa) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(" select ");
|
||||
sb.append(" DISTINCT ");
|
||||
sb.append(" pvaux.PUNTOVENTA_ID as puntoventaId, ");
|
||||
sb.append(" pvaux.NOMBPUNTOVENTA as nombpuntoventa ");
|
||||
sb.append(" from ");
|
||||
sb.append(" PUNTO_VENTA pvaux ");
|
||||
sb.append(" join PTOVTA_EMPRESA PTOVTAE ");
|
||||
sb.append(" ON (PTOVTAE.PUNTOVENTA_ID = PVAUX.PUNTOVENTA_ID) ");
|
||||
sb.append(" where ");
|
||||
sb.append(" pvaux.PUNTOVENTA_ID not in ( ");
|
||||
sb.append(" SELECT ");
|
||||
sb.append(" DISTINCT pv.PUNTOVENTA_ID ");
|
||||
sb.append(" FROM ");
|
||||
sb.append(" PUNTO_VENTA pv ");
|
||||
sb.append(" INNER JOIN ");
|
||||
sb.append(" ESTACION E ");
|
||||
sb.append(" ON pv.PUNTOVENTA_ID = E .PUNTOVENTA_ID ");
|
||||
sb.append(" INNER JOIN ");
|
||||
sb.append(" ESTACION_IMPRESORA ei ");
|
||||
sb.append(" ON ei.ESTACION_ID = E .ESTACION_ID ");
|
||||
sb.append(" WHERE ");
|
||||
sb.append(" ( (ei.TIPOIMPRESSORA = 1 ");
|
||||
sb.append(" OR ei.TIPOIMPRESSORA = 2) ) ");
|
||||
sb.append(" AND ei.ACTIVO = 1 ");
|
||||
sb.append(" AND ei.EMPRESA_ID = :empresa_id ");
|
||||
sb.append(" /* ORDER BY PUNTOVENTA_ID*/ ");
|
||||
sb.append(" ) ");
|
||||
sb.append(" and PTOVTAE.EMPRESA_ID = :empresa_id ");
|
||||
sb.append(" and PTOVTAE.ACTIVO = 1 ");
|
||||
sb.append(" AND pvaux.ACTIVO = 1 ");
|
||||
sb.append(" AND pvaux.PUNTOVENTA_ID <> -1 ");
|
||||
sb.append(" ORDER BY ");
|
||||
sb.append(" pvaux.PUNTOVENTA_ID ");
|
||||
SQLQuery sql = getSession().createSQLQuery(sb.toString())
|
||||
.addScalar("puntoventaId", IntegerType.INSTANCE)
|
||||
.addScalar("nombpuntoventa", StringType.INSTANCE);
|
||||
sql.setInteger("empresa_id", empresa.getEmpresaId());
|
||||
sql.setResultTransformer(new AliasToBeanResultTransformer(PuntoVentaVO.class));
|
||||
List<PuntoVentaVO> puntosVenta = sql.list();
|
||||
return puntosVenta;
|
||||
|
||||
return c.list();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -291,7 +291,10 @@ public class PuntoVenta implements Serializable {
|
|||
public PuntoVenta(Integer puntoventaId) {
|
||||
this.puntoventaId = puntoventaId;
|
||||
}
|
||||
|
||||
public PuntoVenta(Integer puntoventaId, String nombpuntoventa ) {
|
||||
this.puntoventaId = puntoventaId;
|
||||
this.nombpuntoventa = nombpuntoventa;
|
||||
}
|
||||
public Integer getPuntoventaId() {
|
||||
return puntoventaId;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
package com.rjconsultores.ventaboletos.entidad;
|
||||
|
||||
public class PuntoVentaVO {
|
||||
|
||||
private Integer puntoventaId;
|
||||
public String nombpuntoventa;
|
||||
|
||||
public String getNombpuntoventa() {
|
||||
return nombpuntoventa;
|
||||
}
|
||||
|
||||
public void setNombpuntoventa(String nombpuntoventa) {
|
||||
this.nombpuntoventa = nombpuntoventa;
|
||||
}
|
||||
|
||||
public Integer getPuntoventaId() {
|
||||
return puntoventaId;
|
||||
}
|
||||
|
||||
public void setPuntoventaId(Integer puntoventaId) {
|
||||
this.puntoventaId = puntoventaId;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return nombpuntoventa;
|
||||
}
|
||||
}
|
|
@ -9,6 +9,7 @@ import java.util.List;
|
|||
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVentaVO;
|
||||
import com.rjconsultores.ventaboletos.entidad.Usuario;
|
||||
import com.rjconsultores.ventaboletos.exception.BusinessException;
|
||||
import com.rjconsultores.ventaboletos.exception.IntegracionException;
|
||||
|
@ -44,5 +45,5 @@ public interface PuntoVentaService {
|
|||
|
||||
public List<PuntoVenta> buscarPuntosVentaPorUsuario(Usuario usuario);
|
||||
|
||||
public List<PuntoVenta> buscaPuntoVentaEmpresa(Empresa empresa);
|
||||
public List<PuntoVentaVO> buscaPuntoVentaEmpresaSemECF(Empresa empresa);
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ import com.rjconsultores.ventaboletos.entidad.Conferencia;
|
|||
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||
import com.rjconsultores.ventaboletos.entidad.LogConferencia;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVentaVO;
|
||||
import com.rjconsultores.ventaboletos.enums.IndStatusBoleto;
|
||||
import com.rjconsultores.ventaboletos.enums.comissao.BoletoStatusComissao;
|
||||
import com.rjconsultores.ventaboletos.exception.BusinessException;
|
||||
|
@ -629,60 +630,68 @@ public class ConferenciaComissaoServiceImpl implements ConferenciaComissaoServic
|
|||
|
||||
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
|
||||
public void generacionAutomaticaConferencia() {
|
||||
List<PuntoVenta> lsPuntoVenta;
|
||||
List<PuntoVentaVO> lsPuntoVenta;
|
||||
List<ConferenciaComissaoVO> lsConferenciaComissao;
|
||||
Conferencia conferencia;
|
||||
// Perocorrer todas as empresas cadastradas
|
||||
List<Empresa> lsEmpresa = empresaService.obtenerTodos();
|
||||
for (Empresa empresa : lsEmpresa) {
|
||||
lsPuntoVenta = puntoVentaService.buscaPuntoVentaEmpresa(empresa);
|
||||
for (PuntoVenta puntoVenta : lsPuntoVenta) {
|
||||
lsPuntoVenta = puntoVentaService.buscaPuntoVentaEmpresaSemECF(empresa);
|
||||
for (PuntoVentaVO puntoVentaVO : lsPuntoVenta) {
|
||||
//TODO - Apagar comentários após finalizar testes mantis 8371
|
||||
//if(empresa.getEmpresaId() == 20){
|
||||
// System.out.println("Teste");
|
||||
//}
|
||||
// Valida se cada ponto de venda tem ao menos uma ecf, caso tenha aborta o processo.
|
||||
Integer qtdadeECF = quantidadeECFPorPuntoVenta(empresa.getEmpresaId(), puntoVenta.getPuntoventaId());
|
||||
if (qtdadeECF >= 1) {
|
||||
log.info("Existe ECF para o Ponto de Venda " + puntoVenta.getNombpuntoventa() + " da empresa " + empresa.getNombempresa() + " no dia " + DateUtil.getYesterdayDate());
|
||||
continue;
|
||||
}
|
||||
//Integer qtdadeECF = quantidadeECFPorPuntoVenta(empresa.getEmpresaId(), puntoVenta.getPuntoventaId());
|
||||
//if (qtdadeECF >= 1) {
|
||||
// log.info("Existe ECF para o Ponto de Venda " + puntoVenta.getNombpuntoventa() + " da empresa " + empresa.getNombempresa() + " no dia " + DateUtil.getYesterdayDate());
|
||||
// continue;
|
||||
//}
|
||||
//if(empresa.getEmpresaId() == 20 && puntoVentaVO.getPuntoventaId()==636){
|
||||
// System.out.println("Teste");
|
||||
//}
|
||||
try {
|
||||
PuntoVenta puntoVenta = new PuntoVenta(puntoVentaVO.getPuntoventaId(), puntoVentaVO.getNombpuntoventa());
|
||||
// Busca o Movimento para o dia de ontem, caso não exista aborta para este ponto de venda
|
||||
lsConferenciaComissao = carregarConferenciaComissao(null, empresa, puntoVenta, DateUtil.getYesterdayDate());
|
||||
if ((CollectionUtils.isEmpty(lsConferenciaComissao)) || (!CollectionUtils.isEmpty(lsConferenciaComissao.get(0).getDias()) && lsConferenciaComissao.get(0).getDias().size() < 1)) {
|
||||
log.info("Não há conferência para o Ponto de Venda " + puntoVenta.getNombpuntoventa() + " da empresa " + empresa.getNombempresa() + " no dia " + DateUtil.getYesterdayDateString());
|
||||
log.info("Não há conferência para o Ponto de Venda " + puntoVentaVO.getNombpuntoventa() + " da empresa " + empresa.getNombempresa() + " no dia " + DateUtil.getYesterdayDateString());
|
||||
continue;
|
||||
}
|
||||
|
||||
// Confirma chegada do malote
|
||||
conferencia = obtenerConferenciaDataMovimento(DateUtil.getYesterdayDate(), puntoVenta.getPuntoventaId(), empresa.getEmpresaId());
|
||||
conferencia = obtenerConferenciaDataMovimento(DateUtil.getYesterdayDate(), puntoVentaVO.getPuntoventaId(), empresa.getEmpresaId());
|
||||
if (conferencia == null) {
|
||||
conferencia = new Conferencia();
|
||||
conferencia.setActivo(Boolean.TRUE);
|
||||
conferencia.setFecmodif(new Date());
|
||||
conferencia.setUsuarioId(1);
|
||||
conferencia.setEmpresa(empresa);
|
||||
conferencia.setPuntoVenta(new PuntoVenta( puntoVenta.getPuntoventaId()));
|
||||
conferencia.setPuntoVenta(new PuntoVenta( puntoVentaVO.getPuntoventaId()));
|
||||
conferencia.setDatamovimento(DateUtil.getYesterdayDate());
|
||||
}
|
||||
else{
|
||||
//Se existe a conferência com status conferido para esta empresa e ponto de venda no dia de ontem, aborta.
|
||||
if(Boolean.TRUE == conferencia.getIndconferido()){
|
||||
log.info("Já existe conferência com status conferido para o Ponto de Venda " + puntoVenta.getNombpuntoventa() + " da empresa " + empresa.getNombempresa() + " no dia " + DateUtil.getYesterdayDateString());
|
||||
log.info("Já existe conferência com status conferido para o Ponto de Venda " + puntoVentaVO.getNombpuntoventa() + " da empresa " + empresa.getNombempresa() + " no dia " + DateUtil.getYesterdayDateString());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
//Valida se existe alguma pendência que impede o fechamento.
|
||||
if(!validaConferencia(conferencia)){
|
||||
log.info("Será necessário realizar Conferência Manual para o Ponto de Venda " + puntoVenta.getNombpuntoventa() + " da empresa " + empresa.getNombempresa() + " no dia " + DateUtil.getYesterdayDateString());
|
||||
log.info("Não há bilhetes para conferir ou será necessário realizar Conferência Manual para o Ponto de Venda " + puntoVentaVO.getNombpuntoventa() + " da empresa " + empresa.getNombempresa() + " no dia " + DateUtil.getYesterdayDateString());
|
||||
continue;
|
||||
}
|
||||
|
||||
//Confirma chegada do malote
|
||||
conferencia = confirmarChegadaMalote(conferencia);
|
||||
log.info("Realizado confirmação de chegada do malote para o Ponto de Venda " + puntoVenta.getNombpuntoventa() + " da empresa " + empresa.getNombempresa() + " no dia " + DateUtil.getYesterdayDateString());
|
||||
log.info("Realizado confirmação de chegada do malote para o Ponto de Venda " + puntoVentaVO.getNombpuntoventa() + " da empresa " + empresa.getNombempresa() + " no dia " + DateUtil.getYesterdayDateString());
|
||||
|
||||
// Encerra Movimento
|
||||
encerrarMovimentoDiario(conferencia);
|
||||
log.info("Conferência de Movimento para o Ponto de Venda " + puntoVenta.getNombpuntoventa() + " da empresa " + empresa.getNombempresa() + " no dia " + DateUtil.getYesterdayDateString() + "realizada com sucesso.");
|
||||
log.info("Conferência de Movimento para o Ponto de Venda " + puntoVentaVO.getNombpuntoventa() + " da empresa " + empresa.getNombempresa() + " no dia " + DateUtil.getYesterdayDateString() + "realizada com sucesso.");
|
||||
} catch (BusinessException e) {
|
||||
log.error("Erro ao buscar/validar conferência para o dia " + DateUtil.getYesterdayDateString(), e);
|
||||
continue;
|
||||
|
|
|
@ -30,6 +30,7 @@ import com.rjconsultores.ventaboletos.entidad.Estacion;
|
|||
import com.rjconsultores.ventaboletos.entidad.FormaPagoDet;
|
||||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||
import com.rjconsultores.ventaboletos.entidad.PuntoVentaVO;
|
||||
import com.rjconsultores.ventaboletos.entidad.Usuario;
|
||||
import com.rjconsultores.ventaboletos.exception.BusinessException;
|
||||
import com.rjconsultores.ventaboletos.exception.IntegracionException;
|
||||
|
@ -735,8 +736,8 @@ public class PuntoVentaServiceImpl implements PuntoVentaService {
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<PuntoVenta> buscaPuntoVentaEmpresa(Empresa empresa) {
|
||||
return puntoVentaDAO.buscaPuntoVentaEmpresa(empresa);
|
||||
public List<PuntoVentaVO> buscaPuntoVentaEmpresaSemECF(Empresa empresa) {
|
||||
return puntoVentaDAO.buscaPuntoVentaEmpresaSemECF(empresa);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue