Importação Clientes - Número fidelidade por empresa (fixed bug #5011)
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@34368 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
bf5bd7f559
commit
bb664b6f46
|
@ -6,7 +6,7 @@ import java.util.List;
|
|||
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||
|
||||
public interface ImportacaoClientesService {
|
||||
public List<String[]> lerArquivo(Reader reader);
|
||||
public String[] lerArquivo(Reader reader, List<Empresa> empresas);
|
||||
|
||||
public String[] salvarClientes(List<String[]> clientes, List<Empresa> empresa);
|
||||
public void salvarClientes(String[] cliente);
|
||||
}
|
||||
|
|
|
@ -28,54 +28,101 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
|
|||
private TarjetaFidelidadService tarjetaFidelidadService;
|
||||
private static Logger log = Logger.getLogger(ImportacaoClientesServiceImpl.class);
|
||||
|
||||
private Integer index;
|
||||
private StringBuilder qtdeGravados;
|
||||
private StringBuilder erros;
|
||||
|
||||
private Integer inseridos;
|
||||
private Integer atualizados;
|
||||
|
||||
private List<Empresa> empresas;
|
||||
|
||||
@Override
|
||||
public List<String[]> lerArquivo(Reader reader) {
|
||||
public String[] lerArquivo(Reader reader, List<Empresa> empresas) {
|
||||
String linha = null;
|
||||
index = 0;
|
||||
qtdeGravados = new StringBuilder();
|
||||
erros = new StringBuilder();
|
||||
|
||||
inseridos = 0;
|
||||
atualizados = 0;
|
||||
|
||||
this.empresas = empresas;
|
||||
|
||||
List<String[]> listaClientes = new ArrayList<String[]>();
|
||||
try {
|
||||
BufferedReader leitor = new BufferedReader(reader);
|
||||
|
||||
while ((linha = leitor.readLine()) != null) {
|
||||
String[] dados = linha.split(",");
|
||||
listaClientes.add(dados);
|
||||
String[] dados = linha.replace("\"", "").split(",");
|
||||
salvarClientes(dados);
|
||||
index++;
|
||||
}
|
||||
|
||||
leitor.close();
|
||||
|
||||
qtdeGravados.append("Gravados ").append(inseridos + atualizados).append(" clientes de ").append(index).append(" importados.\n");
|
||||
qtdeGravados.append("Atualizados ").append(atualizados).append(" clientes.\n");
|
||||
qtdeGravados.append("Inseridos ").append(inseridos).append(" novos clientes.");
|
||||
|
||||
String[] resultado = { qtdeGravados.toString(), erros.toString() };
|
||||
return resultado;
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error(e);
|
||||
String[] resultado = { e.toString() };
|
||||
return resultado;
|
||||
}
|
||||
|
||||
return listaClientes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] salvarClientes(List<String[]> clientes, List<Empresa> empresas) {
|
||||
StringBuilder qtdeGravados = new StringBuilder();
|
||||
StringBuilder erros = new StringBuilder();
|
||||
public void salvarClientes(String[] cliente) {
|
||||
try {
|
||||
String nomeCliente = cliente[1].replace("\"", "").toUpperCase();
|
||||
|
||||
Integer inseridos = 0;
|
||||
Integer atualizados = 0;
|
||||
for (int i = 0; i < clientes.size(); i++) {
|
||||
String[] cliente = clientes.get(i);
|
||||
try {
|
||||
String nomeCliente = cliente[1].replace("\"", "").toUpperCase();
|
||||
Cliente clienteGravar = clienteService.buscarPorNumeroFidelidade(Integer.parseInt(cliente[0]));
|
||||
if (clienteGravar == null) {
|
||||
clienteGravar = new Cliente();
|
||||
clienteGravar.setNombcliente(nomeCliente);
|
||||
clienteGravar.setNumIdentificaUno(cliente[3]);
|
||||
|
||||
Cliente clienteGravar = clienteService.buscarPorNumeroFidelidade(Integer.parseInt(cliente[0]));
|
||||
if (clienteGravar == null) {
|
||||
clienteGravar = new Cliente();
|
||||
clienteGravar.setNombcliente(nomeCliente);
|
||||
clienteGravar.setNumIdentificaUno(cliente[3]);
|
||||
TarjetaFidelidad tarjetaFidelidad = new TarjetaFidelidad();
|
||||
tarjetaFidelidad.setActivo(Boolean.TRUE);
|
||||
tarjetaFidelidad.setFecmodif(Calendar.getInstance().getTime());
|
||||
tarjetaFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
// cast para Integer para remover 0 a esquerda:
|
||||
tarjetaFidelidad.setNumTarjeta(Integer.parseInt(cliente[0]));
|
||||
|
||||
List<ClienteFidelidad> ls = new ArrayList<ClienteFidelidad>();
|
||||
|
||||
for (Empresa e : empresas){
|
||||
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);
|
||||
ls.add(clienteFidelidad);
|
||||
}
|
||||
|
||||
clienteGravar.setListClienteFidelidad(ls);
|
||||
|
||||
TarjetaFidelidad tarjetaFidelidad = new TarjetaFidelidad();
|
||||
tarjetaFidelidad.setActivo(Boolean.TRUE);
|
||||
tarjetaFidelidad.setFecmodif(Calendar.getInstance().getTime());
|
||||
tarjetaFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
// cast para Integer para remover 0 a esquerda:
|
||||
tarjetaFidelidad.setNumTarjeta(Integer.parseInt(cliente[0]));
|
||||
|
||||
List<ClienteFidelidad> ls = new ArrayList<ClienteFidelidad>();
|
||||
|
||||
for (Empresa e : empresas){
|
||||
clienteService.suscribir(clienteGravar);
|
||||
inseridos = inseridos + 1;
|
||||
} 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);
|
||||
|
@ -83,55 +130,19 @@ public class ImportacaoClientesServiceImpl implements ImportacaoClientesService
|
|||
clienteFidelidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||
clienteFidelidad.setCliente(clienteGravar);
|
||||
clienteFidelidad.setEmpresa(e);
|
||||
ls.add(clienteFidelidad);
|
||||
clienteGravar.getListClienteFidelidad().add(clienteFidelidad);
|
||||
}
|
||||
|
||||
clienteGravar.setListClienteFidelidad(ls);
|
||||
|
||||
clienteService.suscribir(clienteGravar);
|
||||
inseridos = inseridos + 1;
|
||||
} 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.setNumIdentificaUno(cliente[3]);
|
||||
clienteService.actualizacion(clienteGravar);
|
||||
|
||||
atualizados = atualizados + 1;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
erros.append("Linha ").append(i).append(" do arquivo de clientes, erro: ").append(e.getCause().getCause()).append("\n");
|
||||
clienteGravar.setNombcliente(nomeCliente);
|
||||
clienteGravar.setNumIdentificaUno(cliente[3]);
|
||||
clienteService.actualizacion(clienteGravar);
|
||||
|
||||
log.error(e);
|
||||
atualizados = atualizados + 1;
|
||||
}
|
||||
}catch (Exception e) {
|
||||
erros.append("Linha ").append(index).append(" do arquivo de clientes, erro: ").append(e.getCause().getCause()).append("\n");
|
||||
|
||||
log.error(e);
|
||||
}
|
||||
|
||||
qtdeGravados.append("Gravados ").append(inseridos + atualizados).append(" clientes de ").append(clientes.size()).append(" importados.\n");
|
||||
qtdeGravados.append("Atualizados ").append(atualizados).append(" clientes.\n");
|
||||
qtdeGravados.append("Inseridos ").append(inseridos).append(" novos clientes.");
|
||||
|
||||
String[] resultado = { qtdeGravados.toString(), erros.toString() };
|
||||
|
||||
return resultado;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue