package gcom.gui.micromedicao.leitura; import gcom.atendimentopublico.ordemservico.FiltroTipoServico; import gcom.atendimentopublico.ordemservico.ServicoTipo; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.micromedicao.leitura.FiltroLeituraAnormalidade; import gcom.micromedicao.leitura.FiltroLeituraAnormalidadeConsumo; import gcom.micromedicao.leitura.FiltroLeituraAnormalidadeLeitura; import gcom.micromedicao.leitura.LeituraAnormalidade; import gcom.micromedicao.leitura.LeituraAnormalidadeConsumo; import gcom.micromedicao.leitura.LeituraAnormalidadeLeitura; import gcom.seguranca.acesso.usuario.Usuario; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; 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; /** * <p> * <b>[UC0190]</b> Inserir Anormalidade de Leitura * </p> * * <p> * Esta funcionalidade permite inserir uma Anormalidade de Leitura * </p> * * @author Thiago Ten�rio, Magno Gouveia * @since 07/02/2007, 23/08/2011 */ public class InserirAnormalidadeLeituraAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping.findForward("telaSucesso"); Fachada fachada = Fachada.getInstancia(); HttpSession sessao = httpServletRequest.getSession(false); Usuario usuarioLogado = (Usuario) sessao.getAttribute(Usuario.USUARIO_LOGADO); InserirAnormalidadeLeituraActionForm form = (InserirAnormalidadeLeituraActionForm) actionForm; String descricao = form.getDescricao(); String abreviatura = form.getAbreviatura(); String indicadorRelativoHidrometro = form.getIndicadorRelativoHidrometro(); String indicadorImovelSemHidrometro = form.getIndicadorImovelSemHidrometro(); String usoRestritoSistema = form.getUsoRestritoSistema(); String perdaTarifaSocial = form.getPerdaTarifaSocial(); String osAutomatico = form.getOsAutomatico(); String tipoServico = form.getTipoServico(); String consumoLeituraNaoInformado = form.getConsumoLeituraNaoInformado(); String consumoLeituraInformado = form.getConsumoLeituraInformado(); String leituraLeituraNaoturaInformado = form.getLeituraLeituraNaoturaInformado(); String leituraLeituraInformado = form.getLeituraLeituraInformado(); String fatorSemLeitura = form.getNumeroFatorSemLeitura(); String fatorComLeitura = form.getNumeroFatorComLeitura(); String indicadorLeitura = form.getIndicadorLeitura(); String indicadorImpressaoSimultanea = form.getIndicadorImpressaoSimultanea(); LeituraAnormalidade anormalidadeLeituraInserir = new LeituraAnormalidade(); Collection colecaoPesquisa = null; sessao.removeAttribute("tipoPesquisaRetorno"); if (Util.validarNumeroMaiorQueZERO(form.getTipoServico())) { FiltroTipoServico filtroTipoServico = new FiltroTipoServico(); filtroTipoServico.adicionarParametro(new ParametroSimples( FiltroLeituraAnormalidade.ID_TIPO_SERVICO, form.getTipoServico())); } if (form.getConsumoLeituraNaoInformado() != null) { Integer idConsumoLeituraNaoInformado = new Integer(form.getConsumoLeituraNaoInformado()); if (idConsumoLeituraNaoInformado.equals(ConstantesSistema.NUMERO_NAO_INFORMADO)) { anormalidadeLeituraInserir.setLeituraAnormalidadeConsumoSemleitura(null); } else { FiltroLeituraAnormalidadeConsumo filtroLeituraAnormalidadeConsumo = new FiltroLeituraAnormalidadeConsumo(); filtroLeituraAnormalidadeConsumo.adicionarParametro(new ParametroSimples( FiltroLeituraAnormalidadeConsumo.ID, form.getConsumoLeituraNaoInformado().toString())); Collection colecaoConsumoLeituraNaoInformado = (Collection) fachada.pesquisar(filtroLeituraAnormalidadeConsumo, LeituraAnormalidadeConsumo.class.getName()); anormalidadeLeituraInserir.setLeituraAnormalidadeConsumoSemleitura((LeituraAnormalidadeConsumo) colecaoConsumoLeituraNaoInformado.iterator().next()); } } if (form.getConsumoLeituraInformado() != null) { Integer idConsumoLeituraInformado = new Integer(form.getConsumoLeituraInformado()); if (idConsumoLeituraInformado.equals(ConstantesSistema.NUMERO_NAO_INFORMADO)) { anormalidadeLeituraInserir.setLeituraAnormalidadeConsumoComleitura(null); } else { FiltroLeituraAnormalidadeConsumo filtroLeituraAnormalidadeConsumo = new FiltroLeituraAnormalidadeConsumo(); filtroLeituraAnormalidadeConsumo.adicionarParametro(new ParametroSimples( FiltroLeituraAnormalidadeConsumo.ID, form.getConsumoLeituraInformado().toString())); Collection colecaoConsumoLeituraInformado = (Collection) fachada.pesquisar(filtroLeituraAnormalidadeConsumo, LeituraAnormalidadeConsumo.class.getName()); anormalidadeLeituraInserir.setLeituraAnormalidadeConsumoComleitura((LeituraAnormalidadeConsumo) colecaoConsumoLeituraInformado.iterator().next()); } } if (form.getLeituraLeituraNaoturaInformado() != null) { Integer idLeituraLeituraNaoturaInformado = new Integer(form.getLeituraLeituraNaoturaInformado()); if (idLeituraLeituraNaoturaInformado.equals(ConstantesSistema.NUMERO_NAO_INFORMADO)) { anormalidadeLeituraInserir.setLeituraAnormalidadeLeituraSemleitura(null); } else { FiltroLeituraAnormalidadeLeitura filtroLeituraAnormalidadeLeitura = new FiltroLeituraAnormalidadeLeitura(); filtroLeituraAnormalidadeLeitura.adicionarParametro(new ParametroSimples( FiltroLeituraAnormalidadeLeitura.ID, form.getLeituraLeituraNaoturaInformado().toString())); Collection colecaoLeituraLeituraNaoturaInformado = (Collection) fachada.pesquisar(filtroLeituraAnormalidadeLeitura, LeituraAnormalidadeLeitura.class.getName()); // setando anormalidadeLeituraInserir.setLeituraAnormalidadeLeituraSemleitura((LeituraAnormalidadeLeitura) colecaoLeituraLeituraNaoturaInformado.iterator().next()); } } if (form.getLeituraLeituraInformado() != null) { Integer idLeituraLeituraInformado = new Integer(form.getLeituraLeituraInformado()); if (idLeituraLeituraInformado.equals(ConstantesSistema.NUMERO_NAO_INFORMADO)) { anormalidadeLeituraInserir.setLeituraAnormalidadeLeituraComleitura(null); } else { FiltroLeituraAnormalidadeLeitura filtroLeituraAnormalidadeLeitura = new FiltroLeituraAnormalidadeLeitura(); filtroLeituraAnormalidadeLeitura.adicionarParametro(new ParametroSimples( FiltroLeituraAnormalidadeLeitura.ID, form.getLeituraLeituraInformado().toString())); Collection colecaoLeituraLeituraInformado = (Collection) fachada.pesquisar(filtroLeituraAnormalidadeLeitura, LeituraAnormalidadeLeitura.class.getName()); anormalidadeLeituraInserir.setLeituraAnormalidadeLeituraComleitura((LeituraAnormalidadeLeitura) colecaoLeituraLeituraInformado.iterator().next()); } } // A Descri��o � obrigat�rio. if (descricao == null || descricao.equalsIgnoreCase("")) { throw new ActionServletException( "atencao.required", null, "Descri��o"); } // A Abreviatura � obrigat�rio. if (abreviatura == null || abreviatura.equalsIgnoreCase("")) { throw new ActionServletException( "atencao.required", null, "Abreviatura"); } // A Anormalidade Relativa a Hidr�metro � obrigat�rio. if (indicadorRelativoHidrometro == null || indicadorRelativoHidrometro.equalsIgnoreCase("")) { throw new ActionServletException( "atencao.required", null, "Anormalidade Relativa a Hidr�metro"); } // Anormalidade Aceita para Liga��o sem Hidr�metro � obrigat�rio. if (indicadorImovelSemHidrometro == null || indicadorImovelSemHidrometro.equalsIgnoreCase("")) { throw new ActionServletException( "atencao.required", null, "Anormalidade Aceita para Liga��o sem Hidr�metro"); } // Anormalidade de Uso Restrito do Sistema � obrigat�rio. if (usoRestritoSistema == null || usoRestritoSistema.equalsIgnoreCase("")) { throw new ActionServletException( "atencao.required", null, "Anormalidade de Uso Restrito do Sistema"); } // Anormalidade Acarreta Perda Tarifa Social � obrigat�rio. if (perdaTarifaSocial == null || perdaTarifaSocial.equalsIgnoreCase("")) { throw new ActionServletException( "atencao.required", null, "Anormalidade Acarreta Perda Tarifa Social"); } // Anormalidade Emite OS Autom�tica � obrigat�rio. if (osAutomatico == null || osAutomatico.equalsIgnoreCase("")) { throw new ActionServletException( "atencao.required", null, "Anormalidade Emite OS Autom�tica"); } // Indicador Impressao Simultanea if (indicadorImpressaoSimultanea == null || indicadorImpressaoSimultanea.equalsIgnoreCase("")) { throw new ActionServletException( "atencao.required", null, "Indicador Impress�o Simult�nea"); } anormalidadeLeituraInserir.setDescricao(descricao); anormalidadeLeituraInserir.setDescricaoAbreviada(abreviatura); anormalidadeLeituraInserir.setIndicadorRelativoHidrometro(new Short(indicadorRelativoHidrometro)); anormalidadeLeituraInserir.setIndicadorImovelSemHidrometro(new Short(indicadorImovelSemHidrometro)); anormalidadeLeituraInserir.setIndicadorEmissaoOrdemServico(new Short(usoRestritoSistema)); anormalidadeLeituraInserir.setIndicadorPerdaTarifaSocial(new Short(perdaTarifaSocial)); anormalidadeLeituraInserir.setIndicadorSistema(new Short(usoRestritoSistema)); anormalidadeLeituraInserir.setIndicadorEmissaoOrdemServico(new Short(osAutomatico)); anormalidadeLeituraInserir.setIndicadorImpressaoSimultanea(new Short(indicadorImpressaoSimultanea)); if (tipoServico != null && !tipoServico.equals("")) { ServicoTipo servicoTipo = new ServicoTipo(); servicoTipo.setId(new Integer(tipoServico)); anormalidadeLeituraInserir.setServicoTipo(servicoTipo); } else { anormalidadeLeituraInserir.setServicoTipo(null); } LeituraAnormalidadeConsumo leituraAnormalidadeConsumoSemLeitua = new LeituraAnormalidadeConsumo(); leituraAnormalidadeConsumoSemLeitua.setId(new Integer(consumoLeituraNaoInformado)); anormalidadeLeituraInserir.setLeituraAnormalidadeConsumoSemleitura(leituraAnormalidadeConsumoSemLeitua); LeituraAnormalidadeConsumo leituraAnormalidadeConsumo = new LeituraAnormalidadeConsumo(); leituraAnormalidadeConsumo.setId(new Integer(consumoLeituraInformado)); anormalidadeLeituraInserir.setLeituraAnormalidadeConsumoComleitura(leituraAnormalidadeConsumo); LeituraAnormalidadeLeitura leituraAnormalidadeNaoLeitura = new LeituraAnormalidadeLeitura(); leituraAnormalidadeNaoLeitura.setId(new Integer(leituraLeituraNaoturaInformado)); anormalidadeLeituraInserir.setLeituraAnormalidadeLeituraSemleitura(leituraAnormalidadeNaoLeitura); LeituraAnormalidadeLeitura leituraAnormalidadeLeitura = new LeituraAnormalidadeLeitura(); leituraAnormalidadeLeitura.setId(new Integer(leituraLeituraInformado)); anormalidadeLeituraInserir.setLeituraAnormalidadeLeituraComleitura(leituraAnormalidadeLeitura); // Ultima altera��o anormalidadeLeituraInserir.setUltimaAlteracao(new Date()); // Indicador de uso Short iu = 1; anormalidadeLeituraInserir.setIndicadorUso(iu); anormalidadeLeituraInserir.setNumeroFatorComLeitura(Util.formatarMoedaRealparaBigDecimal(fatorComLeitura)); anormalidadeLeituraInserir.setNumeroFatorSemLeitura(Util.formatarMoedaRealparaBigDecimal(fatorSemLeitura)); anormalidadeLeituraInserir.setIndicadorLeitura(new Short(indicadorLeitura)); if (!Util.verificarNaoVazio(form.getNumeroVezesSuspendeLeitura())) { form.setNumeroVezesSuspendeLeitura("0"); } anormalidadeLeituraInserir.setNumeroVezesSuspendeLeitura(new Integer(form.getNumeroVezesSuspendeLeitura())); if (!Util.verificarNaoVazio(form.getNumeroMesesLeituraSuspensa())) { form.setNumeroMesesLeituraSuspensa("0"); } anormalidadeLeituraInserir.setNumeroMesesLeituraSuspensa(new Integer(form.getNumeroMesesLeituraSuspensa())); FiltroLeituraAnormalidade filtroLeituraAnormalidade = new FiltroLeituraAnormalidade(); filtroLeituraAnormalidade.adicionarParametro(new ParametroSimples( FiltroLeituraAnormalidade.DESCRICAO, anormalidadeLeituraInserir.getDescricao())); colecaoPesquisa = (Collection) fachada.pesquisar(filtroLeituraAnormalidade, LeituraAnormalidade.class.getName()); if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) { // throw new ActionServletException( "atencao.leitura_anormalidade_ja_cadastrada", null, anormalidadeLeituraInserir.getDescricao()); } else { Integer idAnormalidadeLeitura = null; idAnormalidadeLeitura = fachada.inserirAnormalidadeLeitura(anormalidadeLeituraInserir, usuarioLogado); montarPaginaSucesso(httpServletRequest, "Anormalidade de Leitura de c�digo " + anormalidadeLeituraInserir.getId() + " inserida com sucesso.", "Inserir outra Anormalidade de Leitura", "exibirInserirAnormalidadeLeituraAction.do?menu=sim", "exibirAtualizarAnormalidadeLeituraAction.do?idRegistroAtualizacao=" + idAnormalidadeLeitura, "Atualizar Anormalidade de Leitura"); } // devolve o mapeamento de retorno return retorno; } }