diff --git a/src/com/rjconsultores/ventaboletos/dao/ClienteDAO.java b/src/com/rjconsultores/ventaboletos/dao/ClienteDAO.java index 315120687..f067a429c 100644 --- a/src/com/rjconsultores/ventaboletos/dao/ClienteDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/ClienteDAO.java @@ -9,7 +9,7 @@ public interface ClienteDAO extends GenericDAO { public List buscar(String nombCliente); - public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade, List empresas); + public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade); public List buscarPorDocumento(String documento); } diff --git a/src/com/rjconsultores/ventaboletos/dao/TarjetaFidelidadDAO.java b/src/com/rjconsultores/ventaboletos/dao/TarjetaFidelidadDAO.java index a6d76f044..22aecc32b 100644 --- a/src/com/rjconsultores/ventaboletos/dao/TarjetaFidelidadDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/TarjetaFidelidadDAO.java @@ -7,6 +7,7 @@ package com.rjconsultores.ventaboletos.dao; import com.rjconsultores.ventaboletos.entidad.TarjetaFidelidad; import com.rjconsultores.ventaboletos.entidad.TarjetaFidelidadCuenta; + import java.util.List; /** @@ -16,6 +17,6 @@ import java.util.List; public interface TarjetaFidelidadDAO extends GenericDAO{ public List obtenerCantDesc(); - + public TarjetaFidelidad obtenerNumTarjeta(Integer numTarjeta); } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/ClienteHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/ClienteHibernateDAO.java index dcde2524e..3a00d753e 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/ClienteHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/ClienteHibernateDAO.java @@ -42,20 +42,20 @@ public class ClienteHibernateDAO extends GenericHibernateDAO } @Override - public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade, List empresas) { + public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade) { Criteria c = getSession().createCriteria(getPersistentClass()); Criteria clienteFidelidad = null; clienteFidelidad = c.createCriteria("listClienteFidelidad"); clienteFidelidad.add(Restrictions.eq("activo", Boolean.TRUE)); - clienteFidelidad.add(Restrictions.in("empresa", empresas)); - + Criteria tarjetaFidelidad = null; tarjetaFidelidad = clienteFidelidad.createCriteria("tarjetaFidelidad"); tarjetaFidelidad.add(Restrictions.eq("numTarjeta", numeroFidelidade)); tarjetaFidelidad.add(Restrictions.eq("activo", Boolean.TRUE)); - return (Cliente) c.uniqueResult(); + List clientes = c.list(); + return clientes.size() > 0 ? clientes.get(0) : null; } @Override diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/TarjetaFidelidadHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/TarjetaFidelidadHibernateDAO.java index c0fd20b5d..465e0a43d 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/TarjetaFidelidadHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/TarjetaFidelidadHibernateDAO.java @@ -12,6 +12,7 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.Iterator; import java.util.List; + import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.SessionFactory; @@ -44,6 +45,13 @@ public class TarjetaFidelidadHibernateDAO extends GenericHibernateDAO obtenerCantDesc() { /*Criteria c = getSession().createCriteria(getPersistentClass()); diff --git a/src/com/rjconsultores/ventaboletos/service/ClienteService.java b/src/com/rjconsultores/ventaboletos/service/ClienteService.java index 365e5cb98..ed6f524b7 100644 --- a/src/com/rjconsultores/ventaboletos/service/ClienteService.java +++ b/src/com/rjconsultores/ventaboletos/service/ClienteService.java @@ -13,7 +13,7 @@ public interface ClienteService extends GenericService { public List buscar(String numCliente); - public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade, List empresas); + public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade); public List buscarPorDocumento(String documento); } diff --git a/src/com/rjconsultores/ventaboletos/service/TarjetaFidelidadService.java b/src/com/rjconsultores/ventaboletos/service/TarjetaFidelidadService.java index a7362d1bd..d51daf1b1 100644 --- a/src/com/rjconsultores/ventaboletos/service/TarjetaFidelidadService.java +++ b/src/com/rjconsultores/ventaboletos/service/TarjetaFidelidadService.java @@ -7,6 +7,7 @@ package com.rjconsultores.ventaboletos.service; import com.rjconsultores.ventaboletos.entidad.TarjetaFidelidad; import com.rjconsultores.ventaboletos.entidad.TarjetaFidelidadCuenta; + import java.util.List; /** @@ -16,4 +17,5 @@ import java.util.List; public interface TarjetaFidelidadService extends GenericService{ public List obtenerCantDesc(); + public TarjetaFidelidad obtenerNumTarjeta(Integer numTarjeta); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ClienteServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ClienteServiceImpl.java index 3507d5cb6..824a90d7b 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ClienteServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ClienteServiceImpl.java @@ -67,8 +67,8 @@ public class ClienteServiceImpl implements ClienteService { } @Override - public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade, List empresas) { - return clienteDAO.buscarPorNumeroFidelidade(numeroFidelidade, empresas); + public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade) { + return clienteDAO.buscarPorNumeroFidelidade(numeroFidelidade); } @Override diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ImportacaoClientesServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ImportacaoClientesServiceImpl.java index 8202d4832..43d6e29a6 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ImportacaoClientesServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ImportacaoClientesServiceImpl.java @@ -16,6 +16,7 @@ import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.TarjetaFidelidad; import com.rjconsultores.ventaboletos.service.ClienteService; import com.rjconsultores.ventaboletos.service.ImportacaoClientesService; +import com.rjconsultores.ventaboletos.service.TarjetaFidelidadService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; @Service("importacaoClientesService") @@ -23,6 +24,8 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService @Autowired private ClienteService clienteService; + @Autowired + private TarjetaFidelidadService tarjetaFidelidadService; private static Logger log = Logger.getLogger(ImportacaoClientesServiceImpl.class); @Override @@ -57,7 +60,7 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService try { String nomeCliente = cliente[1].replace("\"", "").toUpperCase(); - Cliente clienteGravar = clienteService.buscarPorNumeroFidelidade(Integer.parseInt(cliente[0]), empresas); + Cliente clienteGravar = clienteService.buscarPorNumeroFidelidade(Integer.parseInt(cliente[0])); if (clienteGravar == null) { clienteGravar = new Cliente(); clienteGravar.setNombcliente(nomeCliente); @@ -88,6 +91,28 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService clienteService.suscribir(clienteGravar); inseridos = inseridos + 1; } else { + boolean possuiFidelidadeEmpresa; + for (Empresa e: empresas){ + possuiFidelidadeEmpresa = false; + for (ClienteFidelidad cf : clienteGravar.getListClienteFidelidad()){ + if (cf.getEmpresa().equals(e)){ + possuiFidelidadeEmpresa = true; + break; + } + } + if (!possuiFidelidadeEmpresa){ + TarjetaFidelidad tarjetaFidelidad = tarjetaFidelidadService.obtenerNumTarjeta(Integer.parseInt(cliente[0])); + + ClienteFidelidad clienteFidelidad = new ClienteFidelidad(); + clienteFidelidad.setTarjetaFidelidad(tarjetaFidelidad); + clienteFidelidad.setActivo(Boolean.TRUE); + clienteFidelidad.setFecmodif(Calendar.getInstance().getTime()); + clienteFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + clienteFidelidad.setCliente(clienteGravar); + clienteFidelidad.setEmpresa(e); + clienteGravar.getListClienteFidelidad().add(clienteFidelidad); + } + } clienteGravar.setNombcliente(nomeCliente); clienteGravar.setNumIdentificaUno(cliente[3]); clienteService.actualizacion(clienteGravar); diff --git a/src/com/rjconsultores/ventaboletos/service/impl/TarjetaFidelidadServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/TarjetaFidelidadServiceImpl.java index 67854f0d5..9e0c53fc1 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/TarjetaFidelidadServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/TarjetaFidelidadServiceImpl.java @@ -10,8 +10,10 @@ import com.rjconsultores.ventaboletos.entidad.TarjetaFidelidad; import com.rjconsultores.ventaboletos.entidad.TarjetaFidelidadCuenta; import com.rjconsultores.ventaboletos.service.TarjetaFidelidadService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; + import java.util.Calendar; import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -34,6 +36,10 @@ public class TarjetaFidelidadServiceImpl implements TarjetaFidelidadService { return fidelidadDAO.obtenerID(id); } + public TarjetaFidelidad obtenerNumTarjeta(Integer numTarjeta){ + return fidelidadDAO.obtenerNumTarjeta(numTarjeta); + } + @Transactional public TarjetaFidelidad suscribir(TarjetaFidelidad entidad) { entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());