package gcom.gui.atendimentopublico; import gcom.atendimentopublico.bean.IntegracaoComercialHelper; import gcom.atendimentopublico.ligacaoagua.FiltroLigacaoAgua; import gcom.atendimentopublico.ligacaoagua.LigacaoAgua; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoagua.SupressaoTipo; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.atendimentopublico.ordemservico.ServicoNaoCobrancaMotivo; import gcom.atendimentopublico.ordemservico.SupressaoMotivo; 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.FiltroHidrometroInstalacaoHistorico; import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico; 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; /** * Descri��o da classe * * @author R�mulo Aur�lio * @date 14/07/2006 */ public class EfetuarSupressaoLigacaoAguaAction extends GcomAction { /** * [UC0360] Efetuar Supressao de �gua * * Este caso de uso permite efetuar supress�o da liga��o de �gua, sendo * chamada pela funcionalidade que encerra a execu��o da ordem de servi�o ou * chamada diretamente do menu. * * @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) { // Set no mapeamento de retorno ActionForward retorno = actionMapping.findForward("telaSucesso"); // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); EfetuarSupressaoLigacaoAguaActionForm efetuarSupressaoLigacaoAguaActionForm = (EfetuarSupressaoLigacaoAguaActionForm) actionForm; IntegracaoComercialHelper integracaoComercialHelper = new IntegracaoComercialHelper(); OrdemServico ordemServico = (OrdemServico) sessao .getAttribute("ordemServico"); // Usuario logado no sistema Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); integracaoComercialHelper.setUsuarioLogado(usuario); // Ordem de servi�o String idOrdemServico = efetuarSupressaoLigacaoAguaActionForm .getIdOrdemServico(); String motivoSupressao = efetuarSupressaoLigacaoAguaActionForm .getMotivoSupressao(); String numeroLeituraSupressao = efetuarSupressaoLigacaoAguaActionForm .getNumeroLeituraSupressao(); String tipoSupressao = efetuarSupressaoLigacaoAguaActionForm .getTipoSupressao(); String numeroSeloSupressao = efetuarSupressaoLigacaoAguaActionForm .getNumeroSeloSupressao(); String indicadorTipoSupressao = efetuarSupressaoLigacaoAguaActionForm .getIndicadorTipoSupressao(); String dataEncerramento = efetuarSupressaoLigacaoAguaActionForm .getDataSupressao(); String idServicoMotivoNaoCobranca = efetuarSupressaoLigacaoAguaActionForm .getMotivoNaoCobranca(); String valorPercentual = efetuarSupressaoLigacaoAguaActionForm .getPercentualCobranca(); // Comentado por Raphael Rossiter em 28/02/2007 // Imovel imovel = ordemServico.getRegistroAtendimento().getImovel(); Imovel imovel = ordemServico.getImovel(); FiltroImovel filtroImovel = new FiltroImovel(); filtroImovel.adicionarParametro(new ParametroSimples(FiltroImovel.ID, imovel.getId())); filtroImovel.adicionarCaminhoParaCarregamentoEntidade("ligacaoAgua"); Collection colecaoImovel = fachada.pesquisar(filtroImovel, Imovel.class .getName()); imovel = (Imovel) colecaoImovel.iterator().next(); // [SB0001] - Atualizar Ligacao Agua // validar Data Corte Date dataSupressao = null; if (dataEncerramento != null && !dataEncerramento.equals("")) { dataSupressao = Util.converteStringParaDate(dataEncerramento); } else { throw new ActionServletException("atencao.required", null, " Data do Corte"); } SupressaoTipo supressaoTipo = new SupressaoTipo(); supressaoTipo.setId(new Integer(tipoSupressao)); LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao(); if (indicadorTipoSupressao.equals("1")) { ligacaoAguaSituacao.setId(LigacaoAguaSituacao.SUPRIMIDO); supressaoTipo .setIndicadorTotal(ConstantesSistema.INDICADOR_USO_ATIVO); } else { ligacaoAguaSituacao.setId(LigacaoAguaSituacao.SUPR_PARC_PEDIDO); supressaoTipo .setIndicadorParcial(ConstantesSistema.INDICADOR_USO_ATIVO); } SupressaoMotivo supressaoMotivo = new SupressaoMotivo(); supressaoMotivo.setId(new Integer(motivoSupressao)); FiltroLigacaoAgua filtroLigacaoAgua = new FiltroLigacaoAgua(); filtroLigacaoAgua.adicionarCaminhoParaCarregamentoEntidade(FiltroLigacaoAgua.HIDROMETRO_INSTALACAO_HISTORICO); filtroLigacaoAgua.adicionarParametro(new ParametroSimples( FiltroLigacaoAgua.ID, imovel.getLigacaoAgua().getId())); Collection colecaoLigacaoAgua = fachada.pesquisar(filtroLigacaoAgua, LigacaoAgua.class.getName()); filtroLigacaoAgua .adicionarCaminhoParaCarregamentoEntidade("hidrometroInstalacaoHistorico"); LigacaoAgua ligacaoAgua = (LigacaoAgua) colecaoLigacaoAgua.iterator() .next(); if (ligacaoAgua.getHidrometroInstalacaoHistorico() != null) { FiltroHidrometroInstalacaoHistorico filtroHidrometroInstalacaoHistorico = new FiltroHidrometroInstalacaoHistorico(); filtroHidrometroInstalacaoHistorico .adicionarParametro(new ParametroSimples( FiltroHidrometroInstalacaoHistorico.ID, ligacaoAgua .getHidrometroInstalacaoHistorico().getId())); filtroHidrometroInstalacaoHistorico .adicionarCaminhoParaCarregamentoEntidade("imovel"); filtroHidrometroInstalacaoHistorico .adicionarCaminhoParaCarregamentoEntidade("hidrometroProtecao"); filtroHidrometroInstalacaoHistorico .adicionarCaminhoParaCarregamentoEntidade("hidrometro"); filtroHidrometroInstalacaoHistorico .adicionarCaminhoParaCarregamentoEntidade("rateioTipo"); filtroHidrometroInstalacaoHistorico .adicionarCaminhoParaCarregamentoEntidade("ligacaoAgua"); filtroHidrometroInstalacaoHistorico .adicionarCaminhoParaCarregamentoEntidade("hidrometroLocalInstalacao"); filtroHidrometroInstalacaoHistorico .adicionarCaminhoParaCarregamentoEntidade("rateioTipo"); Collection colecaoHidrometroInstalacaHistorico = fachada.pesquisar( filtroHidrometroInstalacaoHistorico, HidrometroInstalacaoHistorico.class.getName()); HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = (HidrometroInstalacaoHistorico) colecaoHidrometroInstalacaHistorico .iterator().next(); if (hidrometroInstalacaoHistorico != null && numeroLeituraSupressao != null) { if (numeroLeituraSupressao != null && !numeroLeituraSupressao.equals("")) { hidrometroInstalacaoHistorico .setNumeroLeituraSupressao(new Integer( numeroLeituraSupressao)); } hidrometroInstalacaoHistorico.setUltimaAlteracao(new Date()); ligacaoAgua .setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico); } integracaoComercialHelper .setHidrometroInstalacaoHistorico(hidrometroInstalacaoHistorico); } ligacaoAgua.setDataSupressao(dataSupressao); if (numeroSeloSupressao != null && !numeroSeloSupressao.equals("")) { ligacaoAgua .setNumeroSeloSupressao(new Integer(numeroSeloSupressao)); } // ligacaoAgua.setDataSupressao(ordemServico.getDataEncerramento()); ligacaoAgua.setSupressaoTipo(supressaoTipo); ligacaoAgua.setSupressaoMotivo(supressaoMotivo); ligacaoAgua.setUltimaAlteracao(new Date()); imovel.setLigacaoAguaSituacao(ligacaoAguaSituacao); imovel.setLigacaoAgua(ligacaoAgua); imovel.setUltimaAlteracao(new Date()); BigDecimal valorAtual = new BigDecimal(0); if (ordemServico != null && efetuarSupressaoLigacaoAguaActionForm.getIdTipoDebito() != null) { ServicoNaoCobrancaMotivo servicoNaoCobrancaMotivo = null; ordemServico.setIndicadorComercialAtualizado(ConstantesSistema.SIM); if (efetuarSupressaoLigacaoAguaActionForm.getValorDebito() != null) { String valorDebito = efetuarSupressaoLigacaoAguaActionForm .getValorDebito().toString().replace(".", ""); valorDebito = valorDebito.replace(",", "."); valorAtual = new BigDecimal(valorDebito); ordemServico.setValorAtual(valorAtual); } if (idServicoMotivoNaoCobranca != null && !idServicoMotivoNaoCobranca.equals("-1")) { servicoNaoCobrancaMotivo = new ServicoNaoCobrancaMotivo(); servicoNaoCobrancaMotivo.setId(new Integer( idServicoMotivoNaoCobranca)); } ordemServico.setServicoNaoCobrancaMotivo(servicoNaoCobrancaMotivo); if (valorPercentual != null) { ordemServico.setPercentualCobranca(new BigDecimal( efetuarSupressaoLigacaoAguaActionForm .getPercentualCobranca())); } ordemServico.setUltimaAlteracao(new Date()); } String qtdParcelas = efetuarSupressaoLigacaoAguaActionForm .getQuantidadeParcelas(); integracaoComercialHelper.setLigacaoAgua(ligacaoAgua); integracaoComercialHelper.setImovel(imovel); integracaoComercialHelper.setOrdemServico(ordemServico); integracaoComercialHelper.setQtdParcelas(qtdParcelas); if (efetuarSupressaoLigacaoAguaActionForm.getVeioEncerrarOS() .equalsIgnoreCase("FALSE")) { integracaoComercialHelper.setVeioEncerrarOS(Boolean.FALSE); fachada.efetuarSupressaoLigacaoAgua(integracaoComercialHelper); } 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")) { montarPaginaSucesso(httpServletRequest, "Supress�o da Liga��o de �gua para o im�vel " + imovel.getId() + " efetuada com sucesso.", "Efetuar outra Supress�o da Liga��o de �gua", "exibirEfetuarSupressaoLigacaoAguaAction.do?menu=sim", "exibirEfetuarSupressaoLigacaoAguaAction.do?idOrdemServico=" + idOrdemServico + "", "Atualizar Supress�o de Liga��o de �gua"); } return retorno; } }