package gcom.gui.atendimentopublico.hidrometro; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.Imovel; import gcom.cadastro.imovel.PocoTipo; import gcom.fachada.Fachada; import gcom.gui.GcomAction; import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico; import gcom.micromedicao.medicao.MedicaoTipo; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.util.Collection; 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; /** * Action para atualiza��o da instala��o do hidr�metro. * * @author lms * @date 24/07/2006 */ public class AtualizarInstalacaoHidrometroAction extends GcomAction { /** * Este caso de uso permite efetuar a atualiza��o dos atributos da * instala��o do hidr�metro * * [UC0368] Atualizar Instala��o de Hidr�metro * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucesso"); AtualizarInstalacaoHidrometroActionForm form = (AtualizarInstalacaoHidrometroActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); Imovel imovel = null; // Usuario logado no sistema Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); /* * [UC0107] Registrar Transa��o * */ // RegistradorOperacao registradorOperacao = new RegistradorOperacao( // Operacao.OPERACAO_INSTALACAO_HIDROMETRO_ATUALIZAR, // new UsuarioAcaoUsuarioHelper(usuario, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // // Operacao operacao = new Operacao(); // operacao.setId(Operacao.OPERACAO_INSTALACAO_HIDROMETRO_ATUALIZAR); // // OperacaoEfetuada operacaoEfetuada = new OperacaoEfetuada(); // operacaoEfetuada.setOperacao(operacao); // [UC0107] -Fim- Registrar Transa��o if (form.getIdOrdemServico() != null && !form.getIdOrdemServico().equals("")) { Integer idOrdemServico = Util.converterStringParaInteger(form.getIdOrdemServico()); OrdemServico ordemServico = fachada.recuperaOSPorId(idOrdemServico); // Valida a ordem de servi�o fachada.validarExibirAtualizarInstalacaoHidrometro(ordemServico,false); imovel = ordemServico.getRegistroAtendimento().getImovel(); } else { String idImovel = form.getIdImovel(); String inscricaoImovelEncontrado = fachada .pesquisarInscricaoImovel(new Integer(idImovel)); form.setMatriculaImovel(idImovel); form.setInscricaoImovel(inscricaoImovelEncontrado); FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples( FiltroImovel.ID, idImovel)); filtroImovel .adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LIGACAO_AGUA_SITUACAO); filtroImovel .adicionarCaminhoParaCarregamentoEntidade(FiltroImovel.LIGACAO_ESGOTO_SITUACAO); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("hidrometroInstalacaoHistorico.hidrometro"); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("quadra"); filtroImovel .adicionarCaminhoParaCarregamentoEntidade("ligacaoAgua"); filtroImovel .adicionarCaminhoParaCarregamentoEntidade("ligacaoAgua.hidrometroInstalacaoHistorico"); Collection colecaoImovel = fachada.pesquisar(filtroImovel, Imovel.class.getName()); imovel = (Imovel) colecaoImovel.iterator().next(); } HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = null; Integer medicaoTipo = Integer.parseInt(form.getMedicaoTipo()); if (MedicaoTipo.LIGACAO_AGUA.equals(medicaoTipo)) { hidrometroInstalacaoHistorico = imovel.getLigacaoAgua() .getHidrometroInstalacaoHistorico(); } else if (MedicaoTipo.POCO.equals(medicaoTipo)) { hidrometroInstalacaoHistorico = imovel .getHidrometroInstalacaoHistorico(); PocoTipo pocoTipo = new PocoTipo(); pocoTipo.setId(new Integer(form.getTipoPoco())); imovel.setPocoTipo(pocoTipo); } // Valida a exist�ncia do hidr�metro fachada.validarExistenciaHidrometro(imovel, medicaoTipo); // Atualiza a entidade com os valores do formul�rio form.setFormValues(hidrometroInstalacaoHistorico); // Informa que o usu�rio que fez a instala��o � o usu�rio logado hidrometroInstalacaoHistorico.setUsuarioInstalacao((Usuario) sessao .getAttribute("usuarioLogado")); // Atualiza a base de dados com as altera��es da instala��o hidr�metro fachada.atualizarInstalacaoHidrometro(imovel, Integer.parseInt(form .getMedicaoTipo()),usuario); // Setando Opera��o // hidrometroInstalacaoHistorico.setOperacaoEfetuada(operacaoEfetuada); // hidrometroInstalacaoHistorico.adicionarUsuario(usuario, // UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO); // registradorOperacao.registrarOperacao(hidrometroInstalacaoHistorico); // Exibe a p�gina de sucesso montarPaginaSucesso(httpServletRequest, "Atualiza��o do Hist�rico da Instala��o de Hidr�metro do im�vel " + imovel.getId() + " efetuada com sucesso.", "Efetuar nova Atualiza��o do Hist�rico da Instala��o de Hidr�metro", "exibirAtualizarInstalacaoHidrometroAction.do?menu=sim"); // Exibe a p�gina de sucesso /* * montarPaginaSucesso(httpServletRequest, "Atualiza��o do Hist�rico da * Instala��o de Hidr�metro do im�vel " + imovel.getId() + " efetuada * com sucesso.", "Efetuar Atualiza��o do Hist�rico da Instala��o de * Hidr�metro", "exibirEfetuarLigacaoEsgotoAction.do?menu=sim", * "exibirAtualizarInstalacaoHidrometroAction.do"); */ return retorno; } }