package gcom.gui.faturamento; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.bean.ContaValoresHelper; import gcom.cobranca.bean.ObterDebitoImovelOuClienteHelper; import gcom.fachada.Fachada; import gcom.faturamento.ExtratoQuitacao; import gcom.faturamento.FiltroExtratoQuitacao; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.text.ParseException; import java.text.SimpleDateFormat; 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; public class ExibirEmitir2viaDeclaracaoAnualQuitacaoDebitosAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Seta o mapeamento de retorno ActionForward retorno = actionMapping .findForward("exibirEmitir2viaDeclaracaoAnualQuitacaoDebitosAction"); HttpSession sessao = httpServletRequest.getSession(false); Emitir2viaDeclaracaoAnualQuitacaoDebitosActionForm emitir2ViaDeclaracaoAnualQuitacaoDebitosActionForm = (Emitir2viaDeclaracaoAnualQuitacaoDebitosActionForm) actionForm; // Verifica se entrou apartir // do menu // if(httpServletRequest.getParameter("menu")!= null){ sessao.setAttribute("veioMenu", "sim"); this.limpar(emitir2ViaDeclaracaoAnualQuitacaoDebitosActionForm, sessao); } // Pesquisa Imovel // Enter ou Reload PopUp // if(httpServletRequest.getParameter("pesquisarImovel")!=null && httpServletRequest.getParameter("pesquisarImovel").toString().equalsIgnoreCase("sim")){ if(httpServletRequest.getParameter("idImovel")!=null && !httpServletRequest.getParameter("idImovel").toString().equals("")){ emitir2ViaDeclaracaoAnualQuitacaoDebitosActionForm.setMatriculaImovel(httpServletRequest.getParameter("idImovel")); } if(emitir2ViaDeclaracaoAnualQuitacaoDebitosActionForm.getMatriculaImovel()!=null && !emitir2ViaDeclaracaoAnualQuitacaoDebitosActionForm.getMatriculaImovel().equals("")){ getImovel(emitir2ViaDeclaracaoAnualQuitacaoDebitosActionForm,httpServletRequest); } } return retorno; } /** * Recupera Im�vel * * * @param ParcelamentoCartaoConfirmarForm * @param fachada */ private void getImovel(Emitir2viaDeclaracaoAnualQuitacaoDebitosActionForm form, HttpServletRequest httpServletRequest) { Fachada fachada = Fachada.getInstancia(); SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema(); HttpSession sessao = httpServletRequest.getSession(false); FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, form.getMatriculaImovel())); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("localidade"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("setorComercial"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("quadra"); Collection colecaoImovel = fachada.pesquisar(filtroImovel, Imovel.class.getName()); if (colecaoImovel != null && !colecaoImovel.isEmpty()) { for (Iterator iterator = colecaoImovel.iterator(); iterator.hasNext();) { Imovel imovelTeste = (Imovel) iterator.next(); FiltroExtratoQuitacao filtro = new FiltroExtratoQuitacao(); filtro.adicionarParametro(new ParametroSimples( FiltroExtratoQuitacao.ID_IMOVEL, imovelTeste.getId())); this.pesquisarAnosImovel(imovelTeste.getId().toString(), httpServletRequest); //se o ano do imovel for selecionado. if(form.getAno() != null && !form.getAno().equals("-1")){ filtro.adicionarParametro(new ParametroSimples( FiltroExtratoQuitacao.ANO_REFERENCIA,form.getAno())); Collection colecaoExtratoQuitacao = fachada.pesquisar(filtro, ExtratoQuitacao.class.getName()); if(colecaoExtratoQuitacao==null || (colecaoExtratoQuitacao!=null && colecaoExtratoQuitacao.isEmpty())){ if(fachada.verificarQuitacaoContas(new Integer(form.getAno()),imovelTeste.getId())){ throw new ActionServletException("atencao.imovel_nao_possui_extrato", imovelTeste.getId().toString()); } ObterDebitoImovelOuClienteHelper colecaoDebitoCliente = null; /* 1.1. Indicador de d�bito do im�vel ou cliente com o valor 1 (im�vel); 1.2. Matr�cula do Im�vel (IMOV_ID); 1.3. C�digo do cliente com o valor nulo; 1.4. Tipo de rela��o do cliente com o im�vel com o valor nulo; 1.5. Per�odo de refer�ncia do d�bito (01/ano informado a 12/ano informado); 1.6. Per�odo de vencimento do d�bito com valor nulo; 1.7. Indicador de pagamento com o valor 1 (sim); 1.8. Indicador de conta em revis�o com o valor 1 (sim, se SISTEMA_PARAMETROS.PARM_ICCOBRANCAJUDICIAL=1); 1.9. Indicador de d�bito a cobrar com o valor 2 (n�o); 1.10. Indicador de cr�dito a realizar com o valor 2 (n�o); 1.11. Indicador de notas promiss�rias com o valor 2 (n�o); 1.12. Indicador de guias de com o valor 2 (n�o); 1.13. Indicador de atualizar d�bito com o valor 2 (n�o); */ String anoMesInicial = form.getAno()+"01"; String anoMesFinal = form.getAno()+"12"; String dataVencimentoInicial = "01/01/0001"; String dataVencimentoFinal = "31/12/9999"; SimpleDateFormat formatoData = new SimpleDateFormat("dd/MM/yyyy"); Date dataVencimentoDebitoI; Date dataVencimentoDebitoF; try { dataVencimentoDebitoI = formatoData.parse(dataVencimentoInicial); } catch (ParseException ex) { dataVencimentoDebitoI = null; } try { dataVencimentoDebitoF = formatoData.parse(dataVencimentoFinal); } catch (ParseException ex) { dataVencimentoDebitoF = null; } colecaoDebitoCliente = fachada.obterDebitoImovelOuCliente( 1, form.getMatriculaImovel().toString(), null, null, anoMesInicial, anoMesFinal, dataVencimentoDebitoI, dataVencimentoDebitoF, 1, sistemaParametro.getIndicadorCobrancaJudical().intValue(), ConstantesSistema.NAO.intValue(), ConstantesSistema.NAO.intValue(), ConstantesSistema.NAO.intValue(), ConstantesSistema.NAO.intValue(), ConstantesSistema.NAO.intValue(), null); if(colecaoDebitoCliente!=null && (colecaoDebitoCliente.getColecaoContasValores()!=null && !colecaoDebitoCliente.getColecaoContasValores().isEmpty())){ for (Iterator itera = colecaoDebitoCliente.getColecaoContasValores().iterator(); itera.hasNext();) { ContaValoresHelper helper = (ContaValoresHelper) itera.next(); if(helper.getConta().getContaMotivoRevisao()!=null){ itera.remove(); } } if(!colecaoDebitoCliente.getColecaoContasValores().isEmpty()){ throw new ActionServletException("atencao.imovel_possui_debitos"); } } throw new ActionServletException("atencao.imovel_nao_possui_extrato",imovelTeste.getId().toString()); }else{ ExtratoQuitacao extrato = (ExtratoQuitacao) Util.retonarObjetoDeColecao(colecaoExtratoQuitacao); if(extrato.getIndicadorImpressao().compareTo(ConstantesSistema.NAO.intValue())==0){ throw new ActionServletException("atencao.imovel_nao_possui_extrato", imovelTeste.getId().toString()); } } } } Imovel imovel = (Imovel) Util.retonarObjetoDeColecao(colecaoImovel); sessao.setAttribute("inscricaoImovelEncontrada", "true"); form.setInscricaoImovel(imovel.getInscricaoFormatada()); } else { this.limpar(form, sessao); sessao.removeAttribute("inscricaoImovelEncontrada"); form.setMatriculaImovel(""); form.setInscricaoImovel("Matr�cula inexistente"); } } private void limpar(Emitir2viaDeclaracaoAnualQuitacaoDebitosActionForm form,HttpSession sessao){ form.setInscricaoImovel(null); form.setMatriculaImovel(null); form.setAno(null); } /** * @author Daniel Alves * @date 16/09/2010 * @param httpServletRequest */ private void pesquisarAnosImovel(String idImovel, HttpServletRequest httpServletRequest){ Collection colecaoAnosImovel = this.getFachada().pesquisarAnoImovelEmissao2ViaDeclaracaoAnualQuitacaoDebitos(idImovel); if (colecaoAnosImovel == null || colecaoAnosImovel.isEmpty()) { throw new ActionServletException("atencao.imovel_nao_possui_extrato", idImovel); } else { httpServletRequest.setAttribute("colecaoAnosImovel",colecaoAnosImovel); } } }