package gcom.gui.atendimentopublico.ligacaoagua; import gcom.atendimentopublico.ligacaoagua.LigacaoAgua; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaDiametro; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaMaterial; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaPerfil; import gcom.atendimentopublico.ligacaoagua.LigacaoAguaSituacao; import gcom.atendimentopublico.ligacaoagua.RamalLocalInstalacao; 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.gui.atendimentopublico.EfetuarLigacaoAguaComInstalacaoHidrometroSemRAActionForm; import gcom.interceptor.RegistradorOperacao; import gcom.micromedicao.hidrometro.Hidrometro; import gcom.micromedicao.hidrometro.HidrometroInstalacaoHistorico; import gcom.micromedicao.hidrometro.HidrometroLocalInstalacao; import gcom.micromedicao.hidrometro.HidrometroProtecao; import gcom.micromedicao.hidrometro.HidrometroSituacao; import gcom.micromedicao.medicao.MedicaoTipo; import gcom.seguranca.acesso.Operacao; import gcom.seguranca.acesso.usuario.Usuario; import gcom.seguranca.acesso.usuario.UsuarioAcao; import gcom.seguranca.acesso.usuario.UsuarioAcaoUsuarioHelper; import gcom.util.ConstantesSistema; import gcom.util.ControladorException; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; 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 EfetuarLigacaoAguaComInstalacaoHidrometroSemRAAction 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); EfetuarLigacaoAguaComInstalacaoHidrometroSemRAActionForm form = (EfetuarLigacaoAguaComInstalacaoHidrometroSemRAActionForm) actionForm; Fachada fachada = Fachada.getInstancia(); // Usuario logado no sistema Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado"); LigacaoAgua ligacaoAgua = this.setDadosLigacaoAgua(form, fachada, form.getMatriculaImovel()); Imovel imovel = new Imovel(); imovel.setId(new Integer(form.getMatriculaImovel())); imovel.setUltimaAlteracao(new Date()); ligacaoAgua.setImovel(imovel); ligacaoAgua.setUltimaAlteracao(new Date()); LigacaoAguaSituacao ligacaoAguaSituacao = new LigacaoAguaSituacao(); ligacaoAguaSituacao.setId(LigacaoAguaSituacao.LIGADO); imovel.setLigacaoAguaSituacao(ligacaoAguaSituacao); ligacaoAgua.setId(imovel.getId()); /* * [UC0107] Registrar Transa��o */ RegistradorOperacao registradorOperacao = new RegistradorOperacao( Operacao.OPERACAO_LIGACAO_AGUA_SEM_RA_EFETUAR, imovel.getId(), imovel.getId(), new UsuarioAcaoUsuarioHelper(usuario, UsuarioAcao.USUARIO_ACAO_EFETUOU_OPERACAO)); // [UC0107] -Fim- Registrar Transa��o HidrometroInstalacaoHistorico hidrometroInstalacaoHistorico = null; if (form.getNumeroHidrometro() != null && !form.getNumeroHidrometro().trim().equals("")) { hidrometroInstalacaoHistorico = new HidrometroInstalacaoHistorico(); hidrometroInstalacaoHistorico = this.setDadosHidrometroInstalacaoHistorico( hidrometroInstalacaoHistorico, form); } registradorOperacao.registrarOperacao(ligacaoAgua); if(hidrometroInstalacaoHistorico != null){ registradorOperacao.registrarOperacao(hidrometroInstalacaoHistorico); } fachada.efetuarLigacaoAguaComInstalacaoHidrometroSemRA( imovel.getId(), ligacaoAgua, hidrometroInstalacaoHistorico); if (retorno.getName().equalsIgnoreCase("telaSucesso")) { // Monta a p�gina de sucesso montarPaginaSucesso( httpServletRequest, "Liga��o de �gua com Instala��o de Hidr�metro sem RA efetuada com Sucesso", "Efetuar outra Liga��o de �gua com Instala��o de Hidr�metro sem RA", "exibirEfetuarLigacaoAguaComInstalacaoHidrometroSemRAAction.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( EfetuarLigacaoAguaComInstalacaoHidrometroSemRAActionForm efetuarLigacaoAguaComInstalacaoHidrometroActionForm, Fachada fachada, String matriculaImovel) { String diametroLigacao = efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getDiametroLigacao(); String materialLigacao = efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getMaterialLigacao(); String idPerfilLigacao = efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getPerfilLigacao(); //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(matriculaImovel!=null && matriculaImovel!=""){ imovelConsulta= fachada.pesquisarImovel(new Integer(matriculaImovel)); } 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 = efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getRamalLocalInstalacao(); String numeroLacre = efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getNumeroLacre(); LigacaoAgua ligacaoAgua = new LigacaoAgua(); if (efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getDataLigacao() != null && !efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getDataLigacao().equals("")) { Date data = Util .converteStringParaDate(efetuarLigacaoAguaComInstalacaoHidrometroActionForm .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); } if (numeroLacre != null && !numeroLacre.equals("")) { ligacaoAgua.setNumeroLacre(numeroLacre); } return ligacaoAgua; } // [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, EfetuarLigacaoAguaComInstalacaoHidrometroSemRAActionForm efetuarLigacaoAguaComInstalacaoHidrometroActionForm) { Fachada fachada = Fachada.getInstancia(); String numeroHidrometro = efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getNumeroHidrometro(); String numeroLacreHidrometro = efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getNumeroLacreHidrometro(); // N�mero do Lacre if (numeroLacreHidrometro != null && !numeroLacreHidrometro.trim().equals("")) { hidrometroInstalacaoHistorico.setNumeroLacre(numeroLacreHidrometro); } else { hidrometroInstalacaoHistorico.setNumeroLacre(null); } if (numeroHidrometro != null) { // Pesquisa o Hidr�metro Hidrometro hidrometro = fachada .pesquisarHidrometroPeloNumero(numeroHidrometro); if (hidrometro == null) { throw new ActionServletException( "atencao.hidrometro_inexistente"); } else if (!hidrometro.getHidrometroSituacao().getId().equals( HidrometroSituacao.DISPONIVEL)) { throw new ActionServletException( "atencao.hidrometro_situacao_indisponivel", null, hidrometro.getHidrometroSituacao().getDescricao()); } hidrometroInstalacaoHistorico.setHidrometro(hidrometro); } // Data instala��o if (efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getDataInstalacao() != null && !efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getDataInstalacao().equals("")) { hidrometroInstalacaoHistorico .setDataInstalacao(Util .converteStringParaDate(efetuarLigacaoAguaComInstalacaoHidrometroActionForm .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(efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getLocalInstalacao())); hidrometroInstalacaoHistorico .setHidrometroLocalInstalacao(hidrometroLocalInstalacao); // prote��o HidrometroProtecao hidrometroProtecao = new HidrometroProtecao(); hidrometroProtecao.setId(Integer .parseInt(efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getProtecao())); hidrometroInstalacaoHistorico.setHidrometroProtecao(hidrometroProtecao); // leitura instala��o if (efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getLeituraInstalacao() != null && !efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getLeituraInstalacao().trim().equals("")) { hidrometroInstalacaoHistorico .setNumeroLeituraInstalacao(Integer .parseInt(efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getLeituraInstalacao())); } else { hidrometroInstalacaoHistorico.setNumeroLeituraInstalacao(0); } // cavalete hidrometroInstalacaoHistorico.setIndicadorExistenciaCavalete(Short .parseShort(efetuarLigacaoAguaComInstalacaoHidrometroActionForm .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 (efetuarLigacaoAguaComInstalacaoHidrometroActionForm.getNumeroSelo() != null && !efetuarLigacaoAguaComInstalacaoHidrometroActionForm .getNumeroSelo().equals("")) { hidrometroInstalacaoHistorico .setNumeroSelo(efetuarLigacaoAguaComInstalacaoHidrometroActionForm .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()); /* * * Adi��o dos sets para os atributos indicadorTrocaProtecao e indicadorTrocaRegistro. */ // indicador troca prote��o hidrometroInstalacaoHistorico.setIndicadorTrocaProtecao(ConstantesSistema.NAO); // indicador troca registro hidrometroInstalacaoHistorico.setIndicadorTrocaRegistro(ConstantesSistema.NAO); return hidrometroInstalacaoHistorico; } }