package gcom.gui.atendimentopublico.registroatendimento; import gcom.atendimentopublico.registroatendimento.FiltroMeioSolicitacao; import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoDocumentoObrigatorio; import gcom.atendimentopublico.registroatendimento.FiltroSolicitacaoTipoEspecificacao; import gcom.atendimentopublico.registroatendimento.MeioSolicitacao; import gcom.atendimentopublico.registroatendimento.SolicitacaoDocumentoObrigatorio; import gcom.atendimentopublico.registroatendimento.SolicitacaoDocumentoObrigatorioPK; import gcom.atendimentopublico.registroatendimento.SolicitacaoTipoEspecificacao; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.filtro.ParametroSimplesIn; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Date; import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; /** * [UC1067] - Informar Obrigatoriedade Documento Especifica��o * * @author Hugo Leonardo * * @date 03/09/2010 */ public class InformarSolicitacaoDocumentoObrigatorioAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucesso"); Fachada fachada = Fachada.getInstancia(); ExibirInformarSolicitacaoDocumentoObrigatorioActionForm form = (ExibirInformarSolicitacaoDocumentoObrigatorioActionForm) actionForm; Collection<SolicitacaoTipoEspecificacao> colecaoSolTipoEspec = new ArrayList(); Collection<SolicitacaoDocumentoObrigatorio> colecaoSolDocObrig = new ArrayList(); Collection<Integer> colecaoIdsTipoEspecificacao = new ArrayList(); if (form.getIdsTipoEspecificacao() != null && !form.getIdsTipoEspecificacao().equals("-1") ){ String[] array = form.getIdsTipoEspecificacao(); for (int i = 0; i < array.length; i++) { if (new Integer(array[i]).intValue() != ConstantesSistema.NUMERO_NAO_INFORMADO) { colecaoIdsTipoEspecificacao.add(new Integer(array[i])); } } FiltroSolicitacaoTipoEspecificacao filtroSolTipoEspec = new FiltroSolicitacaoTipoEspecificacao(); filtroSolTipoEspec.adicionarParametro(new ParametroSimplesIn( FiltroSolicitacaoTipoEspecificacao.ID, colecaoIdsTipoEspecificacao)); colecaoSolTipoEspec = this.getFachada().pesquisar(filtroSolTipoEspec, SolicitacaoTipoEspecificacao.class.getName()); } if(colecaoSolTipoEspec != null && !colecaoSolTipoEspec.isEmpty()){ Iterator iterator = null; iterator = colecaoSolTipoEspec.iterator(); SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacao = null; // [FS0001] - verifica incompatibilidade das op��es while (iterator.hasNext()) { solicitacaoTipoEspecificacao = (SolicitacaoTipoEspecificacao) iterator.next(); // Caso indicador Documento Solicitante Obrigatorio = 1 e // indicador Cliente obrigat�rio da Solicita��o = 2 if(form.getIcDocumentoSolicitanteObrigatorio().equals("1") && solicitacaoTipoEspecificacao.getIndicadorCliente().toString().equals("2")){ throw new ActionServletException("atencao.especificacao.obrigatoriedade.cliente", null , solicitacaoTipoEspecificacao.getId().toString() + " " + solicitacaoTipoEspecificacao.getDescricao()); } // Caso indicador Documento Solicitante Obrigatorio = 2 e // indicador Validar Documento Cliente Responsavel = 1 if(form.getIcDocumentoSolicitanteObrigatorio().equals("2") && form.getIcValidarDocumentoClienteResponsavel().equals("1")){ throw new ActionServletException("atencao.especificacao.obrigatoriedade.cliente_imovel", null , solicitacaoTipoEspecificacao.getId().toString() + " " + solicitacaoTipoEspecificacao.getDescricao()); } // Caso indicador Validar Documento Cliente Responsavel = 1 e // indicador Matricula obrigat�rio da Solicita��o = 2 if(form.getIcValidarDocumentoClienteResponsavel().equals("1") && solicitacaoTipoEspecificacao.getIndicadorMatricula().equals("2")){ throw new ActionServletException("atencao.especificacao.obrigatoriedade.imovel", null , solicitacaoTipoEspecificacao.getId().toString() + " " + solicitacaoTipoEspecificacao.getDescricao()); } if(form.getIcDocumentoSolicitanteObrigatorio().equals("1")){ solicitacaoTipoEspecificacao.setIndicadorDocumentoObrigatorio(new Short("1")); }else{ solicitacaoTipoEspecificacao.setIndicadorDocumentoObrigatorio(new Short("2")); } if(form.getIcValidarDocumentoClienteResponsavel().equals("1")){ solicitacaoTipoEspecificacao.setIndicadorValidarDocResponsavel(new Short("1")); }else{ solicitacaoTipoEspecificacao.setIndicadorValidarDocResponsavel(new Short("2")); } // Fluxo 7.1 - Atualiza Solicita��o Tipo Especifica��o fachada.atualizar(solicitacaoTipoEspecificacao); } // Fluxo 7.2 FiltroSolicitacaoDocumentoObrigatorio filtroSolDocObrig = new FiltroSolicitacaoDocumentoObrigatorio(); filtroSolDocObrig.adicionarParametro(new ParametroSimplesIn( FiltroSolicitacaoDocumentoObrigatorio.SOLICITACAO_TIPO_ESPECIFICACAO_ID, colecaoIdsTipoEspecificacao)); colecaoSolDocObrig = this.getFachada().pesquisar(filtroSolDocObrig, SolicitacaoDocumentoObrigatorio.class.getName()); if(colecaoSolDocObrig != null && !colecaoSolDocObrig.isEmpty()){ Iterator iteratorSolDocObrig = null; iteratorSolDocObrig = colecaoSolDocObrig.iterator(); SolicitacaoDocumentoObrigatorio solicitacaoDocumentoObrigatorio= null; while (iteratorSolDocObrig.hasNext()) { solicitacaoDocumentoObrigatorio = (SolicitacaoDocumentoObrigatorio) iteratorSolDocObrig.next(); // Caso Documento Solicitante Obrigat�rio seja igual a "N�O" e existir informa��es na // Tabela sol_espec_doc_obrig_meio para o step_id selecionado(s), dever� remover // todas as linhas existentes da tabela acima para o step_id correnpondente. fachada.remover(solicitacaoDocumentoObrigatorio); } } // Fluxo - 7.3.1.1 Incluir SOL_ESPEC_DOC_OBRIG_MEIO if(form.getIdsMeioSolicitacaoObrigatorio() != null){ List lista = Arrays.asList(form.getIdsMeioSolicitacaoObrigatorio()); Collection<MeioSolicitacao> colecaoMeioSolicitacao = new ArrayList(); FiltroMeioSolicitacao filtroMeioSolicitacao = new FiltroMeioSolicitacao(); filtroMeioSolicitacao.adicionarParametro(new ParametroSimplesIn( FiltroMeioSolicitacao.ID, lista)); colecaoMeioSolicitacao = this.getFachada().pesquisar(filtroMeioSolicitacao, MeioSolicitacao.class.getName()); if(colecaoMeioSolicitacao != null && !colecaoMeioSolicitacao.isEmpty() && form.getIcDocumentoSolicitanteObrigatorio().equals("1") ){ Iterator iteratorMeioSolicitacao = colecaoMeioSolicitacao.iterator(); iterator = colecaoSolTipoEspec.iterator(); solicitacaoTipoEspecificacao = null; MeioSolicitacao meioSolicitacao = null; SolicitacaoDocumentoObrigatorio solicitacaoDocumentoObrigatorio = null; SolicitacaoDocumentoObrigatorioPK solDocObrigatorioPK = null; while (iterator.hasNext()) { solicitacaoTipoEspecificacao = (SolicitacaoTipoEspecificacao) iterator.next(); iteratorMeioSolicitacao = colecaoMeioSolicitacao.iterator(); while (iteratorMeioSolicitacao.hasNext()) { meioSolicitacao = (MeioSolicitacao) iteratorMeioSolicitacao.next(); solDocObrigatorioPK = new SolicitacaoDocumentoObrigatorioPK( solicitacaoTipoEspecificacao, meioSolicitacao); solicitacaoDocumentoObrigatorio = new SolicitacaoDocumentoObrigatorio( solDocObrigatorioPK, new Date()); fachada.inserir(solicitacaoDocumentoObrigatorio); } } }else{ //throw new ActionServletException("atencao.naocadastrado", null, "Meio Solicita��o"); } } } // Monta a p�gina de sucesso montarPaginaSucesso(httpServletRequest, "Obrigatoriedade(s) de Documento(s) por Especifica��o " + "eferuada(s) com sucesso.", "Realizar outra Manuten��o em Obrigatoriedade de Documento por Especifica��o", "exibirInformarSolicitacaoDocumentoObrigatorioAction.do?menu=sim"); return retorno; } }