package gcom.gui.cadastro.unidade; import gcom.atendimentopublico.registroatendimento.FiltroMeioSolicitacao; import gcom.atendimentopublico.registroatendimento.MeioSolicitacao; import gcom.cadastro.empresa.Empresa; import gcom.cadastro.empresa.FiltroEmpresa; import gcom.cadastro.geografico.Municipio; import gcom.cadastro.localidade.FiltroGerenciaRegional; import gcom.cadastro.localidade.GerenciaRegional; import gcom.cadastro.unidade.FiltroUnidadeOrganizacional; import gcom.cadastro.unidade.FiltroUnidadeOrganizacionalMunicipio; import gcom.cadastro.unidade.FiltroUnidadeTipo; import gcom.cadastro.unidade.UnidadeOrganizacional; import gcom.cadastro.unidade.UnidadeOrganizacionalMunicipio; import gcom.cadastro.unidade.UnidadeTipo; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroNulo; import gcom.util.filtro.ParametroSimples; 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; /** * Description of the Class * * @author Ana Maria * @date 22/11/2006 */ public class AtualizarUnidadeOrganizacionalAction 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) { ActionForward retorno = actionMapping.findForward("telaSucesso"); // Obt�m a fachada Fachada fachada = Fachada.getInstancia(); //Obt�m a sess�o HttpSession sessao = httpServletRequest.getSession(false); /*// ------------ REGISTRAR TRANSA��O ---------------- RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_HIDROMETRO_ATUALIZAR, new UsuarioAcaoUsuarioHelper(Usuario.USUARIO_TESTE, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); Operacao operacao = new Operacao(); operacao.setId(Operacao.OPERACAO_HIDROMETRO_ATUALIZAR); OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); operacaoEfetuada.setOperacao(operacao); //------------ REGISTRAR TRANSA��O ----------------*/ AtualizarUnidadeOrganizacionalActionForm form = (AtualizarUnidadeOrganizacionalActionForm) actionForm; //UnidadeOrganizacional unidadeNova = new UnidadeOrganizacional(); UnidadeOrganizacional unidadeNova = (UnidadeOrganizacional)sessao.getAttribute("unidadeOrganizacional"); //unidadeNova.setId(new Integer(form.getId())); unidadeNova.setIndicadorEsgoto(new Short(form.getUnidadeEsgoto()).shortValue()); unidadeNova.setIndicadorTramite(new Short(form.getUnidadeAceita()).shortValue()); unidadeNova.setIndicadorAberturaRa(new Short(form.getUnidadeAbreRegistro()).shortValue()); unidadeNova.setIndicadorUso(new Short(form.getIndicadorUso()).shortValue()); if(form.getSigla()!= null){ unidadeNova.setSigla(form.getSigla()); }else{ unidadeNova.setSigla(null); } unidadeNova.setDescricao(form.getDescricao()); String idUnidadeTipo = form.getUnidadeTipo(); unidadeNova.setUnidadeTipo(this.pesquisarUnidadeTipo(idUnidadeTipo)); String idEmpresa = form.getIdEmpresa(); unidadeNova.setEmpresa(this.pesquisarEmpresa(idEmpresa)); String idUnidadeSuperior = form.getIdUnidadeSuperior(); if(idUnidadeSuperior != null && !idUnidadeSuperior.equals("")){ unidadeNova.setUnidadeSuperior(this.pesquisarUnidadeOrganizacional(idUnidadeSuperior)); }else{ unidadeNova.setUnidadeSuperior(null); } String idUnidadeCentralizadora = form.getIdUnidadeCentralizadora(); if(idUnidadeCentralizadora != null && !idUnidadeCentralizadora.equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO) && !idUnidadeCentralizadora.equals("")){ unidadeNova.setUnidadeCentralizadora(this.pesquisarUnidadeOrganizacional(idUnidadeCentralizadora)); }else{ unidadeNova.setUnidadeCentralizadora(null); } //........................................................................................... // 06/03/2008 - Altera��o solicitada por Fab�ola Ara�jo. // Yara Taciane de Souza. //Inclus�o de op��o de tratamento pra Unidade Repavimentadora. String idUnidadeRepavimentadora = form.getIdUnidadeRepavimentadora(); if(idUnidadeRepavimentadora != null && !idUnidadeRepavimentadora.equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO) && !idUnidadeRepavimentadora.equals("")){ unidadeNova.setUnidadeRepavimentadora(this.pesquisarUnidadeOrganizacional(idUnidadeRepavimentadora)); }else{ unidadeNova.setUnidadeRepavimentadora(null); } //...................................................................................... String idMeioSolicitacao = form.getMeioSolicitacao(); if(idMeioSolicitacao != null && !idMeioSolicitacao.equals(""+ConstantesSistema.NUMERO_NAO_INFORMADO) && !idMeioSolicitacao.equals("")){ unidadeNova.setMeioSolicitacao(this.pesquisarMeioSolicitacao(idMeioSolicitacao)); } if(unidadeNova.getGerenciaRegional() != null){ String idGerenciaRegional = String.valueOf(unidadeNova.getGerenciaRegional().getId()); if(idGerenciaRegional != null && !idGerenciaRegional.equals("")){ unidadeNova.setGerenciaRegional(this.pesquisarGerenciaRegional(idGerenciaRegional)); } } fachada.atualizarUnidadeOrganizacional(unidadeNova, this.getUsuarioLogado(httpServletRequest)); //Inserir os novos municipios if ( sessao.getAttribute("colecaoMunicipioSelecionado") != null && !sessao.getAttribute("colecaoMunicipioSelecionado").equals("") ) { ArrayList colecaoMunicipioSelecionado = (ArrayList) sessao.getAttribute("colecaoMunicipioSelecionado"); Iterator iteratorColecaoMunicipiosSelecionados = colecaoMunicipioSelecionado.iterator(); while (iteratorColecaoMunicipiosSelecionados.hasNext() ) { Municipio municipio = (Municipio) iteratorColecaoMunicipiosSelecionados.next(); UnidadeOrganizacional unidadeRepav = new UnidadeOrganizacional(); unidadeRepav.setId(new Integer(unidadeNova.getId())); UnidadeOrganizacionalMunicipio unidadeOrgMunicipio = new UnidadeOrganizacionalMunicipio(); unidadeOrgMunicipio.setIdMunicipio(municipio); unidadeOrgMunicipio.setIdUnidadeRepavimentadora(unidadeRepav); unidadeOrgMunicipio.setDataVinculacao(new Date()); unidadeOrgMunicipio.setDataDesvinculacao(null); unidadeOrgMunicipio.setUltimaAlteracao(new Date()); FiltroUnidadeOrganizacionalMunicipio filtro = new FiltroUnidadeOrganizacionalMunicipio(); filtro.adicionarParametro(new ParametroSimples( FiltroUnidadeOrganizacionalMunicipio.ID_MUNICIPIO, municipio.getId())); filtro.adicionarParametro( new ParametroNulo( FiltroUnidadeOrganizacionalMunicipio.DATA_DESVINCULACAO)); Collection colecao = fachada.pesquisar(filtro , UnidadeOrganizacionalMunicipio.class.getName()); if (colecao != null && !colecao.isEmpty()) { UnidadeOrganizacionalMunicipio unid = (UnidadeOrganizacionalMunicipio) Util.retonarObjetoDeColecao(colecao); unidadeOrgMunicipio.setId(unid.getId()); fachada.atualizar(unidadeOrgMunicipio); } else { fachada.inserir(unidadeOrgMunicipio); } } } //Atauliza os Municipios Desvinculados if ( sessao.getAttribute("colecaoMunicipiosDesvinculados") != null && !sessao.getAttribute("colecaoMunicipiosDesvinculados").equals("") ) { ArrayList colecaoMunicipiosDesvinculados = (ArrayList) sessao.getAttribute("colecaoMunicipiosDesvinculados"); Iterator iteratorColecaoMunicipiosDesvinculados = colecaoMunicipiosDesvinculados.iterator(); while (iteratorColecaoMunicipiosDesvinculados.hasNext() ) { UnidadeOrganizacionalMunicipio unidade = (UnidadeOrganizacionalMunicipio) iteratorColecaoMunicipiosDesvinculados.next(); unidade.setDataDesvinculacao(new Date()); unidade.setUltimaAlteracao(new Date()); fachada.atualizar(unidade); } } montarPaginaSucesso(httpServletRequest, "Unidade Organizacional "+unidadeNova.getDescricao()+" atualizada com sucesso.", "Realizar outra Manuten��o de Unidade Organizacional", "exibirFiltrarUnidadeOrganizacionalAction.do?menu=sim"); return retorno; } private UnidadeOrganizacional pesquisarUnidadeOrganizacional(String id) { UnidadeOrganizacional unidadeOrganizacional = null; // Filtro para obter unidade organizacional ativo de id informado FiltroUnidadeOrganizacional filtroUnidadeOrganizacional = new FiltroUnidadeOrganizacional(); filtroUnidadeOrganizacional.adicionarParametro( new ParametroSimples(FiltroUnidadeOrganizacional.ID, id)); filtroUnidadeOrganizacional.adicionarCaminhoParaCarregamentoEntidade("unidadeTipo"); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoUnidade = Fachada.getInstancia() .pesquisar(filtroUnidadeOrganizacional,UnidadeOrganizacional.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoUnidade != null && !colecaoUnidade.isEmpty()) { // Obt�m o objeto da cole��o pesquisada unidadeOrganizacional = (UnidadeOrganizacional) Util.retonarObjetoDeColecao(colecaoUnidade); } return unidadeOrganizacional; } private Empresa pesquisarEmpresa(String id) { Empresa empresa = null; FiltroEmpresa filtroEmpresa = new FiltroEmpresa(); filtroEmpresa.adicionarParametro( new ParametroSimples(FiltroEmpresa.ID, id)); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoEmpresa = Fachada.getInstancia().pesquisar(filtroEmpresa,Empresa.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoEmpresa != null && !colecaoEmpresa.isEmpty()) { // Obt�m o objeto da cole��o pesquisada empresa = (Empresa) Util.retonarObjetoDeColecao(colecaoEmpresa); } return empresa; } private GerenciaRegional pesquisarGerenciaRegional(String id) { GerenciaRegional gerenciaRegional = null; FiltroGerenciaRegional filtroGerenciaRegional = new FiltroGerenciaRegional(); filtroGerenciaRegional.adicionarParametro( new ParametroSimples(FiltroGerenciaRegional.ID, id)); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoGerenciaRegional = Fachada.getInstancia().pesquisar(filtroGerenciaRegional,GerenciaRegional.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoGerenciaRegional != null && !colecaoGerenciaRegional.isEmpty()) { // Obt�m o objeto da cole��o pesquisada gerenciaRegional = (GerenciaRegional) Util.retonarObjetoDeColecao(colecaoGerenciaRegional); } return gerenciaRegional; } private UnidadeTipo pesquisarUnidadeTipo(String id) { UnidadeTipo unidadeTipo = null; FiltroUnidadeTipo filtroUnidadeTipo = new FiltroUnidadeTipo(); filtroUnidadeTipo.adicionarParametro( new ParametroSimples(FiltroGerenciaRegional.ID, id)); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoUnidadeTipo = Fachada.getInstancia().pesquisar(filtroUnidadeTipo,UnidadeTipo.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoUnidadeTipo != null && !colecaoUnidadeTipo.isEmpty()) { // Obt�m o objeto da cole��o pesquisada unidadeTipo = (UnidadeTipo) Util.retonarObjetoDeColecao(colecaoUnidadeTipo); } return unidadeTipo; } private MeioSolicitacao pesquisarMeioSolicitacao(String id) { MeioSolicitacao meioSolicitacao = null; FiltroMeioSolicitacao filtroMeioSolicitacao = new FiltroMeioSolicitacao(); filtroMeioSolicitacao.adicionarParametro( new ParametroSimples(FiltroMeioSolicitacao.ID, id)); // Pesquisa de acordo com os par�metros informados no filtro Collection colecaoMeioSolicitacao = Fachada.getInstancia().pesquisar(filtroMeioSolicitacao,MeioSolicitacao.class.getName()); // Verifica se a pesquisa retornou algum objeto para a cole��o if (colecaoMeioSolicitacao != null && !colecaoMeioSolicitacao.isEmpty()) { // Obt�m o objeto da cole��o pesquisada meioSolicitacao = (MeioSolicitacao) Util.retonarObjetoDeColecao(colecaoMeioSolicitacao); } return meioSolicitacao; } }