package gcom.gui.atendimentopublico.ligacaoagua; 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.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; /** * Action respons�vel pela realiza��o de efetuar religa��o de �gua com instala��o de hidrometro * * @author S�vio Luiz * @created 29/01/2008 */ public class EfetuarReligacaoAguaComInstalacaoHidrometroAction 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); EfetuarReligacaoAguaComInstalacaoHidrometroActionForm efetuarReligacaoAguaComInstalacaoHidrometroActionForm = (EfetuarReligacaoAguaComInstalacaoHidrometroActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); // Usuario logado no sistema Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); String ordemServicoId = efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getIdOrdemServico(); LigacaoAgua ligacaoAgua = this .setDadosLigacaoAgua(efetuarReligacaoAguaComInstalacaoHidrometroActionForm,fachada); HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = new HidrometroInstalacaoHistorico(); hidrometroInstalacaoHistorico = this .setDadosHidrometroInstalacaoHistorico( hidrometroInstalacaoHistorico, efetuarReligacaoAguaComInstalacaoHidrometroActionForm); 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"); imovel.setUltimaAlteracao(new Date()); ligacaoAgua.setImovel(imovel); // hidrometroInstalacaoHistorico.setImovel(imovel); //ligacaoAgua.setId(imovel.getId()); hidrometroInstalacaoHistorico.setLigacaoAgua(ligacaoAgua); } hidrometroInstalacaoHistorico.setLigacaoAgua(ligacaoAgua); ordemServico = this.setDadosOrdemServico(ordemServico, efetuarReligacaoAguaComInstalacaoHidrometroActionForm); String qtdParcelas = efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getQuantidadeParcelas(); IntegracaoComercialHelper integracaoComercialHelper = new IntegracaoComercialHelper(); integracaoComercialHelper.setLigacaoAgua(ligacaoAgua); integracaoComercialHelper.setImovel(imovel); integracaoComercialHelper.setOrdemServico(ordemServico); integracaoComercialHelper.setQtdParcelas(qtdParcelas); integracaoComercialHelper.setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico); if (efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getVeioEncerrarOS().equalsIgnoreCase("FALSE")) { integracaoComercialHelper.setVeioEncerrarOS(Boolean.FALSE); fachada.efetuarReligacaoAguaComInstalacaoHidrometro(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, "Religa��o de �gua com Instala��o de Hidr�metro efetuada com Sucesso", "Efetuar outra Religa��o de �gua com Instala��o de Hidr�metro", "exibirEfetuarReligacaoAguaComInstalacaoHidrometroAction.do?menu=sim"); } return retorno; } else { throw new ActionServletException("atencao.informe_campo", null, "Ordem de Servi�o"); } } // [SB0001] - Gerar Liga��o de �gua // // M�todo respons�vel por setar os dados da liga��o de �gua // de acordo com os dados selecionados pelo usu�rio e pelas exig�ncias do // caso de uso public LigacaoAgua setDadosLigacaoAgua( EfetuarReligacaoAguaComInstalacaoHidrometroActionForm efetuarReligacaoAguaComInstalacaoHidrometroActionForm,Fachada fachada) { FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarParametro(new ParametroSimples( FiltroLigacaoAgua.ID, efetuarReligacaoAguaComInstalacaoHidrometroActionForm.getMatriculaImovel())); Collection colecaoLigacaoAguaBase = fachada .pesquisar(filtroLigacaoAgua, LigacaoAgua.class.getName()); LigacaoAgua ligacaoAgua = (LigacaoAgua) Util .retonarObjetoDeColecao(colecaoLigacaoAguaBase); if (efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getDataReligacao() != null && !efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getDataReligacao().equals("")) { Date data = Util .converteStringParaDate(efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getDataReligacao()); ligacaoAgua.setDataReligacao(data); } else { throw new ActionServletException("atencao.informe_campo", null, " Data da Religa��o"); } return ligacaoAgua; } // [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, EfetuarReligacaoAguaComInstalacaoHidrometroActionForm efetuarReligacaoAguaComInstalacaoHidrometroActionForm) { String idServicoMotivoNaoCobranca = efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getMotivoNaoCobranca(); String valorPercentual = efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getPercentualCobranca(); if (ordemServico != null && efetuarReligacaoAguaComInstalacaoHidrometroActionForm .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( efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getPercentualCobranca())); } ordemServico.setUltimaAlteracao(new Date()); } BigDecimal valorAtual = new BigDecimal(0); if (efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getValorDebito() != null) { String valorDebito = efetuarReligacaoAguaComInstalacaoHidrometroActionForm .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, EfetuarReligacaoAguaComInstalacaoHidrometroActionForm efetuarReligacaoAguaComInstalacaoHidrometroActionForm) { Fachada fachada = Fachada.getInstancia(); String numeroHidrometro = efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getNumeroHidrometro(); if (numeroHidrometro != null) { // Pesquisa o Hidr�metro Hidrometro hidrometro = fachada.pesquisarHidrometroPeloNumero(numeroHidrometro); // FiltroHidrometro filtroHidrometro = new FiltroHidrometro(); // filtroHidrometro.adicionarParametro(new ParametroSimples( // FiltroHidrometro.NUMERO_HIDROMETRO, numeroHidrometro)); // // Realiza a pesquisa do Hidr�metro // Collection colecaoHidrometro = fachada.pesquisar(filtroHidrometro, // Hidrometro.class.getName()); // // // verificar se o n�mero do hidr�metro n�o est� cadastrado // if (colecaoHidrometro == null || colecaoHidrometro.isEmpty()) { // throw new ActionServletException( // "atencao.hidrometro_inexistente"); // } // Iterator iteratorHidrometro = colecaoHidrometro.iterator(); // Hidrometro hidrometro = (Hidrometro) iteratorHidrometro.next(); if (hidrometro == null) { throw new ActionServletException( "atencao.hidrometro_inexistente"); } hidrometroInstalacaoHistorico.setHidrometro(hidrometro); } // Data instala��o if (efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getDataInstalacao() != null && !efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getDataInstalacao().equals("")) { hidrometroInstalacaoHistorico .setDataInstalacao(Util .converteStringParaDate(efetuarReligacaoAguaComInstalacaoHidrometroActionForm .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(efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getLocalInstalacao())); hidrometroInstalacaoHistorico .setHidrometroLocalInstalacao(hidrometroLocalInstalacao); // prote��o HidrometroProtecao hidrometroProtecao = new HidrometroProtecao(); hidrometroProtecao.setId(Integer .parseInt(efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getProtecao())); hidrometroInstalacaoHistorico.setHidrometroProtecao(hidrometroProtecao); // leitura instala��o if (efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getLeituraInstalacao() != null && !efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getLeituraInstalacao().trim().equals("")) { hidrometroInstalacaoHistorico .setNumeroLeituraInstalacao(Integer .parseInt(efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getLeituraInstalacao())); } else { hidrometroInstalacaoHistorico.setNumeroLeituraInstalacao(0); } // cavalete hidrometroInstalacaoHistorico.setIndicadorExistenciaCavalete(Short .parseShort(efetuarReligacaoAguaComInstalacaoHidrometroActionForm .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 (efetuarReligacaoAguaComInstalacaoHidrometroActionForm.getNumeroSelo() != null && !efetuarReligacaoAguaComInstalacaoHidrometroActionForm .getNumeroSelo().equals("")) { hidrometroInstalacaoHistorico .setNumeroSelo(efetuarReligacaoAguaComInstalacaoHidrometroActionForm .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; } }