package gcom.gui.atendimentopublico; import gcom.atendimentopublico.bean.IntegracaoComercialHelper; import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAgua; import gcom.atendimentopublico.ligacaoagua.LigacaoAgua; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.atendimentopublico.ordemservico.ServicoNaoCobrancaMotivo; import gcom.cadastro.imovel.FiltroImovel; import gcom.cadastro.imovel.Imovel; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.hidrometro.Hidrometro; import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico; import gcom.micromedicao.hidrometro.HidrometroLocalInstalacao; import gcom.micromedicao.hidrometro.HidrometroProtecao; import gcom.micromedicao.medicao.MedicaoTipo; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.Collection; import java.util.Date; 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 Leandro Cavalcanti * @created 20 de Junho de 2006 */ public class EfetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroAction 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) { // localiza o action no objeto actionmapping ActionForward retorno = actionMapping.findForward("telaSucesso"); HttpSession sessao = httpServletRequest.getSession(false); EfetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm = (EfetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); // Usuario logado no sistema Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); String ordemServicoId = efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getIdOrdemServico(); HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = new HidrometroInstalacaoHistorico(); hidrometroInstalacaoHistorico = this .setDadosHidrometroInstalacaoHistorico( hidrometroInstalacaoHistorico, efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm); Imovel imovel = null; if (ordemServicoId != null && !ordemServicoId.equals("")) { OrdemServico ordemServico = (OrdemServico) sessao .getAttribute("ordemServico"); if (ordemServico == null) { throw new ActionServletException( "atencao.ordem_servico_inexistente", null, "ORDEM DE SERVI�O INEXISTENTE"); } if (sessao.getAttribute("imovel") != null) { imovel = (Imovel) sessao.getAttribute("imovel"); FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("localidade.hidrometroLocalArmazenagem"); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, imovel.getId())); Collection colecaoImoveis = fachada.pesquisar(filtroImovel, Imovel.class.getName()); Imovel imovelComLocalidade = (Imovel) Util.retonarObjetoDeColecao(colecaoImoveis); if (imovelComLocalidade != null && imovelComLocalidade.getLocalidade().getHidrometroLocalArmazenagem() != null && hidrometroInstalacaoHistorico.getHidrometro().getHidrometroLocalArmazenagem() != null && !hidrometroInstalacaoHistorico.getHidrometro().getHidrometroLocalArmazenagem().getId().equals(imovelComLocalidade.getLocalidade().getHidrometroLocalArmazenagem().getId())) { throw new ActionServletException("atencao.hidrometro_local_armazenagem_imovel_diferente_hidrometro_local_armazenagem_hidrometro"); } imovel.setUltimaAlteracao(new Date()); } FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua (); filtroLigacaoAgua.adicionarParametro(new ParametroSimples(FiltroLigacaoAgua.ID, imovel.getId())); Collection colecaoLigacoesAgua = fachada.pesquisar(filtroLigacaoAgua, LigacaoAgua.class.getName()); LigacaoAgua ligacaoAgua = (LigacaoAgua) Util.retonarObjetoDeColecao(colecaoLigacoesAgua); ligacaoAgua .setDataRestabelecimentoAgua(Util .converteStringParaDate(efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getDataRestabelecimento())); hidrometroInstalacaoHistorico.setLigacaoAgua(ligacaoAgua); ordemServico = this.setDadosOrdemServico(ordemServico, efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm); String qtdParcelas = efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getQuantidadeParcelas(); IntegracaoComercialHelper integracaoComercialHelper = new IntegracaoComercialHelper(); integracaoComercialHelper.setLigacaoAgua(ligacaoAgua); integracaoComercialHelper.setImovel(imovel); integracaoComercialHelper.setOrdemServico(ordemServico); integracaoComercialHelper.setQtdParcelas(qtdParcelas); integracaoComercialHelper.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico); if (efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getVeioEncerrarOS().equalsIgnoreCase("FALSE")) { integracaoComercialHelper.setVeioEncerrarOS(Boolean.FALSE); fachada.efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometro(integracaoComercialHelper, usuario); } else { integracaoComercialHelper.setVeioEncerrarOS(Boolean.TRUE); sessao.setAttribute("integracaoComercialHelper", integracaoComercialHelper); if (sessao.getAttribute("semMenu") == null) { retorno = actionMapping .findForward("encerrarOrdemServicoAction"); } else { retorno = actionMapping .findForward("encerrarOrdemServicoPopupAction"); } sessao.removeAttribute("caminhoRetornoIntegracaoComercial"); } if (retorno.getName().equalsIgnoreCase("telaSucesso")) { // Monta a p�gina de sucesso montarPaginaSucesso(httpServletRequest, "Restabelecimento da Liga��o de �gua com Instala��o de Hidr�metro efetuada com Sucesso", "Efetuar outro Restabelecimento da Liga��o de �gua com Instala��o de Hidr�metro", "exibirEfetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroAction.do?menu=sim"); } return retorno; } else { throw new ActionServletException("atencao.informe_campo", null, "Ordem de Servi�o"); } } // [SB0003] - Atualizar Ordem de Servi�o // // M�todo respons�vel por setar os dados da ordem de servi�o // de acordo com as exig�ncias do caso de uso public OrdemServico setDadosOrdemServico( OrdemServico ordemServico, EfetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm) { String idServicoMotivoNaoCobranca = efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getMotivoNaoCobranca(); String valorPercentual = efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getPercentualCobranca(); if (ordemServico != null && efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getIdTipoDebito() != null) { ServicoNaoCobrancaMotivo servicoNaoCobrancaMotivo = null; ordemServico.setIndicadorComercialAtualizado(new Short("1")); if (idServicoMotivoNaoCobranca != null && !idServicoMotivoNaoCobranca .equals(ConstantesSistema.NUMERO_NAO_INFORMADO + "")) { servicoNaoCobrancaMotivo = new ServicoNaoCobrancaMotivo(); servicoNaoCobrancaMotivo.setId(new Integer( idServicoMotivoNaoCobranca)); } ordemServico.setServicoNaoCobrancaMotivo(servicoNaoCobrancaMotivo); if (valorPercentual != null) { ordemServico.setPercentualCobranca(new BigDecimal( efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getPercentualCobranca())); } ordemServico .setDataEncerramento(Util .converteStringParaDate(efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getDataRestabelecimento())); ordemServico.setUltimaAlteracao(new Date()); } BigDecimal valorAtual = new BigDecimal(0); if (efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getValorDebito() != null) { String valorDebito = efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getValorDebito().toString().replace(".", ""); valorDebito = valorDebito.replace(",", "."); valorAtual = new BigDecimal(valorDebito); ordemServico.setValorAtual(valorAtual); } return ordemServico; } // [SB0004] - Gerar Hist�rico de Instala��o do Hidr�metro // // M�todo respons�vel por setar os dados do hidr�metro instala��o hist�rico // de acordo com os dados selecionados pelo usu�rio e pelas exig�ncias do // caso de uso public HidrometroInstalacaoHistorico setDadosHidrometroInstalacaoHistorico( HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico, EfetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm) { Fachada fachada = Fachada.getInstancia(); String numeroHidrometro = efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getNumeroHidrometro(); if (numeroHidrometro != null) { // Pesquisa o Hidr�metro Hidrometro hidrometro = fachada.pesquisarHidrometroPeloNumero(numeroHidrometro); if (hidrometro == null) { throw new ActionServletException( "atencao.hidrometro_inexistente"); } hidrometroInstalacaoHistorico.setHidrometro(hidrometro); } // Data instala��o if (efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getDataInstalacao() != null && !efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getDataInstalacao().equals("")) { hidrometroInstalacaoHistorico .setDataInstalacao(Util .converteStringParaDate(efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getDataInstalacao())); } // Medi��o tipo MedicaoTipo medicaoTipo = new MedicaoTipo(); medicaoTipo.setId(MedicaoTipo.LIGACAO_AGUA); hidrometroInstalacaoHistorico.setMedicaoTipo(medicaoTipo); // hidr�metro local instala��o HidrometroLocalInstalacao hidrometroLocalInstalacao = new HidrometroLocalInstalacao(); hidrometroLocalInstalacao.setId(Integer .parseInt(efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getLocalInstalacao())); hidrometroInstalacaoHistorico .setHidrometroLocalInstalacao(hidrometroLocalInstalacao); // prote��o HidrometroProtecao hidrometroProtecao = new HidrometroProtecao(); hidrometroProtecao.setId(Integer .parseInt(efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getProtecao())); hidrometroInstalacaoHistorico.setHidrometroProtecao(hidrometroProtecao); // leitura instala��o if (efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getLeituraInstalacao() != null && !efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getLeituraInstalacao().trim().equals("")) { hidrometroInstalacaoHistorico .setNumeroLeituraInstalacao(Integer .parseInt(efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getLeituraInstalacao())); } else { hidrometroInstalacaoHistorico.setNumeroLeituraInstalacao(0); } // cavalete hidrometroInstalacaoHistorico.setIndicadorExistenciaCavalete(Short .parseShort(efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getSituacaoCavalete())); /* * Campos opcionais */ // data da retirada hidrometroInstalacaoHistorico.setDataRetirada(null); // leitura retirada hidrometroInstalacaoHistorico.setNumeroLeituraRetirada(null); // leitura corte hidrometroInstalacaoHistorico.setNumeroLeituraCorte(null); // leitura supress�o hidrometroInstalacaoHistorico.setNumeroLeituraSupressao(null); // numero selo if (efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm.getNumeroSelo() != null && !efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getNumeroSelo().equals("")) { hidrometroInstalacaoHistorico .setNumeroSelo(efetuarRestabelecimentoLigacaoAguaComInstalacaoHidrometroActionForm .getNumeroSelo()); } else { hidrometroInstalacaoHistorico.setNumeroSelo(null); } // tipo de rateio hidrometroInstalacaoHistorico.setRateioTipo(null); hidrometroInstalacaoHistorico.setDataImplantacaoSistema(new Date()); // indicador instala��o substitui��o hidrometroInstalacaoHistorico .setIndicadorInstalcaoSubstituicao(new Short("1")); // data �ltima altera��o hidrometroInstalacaoHistorico.setUltimaAlteracao(new Date()); return hidrometroInstalacaoHistorico; } }