package gcom.gui.atendimentopublico; import gcom.atendimentopublico.LigacaoOrigem; import gcom.atendimentopublico.bean.IntegracaoComercialHelper; import gcom.atendimentopublico.ligacaoagua.LigacaoAgua; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaDiametro; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaMaterial; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaPerfil; import gcom.atendimentopublico.ligacaoagua.RamalLocalInstalacao; import gcom.atendimentopublico.ordemservico.OrdemServico; import gcom.atendimentopublico.ordemservico.ServicoNaoCobrancaMotivo; import gcom.cadastro.imovel.Imovel; import gcom.fachada.Fachada; import gcom.faturamento.consumotarifa.ConsumoTarifa; import gcom.faturamento.consumotarifa.FiltroConsumoTarifa; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; 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 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 Leandro Cavalcanti * @created 20 de Junho de 2006 */ public class EfetuarLigacaoAguaAction 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"); HttpSession sessao = httpServletRequest.getSession(false); EfetuarLigacaoAguaActionForm ligacaoAguaActionForm = (EfetuarLigacaoAguaActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); String ordemServicoId = ligacaoAguaActionForm.getIdOrdemServico(); String diametroLigacao = ligacaoAguaActionForm.getDiametroLigacao(); String materialLigacao = ligacaoAguaActionForm.getMaterialLigacao(); String idPerfilLigacao = ligacaoAguaActionForm.getPerfilLigacao(); //[FS0015] - verificar tarifa de consumo associada. FiltroConsumoTarifa filtroConsumoTarifa = new FiltroConsumoTarifa(); filtroConsumoTarifa.adicionarParametro(new ParametroSimples ( FiltroConsumoTarifa.LIGACAO_AGUA_PERFIL, idPerfilLigacao)); Collection pesquisa = fachada.pesquisar( filtroConsumoTarifa, ConsumoTarifa.class.getName()); if (!pesquisa.isEmpty()){ Boolean existeTarifaIgual = false; Iterator iteratorColecaoConsumoTarifa = pesquisa.iterator(); Imovel imovelConsulta = null; if(ligacaoAguaActionForm.getMatriculaImovel() != null && ligacaoAguaActionForm.getMatriculaImovel() != ""){ imovelConsulta= fachada.pesquisarImovel(new Integer(ligacaoAguaActionForm.getMatriculaImovel())); }else{ //caso apenas para usuario com permissao especial para efetuarLigacaoAguaSemRA if(ligacaoAguaActionForm.getIdImovel() != null && ligacaoAguaActionForm.getIdImovel() != ""){ imovelConsulta= fachada.pesquisarImovel(new Integer(ligacaoAguaActionForm.getIdImovel())); } } while(iteratorColecaoConsumoTarifa.hasNext()){ ConsumoTarifa consumoTarifa = (ConsumoTarifa) iteratorColecaoConsumoTarifa.next(); if (consumoTarifa.getLigacaoAguaPerfil() != null){ if(imovelConsulta != null){ if (imovelConsulta.getConsumoTarifa().getId().intValue() == consumoTarifa.getId().intValue()){ existeTarifaIgual = true; } } } } if (!existeTarifaIgual){ throw new ActionServletException("atencao.tarifa_consumo_perfil_ligacao",null, "Perfil da Liga��o"); } } String ramalLocalInstalacao = ligacaoAguaActionForm.getRamalLocalInstalacao(); String idServicoMotivoNaoCobranca = ligacaoAguaActionForm.getMotivoNaoCobranca(); String valorPercentual = ligacaoAguaActionForm.getPercentualCobranca(); String numeroLacre = ligacaoAguaActionForm.getNumeroLacre(); String idLigacaoOrigem = ligacaoAguaActionForm.getIdLigacaoOrigem(); String idImovel = ligacaoAguaActionForm.getIdImovel(); LigacaoAgua ligacaoAgua = new LigacaoAgua(); Imovel imovel = null; if(idImovel!=null && !idImovel.equalsIgnoreCase("")){ imovel = new Imovel(); imovel.setId(new Integer(idImovel)); imovel.setUltimaAlteracao(new Date()); ligacaoAgua.setImovel(imovel); //[FS0005] Verificar preenchimento dos Campos //validar Data Corte if (ligacaoAguaActionForm.getDataLigacao() != null && !ligacaoAguaActionForm.getDataLigacao().equals("")) { Date data = Util .converteStringParaDate(ligacaoAguaActionForm .getDataLigacao()); ligacaoAgua.setDataLigacao(data); } else { throw new ActionServletException("atencao.informe_campo",null, " Data da Liga��o"); } if (diametroLigacao != null && !diametroLigacao.equals("") && !diametroLigacao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) { LigacaoAguaDiametro ligacaoAguaDiametro = new LigacaoAguaDiametro(); ligacaoAguaDiametro.setId(new Integer(diametroLigacao)); ligacaoAgua.setLigacaoAguaDiametro(ligacaoAguaDiametro); } else { throw new ActionServletException("atencao.informe_campo_obrigatorio", null, "Diametro da Liga��o"); } if (materialLigacao != null && !materialLigacao.equals("") && !materialLigacao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ LigacaoAguaMaterial ligacaoAguaMaterialMaterial = new LigacaoAguaMaterial(); ligacaoAguaMaterialMaterial.setId(new Integer(materialLigacao)); ligacaoAgua.setLigacaoAguaMaterial(ligacaoAguaMaterialMaterial); } else { throw new ActionServletException("atencao.informe_campo_obrigatorio", null, "Material da Liga��o"); } if (idPerfilLigacao != null && !idPerfilLigacao.equals("") && !idPerfilLigacao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) { LigacaoAguaPerfil ligacaoAguaPerfil = new LigacaoAguaPerfil(); ligacaoAguaPerfil.setId(new Integer(idPerfilLigacao)); ligacaoAgua.setLigacaoAguaPerfil(ligacaoAguaPerfil); } else { throw new ActionServletException("atencao.informe_campo_obrigatorio", null, "Perfil da Liga��o"); } if (ramalLocalInstalacao != null && !ramalLocalInstalacao.equals("") && !ramalLocalInstalacao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) { RamalLocalInstalacao ramalLocal = new RamalLocalInstalacao(); ramalLocal.setId(new Integer(ramalLocalInstalacao)); ligacaoAgua.setRamalLocalInstalacao(ramalLocal); } // Colocado por R�mulo Aur�lio Analista: S�vio Luiz Data:03/09/2008 // Ligacao Origem if(idLigacaoOrigem !=null && !idLigacaoOrigem.equals("") && !idLigacaoOrigem.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ LigacaoOrigem ligacaoOrigem = new LigacaoOrigem(); ligacaoOrigem.setId(new Integer(idLigacaoOrigem)); ligacaoAgua.setLigacaoOrigem(ligacaoOrigem); } if(numeroLacre !=null && !numeroLacre.equals("")){ ligacaoAgua.setNumeroLacre(numeroLacre); } String qtdParcelas = ligacaoAguaActionForm.getQuantidadeParcelas(); IntegracaoComercialHelper integracaoComercialHelper = new IntegracaoComercialHelper(); integracaoComercialHelper.setLigacaoAgua(ligacaoAgua); integracaoComercialHelper.setImovel(imovel); integracaoComercialHelper.setOrdemServico(null); integracaoComercialHelper.setQtdParcelas(qtdParcelas); integracaoComercialHelper.setVeioEncerrarOS(Boolean.FALSE); fachada.efetuarLigacaoAgua(integracaoComercialHelper); } if (ordemServicoId != null && !ordemServicoId.equals("") && (idImovel == null || idImovel.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); } //[FS0005] Verificar preenchimento dos Campos //validar Data Corte if (ligacaoAguaActionForm.getDataLigacao() != null && !ligacaoAguaActionForm.getDataLigacao().equals("")) { Date data = Util .converteStringParaDate(ligacaoAguaActionForm .getDataLigacao()); ligacaoAgua.setDataLigacao(data); } else { throw new ActionServletException("atencao.informe_campo",null, " Data da Liga��o"); } if (diametroLigacao != null && !diametroLigacao.equals("") && !diametroLigacao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) { LigacaoAguaDiametro ligacaoAguaDiametro = new LigacaoAguaDiametro(); ligacaoAguaDiametro.setId(new Integer(diametroLigacao)); ligacaoAgua.setLigacaoAguaDiametro(ligacaoAguaDiametro); } else { throw new ActionServletException("atencao.informe_campo_obrigatorio", null, "Diametro da Liga��o"); } if (materialLigacao != null && !materialLigacao.equals("") && !materialLigacao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ LigacaoAguaMaterial ligacaoAguaMaterialMaterial = new LigacaoAguaMaterial(); ligacaoAguaMaterialMaterial.setId(new Integer(materialLigacao)); ligacaoAgua.setLigacaoAguaMaterial(ligacaoAguaMaterialMaterial); } else { throw new ActionServletException("atencao.informe_campo_obrigatorio", null, "Material da Liga��o"); } if (idPerfilLigacao != null && !idPerfilLigacao.equals("") && !idPerfilLigacao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) { LigacaoAguaPerfil ligacaoAguaPerfil = new LigacaoAguaPerfil(); ligacaoAguaPerfil.setId(new Integer(idPerfilLigacao)); ligacaoAgua.setLigacaoAguaPerfil(ligacaoAguaPerfil); } else { throw new ActionServletException("atencao.informe_campo_obrigatorio", null, "Perfil da Liga��o"); } if (ramalLocalInstalacao != null && !ramalLocalInstalacao.equals("") && !ramalLocalInstalacao.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)) { RamalLocalInstalacao ramalLocal = new RamalLocalInstalacao(); ramalLocal.setId(new Integer(ramalLocalInstalacao)); ligacaoAgua.setRamalLocalInstalacao(ramalLocal); } // Colocado por R�mulo Aur�lio Analista: S�vio Luiz Data:03/09/2008 // Ligacao Origem if(idLigacaoOrigem !=null && !idLigacaoOrigem.equals("") && !idLigacaoOrigem.trim().equalsIgnoreCase(""+ConstantesSistema.NUMERO_NAO_INFORMADO)){ LigacaoOrigem ligacaoOrigem = new LigacaoOrigem(); ligacaoOrigem.setId(new Integer(idLigacaoOrigem)); ligacaoAgua.setLigacaoOrigem(ligacaoOrigem); } if(numeroLacre !=null && !numeroLacre.equals("")){ ligacaoAgua.setNumeroLacre(numeroLacre); } if(ordemServico != null && ligacaoAguaActionForm.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(ligacaoAguaActionForm.getPercentualCobranca())); } ordemServico.setUltimaAlteracao(new Date()); } BigDecimal valorAtual = new BigDecimal(0); if (ligacaoAguaActionForm.getValorDebito() != null) { String valorDebito = ligacaoAguaActionForm.getValorDebito().toString().replace(".", ""); valorDebito = valorDebito.replace(",", "."); valorAtual = new BigDecimal(valorDebito); ordemServico.setValorAtual(valorAtual); } String qtdParcelas = ligacaoAguaActionForm.getQuantidadeParcelas(); IntegracaoComercialHelper integracaoComercialHelper = new IntegracaoComercialHelper(); integracaoComercialHelper.setLigacaoAgua(ligacaoAgua); integracaoComercialHelper.setImovel(imovel); integracaoComercialHelper.setOrdemServico(ordemServico); integracaoComercialHelper.setQtdParcelas(qtdParcelas); integracaoComercialHelper.setUsuarioLogado(usuario); if(ligacaoAguaActionForm.getVeioEncerrarOS().equalsIgnoreCase("FALSE")){ integracaoComercialHelper.setVeioEncerrarOS(Boolean.FALSE); fachada.efetuarLigacaoAgua(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")){ //Monta a p�gina de sucesso montarPaginaSucesso(httpServletRequest,"Liga��o de �gua efetuada com Sucesso", "Efetuar outra Liga��o de �gua", "exibirEfetuarLigacaoAguaAction.do?menu=sim", "exibirAtualizarLigacaoAguaAction.do?menu=sim&matriculaImovel="+imovel.getId(), "Atualiza��o Liga��o de �gua efetuada"); } return retorno; } }