package gcom.gui.cadastro.cliente;
import gcom.cadastro.cliente.Cliente;
import gcom.cadastro.cliente.ClienteEndereco;
import gcom.cadastro.cliente.ClienteFone;
import gcom.cadastro.cliente.ClienteImovel;
import gcom.cadastro.cliente.ClienteTipo;
import gcom.cadastro.cliente.FiltroClienteEndereco;
import gcom.cadastro.cliente.FiltroClienteImovel;
import gcom.cadastro.cliente.FiltroClienteTipo;
import gcom.cadastro.cliente.OrgaoExpedidorRg;
import gcom.cadastro.cliente.PessoaSexo;
import gcom.cadastro.cliente.Profissao;
import gcom.cadastro.cliente.RamoAtividade;
import gcom.cadastro.descricaogenerica.DescricaoGenerica;
import gcom.cadastro.descricaogenerica.FiltroDescricaoGenerica;
import gcom.cadastro.geografico.UnidadeFederacao;
import gcom.cadastro.imovel.Imovel;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.integracao.webservice.spc.ConsultaWebServiceTest;
import gcom.seguranca.AtributoGrupo;
import gcom.seguranca.ConsultaCdl;
import gcom.seguranca.FiltroConsultaCadastroCdl;
import gcom.seguranca.acesso.OperacaoEfetuada;
import gcom.seguranca.acesso.PermissaoEspecial;
import gcom.seguranca.acesso.usuario.FiltroUsuarioPemissaoEspecial;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.seguranca.acesso.usuario.UsuarioPermissaoEspecial;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.DynaValidatorForm;
/**
* Description of the Class
*
* @author Rodrigo
*/
public class AtualizarClienteAction extends GcomAction {
/**
* Description of the Method
*
* @param actionMapping
* Description of the Parameter
* @param actionForm
* Description of the Parameter
* @param httpServletRequest
* Description of the Parameter
* @param httpServletResponse
* Description of the Parameter
* @return Description of the Return Value
*/
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
// localiza o action no objeto actionmapping
ActionForward retorno = actionMapping.findForward("telaSucesso");
HttpSession sessao = httpServletRequest.getSession(false);
// Pega o form do cliente
DynaValidatorForm clienteActionForm = (DynaValidatorForm) actionForm;
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
Fachada fachada = Fachada.getInstancia();
Short tipoPessoa = (Short) clienteActionForm.get("tipoPessoa");
String tipoPessoaForm = tipoPessoa.toString();
FiltroClienteTipo filtroClienteTipo = new FiltroClienteTipo();
filtroClienteTipo.adicionarParametro(new ParametroSimples(
FiltroClienteTipo.ID, tipoPessoaForm));
tipoPessoa = ((ClienteTipo) fachada.pesquisar(filtroClienteTipo,
ClienteTipo.class.getName()).iterator().next())
.getIndicadorPessoaFisicaJuridica();
Short indicadorUsoNomeFantasiaConta = ConstantesSistema.NAO;
if (clienteActionForm.get("indicadorExibicaoNomeConta") != null) {
String indicadorExibicaoNomeConta = null;
indicadorExibicaoNomeConta = (String) clienteActionForm.get(
"indicadorExibicaoNomeConta").toString();
if (indicadorExibicaoNomeConta
.equals(Cliente.INDICADOR_NOME_FANTASIA.toString())) {
indicadorUsoNomeFantasiaConta = ConstantesSistema.SIM;
}
}
// Verifica o destino porque se o usu�rio tentar concluir o processo
// nesta p�gina, n�o � necess�rio verificar a tela de confirma��o
// if (destinoPagina != null && !destinoPagina.trim().equals("")) {
if (tipoPessoa != null
&& tipoPessoa.equals(ClienteTipo.INDICADOR_PESSOA_JURIDICA)) {
// Vai para Pessoa Juridica mas tem dados existentes em pessoa fisica
String cpf = (String) clienteActionForm.get("cpf");
String rg = (String) clienteActionForm.get("rg");
String dataEmissao = (String) clienteActionForm.get("dataEmissao");
Integer idOrgaoExpedidor = (Integer) clienteActionForm.get("idOrgaoExpedidor");
Integer idUnidadeFederacao = (Integer) clienteActionForm.get("idUnidadeFederacao");
String dataNascimento = (String) clienteActionForm.get("dataNascimento");
Integer idProfissao = (Integer) clienteActionForm.get("idProfissao");
Integer idPessoaSexo = (Integer) clienteActionForm.get("idPessoaSexo");
if( ( idPessoaSexo != null && idPessoaSexo != ConstantesSistema.NUMERO_NAO_INFORMADO )
|| ( cpf != null && !cpf.trim().equalsIgnoreCase("") )
|| ( rg != null && !rg.trim().equalsIgnoreCase("") )
|| ( dataEmissao != null && !dataEmissao.trim().equalsIgnoreCase("") )
|| ( dataNascimento != null && !dataNascimento.trim().equalsIgnoreCase("") )
|| ( idOrgaoExpedidor != null && idOrgaoExpedidor != ConstantesSistema.NUMERO_NAO_INFORMADO )
|| ( idUnidadeFederacao != null && idUnidadeFederacao != ConstantesSistema.NUMERO_NAO_INFORMADO )
|| ( idProfissao != null && idProfissao != ConstantesSistema.NUMERO_NAO_INFORMADO ) ){
// Limpar todo o conte�do da p�gina de pessoa f�sica
clienteActionForm.set("cpf", "");
clienteActionForm.set("rg", "");
clienteActionForm.set("dataEmissao", "");
clienteActionForm.set("idOrgaoExpedidor", new Integer(ConstantesSistema.NUMERO_NAO_INFORMADO));
clienteActionForm.set("idUnidadeFederacao", new Integer(ConstantesSistema.NUMERO_NAO_INFORMADO));
clienteActionForm.set("dataNascimento", "");
clienteActionForm.set("idProfissao", new Integer(ConstantesSistema.NUMERO_NAO_INFORMADO));
clienteActionForm.set("idPessoaSexo", new Integer(ConstantesSistema.NUMERO_NAO_INFORMADO));
}
}else if (tipoPessoa != null
&& tipoPessoa.equals(ClienteTipo.INDICADOR_PESSOA_FISICA)) {
// Vai para Pessoa Fisica mas tem dados existentes em pessoa juridica
String cnpj = (String) clienteActionForm.get("cnpj");
Integer idRamoAtividade = (Integer) clienteActionForm.get("idRamoAtividade");
String codigoClienteResponsavel = (String) clienteActionForm.get("codigoClienteResponsavel");
if( (cnpj != null && !cnpj.trim().equalsIgnoreCase("") )
|| (idRamoAtividade != null && idRamoAtividade != ConstantesSistema.NUMERO_NAO_INFORMADO)
|| (codigoClienteResponsavel != null && !codigoClienteResponsavel.trim().equalsIgnoreCase(""))) {
// Limpa os dados da p�gina de pessoa jur�dica
clienteActionForm.set("cnpj", "");
clienteActionForm.set("idRamoAtividade", new Integer(ConstantesSistema.NUMERO_NAO_INFORMADO));
clienteActionForm.set("codigoClienteResponsavel", "");
clienteActionForm.set("nomeClienteResponsavel", "");
}
}
// Pega o cliente que foi selecionado para atualiza��o
Cliente clienteAtualizacao = (Cliente) sessao
.getAttribute("clienteAtualizacao");
// Pega a cole��o de endere�os do cliente
Collection colecaoEnderecos = (Collection) sessao
.getAttribute("colecaoEnderecos");
// Pega a cole��o de telefones do cliente
Collection colecaoFones = (Collection) sessao
.getAttribute("colecaoClienteFone");
// Cria o objeto do cliente para ser inserido
String nome = ((String) clienteActionForm.get("nome")).toUpperCase();
/**
* Autor: Paulo Diniz
* Data: 11/07/2011
* [RR2011061059]
* [UC0009]
*/
if(clienteAtualizacao.getIndicadorUso() != null && clienteAtualizacao.getIndicadorUso().intValue() == 2){
//[FS0013] Verificar permissão especial alterar cliente inativo
FiltroUsuarioPemissaoEspecial filtroUsuarioPemissaoEspecial = new FiltroUsuarioPemissaoEspecial();
filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.USUARIO_ID, usuario.getId()));
filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.PERMISSAO_ESPECIAL_ID, PermissaoEspecial.ALTERAR_CLIENTE_INATIVO));
Collection colecaoUsuarioPermisao = fachada.pesquisar(filtroUsuarioPemissaoEspecial, UsuarioPermissaoEspecial.class.getName());
if (colecaoUsuarioPermisao == null || colecaoUsuarioPermisao.isEmpty()) {
throw new ActionServletException(
"atencao.usuario.sem.permissao.para.alteracao.cliente.inativo");
}
}
/**
* Autor: Mariana Victor
* Data: 28/12/2010
* RM_3320 - [FS0010] Verificar Duplicidade de cliente
*/
if (this.getSistemaParametro().getIndicadorDuplicidadeCliente().toString()
.equals(ConstantesSistema.SIM.toString())) {
FiltroUsuarioPemissaoEspecial filtroUsuarioPemissaoEspecial = new FiltroUsuarioPemissaoEspecial();
filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.USUARIO_ID, usuario.getId()));
filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.PERMISSAO_ESPECIAL_ID, PermissaoEspecial.INSERIR_CLIENTE_COM_MESMO_NOME_E_ENDERECO));
Collection colecaoUsuarioPermisao = fachada.pesquisar(filtroUsuarioPemissaoEspecial, UsuarioPermissaoEspecial.class.getName());
if (colecaoUsuarioPermisao == null || colecaoUsuarioPermisao.isEmpty()) {
FiltroClienteEndereco filtroClienteEndereco = new FiltroClienteEndereco();
filtroClienteEndereco.adicionarParametro(new ParametroSimples(FiltroClienteEndereco.NOME, nome.toUpperCase()));
filtroClienteEndereco.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTipo");
filtroClienteEndereco.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.logradouro.logradouroTitulo");
filtroClienteEndereco.adicionarCaminhoParaCarregamentoEntidade("enderecoReferencia");
filtroClienteEndereco.adicionarCaminhoParaCarregamentoEntidade("logradouroBairro.bairro.municipio.unidadeFederacao");
filtroClienteEndereco.adicionarCaminhoParaCarregamentoEntidade("logradouroCep.cep");
filtroClienteEndereco.adicionarCaminhoParaCarregamentoEntidade("perimetroInicial.logradouroTipo");
filtroClienteEndereco.adicionarCaminhoParaCarregamentoEntidade("perimetroInicial.logradouroTitulo");
filtroClienteEndereco.adicionarCaminhoParaCarregamentoEntidade("perimetroFinal.logradouroTipo");
filtroClienteEndereco.adicionarCaminhoParaCarregamentoEntidade("perimetroFinal.logradouroTitulo");
filtroClienteEndereco.adicionarCaminhoParaCarregamentoEntidade("enderecoTipo");
filtroClienteEndereco.adicionarCaminhoParaCarregamentoEntidade("cliente");
Collection<ClienteEndereco> colecaoClienteEndereco = fachada.pesquisar(filtroClienteEndereco, ClienteEndereco.class.getName());
if (colecaoClienteEndereco != null && !colecaoClienteEndereco.isEmpty()){
Iterator iterator = colecaoClienteEndereco.iterator();
while (iterator.hasNext()) {
ClienteEndereco clienteEnderecoIterator = (ClienteEndereco) iterator.next();
Iterator iteratorEnderecos = colecaoEnderecos.iterator();
while (iteratorEnderecos.hasNext()) {
ClienteEndereco clienteEndereco = (ClienteEndereco) iteratorEnderecos
.next();
if (clienteEndereco.getEnderecoFormatado().equals(
clienteEnderecoIterator.getEnderecoFormatado())
&& !clienteAtualizacao.getId().equals(
clienteEnderecoIterator.getCliente().getId())) {
throw new ActionServletException("atencao.duplicidade.cliente", null,
"Cliente");
}
}
}
}
}
}
/**
* Autor: Mariana Victor
* Data: 28/12/2010
* RM_3320 - [FS0011] Verificar Nome de Cliente com menos de 10 posi��es
*/
if (this.getSistemaParametro().getIndicadorNomeMenorDez().toString()
.equals(ConstantesSistema.NAO.toString())) {
FiltroUsuarioPemissaoEspecial filtroUsuarioPemissaoEspecial = new FiltroUsuarioPemissaoEspecial();
filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.USUARIO_ID, usuario.getId()));
filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.PERMISSAO_ESPECIAL_ID, PermissaoEspecial.INSERIR_NOMES_COM_MENOS_DE_10_CARACTERES));
Collection colecaoUsuarioPermisao = fachada.pesquisar(filtroUsuarioPemissaoEspecial, UsuarioPermissaoEspecial.class.getName());
if (colecaoUsuarioPermisao == null || colecaoUsuarioPermisao.isEmpty()) {
String nomeFormatado= nome.replaceAll(" ", "");
if (nomeFormatado.length() < 10) {
throw new ActionServletException("atencao.nome.sobrenome.cliente.menos.dez.posicoes",
null, nome);
}
}
}
/**
* Autor: Mariana Victor
* Data: 28/12/2010
* RM_3320 - [FS0012] Verificar Nome de Cliente com Descri��o Gen�rica
*/
if (this.getSistemaParametro().getIndicadorNomeClienteGenerico().toString()
.equals(ConstantesSistema.NAO.toString())) {
FiltroUsuarioPemissaoEspecial filtroUsuarioPemissaoEspecial = new FiltroUsuarioPemissaoEspecial();
filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.USUARIO_ID, usuario.getId()));
filtroUsuarioPemissaoEspecial.adicionarParametro(new ParametroSimples(FiltroUsuarioPemissaoEspecial.PERMISSAO_ESPECIAL_ID, PermissaoEspecial.INSERIR_NOME_CLIENTE_GENERICO));
Collection colecaoUsuarioPermisao = fachada.pesquisar(filtroUsuarioPemissaoEspecial, UsuarioPermissaoEspecial.class.getName());
if (colecaoUsuarioPermisao == null || colecaoUsuarioPermisao.isEmpty()) {
FiltroDescricaoGenerica filtroDescricaoGenerica = new FiltroDescricaoGenerica();
Collection colecaoDescricaoGenerica = fachada.pesquisar(filtroDescricaoGenerica, DescricaoGenerica.class.getName());
if (colecaoDescricaoGenerica != null || !colecaoDescricaoGenerica.isEmpty()) {
String nomeFormatado= nome.replaceAll(" ", "");
Iterator iteratorDescricaoGenerica = colecaoDescricaoGenerica.iterator();
while (iteratorDescricaoGenerica.hasNext()) {
DescricaoGenerica descricaoGenerica = (DescricaoGenerica) iteratorDescricaoGenerica.next();
String nomeGenerico = descricaoGenerica.getNomeGenerico();
String nomeGenericoFormatado = nomeGenerico.replaceAll(" ", "");
if (nomeGenerico.equalsIgnoreCase(nome)
|| nomeGenericoFormatado.equalsIgnoreCase(nome)
|| nomeGenerico.equalsIgnoreCase(nomeFormatado)
|| nomeGenericoFormatado.equalsIgnoreCase(nomeFormatado)) {
throw new ActionServletException("atencao.nome.cliente.descricao.generica",
null, "Nome do Cliente");
}
}
}
}
}
String nomeAbreviado = ((String) clienteActionForm.get("nomeAbreviado")).toUpperCase();
String rg = (String) clienteActionForm.get("rg");
String cpf = (String) clienteActionForm.get("cpf");
if(cpf != null && cpf.trim().equals("")){
cpf = null;
}
String dataEmissao = (String) clienteActionForm.get("dataEmissao");
String dataNascimento = (String) clienteActionForm.get("dataNascimento");
String cnpj = (String) clienteActionForm.get("cnpj");
if(cnpj != null && cnpj.trim().equals("")){
cnpj = null;
}
String indicadorAcaoCobranca = (String)clienteActionForm.get("indicadorAcaoCobranca");
String email = (String) clienteActionForm.get("email");
Short indicadorUso = null;
if(clienteActionForm.get("indicadorUso") != null){
indicadorUso = new Short((String) clienteActionForm
.get("indicadorUso"));
}else{
indicadorUso = new Short("1");
}
Short indicadorAcrescimos = null;
if(clienteActionForm.get("indicadorAcrescimos") != null){
indicadorAcrescimos = new Short((String)clienteActionForm
.get("indicadorAcrescimos"));
} else {
indicadorAcrescimos = new Short("1");
}
// Verificar se o usu�rio digitou os 4 campos relacionados com o RG de
// pessoa f�sica ou se ele n�o digitou nenhum
Integer idOrgaoExpedidor = (Integer) clienteActionForm
.get("idOrgaoExpedidor");
Integer idUnidadeFederacao = (Integer) clienteActionForm
.get("idUnidadeFederacao");
if( ! ( ( (rg != null && !rg.trim().equalsIgnoreCase(""))
&& (idOrgaoExpedidor != null && !idOrgaoExpedidor.equals(ConstantesSistema.NUMERO_NAO_INFORMADO)))
&& (idUnidadeFederacao != null && !idUnidadeFederacao.equals(ConstantesSistema.NUMERO_NAO_INFORMADO))
|| ((rg != null && rg.trim().equalsIgnoreCase(""))
&& (idOrgaoExpedidor != null && idOrgaoExpedidor.equals(ConstantesSistema.NUMERO_NAO_INFORMADO))
&& (idUnidadeFederacao != null && idUnidadeFederacao.equals(ConstantesSistema.NUMERO_NAO_INFORMADO)))) ){
throw new ActionServletException(
"atencao.rg_campos_relacionados.nao_preenchidos");
}
OrgaoExpedidorRg orgaoExpedidorRg = null;
if (clienteActionForm.get("idOrgaoExpedidor") != null
&& ((Integer) clienteActionForm.get("idOrgaoExpedidor")).intValue() > 0) {
orgaoExpedidorRg = new OrgaoExpedidorRg();
orgaoExpedidorRg.setId((Integer) clienteActionForm
.get("idOrgaoExpedidor"));
}
PessoaSexo pessoaSexo = null;
if (clienteActionForm.get("idPessoaSexo") != null
&& ((Integer) clienteActionForm.get("idPessoaSexo")).intValue() > 0) {
pessoaSexo = new PessoaSexo();
pessoaSexo.setId((Integer) clienteActionForm.get("idPessoaSexo"));
}
Profissao profissao = null;
if (clienteActionForm.get("idProfissao") != null
&& ((Integer) clienteActionForm.get("idProfissao")).intValue() > 0) {
profissao = new Profissao();
profissao.setId((Integer) clienteActionForm.get("idProfissao"));
}
UnidadeFederacao unidadeFederacao = null;
if (clienteActionForm.get("idUnidadeFederacao") != null
&& ((Integer) clienteActionForm.get("idUnidadeFederacao")).intValue() > 0) {
unidadeFederacao = new UnidadeFederacao();
unidadeFederacao.setId((Integer) clienteActionForm.get("idUnidadeFederacao"));
}
ClienteTipo clienteTipo = new ClienteTipo();
clienteTipo.setId(new Integer(((Short) clienteActionForm.get("tipoPessoa")).intValue()));
RamoAtividade ramoAtividade = null;
if (clienteActionForm.get("idRamoAtividade") != null
&& ((Integer) clienteActionForm.get("idRamoAtividade")).intValue() > 0) {
ramoAtividade = new RamoAtividade();
ramoAtividade.setId((Integer) clienteActionForm
.get("idRamoAtividade"));
}
Cliente clienteResponsavel = null;
if (clienteActionForm.get("codigoClienteResponsavel") != null
&& !((String) clienteActionForm.get("codigoClienteResponsavel")).trim().equalsIgnoreCase("")) {
// Cria o objeto do cliente respons�vel
clienteResponsavel = new Cliente();
clienteResponsavel.setId(new Integer((String) clienteActionForm
.get("codigoClienteResponsavel")));
}
// Verifica se o usu�rio adicionou um endere�o de correspond�ncia
Long enderecoCorrespondenciaSelecao = (Long) clienteActionForm
.get("enderecoCorrespondenciaSelecao");
if (enderecoCorrespondenciaSelecao == null
|| enderecoCorrespondenciaSelecao == 0) {
throw new ActionServletException(
"atencao.endereco_correspondencia.nao_selecionado");
}
SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy");
// Verifica se o nome do Cliente � o mesmo encontrado na R. Federal de acordo com o CPF digitado
ConsultaCdl clienteCadastradoNaReceita = new ConsultaCdl();
//String mensagemRetornoReceita = null;
try {
if(cpf != null && cpf.equals("")){
cpf = null;
}
if(cnpj != null && cnpj.equals("")){
cnpj = null;
}
Cliente cliente = new Cliente(
// Nome
nome,
// Nome Abreviado
nomeAbreviado,
// CPF
cpf,
// RG
rg,
// Data de Emiss�o do RG
dataEmissao != null && !dataEmissao.trim().equalsIgnoreCase("")
? formatoData.parse(dataEmissao): null,
// Data de Nascimento
dataNascimento != null && !dataNascimento.trim().equalsIgnoreCase("")
? formatoData.parse(dataNascimento) : null,
// CNPJ
cnpj,
// Email
email,
// Indicador Uso
indicadorUso,
// Indicador Acrescimos
indicadorAcrescimos,
// Data da �ltima Altera��o
clienteAtualizacao.getUltimaAlteracao(),
// �rg�o Expedidor RG
orgaoExpedidorRg,
// Cliente Respons�vel
clienteResponsavel,
// Sexo
pessoaSexo,
// Profiss�o
profissao,
// Unidade Federa��o
unidadeFederacao,
// Tipo do Cliente
clienteTipo,
// Ramo de Atividade
ramoAtividade,
indicadorUsoNomeFantasiaConta);
// Seta o id do cliente atualizado para ser identificado no BD na atualiza��o
cliente.setId(clienteAtualizacao.getId());
cliente.setIndicadorAcaoCobranca(new Integer (indicadorAcaoCobranca).shortValue());
cliente.setIndicadorGeraArquivoTexto(clienteAtualizacao.getIndicadorGeraArquivoTexto());
cliente.setDiaVencimento(clienteAtualizacao.getDiaVencimento());
// Permissao Especial Validar Acrescimos Impontualidade
boolean validarAcrescimoImpontualidade = Fachada.getInstancia()
.verificarPermissaoValAcrescimosImpontualidade(usuario);
httpServletRequest.setAttribute("validarAcrescimoImpontualidade",validarAcrescimoImpontualidade);
if (clienteActionForm.get("diaVencimento") != null
&& !(clienteActionForm.get("diaVencimento").equals(""))){
String diaVencimento = (String)clienteActionForm.get("diaVencimento");
cliente.setDataVencimento( new Short(diaVencimento));
}else{
cliente.setDataVencimento(null);
}
//Nome da M�e
if (clienteActionForm.get("nomeMae") != null
&& (!(clienteActionForm.get("nomeMae").equals("")))) {
cliente.setNomeMae(((String)clienteActionForm.get("nomeMae")).toUpperCase());
}
if (clienteActionForm.get("indicadorGeraFaturaAntecipada") != null && !clienteActionForm.get("indicadorGeraFaturaAntecipada").equals("")) {
cliente.setIndicadorGeraFaturaAntecipada(new Short((String) clienteActionForm.get("indicadorGeraFaturaAntecipada")));
} else {
cliente.setIndicadorGeraFaturaAntecipada(ConstantesSistema.NAO);
}
if (clienteActionForm.get("diaVencimento") != null && !(clienteActionForm.get("diaVencimento").equals("")) &&
(clienteActionForm.get("indicadorVencimentoMesSeguinte") != null && !clienteActionForm.get("indicadorVencimentoMesSeguinte").equals(""))) {
cliente.setIndicadorVencimentoMesSeguinte(new Short((String) clienteActionForm.get("indicadorVencimentoMesSeguinte")));
} else {
cliente.setIndicadorVencimentoMesSeguinte(ConstantesSistema.NAO);
}
if (clienteActionForm.get("indicadorAcaoCobranca") != null
&& !(clienteActionForm.get("indicadorAcaoCobranca").equals(""))){
cliente.setIndicadorAcaoCobranca(new Integer ((String)clienteActionForm.get("indicadorAcaoCobranca")).shortValue());
}
if (clienteActionForm.get("indicadorPermiteNegativacao") != null
&& clienteActionForm.get("indicadorPermiteNegativacao").equals(ConstantesSistema.SIM.toString())){
cliente.setIndicadorPermiteNegativacao(ConstantesSistema.NAO);
} else {
cliente.setIndicadorPermiteNegativacao(ConstantesSistema.SIM);
}
//*************************************************************************
// Autor: Ivan Sergio
// Data: 06/08/2009
// CRC2103
// Verifica se a funcionalidade esta sendo executada dentro de um popup
//*************************************************************************
if (sessao.getAttribute("POPUP") != null) {
if (sessao.getAttribute("POPUP").equals("true")) {
Integer idImovel = null;
if (sessao.getAttribute("idImovel") != null &&
!sessao.getAttribute("idImovel").equals("")) {
idImovel = new Integer(sessao.getAttribute("idImovel").toString());
}else if (sessao.getAttribute("imovelAtualizacao") != null) {
Imovel imovel = (Imovel) sessao.getAttribute("imovelAtualizacao");
idImovel = new Integer(imovel.getId());
}
if (idImovel == null) {
cliente.setId2(-1);
colecaoEnderecos = this.setaId2ClienteEnderecos(colecaoEnderecos, -1);
colecaoFones = this.setaId2ClienteFones(colecaoFones, -1);
} else {
//Integer idImovel = new Integer(sessao.getAttribute("idImovel").toString());
cliente.setId2(idImovel);
colecaoEnderecos = this.setaId2ClienteEnderecos(colecaoEnderecos, idImovel);
colecaoFones = this.setaId2ClienteFones(colecaoFones, idImovel);
// Recupera o Tipo de Relacao do Cliente
FiltroClienteImovel filtro = new FiltroClienteImovel();
filtro.adicionarCaminhoParaCarregamentoEntidade(
FiltroClienteImovel.CLIENTE_RELACAO_TIPO);
filtro.adicionarParametro(new ParametroSimples(
FiltroClienteImovel.CLIENTE_ID, cliente.getId()));
filtro.adicionarParametro(new ParametroSimples(
FiltroClienteImovel.IMOVEL_ID, idImovel));
ClienteImovel clienteImovel = (ClienteImovel) Util.retonarObjetoDeColecao(
fachada.pesquisar(filtro, ClienteImovel.class.getName()));
if (clienteImovel != null) {
if (clienteImovel.getClienteRelacaoTipo() != null) {
Integer idAtributoGrupo = null;
switch (clienteImovel.getClienteRelacaoTipo().getId()) {
case 1:
idAtributoGrupo = AtributoGrupo.ATRIBUTOS_DO_PROPRIETARIO;
break;
case 2:
idAtributoGrupo = AtributoGrupo.ATRIBUTOS_DO_USUARIO;
break;
}
if (idAtributoGrupo != null) {
AtributoGrupo atributoGrupo = new AtributoGrupo();
atributoGrupo.setId(idAtributoGrupo);
OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada();
operacaoEfetuada.setAtributoGrupo(atributoGrupo);
cliente.setOperacaoEfetuada(operacaoEfetuada);
}
}
}
}
}
}
/**
* Autor: Rodrigo Cabral
* Data: 20/10/2010
* CRC4476
*/
String confirmado = null;
if ( httpServletRequest.getParameter("confirmado") != null ) {
confirmado = httpServletRequest.getParameter("confirmado");
}
ConsultaCdl consultaCdl = null;
FiltroConsultaCadastroCdl filtroConsultaCadastroCdl = new FiltroConsultaCadastroCdl();
Short indicadorConsultaDocumentoReceita = this.getSistemaParametro().getIndicadorConsultaDocumentoReceita();
if(cpf != null || cnpj != null){
if (cpf != null){
filtroConsultaCadastroCdl.adicionarParametro(
new ParametroSimples(FiltroConsultaCadastroCdl.CPF_CLIENTE, cpf));
}
if (cnpj != null){
filtroConsultaCadastroCdl.adicionarParametro(
new ParametroSimples(FiltroConsultaCadastroCdl.CNPJ_CLIENTE, cnpj));
}
Collection colecaoConsultaCadastroCdl =
fachada.pesquisar(filtroConsultaCadastroCdl, ConsultaCdl.class.getName());
consultaCdl = (ConsultaCdl)Util.retonarObjetoDeColecao(colecaoConsultaCadastroCdl);
}else{
indicadorConsultaDocumentoReceita = ConstantesSistema.NAO;
}
if (confirmado == null &&
consultaCdl == null &&
indicadorConsultaDocumentoReceita.toString().equals(ConstantesSistema.SIM.toString())){
ConsultaWebServiceTest consultaWebService = new ConsultaWebServiceTest();
try {
if (cpf != null){
clienteCadastradoNaReceita = consultaWebService.consultarPessoaFisica(nome,cpf);
System.out.println("CONSULTA SPC ATUALIZAR CLIENTE CPF: "+cpf);
}else if (cnpj != null){
clienteCadastradoNaReceita = consultaWebService.consultaPessoaJuridica(nome,cnpj);
System.out.println("CONSULTA SPC ATUALIZAR CLIENTE CNPJ: "+cnpj);
}
} catch (Exception e) {
e.printStackTrace();
clienteCadastradoNaReceita.setMensagemRetorno("Erro ao consultar o CDL.");
}
if(clienteCadastradoNaReceita.getNomeCliente() != null &&
!clienteCadastradoNaReceita.getNomeCliente().equals("NOME NAO CADASTRADO") &&
!clienteCadastradoNaReceita.getNomeCliente().equals("EMPRESA NAO CADASTRADA") ){
System.out.println("NOME RETORNADO CDL "+cpf+":"+clienteCadastradoNaReceita.getNomeCliente());
clienteActionForm.set("nomeClienteReceitaFederal" , clienteCadastradoNaReceita.getNomeCliente());
}else{
clienteCadastradoNaReceita.setNomeCliente(null);
clienteCadastradoNaReceita.setMensagemRetorno("Erro ao consultar o CDL.");
}
sessao.setAttribute("clienteCadastradoNaReceita", clienteCadastradoNaReceita);
}else if (confirmado == null &&
consultaCdl != null &&
indicadorConsultaDocumentoReceita.toString().equals(ConstantesSistema.SIM.toString()) ){
clienteCadastradoNaReceita.setNomeCliente(consultaCdl.getNomeCliente());
sessao.setAttribute("clienteCadastradoNaReceita", clienteCadastradoNaReceita);
}
short codigoAcao = ConstantesSistema.NUMERO_NAO_INFORMADO;
boolean atualizaImovel = true;
//Caso o spc esteja fora, n�o realizar acao de atualizacao do cliente e dos dados do spc
if(clienteCadastradoNaReceita != null &&
clienteCadastradoNaReceita.getMensagemRetorno() != null){
atualizaImovel = false;
retorno = this.montaTelaAtencao(actionMapping,
httpServletRequest,
"atencao.cliente_nao_foi_atualizado_spc_fora",
false);
}
if ( confirmado == null &&
clienteCadastradoNaReceita.getNomeCliente() != null &&
!clienteCadastradoNaReceita.getNomeCliente().equals(nome) ) {
httpServletRequest.setAttribute("nomeBotao1", "Aceitar");
httpServletRequest.setAttribute("nomeBotao3", "Rejeitar");
return montarPaginaConfirmacaoWizard("atencao.confirmacao_nome_receita_federal",
httpServletRequest,
actionMapping,
nome,
clienteCadastradoNaReceita.getNomeCliente());
}else if(confirmado == null &&
clienteCadastradoNaReceita.getNomeCliente() != null &&
clienteCadastradoNaReceita.getNomeCliente().equals(nome)){
clienteCadastradoNaReceita =
(ConsultaCdl) sessao.getAttribute("clienteCadastradoNaReceita");
codigoAcao = 3;
clienteCadastradoNaReceita.setCodigoAcaoOperador(codigoAcao);
}else if ( confirmado != null && confirmado.trim().equalsIgnoreCase("ok") ) {
clienteCadastradoNaReceita =
(ConsultaCdl) sessao.getAttribute("clienteCadastradoNaReceita");
cliente.setNome(clienteCadastradoNaReceita.getNomeCliente());
if (clienteCadastradoNaReceita.getNomeMae() != null){
cliente.setNomeMae(clienteCadastradoNaReceita.getNomeMae());
}
if (clienteCadastradoNaReceita.getDataNascimento() != null){
cliente.setDataNascimento(clienteCadastradoNaReceita.getDataNascimento());
}
codigoAcao = 1;
clienteCadastradoNaReceita.setCodigoAcaoOperador(codigoAcao);
} else if((clienteCadastradoNaReceita.getMensagemRetorno() == null ||
clienteCadastradoNaReceita.getMensagemRetorno().equals("")) &&
(confirmado != null)){
clienteCadastradoNaReceita =
(ConsultaCdl) sessao.getAttribute("clienteCadastradoNaReceita");
codigoAcao = 2;
clienteCadastradoNaReceita.setCodigoAcaoOperador(codigoAcao);
atualizaImovel = false;
retorno = this.montaTelaAtencao(actionMapping,
httpServletRequest,
"atencao.cliente_nao_foi_atualizado",
true);
}
/**
* fim
*/
if(atualizaImovel){
this.getFachada().atualizarCliente(cliente, colecaoFones, colecaoEnderecos, usuario);
}
if ((confirmado != null) ||
(clienteCadastradoNaReceita.getCodigoAcaoOperador() != null &&
clienteCadastradoNaReceita.getCodigoAcaoOperador() == 3)){
if(consultaCdl == null){
ConsultaCdl clienteCadastradoNaReceitaAtualiza =
(ConsultaCdl) sessao.getAttribute("clienteCadastradoNaReceita");
clienteCadastradoNaReceitaAtualiza.setCodigoAcaoOperador(codigoAcao);
clienteCadastradoNaReceitaAtualiza.setCodigoCliente(cliente);
clienteCadastradoNaReceitaAtualiza.setUsuario(usuario);
clienteCadastradoNaReceitaAtualiza.setCpfUsuario(usuario.getCpf());
clienteCadastradoNaReceitaAtualiza.setLoginUsuario(usuario.getLogin());
clienteCadastradoNaReceitaAtualiza.setUltimaAlteracao(new Date());
this.getFachada().inserir(clienteCadastradoNaReceitaAtualiza);
}
}
// limpa a sess�o
sessao.removeAttribute("clienteCadastradoNaReceita");
sessao.removeAttribute("colecaoClienteFone");
sessao.removeAttribute("colecaoEnderecos");
sessao.removeAttribute("foneTipos");
sessao.removeAttribute("municipios");
sessao.removeAttribute("colecaoResponsavelSuperiores");
sessao.removeAttribute("InserirEnderecoActionForm");
sessao.removeAttribute("ClienteActionForm");
sessao.removeAttribute("tipoPesquisaRetorno");
sessao.removeAttribute("clienteAtualizacao");
} catch (ParseException ex) {
// Erro no hibernate
reportarErros(httpServletRequest, "erro.sistema", ex);
// Atribui o mapeamento de retorno para a tela de erro
retorno = actionMapping.findForward("telaErro");
}
// Verifica se a funcionalidade esta sendo executada dentro de um popup
boolean exibirTelaSucesso = true;
if (sessao.getAttribute("POPUP") != null) {
if (sessao.getAttribute("POPUP").equals("true")) {
// Verifica o action de retorno
// action = inserirClienteNomeTipo
retorno = actionMapping.findForward("atualizarClientePopUp");
sessao.setAttribute("codigoCliente", clienteAtualizacao.getId());
sessao.setAttribute("nomeCliente", nome);
if (cpf != null) {
sessao.setAttribute("cpfCnpjCliente", Util.formatarCpf(cpf));
}else if (cnpj != null) {
sessao.setAttribute("cpfCnpjCliente", Util.formatarCnpj(cnpj));
}
httpServletRequest.setAttribute("colecaoTipoPessoa", null);
exibirTelaSucesso = false;
}
}
if (exibirTelaSucesso) {
// Monta a p�gina de sucesso
if (retorno.getName().equalsIgnoreCase("telaSucesso")) {
String linkSucesso = (String)sessao.getAttribute("linkSucesso");
String mensagemSucesso = "Cliente de c�digo " + clienteAtualizacao.getId() + " atualizado com sucesso.";
// if(mensagemRetornoReceita != null && !mensagemRetornoReceita.equals("")){
// mensagemSucesso = mensagemSucesso +"\n"+ mensagemRetornoReceita;
// }
if(linkSucesso != null && !linkSucesso.equals("")){
montarPaginaSucesso(httpServletRequest,
mensagemSucesso,
"Realizar outra Manuten��o de Cliente", "exibirManterClienteAction.do?menu=sim",
linkSucesso,
"Retornar ao Consultar Im�vel.");
sessao.removeAttribute("linkSucesso");
}else if(sessao.getAttribute("caminhoVoltarPromais")!=null){
montarPaginaSucesso(httpServletRequest,
mensagemSucesso,
"Realizar outra Manuten��o de Cliente", "exibirManterClienteAction.do?menu=sim",
(String)sessao.getAttribute("caminhoVoltarPromais")+".do?promais=nao","Retornar ao Consultar Im�vel.");
sessao.setAttribute("promaisExecutado", "sim");
sessao.setAttribute("idImovelPromaisExecutado", Integer.parseInt((String)sessao.getAttribute("idImovel")));
sessao.removeAttribute("idImovel");
sessao.removeAttribute("caminhoVoltarPromais");
}else{
montarPaginaSucesso(httpServletRequest,
mensagemSucesso,
"Realizar outra Manuten��o de Cliente",
"exibirManterClienteAction.do?menu=sim");
}
}
}
return retorno;
}
/***
* @author Ivan Sergio
* @date: 11/08/2009
*
* @param colecaoEnderecos
* @param id2
* @return
*/
private Collection setaId2ClienteEnderecos(Collection colecaoEnderecos, Integer id2) {
Collection retorno = null;
if (colecaoEnderecos != null && !colecaoEnderecos.isEmpty()) {
retorno = new ArrayList();
Iterator iColecaoEnderecos = colecaoEnderecos.iterator();
while (iColecaoEnderecos.hasNext()) {
ClienteEndereco endereco = (ClienteEndereco) iColecaoEnderecos.next();
endereco.setId2(id2);
retorno.add(endereco);
}
}else {
retorno = colecaoEnderecos;
}
return retorno;
}
/**
* @author Ivan Sergio
* @date: 11/08/2009
*
* @param colecaoFones
* @param id2
* @return
*/
private Collection setaId2ClienteFones(Collection colecaoFones, Integer id2) {
Collection retorno = null;
if (colecaoFones != null && !colecaoFones.isEmpty()) {
retorno = new ArrayList();
Iterator iColecaoFones = colecaoFones.iterator();
while (iColecaoFones.hasNext()) {
ClienteFone fone = (ClienteFone) iColecaoFones.next();
fone.setId2(id2);
retorno.add(fone);
}
}else {
retorno = colecaoFones;
}
return retorno;
}
/**
* @author Rafael Pinto
* @date: 09/01/2011
*
* @param actionMapping ActionMapping
* @param httpServletRequest httpServletRequest
* @return ActionForward
*/
private ActionForward montaTelaAtencao(ActionMapping actionMapping,
HttpServletRequest httpServletRequest,String chave,
boolean naoExibirBotaoVoltarTelaAtencao){
httpServletRequest.setAttribute("naoExibirBotaoVoltarTelaAtencao",naoExibirBotaoVoltarTelaAtencao);
reportarErros(httpServletRequest, chave);
return actionMapping.findForward("telaAtencao");
}
}