Importação NumFidelidade diferenciado por empresa (fixed bug #5162)

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@34620 d1611594-4594-4d17-8e1d-87c2c4800839
master
leonardo 2014-04-07 19:51:43 +00:00
parent 91168bca8d
commit 693d4a2a42
5 changed files with 32 additions and 52 deletions

View File

@ -9,7 +9,7 @@ public interface ClienteDAO extends GenericDAO<Cliente, Integer> {
public List<Cliente> buscar(String nombCliente); public List<Cliente> buscar(String nombCliente);
public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade); public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade, Empresa empresa);
public List<Cliente> buscarPorDocumento(String documento); public List<Cliente> buscarPorDocumento(String documento);
} }

View File

@ -42,12 +42,13 @@ public class ClienteHibernateDAO extends GenericHibernateDAO<Cliente, Integer>
} }
@Override @Override
public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade) { public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade, Empresa empresa) {
Criteria c = getSession().createCriteria(getPersistentClass()); Criteria c = getSession().createCriteria(getPersistentClass());
Criteria clienteFidelidad = null; Criteria clienteFidelidad = null;
clienteFidelidad = c.createCriteria("listClienteFidelidad"); clienteFidelidad = c.createCriteria("listClienteFidelidad");
clienteFidelidad.add(Restrictions.eq("activo", Boolean.TRUE)); clienteFidelidad.add(Restrictions.eq("activo", Boolean.TRUE));
clienteFidelidad.add(Restrictions.eq("empresa", empresa));
Criteria tarjetaFidelidad = null; Criteria tarjetaFidelidad = null;
tarjetaFidelidad = clienteFidelidad.createCriteria("tarjetaFidelidad"); tarjetaFidelidad = clienteFidelidad.createCriteria("tarjetaFidelidad");

View File

@ -13,7 +13,7 @@ public interface ClienteService extends GenericService<Cliente, Integer> {
public List<Cliente> buscar(String numCliente); public List<Cliente> buscar(String numCliente);
public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade); public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade, Empresa empresa);
public List<Cliente> buscarPorDocumento(String documento); public List<Cliente> buscarPorDocumento(String documento);
} }

View File

@ -67,8 +67,8 @@ public class ClienteServiceImpl implements ClienteService {
} }
@Override @Override
public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade) { public Cliente buscarPorNumeroFidelidade(Integer numeroFidelidade, Empresa empresa) {
return clienteDAO.buscarPorNumeroFidelidade(numeroFidelidade); return clienteDAO.buscarPorNumeroFidelidade(numeroFidelidade, empresa);
} }
@Override @Override

View File

@ -80,7 +80,9 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
try { try {
String nomeCliente = cliente[1].replace("\"", "").toUpperCase(); String nomeCliente = cliente[1].replace("\"", "").toUpperCase();
Cliente clienteGravar = clienteService.buscarPorNumeroFidelidade(Integer.parseInt(cliente[0])); for (Empresa e : empresas){
Cliente clienteGravar = clienteService.buscarPorNumeroFidelidade(Integer.parseInt(cliente[0]), e);
if (clienteGravar == null) { if (clienteGravar == null) {
clienteGravar = new Cliente(); clienteGravar = new Cliente();
clienteGravar.setNombcliente(nomeCliente); clienteGravar.setNombcliente(nomeCliente);
@ -95,7 +97,6 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
List<ClienteFidelidad> ls = new ArrayList<ClienteFidelidad>(); List<ClienteFidelidad> ls = new ArrayList<ClienteFidelidad>();
for (Empresa e : empresas){
ClienteFidelidad clienteFidelidad = new ClienteFidelidad(); ClienteFidelidad clienteFidelidad = new ClienteFidelidad();
clienteFidelidad.setTarjetaFidelidad(tarjetaFidelidad); clienteFidelidad.setTarjetaFidelidad(tarjetaFidelidad);
clienteFidelidad.setActivo(Boolean.TRUE); clienteFidelidad.setActivo(Boolean.TRUE);
@ -104,41 +105,19 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
clienteFidelidad.setCliente(clienteGravar); clienteFidelidad.setCliente(clienteGravar);
clienteFidelidad.setEmpresa(e); clienteFidelidad.setEmpresa(e);
ls.add(clienteFidelidad); ls.add(clienteFidelidad);
}
clienteGravar.setListClienteFidelidad(ls); clienteGravar.setListClienteFidelidad(ls);
clienteService.suscribir(clienteGravar); clienteService.suscribir(clienteGravar);
inseridos = inseridos + 1; inseridos = inseridos + 1;
} else { } else {
boolean possuiFidelidadeEmpresa;
for (Empresa e: empresas){
possuiFidelidadeEmpresa = false;
for (ClienteFidelidad cf : clienteGravar.getListClienteFidelidad()){
if (cf.getEmpresa() != null && 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.setNombcliente(nomeCliente);
clienteGravar.setNumIdentificaUno(cliente[3]); clienteGravar.setNumIdentificaUno(cliente[3]);
clienteService.actualizacion(clienteGravar); clienteService.actualizacion(clienteGravar);
atualizados = atualizados + 1; atualizados = atualizados + 1;
} }
}
}catch (Exception e) { }catch (Exception e) {
erros.append("Linha ").append(index).append(" do arquivo de clientes, erro: ").append(e.getCause().getCause()).append("\n"); erros.append("Linha ").append(index).append(" do arquivo de clientes, erro: ").append(e.getCause().getCause()).append("\n");