package gcom.gui.cadastro.imovel; import gcom.cadastro.cliente.Cliente; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.FiltroImovelProgramaEspecial; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.imovel.ImovelProgramaEspecial; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; import java.util.Collection; import java.util.Date; 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; /** * [UC0973] Inserir Im�vel em Programa Especial * * @author Hugo Amorim * @date 17/12/2009 */ public class InserirImovelProgramaEspecialAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping.findForward("telaSucesso"); HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); // Obter Parametros do sistema SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); InserirImovelProgramaEspecialActionForm form = (InserirImovelProgramaEspecialActionForm) actionForm; if(form.getDescricaoDocumentos()!=null && form.getDescricaoDocumentos().length()>200){ throw new ActionServletException("atencao.execedeu_limit_observacao","Observa��o","200"); } ImovelProgramaEspecial imovelProgramaEspecial = new ImovelProgramaEspecial(); Imovel imovel = null; if(form.getMatriculaImovel()!=null && !form.getMatriculaImovel().equals("")){ FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples( FiltroImovel.ID, form.getMatriculaImovel())); filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.FATURAMENTO_GRUPO); filtroImovel.adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LIGACAO_AGUA_SITUACAO); Collection<Imovel> colecaoImovel = fachada.pesquisar(filtroImovel, Imovel.class.getName()); imovel = (Imovel) Util.retonarObjetoDeColecao(colecaoImovel); /** * @author Arthur Carvalho * @date 02/08/2011 * Restricao para inserir o imovel em programa especial, caso o cliente usuario tenha CPF */ Cliente cliente = fachada.pesquisarClienteUsuarioImovel(imovel.getId()); if ( cliente != null && ( cliente.getCpf() == null || cliente.getCpf().equals("")) ) { throw new ActionServletException("atencao.cliente_usuario_nao_possui_cpf"); } imovelProgramaEspecial.setImovel(imovel); } if(form.getDescricaoDocumentos()!=null && !form.getDescricaoDocumentos().equals("")){ imovelProgramaEspecial.setDescricaoDocumentos(form.getDescricaoDocumentos()); } if(form.getNumeroBolsaFamilia()!=null && !form.getNumeroBolsaFamilia().equals("")){ imovelProgramaEspecial.setNumeroBolsaFamilia(form.getNumeroBolsaFamilia()); } if(form.getDataApresentacaoDocumentos()!=null && !form.getDataApresentacaoDocumentos().equals("")){ Date dataApresentacao = Util.converteStringParaDate(form.getDataApresentacaoDocumentos()); imovelProgramaEspecial.setDataApresentacaoDocumentos(dataApresentacao); } if(sistemaParametro.getClienteResponsavelProgramaEspecial()==null){ throw new ActionServletException("atencao.nao.existe.cliente.reposponsavel.cadastrado"); } if(sistemaParametro.getPerfilProgramaEspecial()==null){ throw new ActionServletException("atencao.nao.existe.perfil.programa.cadastrado"); } Date dataAtual = new Date(); if(Util.compararData(imovelProgramaEspecial.getDataApresentacaoDocumentos(), dataAtual)==1){ throw new ActionServletException("atencao.data.apresentacao.documentos.invalida"); } // [FS0005] Verificar exist�ncia do im�vel no programa especial FiltroImovelProgramaEspecial filtroImovelProgramaEspecial = new FiltroImovelProgramaEspecial(); filtroImovelProgramaEspecial.adicionarParametro(new ParametroSimples( FiltroImovelProgramaEspecial.IMOVEL_ID, imovelProgramaEspecial.getImovel().getId())); filtroImovelProgramaEspecial.adicionarParametro(new ParametroNulo( FiltroImovelProgramaEspecial.DATA_SUSPENSAO)); Collection<ImovelProgramaEspecial> colecaoImovelProgramaEspecial = fachada.pesquisar(filtroImovelProgramaEspecial, ImovelProgramaEspecial.class.getName()); if(colecaoImovelProgramaEspecial!=null && !colecaoImovelProgramaEspecial.isEmpty()){ throw new ActionServletException("atencao.imovel.ja.cadastrado.no.programa"); } // [FS0006] Verificar se o im�vel tem d�bito autom�tico if(imovelProgramaEspecial.getImovel() .getIndicadorDebitoConta().compareTo(ConstantesSistema.SIM)==0){ throw new ActionServletException("atencao.imovel_debito_automatico"); } // [FS0004] Valida dados do im�vel no programa especial if (fachada.verificarExistenciaParcelamentoImovel(imovelProgramaEspecial.getImovel())){ throw new ActionServletException("atencao.imovel.existe.parcelamento"); } fachada.validarDadosInserirImovelProgramaEspecial(imovelProgramaEspecial); Integer idImovelInserido = fachada.inserirImovelEmProgramaEspecial(imovelProgramaEspecial, usuarioLogado); montarPaginaSucesso( httpServletRequest, "Matr�cula do im�vel " + imovelProgramaEspecial.getImovel().getId() + " inserida com sucesso no programa especial.", "Inserir outro im�vel no programa.", "exibirInserirImovelProgramaEspecialAction.do?menu=sim", "exibirAtualizarImovelProgramaEspecialAction.do?imovelProgramaEspecialID=" + idImovelInserido, "Manter Im�vel inserido no Programa Especial."); return retorno; } }