package gcom.gui.atendimentopublico; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List; import gcom.atendimentopublico.EspecificacaoUnidadeCobranca; import gcom.atendimentopublico.EspecificacaoUnidadeCobrancaPK; import gcom.atendimentopublico.FiltroEspecificacaoUnidadeCobranca; import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.cobranca.CobrancaSituacao; import gcom.cobranca.FiltroCobrancaSituacao; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; 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 InformarAssociacaoSituacaoCobrancaAction extends GcomAction{ /** * < <Descri��o do m�todo>> * * @param actionMapping * Descri��o do par�metro * @param actionForm * Descri��o do par�metro * @param httpServletRequest * Descri��o do par�metro * @param httpServletResponse * Descri��o do par�metro * @return Descri��o do retorno */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { // Mudar isso quando tiver esquema de seguran�a HttpSession sessao = httpServletRequest.getSession(false); ActionForward retorno = actionMapping .findForward("exibirInformarAssociacaoSituacaoCobranca"); InformarTramiteAssociacaoSituacaoCobrancaActionForm informarTramiteAssociacaoSituacaoCobrancaActionForm = (InformarTramiteAssociacaoSituacaoCobrancaActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); Integer idSituacaoCobranca = null; Integer idTipoEspecificacao = null; Integer idUnidade = null; List<EspecificacaoUnidadeCobranca> colecaoEspecificacaoUnidadeCobranca = new ArrayList(); if(sessao.getAttribute("colecaoEspecificacaoUnidadeCobranca") != null && !sessao.getAttribute("colecaoEspecificacaoUnidadeCobranca").equals("")){ colecaoEspecificacaoUnidadeCobranca = (ArrayList) sessao.getAttribute("colecaoEspecificacaoUnidadeCobranca"); } if (informarTramiteAssociacaoSituacaoCobrancaActionForm.getIdSituacaoCobranca() != null && !informarTramiteAssociacaoSituacaoCobrancaActionForm.getIdSituacaoCobranca().trim().equals("")) { idSituacaoCobranca = new Integer(informarTramiteAssociacaoSituacaoCobrancaActionForm.getIdSituacaoCobranca()); } else { throw new ActionServletException( "atencao.informe.situacao_cobranca", null, "Situa��o de Cobran�a"); } if (informarTramiteAssociacaoSituacaoCobrancaActionForm.getIdTipoSolicitacao() == null || informarTramiteAssociacaoSituacaoCobrancaActionForm.getIdTipoSolicitacao().trim().equals("")) { throw new ActionServletException( "atencao.informe.tipo_solicitacao", null, "Tipo de Solicita��o"); } if (informarTramiteAssociacaoSituacaoCobrancaActionForm.getIdTipoEspecificacao() != null && !informarTramiteAssociacaoSituacaoCobrancaActionForm.getIdTipoEspecificacao().trim().equals("")) { idTipoEspecificacao = new Integer(informarTramiteAssociacaoSituacaoCobrancaActionForm.getIdTipoEspecificacao()); } else { throw new ActionServletException( "atencao.informe.tipo_especificacao", null, "Tipo de Especificacao"); } if (informarTramiteAssociacaoSituacaoCobrancaActionForm.getIdUnidadeAtendimento() != null && !informarTramiteAssociacaoSituacaoCobrancaActionForm.getIdUnidadeAtendimento().trim().equals("")) { idUnidade = new Integer(informarTramiteAssociacaoSituacaoCobrancaActionForm.getIdUnidadeAtendimento()); } else { throw new ActionServletException( "atencao.informe.unidade_atendimento", null, "Unidade Atendimento"); } EspecificacaoUnidadeCobranca especificacaoUnidadeCobranca = new EspecificacaoUnidadeCobranca(); EspecificacaoUnidadeCobrancaPK comp = new EspecificacaoUnidadeCobrancaPK(); comp.setCobrancaSituacaoId(idSituacaoCobranca); comp.setSolicitacaoTipoEspecificacaoId(idTipoEspecificacao); FiltroCobrancaSituacao filtroCobrancaSituacao = new FiltroCobrancaSituacao(); filtroCobrancaSituacao.adicionarParametro(new ParametroSimples( FiltroCobrancaSituacao.ID, idSituacaoCobranca)); Collection colecaoCobrancaSituacao = fachada.pesquisar(filtroCobrancaSituacao, CobrancaSituacao.class.getName()); if (colecaoCobrancaSituacao != null && !colecaoCobrancaSituacao.isEmpty()) { CobrancaSituacao cobrancaSituacao = (CobrancaSituacao) Util.retonarObjetoDeColecao(colecaoCobrancaSituacao); especificacaoUnidadeCobranca.setCobrancaSituacao(cobrancaSituacao); comp.setCobrancaSituacaoId(cobrancaSituacao.getId()); } else { throw new ActionServletException( "atencao.situacao_cobranca.inexistente", null, "Situa��o de Cobran�a"); } FiltroSolicitacaoTipoEspecificacao filtroSolicitacaoTipoEspecificacao = new FiltroSolicitacaoTipoEspecificacao(); filtroSolicitacaoTipoEspecificacao.adicionarParametro(new ParametroSimples( FiltroSolicitacaoTipoEspecificacao.ID, idTipoEspecificacao)); Collection colecaoSolicitacaoTipoEspecificacao = fachada.pesquisar(filtroSolicitacaoTipoEspecificacao, SolicitacaoTipoEspecificacao.class.getName()); if (colecaoSolicitacaoTipoEspecificacao != null && !colecaoSolicitacaoTipoEspecificacao.isEmpty()) { SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacao = (SolicitacaoTipoEspecificacao) Util.retonarObjetoDeColecao(colecaoSolicitacaoTipoEspecificacao); especificacaoUnidadeCobranca.setSolicitacaoTipoEspecificacao(solicitacaoTipoEspecificacao); comp.setSolicitacaoTipoEspecificacaoId(solicitacaoTipoEspecificacao.getId()); } else { throw new ActionServletException( "atencao.tipo_especificacao.inexistente", null, "Situa��o de Cobran�a"); } FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacional.ID, idUnidade)); Collection colecaoUnidade = fachada.pesquisar(filtroUnidadeOrganizacional, UnidadeOrganizacional.class.getName()); if (colecaoUnidade != null && !colecaoUnidade.isEmpty()) { UnidadeOrganizacional unidadeOrganizacional = (UnidadeOrganizacional) Util.retonarObjetoDeColecao(colecaoUnidade); especificacaoUnidadeCobranca.setUnidadeOrganizacional(unidadeOrganizacional); } else { throw new ActionServletException( "atencao.unidade_atendimento.inexistente", null, "Unidade Atendimento"); } if (associacaoExistente(colecaoEspecificacaoUnidadeCobranca, especificacaoUnidadeCobranca)) { throw new ActionServletException( "atencao.associacao.cobranca_situacao.ja_existente", new String[]{ especificacaoUnidadeCobranca.getCobrancaSituacao().getDescricao(), especificacaoUnidadeCobranca.getSolicitacaoTipoEspecificacao().getDescricao() }); } else { FiltroEspecificacaoUnidadeCobranca filtroEspecificacaoUnidadeCobranca = new FiltroEspecificacaoUnidadeCobranca(); filtroEspecificacaoUnidadeCobranca.adicionarParametro(new ParametroSimples( FiltroEspecificacaoUnidadeCobranca.ID_COBRANCA_SITUACAO, idSituacaoCobranca)); filtroEspecificacaoUnidadeCobranca.adicionarParametro(new ParametroSimples( FiltroEspecificacaoUnidadeCobranca.ID_SOLICITACAO_TIPO_ESPECIFICACAO, idTipoEspecificacao)); filtroEspecificacaoUnidadeCobranca.adicionarParametro(new ParametroSimples( FiltroEspecificacaoUnidadeCobranca.ID_UNIDADE_ORGANIZACIONAL, idUnidade)); filtroEspecificacaoUnidadeCobranca.adicionarCaminhoParaCarregamentoEntidade( FiltroEspecificacaoUnidadeCobranca.SOLICITACAO_TIPO_ESPECIFICACAO); filtroEspecificacaoUnidadeCobranca.adicionarCaminhoParaCarregamentoEntidade( FiltroEspecificacaoUnidadeCobranca.UNIDADE_ORGANIZACIONAL); filtroEspecificacaoUnidadeCobranca.adicionarCaminhoParaCarregamentoEntidade( FiltroEspecificacaoUnidadeCobranca.COBRANCA_SITUACAO); Collection colecao = fachada.pesquisar(filtroEspecificacaoUnidadeCobranca, EspecificacaoUnidadeCobranca.class.getName()); if (colecao != null && !colecao.isEmpty()) { EspecificacaoUnidadeCobranca especificacaoUnidCobranca = (EspecificacaoUnidadeCobranca)Util.retonarObjetoDeColecao(colecao); especificacaoUnidCobranca.setUltimaAlteracao(null); colecaoEspecificacaoUnidadeCobranca.add(especificacaoUnidCobranca); } else { especificacaoUnidadeCobranca.setComp_id(comp); colecaoEspecificacaoUnidadeCobranca.add(especificacaoUnidadeCobranca); } sessao.setAttribute("colecaoEspecificacaoUnidadeCobranca",colecaoEspecificacaoUnidadeCobranca); } sessao.removeAttribute("colecaoTipoSolicitacao"); sessao.removeAttribute("colecaoTipoEspecificacao"); informarTramiteAssociacaoSituacaoCobrancaActionForm.setIdSituacaoCobranca(""); informarTramiteAssociacaoSituacaoCobrancaActionForm.setIdTipoEspecificacao(""); informarTramiteAssociacaoSituacaoCobrancaActionForm.setIdTipoSolicitacao(""); informarTramiteAssociacaoSituacaoCobrancaActionForm.setIdUnidadeAtendimento(""); informarTramiteAssociacaoSituacaoCobrancaActionForm.setDescricaoUnidadeAtendimento(""); httpServletRequest.setAttribute("fecharPopup", "OK"); sessao.setAttribute("fecharPopup", "OK"); return retorno; } private boolean associacaoExistente(Collection colecaoEspecificacaoUnidadeCobranca, EspecificacaoUnidadeCobranca especificacaoUnidadeCobranca) { boolean existe = false; if (especificacaoUnidadeCobranca.getCobrancaSituacao() != null && especificacaoUnidadeCobranca.getCobrancaSituacao().getId() != null && especificacaoUnidadeCobranca.getSolicitacaoTipoEspecificacao() != null && especificacaoUnidadeCobranca.getSolicitacaoTipoEspecificacao().getId() != null && colecaoEspecificacaoUnidadeCobranca != null && !colecaoEspecificacaoUnidadeCobranca.isEmpty()) { Iterator iterator = colecaoEspecificacaoUnidadeCobranca.iterator(); while (iterator.hasNext()) { EspecificacaoUnidadeCobranca especificacaoUnidadeCobrancaCol = (EspecificacaoUnidadeCobranca) iterator.next(); if (especificacaoUnidadeCobranca.getCobrancaSituacao().getId().equals(especificacaoUnidadeCobrancaCol.getCobrancaSituacao().getId()) && especificacaoUnidadeCobranca.getSolicitacaoTipoEspecificacao().getId().equals(especificacaoUnidadeCobrancaCol.getSolicitacaoTipoEspecificacao().getId())) { return true; } } } return existe; } }